Skip to main content

TeamVault

TeamVault is an open-source web-based shared password manager for behind-the-firewall installation. It requires Python 3.12+ and PostgreSQL (with the unaccent extension).

Installation

apt-get install libffi-dev libldap2-dev libpq-dev libsasl2-dev python3.X-dev postgresql-contrib
pip install teamvault
teamvault setup
vim /etc/teamvault.conf
# note that the teamvault database user will need SUPERUSER privileges
# during this step in order to activate the unaccent extension
teamvault upgrade
teamvault plumbing createsuperuser
teamvault run

Update

pip install --upgrade teamvault
teamvault upgrade

Development

Start a PostgreSQL database

Create a database and superuser for TeamVault to use, for example by starting a Docker container:

docker run --rm --detach --publish=5432:5432 --name teamvault-postgres -e POSTGRES_USER=teamvault -e POSTGRES_PASSWORD=teamvault postgres:latest

Run Webpack to serve static files

To compile all JS & SCSS files, you'll need to install all required packages via bun (or yarn/npm) with node >= v18.

Use bun/yarn/npm run serve to start a dev server.

Note: Some MacOS users have reported errors when running the dev server via bun. In this case feel free to switch to NPM.

Configure your Virtualenv via uv

uv sync

Setup TeamVault

export TEAMVAULT_CONFIG_FILE=teamvault.cfg
teamvault setup
vim teamvault.cfg  # base_url = http://localhost:8000
                   # session_cookie_secure = False
                   # database config as needed
teamvault upgrade
teamvault plumbing createsuperuser

Start the development server

teamvault run

Now open http://localhost:8000

Scheduled background jobs

We use huey to run background jobs. This requires you to run a second process, in parallel to TeamVault itself. You can launch it via manage.py:

teamvault run_huey

Fernet key rotation

TeamVault encrypts all secrets with a Fernet key defined in your config file. To rotate this key:

  1. Generate a new key:

     teamvault plumbing generate_fernet_key
    
  2. Save your current fernet_key from the config file (you'll need it in step 4).

  3. Replace fernet_key in your config file with the new key.

  4. Re-encrypt all secrets with the new key:

     teamvault plumbing rotate_fernet_key <old_key>
    

    This re-encrypts all stored revisions in a single transaction. If anything fails, all changes are rolled back and your data remains encrypted with the old key.

  5. Verify TeamVault starts without errors.

Important: The application must be stopped during key rotation to prevent read/write conflicts while secrets are being re-encrypted.

Release process

Run the github action to cut a release with a specific version number.

Metadata

Release files for teamvault 0.12.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for teamvault 0.12.0
File Size Uploaded
teamvault-0.12.0.tar.gz 8.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for teamvault 0.12.0
File Interpreter ABI Platform
teamvault-0.12.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.4 MB

Release files / teamvault-0.12.0.tar.gz

Download URL teamvault-0.12.0.tar.gz
Size 8.7 MB
Tags Source
SHA-256 checksum
How to use checksums
b4e04cffdea89b44458e47836b7b69a4a5e9de122190c75d23df79ee77509c24
BLAKE2b-256 checksum
How to use checksums
3838ff8f12360bb7703c8b2d2600c821f3c51a9f0ad09b24afbd9e1da8b1c2c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / teamvault-0.12.0-py3-none-any.whl

Download URL teamvault-0.12.0-py3-none-any.whl
Size 8.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
7ceb1cb7e050b55fac9cdaba69d5d13bc17d907be46120af33aa8ae81022e808
BLAKE2b-256 checksum
How to use checksums
133e84f691cdb90225d0f1008025eec0b3c2d7963bc4882edefebf9db54d1631
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.14.0

2 release files

This release

0.12.0 This release

2 release files

0.11.8

2 release files

0.11.7

2 release files

0.11.6

2 release files

0.11.5

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.5

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page