Sign inSign up

petrakisg/gopherdrop

By petrakisg

•Updated about 1 year ago

GopherDrop is a secure, self-hostable REST API and UI for sharing encrypted one-time secrets

Image
Security
Developer tools
Web servers
0

616

petrakisg/gopherdrop repository overview

⁠🛠️ GopherDrop – Secure One-Time Secret Sharing 🏁

Docker Image Version Docker Pulls GitHub branch check runs Coveralls GitHub go.mod Go version

⁠Demo: https://gopherdrop.yup.gr⁠

GopherDrop is a secure, self-hostable REST API and UI for sharing encrypted one-time secrets and files, inspired by Bitwarden's Send feature. Built with Go, Vue.js, and Vuetify, GopherDrop is designed for simplicity, security, and ease of deployment.


⁠📋 Table of Contents

  1. Features⁠
  2. Installation⁠
  3. Build and Run⁠
  4. Configuration⁠
  5. Endpoints⁠
  6. Docker Deployment⁠
  7. Contributing⁠
  8. License⁠
  9. Community and Support⁠

⁠🌟 Features

  • Send Text or Files: Share sensitive information securely.
  • Password Protection: Encrypt your secrets with a password.
  • One-Time Retrieval: Automatically delete secrets after a single access.
  • Expiration Settings: Define how long a secret remains available.
  • Responsive UI: Built with Vue.js and Vuetify for a modern user experience.
  • Dockerized Deployment: Simple setup with Docker and Docker Compose.
  • Production and Debug Modes: Easily switch between production and debug builds.

⁠🐳 Docker Deployment

⁠Production docker-compose.yml

docker-compose.prod.sample.yaml


⁠📥 Installation

⁠Prerequisites
⁠Clone the Repository
git clone https://github.com/kek-Sec/gopherdrop.git
cd gopherdrop

⁠🛠️ Build and Run

⁠Local Setup

To build and run GopherDrop in production mode:

make build      # Build the Docker images
make up         # Start the backend, frontend, and database services
⁠Debug Setup

To build and run GopherDrop in debug mode:

make build-debug   # Build the Docker images with debug mode enabled
make up            # Start the backend, frontend, and database services in debug mode
⁠Stopping Services
make down
⁠Running Tests
make test

⁠⚙️ Configuration

⁠Using .env File

Create a .env file in the project root to securely store your secrets:

DB_HOST=db
DB_USER=user
DB_PASSWORD=pass
DB_NAME=gopherdropdb
DB_SSLMODE=disable
SECRET_KEY=supersecretkeysupersecretkey32
LISTEN_ADDR=:8080
STORAGE_PATH=/app/storage
MAX_FILE_SIZE=10485760
⁠Environment Variables
VariableDescriptionDefault Value
DB_HOSTDatabase hostdb
DB_USERDatabase usernameuser
DB_PASSWORDDatabase passwordpass
DB_NAMEDatabase namegopherdropdb
SECRET_KEYSecret key for encryptionsupersecretkeysupersecretkey32
LISTEN_ADDRAPI listen address:8080
STORAGE_PATHPath for storing uploaded files/app/storage
MAX_FILE_SIZEMaximum file size in bytes10485760 (10 MB)

⁠🖥️ Endpoints

⁠API Endpoints
MethodEndpointDescription
POST/sendCreate a new send (text or file)
GET/send/:idRetrieve a send by its hash
GET/send/:id/checkCheck if a send requires a password

⁠🤝 Contributing

  1. Fork the repository.
  2. Create a new branch: git checkout -b my-feature-branch
  3. Make your changes and add tests.
  4. Submit a pull request.

⁠📝 License

GopherDrop is licensed under the MIT License⁠.


⁠💬 Community and Support

Tag summary

Content type

Image

Digest

sha256:0edb1c4ce…

Size

34.2 MB

Last updated

about 1 year ago

docker pull petrakisg/gopherdrop:1.0.9