OTS-Share is a self-hosted application that enables secure one-time sharing of encrypted secrets via expiring links.
A self-hosting app to share secrets only one-time.
This tool is designed for users who need to share sensitive information, such as passwords or confidential data, securely and temporarily without leaving traces on the server. It is ideal for individuals or organizations wanting to self-host a secrets management solution that ensures data is accessible only once and automatically deleted after expiration.
Passwords used for encryption are handled client-side and never sent to the backend, enhancing security. The maximum file size supported is 1MB, so it is not suitable for large files. The app periodically purges expired secrets to maintain data hygiene. Running in Docker simplifies deployment, but users should ensure proper database configuration when connecting to external databases.
Clone the repository
Ensure Docker and Docker Compose are installed
Run `make start` to launch the app with the default MongoDB database
Alternatively, set the `DB_URL` environment variable to connect to an external Postgres or MySQL database
Run `make start-no-db` to launch the app without the default database
Access the application UI at http://localhost:8282
make start
Starts the application with the default MongoDB database using Docker Compose
export DB_URL=mysql://root:root@host.docker.internal:3306/ots_share
Sets the connection string for an external MySQL database
make start-no-db
Starts the application connecting to an external database instead of the default MongoDB
curl 'http://localhost:8282/api/record' -H 'Content-Type: application/json' --data-raw '{"content":"<encrypted_content>","expireIn":{"value":1,"unit":"minutes"}}'
Creates a new secret record with encrypted content and expiration time