Self-hosted service for secrets sharing
Find a file
2022-12-17 18:03:17 +03:00
conf Basic Redis connection configuration 2022-12-17 09:53:50 +01:00
src/rectes Basic implementation for get secret endpoint 2022-12-17 16:02:09 +01:00
.gitignore Basic Redis connection configuration 2022-12-17 09:53:50 +01:00
.pre-commit-config.yaml Python 3.11 2022-12-17 09:37:41 +01:00
LICENSE Added BSD-3 license 2022-06-10 01:46:31 +03:00
pyproject.toml Run Black + Flake8 + isort before commit automatically 2022-06-12 15:33:14 +03:00
README.md Fixed wrong link in the README 2022-12-17 09:57:09 +01:00
setup.cfg Python 3.11 2022-12-17 09:37:41 +01:00

Rectes

Code style: black

Rectes (anagram from "secret") 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

$ git clone git@git.ivnglkv.ru:ivnglkv/rectes.git
$ python3 -m venv venv
$ . ./venv/bin/activate
$ pip install .

Steps to install Rectes:

  1. Clone repository
  2. (optional) Create virtual environment
  3. Install package

Running Rectes server

After installation is done, you can start rectes with rectes command. The web server will be started with uvicorn ASGI web server.

$ rectes

Configuration

Configuration is done through config file. By default, path is /etc/rectes/rectes.toml. You can override this by setting environment variable RECTES_CONF_FILE value to actual file location, i.e.:

$ RECTES_CONF_FILE=/home/user/.conf/rectes.toml rectes

You can find all available configuration options in the example file, located at conf/rectes.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:

# Alternatively, you could use 'pip install ".[development]"'
$ pip install pre-commit==2.19.0
$ 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.