Categorygithub.com/omurilo/shareless
repository
0.0.0-20250208171910-81baa111dfa8
Repository: https://github.com/omurilo/shareless.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# 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.