Skip to content

kakra/ferry

Repository files navigation

ferry ⛴️

ferry is a self-hosted, single-binary file-sharing solution designed for simple and secure temporary file exchange. It features Content-Addressable Storage (CAS) for automatic deduplication and a modern web interface.

ferry Administration Teaser

✨ Key Features

  • 🚀 Single Binary: Go + SQLite. Zero external dependencies like Redis or S3.
  • 📦 Deduplication: Automatic CAS-based deduplication saves disk space transparently.
  • 📥 Resumable Uploads: Powered by the TUS protocol for reliable transfers.
  • 🧪 Dynamic UI: Smooth, reload-free experience powered by HTMX and TUS.
  • 🛡️ Secure by Design: Argon2id password protection, session hardening, and rate limiting.
  • 🧹 Automated Maintenance: Built-in garbage collector (Mark-and-Sweep) for old shares and temporary files.
  • 📱 Responsive UI: Clean, mobile-friendly dashboard and guest views.

🖼️ UI Gallery

Admin Dashboard System Status & Logs
Admin Dashboard System Status
Guest View (Download/Upload)
Guest View

🚀 Quick Start (Docker)

  1. Prepare configuration:
    cp config.example.yaml config.yaml
    docker compose run --rm ferry ./ferry init-config
    # Then adjust config.yaml, especially server.public_url.
  2. Launch with Docker Compose:
    docker compose up -d --build
  3. Setup: Access your instance and follow the one-time /setup flow to create your admin account.

📖 Documentation

🛠️ Development & Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

# Run tests
go test ./...
# Build locally
go build ./cmd/ferry

🔐 Security & Disclaimer

Ferry is a temporary file transfer tool, not a permanent file vault. Always run Ferry behind an HTTPS reverse proxy for production use. See OPERATIONS.md for security best practices.

Please do not report critical security vulnerabilities through the public issue tracker. Send critical security reports to kai@kaishome.de; see SECURITY.md.


Powered by Go, SQLite, and ⛴️

About

Self-hosted, single-binary file sharing with automatic deduplication, resumable TUS uploads, and a modern HTMX interface. ⛴

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors