shareless

module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 7, 2025 License: MIT

README

Shareless

Shareless is an application developed in Go that allows for secure secret sharing. With a focus on privacy and security, the application does not store secrets in plain text; instead, it only stores a hash that enables decryption of the secret when needed.

Features

  • Share secrets with configurable expiration.
  • Use temporary tokens for accessing secrets.
  • Efficient storage with Redis.

Requirements

  • Go (version 1.16 or higher)
  • Redis

Endpoints

1. POST /share

Used to share a new secret.

Body
{
  "text": "The secret you want to share",
  "expire_on_opened": "on", // (optional) Indicates whether the secret should expire after being accessed.
  "duration": "1h" // Duration before the secret expires.
}
Response
{
  "url": "http://host/shared/{id}?token={token}"
}
2. GET /shared/{id}

Used to access a shared secret.

Query Params
  • token: string - The token generated at the time of sharing.
Response
{
  "text": "plain text of the secret decrypted from the token"
}
How to Run
  • Clone the repository:
git clone https://github.com/omurilo/shareless.git
cd shareless
  • Install dependencies:
go mod tidy
  • Start the server:
make run # make watch // to run in watching mode
  • Run in docker-compose (redis included):
make docker-run
  • Access the application at http://localhost:3000.
Contributing

Contributions are welcome! Feel free to open issues or submit pull requests.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Feel free to make any adjustments as needed!
Inspiration

This project is inspired by https://passshare.me, a project of diogo.dev shared on bluesky.

Directories

Path Synopsis
api
cmd
shareless command
internal
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL