Skip to content
PassZero is an open-source password manager which is offered as a free service but can also be run by anyone locally
Python TypeScript HTML CSS Makefile JavaScript Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
passzero
scripts
static
templates
tests
typescript
utils
.csslintrc
.eslintrc.js
.gitignore
.travis.yml
LICENSE.txt
Makefile
Procfile
README.md
package.json
requirements-dev.txt
requirements.txt
runtime.txt
server.py
setup.cfg
tsconfig.json
tslint.json
webpack.config.js
yarn.lock

README.md

PassZero

Travis Build Status Coverage Status

About

PassZero is a secure password manager implemented in Python. It is accessible in the browser and can be run either locally or remotely.

Design

PassZero is implemented as a simple web app with results held in a database, the frontend is presented as HTML in the browser, and the server is implemented in Python (Flask). All of the crypto happens server-side.

Running Locally

  • install postgres
    • on some platforms it may be necessary to install python bindings at the system level
  • install the following packages if not present:
    • python-dev
    • libssl-dev
    • postgresql-server-dev
  • create virtualenv from requirements.txt
  • if running on Mac, install certificates using this procedure
  • create self-signed certificate for SSL, place it at root of PassZero
  • set environment variables
    • DATABASE_URL
      • postgres://<username>:<password>@<host>:<port>/<database>
    • SENDGRID_API_KEY
    • alternatively create file passzero/my_env.py with method setup_env which sets above environment variables
  • foreman start local

Development

All instructions in "running locally", as well as:

  • install nodejs and npm
  • make install

Your secret environment file (passzero/my_env.py) should look like this:

import os


DATABASE_URL = "<your database URL here>"
REAL_EMAIL = "<your real email here>
SENDGRID_API_KEY = "<your real SendGrid API key here>"


def setup_env():
    os.environ["DATABASE_URL"] = DATABASE_URL
    os.environ["REAL_EMAIL"] = REAL_EMAIL
    os.environ["SENDGRID_API_KEY"] = SENDGRID_API_KEY

Building React Components

Most of the client-side components are written using React. You need to re-compile the react bundle for each page after modifying. Run this command:

yarn run webpack

Changing CSS

Most CSS is not included in the respective bundles. When modifying the CSS you have to rebuild the minified CSS using the command:

make minify-css

Deploying

  • run make to generate new build ID so caches are invalidated for old CSS and JS resources
  • deploy to server

License

  • GPLv3
You can’t perform that action at this time.