# Pssecret [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) Pssecret is self-hosted service to share secrets (like passwords) with somebody over the network, but don't want them to appear in chats, unencrypted e-mails, etc. This service tries to be as anonymous as possible. The only personal information that will be stored on a server will be IP address of the client that made request to the server. Service is built with Python, FastAPI and is using Redis for data storage. ## Installation ### Requirements - Python 3.11+ - Redis - Python development libraries (optional, only needed for `hiredis` module installation) ### How to install #### TL/DR ```bash $ git clone git@git.ivnglkv.me:root/pssecret.git $ python3 -m venv .venv $ . ./.venv/bin/activate $ pip install . ``` --- Steps to install Pssecret: 1. Clone repository 2. (optional) Create virtual environment 3. Install package ### Running Pssecret server After installation is done, you can start pssecret with `pssecret` command. The web server will be started with `uvicorn` ASGI web server. ```bash $ pssecret ``` ### Configuration Configuration is done through config file. By default, path is `/etc/pssecret/pssecret.toml`. You can override this by setting environment variable `PSSECRET_CONF_FILE` value to actual file location, i.e.: ```bash $ PSSECRET_CONF_FILE=/home/user/.conf/pssecret.toml pssecret ``` You can find all available configuration options in the example file, located at [conf/pssecret.toml.example](conf/pssecret.toml.example) under Git root. ## Contributing Codestyle is enforced with Black, and additional checks are done with the help of pre-commit-hooks, Flake8 and isort. Prior to making any commits, install `pre-commit` tool and install hooks: ```bash # Alternatively, you could use 'pip install ".[development]"' $ pip install pre-commit $ pre-commit install ``` This way you will always be sure that new code follows project guidelines. This project is using trunk-based branching strategy with the `main` as trunk branch.