A modern, open source password manager for individuals and teams.
Go to file
Bruno Bernardino 83e6c74936
Fix server crashing with malformed requests
It also adds tests to ensure there are no regressions.

Closes #381
2022-02-17 14:33:07 +00:00
.do Remove databases field from app spec template in an effort to make "deploy to digitalocean" button work 2021-08-21 09:32:32 +02:00
.github/workflows End-to-end login test 2022-02-01 16:22:16 +00:00
.vscode A few improvements, requested from the review: 2021-12-20 15:01:25 +00:00
assets Insert url into TOS link 2022-01-31 12:08:05 +01:00
cypress Fix server crashing with malformed requests 2022-02-17 14:33:07 +00:00
nginx Only attempt to start amplify agent if amplify key is set 2021-12-15 13:16:57 +01:00
packages Fix server crashing with malformed requests 2022-02-17 14:33:07 +00:00
.dockerignore Add docker support 2019-05-28 19:54:26 +02:00
.gitignore Remove unnecessary things 2022-01-27 10:33:03 +00:00
.npmrc Lock dependencies' versions 2021-12-15 16:16:37 +00:00
.nvmrc Lock dependencies' versions 2021-12-15 16:16:37 +00:00
.prettierignore Add v3 compatibility end-to-end test 2022-02-09 17:15:08 +00:00
.prettierrc.json Import core modules directly rather than compiling them under a namespace 2018-05-30 16:29:04 +02:00
CHANGELOG.md Update change log 2020-07-26 15:29:35 +02:00
Dockerfile-pwa Lock Dockerfiles to node v16 2021-12-15 12:54:43 +01:00
Dockerfile-server Lock Dockerfiles to node v16 2021-12-15 12:54:43 +01:00
README.md CI: Full Release (#376) 2022-01-17 17:32:21 +00:00
cypress.env.json Fix server crashing with malformed requests 2022-02-17 14:33:07 +00:00
cypress.json Find Item e2e test 2022-02-08 14:55:29 +00:00
docker-compose.yml Fix default assets path in docker-compose 2021-12-15 12:55:39 +01:00
karma.conf.js A few improvements, requested from the review: 2021-12-20 15:01:25 +00:00
lerna.json A few improvements, requested from the review: 2021-12-20 15:01:25 +00:00
package-lock.json Add v3 compatibility end-to-end test 2022-02-09 17:15:08 +00:00
package.json Add v3 compatibility end-to-end test 2022-02-09 17:15:08 +00:00
security.md typsos in security doc (mostly possessive nouns) 2020-04-21 13:56:11 +02:00
tsconfig.json Upgrade typescript version 2021-09-25 10:06:45 +02:00

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.

Deployment/Publishing

Locally, run npm run update-version 0.0.1 replacing 0.0.1 with the version you'd like to release, and commit + push/merge.

In GitHub Actions, run the Publish Release action to generate the release, build all targets, and attach them to the release.