Skip to main content

CLI for securely sharing encrypted .env files across teams.

Project description

Env-Sync

Env-Sync is a CLI tool for sharing encrypted .env files across a team without committing secrets to Git or sending them through chat.

Env-Sync has two main parts:

  • A Flask API that stores encrypted vault payloads, team memberships, and per-user wrapped vault keys
  • A Python CLI package, envsync-vault, that handles authentication, key generation, encryption, and pull/push workflows

Core Features

  • User registration and login through the CLI
  • Local RSA key generation on first login
  • Client-side encryption of the team .env
  • Per-user wrapped vault keys for team access
  • Team creation and membership management
  • Admin/member role controls
  • Pull and push workflows for encrypted vault updates
  • Team-specific interactive subshell for faster team operations

Install

Install from PyPI:

pip install envsync-vault

Verify the install:

envsync help

Configuration

By default, the CLI points to the hosted Railway API:

https://env-sync.up.railway.app

To use a different deployment:

export ENVSYNC_BASE_URL="http://127.0.0.1:7070"

Basic Workflow

Register and log in:

envsync register --email alice@example.com
envsync login --email alice@example.com

Create a team and upload the initial vault:

envsync create-team --name "Project Apollo"
envsync push --team project-apollo

Add a team member:

envsync add-member --team project-apollo --email bob@example.com

Pull secrets on another machine or account:

envsync pull --team project-apollo

Main Commands

Authentication:

envsync register --email you@example.com
envsync login --email you@example.com
envsync whoami
envsync logout

Teams:

envsync create-team --name "Project Apollo"
envsync list-teams
envsync list-members --team project-apollo
envsync add-member --team project-apollo --email bob@example.com
envsync promote --team project-apollo --email bob@example.com
envsync demote --team project-apollo --email bob@example.com
envsync leave-team --team project-apollo
envsync delete-team --team project-apollo

Vault operations:

envsync push --team project-apollo
envsync pull --team project-apollo
envsync team project-apollo

Local Development

Set up the project locally:

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -e .

Configure environment variables:

export DATABASE_URL="postgresql://USER:PASSWORD@HOST:PORT/DBNAME"
export JWT_KEY="replace-me"

Run migrations and start the API:

python -m flask --app app db upgrade
python app.py

Point the CLI at the local API:

export ENVSYNC_BASE_URL="http://127.0.0.1:7070"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

envsync_vault-0.0.1.tar.gz (19.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

envsync_vault-0.0.1-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

File details

Details for the file envsync_vault-0.0.1.tar.gz.

File metadata

  • Download URL: envsync_vault-0.0.1.tar.gz
  • Upload date:
  • Size: 19.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.5

File hashes

Hashes for envsync_vault-0.0.1.tar.gz
Algorithm Hash digest
SHA256 b7645f1ea867b0949bb0242409e69fe2d4bc1375ff62d428785a3c9d5d936422
MD5 299bf8c0d15a92df11c78a834c2fa552
BLAKE2b-256 6a24b7fb5557f177c7ef220294187565c8f5d0207e846f1d898546352a7b817a

See more details on using hashes here.

File details

Details for the file envsync_vault-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: envsync_vault-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 17.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.5

File hashes

Hashes for envsync_vault-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0ee581d861b99f131fd2fb7651c7bcc489d37e2d7a8aae4339b802c7b61793db
MD5 c08cd1b55b96a4a6daeec9c88ccde0c9
BLAKE2b-256 6c324754b7bd68292ef7356719622113cb49cc9ff73dbbd0f1b0d35883d2d043

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page