f72e848e65
This isn't working, but has some attempts. It's currently blocked, because the built app just has many `ReferenceError: Can't find variable: process`. Something with Webpack isn't building properly, as even trying to just run `webpack serve` from inside yields the same result (I updated webpack, but the problem is in the setup/config, really). I also tried setting `resolve.fallback.process: require.resolve('process/browser')` ([among other things](https://pretagteam.com/question/webpack-5-uncaught-referenceerror-process-is-not-defined)), but the executed code comes from `@padloc/app`, so I'd have to add that package there, and it feels wrong. I'm positive I'm just doing something wrong with the setup, but already spent quite some time on it. To test, pull this down, run `npm install`, and `npm run tauri:dev` (runs with `webpack` instead of `tauri`, just because the console errors are more useful). In the process of trying to get this to work, I migrated the icons to the assets directory and updated them. I also tweaked the initial HTML to match the new v4 theme. Related to #281 |
||
---|---|---|
.do | ||
.github/workflows | ||
.vscode | ||
assets | ||
nginx | ||
packages | ||
.dockerignore | ||
.gitignore | ||
.npmrc | ||
.nvmrc | ||
.prettierignore | ||
.prettierrc.json | ||
CHANGELOG.md | ||
Dockerfile-pwa | ||
Dockerfile-server | ||
README.md | ||
docker-compose.yml | ||
karma.conf.js | ||
lerna.json | ||
package-lock.json | ||
package.json | ||
security.md | ||
tsconfig.json |
README.md
Padloc
Simple, secure password and data management for individuals and teams (formerly known as Padlock).
This repo is split into multiple packages:
Package Name | Description |
---|---|
@padloc/core | Core Logic |
@padloc/app | Web-based UI components |
@padloc/server | The Backend Server |
@padloc/pwa | The Web Client, a Progressive Web App built on top of the @padloc/app package |
@padloc/locale | Package containing translations and other localization-related things |
@padloc/electron | The Desktop App, built with Electron |
@padloc/cordova | Cordova project for building iOS and Android app. |
@padloc/tauri (experimental) | Cross-platform native app builder for Padloc, powered by Tauri |
Getting Started
Step 0: Install Prerequisites
You'll need
Step 1: Clone the Repo
git clone https://github.com/padloc/padloc
cd padloc
Step 2: Install Dependencies
npm install
Step 3: Start Server and Web Client
PL_DATA_DIR=~/padloc-data \
PL_SERVER_PORT=3000 \
PL_PWA_PORT=8080 \
npm run start
For more configuration options, see Configuration
Scripts
Command | Description |
---|---|
npm start |
Starts both backend server and web client. |
npm run server:start |
Starts only backend server. |
npm run pwa:start |
Starts only web client (You'll need to run npm run pwa:build first). |
npm run pwa:build |
Builds the web client |
npm run dev |
Starts backend server and client app in dev mode, which watches for changes in the source files and automatically rebuilds/restarts the corresponding components. |
npm test |
Run tests. |
To add dependencies, you can use scope=[scope-without-@padloc/] npm run add [package]
and to remove them, run scope=[scope-without-@padloc/] npm run remove [package]
.
Use npm run prettier
to make "prettify" all files.
Configuration
Environment Variable | Default | Description |
---|---|---|
PL_SERVER_PORT |
3000 |
Which port to host the backend server on |
PL_SERVER_URL |
http://0.0.0.0:$PL_SERVER_PORT |
Public URL that will resolve to the backend server. Used by clients to send requests. |
PL_PWA_PORT |
8080 |
Which port to host the web client on |
PL_PWA_URL |
http://0.0.0.0:$PL_PWA_PORT |
Public URL that will resolve to the web client. Used by the server to generate links into the web client. |
PL_PWA_DIR |
./packages/pwa/dist |
Build directory for web client. |
PL_DATA_DIR |
./data |
Directory used by server for persistent data storage |
PL_ATTACHMENTS_DIR |
./attachments |
Directory used by server to store attachments |
PL_LOGS_DIR |
./logs |
Directory used by server to store logs |
PL_EMAIL_USER |
- | SMTP user for sending emails. |
PL_EMAIL_SERVER |
- | SMTP server for sending emails |
PL_EMAIL_PORT |
- | SMTP port for sending emails |
PL_EMAIL_SECURE |
false |
SMTP use secured connection for sending emails |
PL_EMAIL_PASSWORD |
- | SMTP password for sending email |
PL_REPORT_ERRORS |
- | Email address used for reporting unexpected errors in the backend. |
Security
For a security design overview, check out the security whitepaper.