TeamVault
TeamVault is an open-source web-based shared password manager for behind-the-firewall installation. It requires Python 3.10+ 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
Release process
- Bump the version in
teamvault/__version__.pyandpyproject.toml - Update CHANGELOG.md with the new version and current date
- Make a release commit with the changes made above
- Push the commit
- Run
./build.shto create a new package - Sign and push the artifacts to PyPI via
uv publish - Test that the package can be installed:
uv run --isolated --no-cache --prerelease allow --with teamvault --no-project -- teamvault --version - Add a new GitHub release
Metadata
Release files for teamvault 0.11.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| teamvault-0.11.7.tar.gz | 5.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| teamvault-0.11.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.7 MB
Release files / teamvault-0.11.7.tar.gz
| Download URL | teamvault-0.11.7.tar.gz |
|---|---|
| Size | 5.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d05f3793203cbb92d10259fdfdce64e515cd7fe2d7bc5b7806a669e7e17b48f8
|
|
BLAKE2b-256 checksum How to use checksums |
f46d16b094d811d8a2161d1e35ec1f7217c227f7808e7a12c5cb8268d56caa6c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","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.11.7-py3-none-any.whl
| Download URL | teamvault-0.11.7-py3-none-any.whl |
|---|---|
| Size | 5.9 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
aee56d9d8a3bdc54b95562e059202c46cc0f85d8ab77cf222f636d2873480f6b
|
|
BLAKE2b-256 checksum How to use checksums |
d936b27c4cd0c15457368b614d9bcc337779e7325ff8905da812a105668a8379
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","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}
|