bindle Svelte Themes

Bindle

Bindle is a file sharing platform built with Go and Svelte.

Bindle

Bindle is a modern file sharing platform built with Go and Svelte. It provides a simple, secure way to upload and share files through a clean web interface.

Features

  • Fast and lightweight
  • Account-based file management
  • Support for multiple storage backends (Local filesystem & S3)
  • File preview support for images, videos, audio, and text files
  • Responsive design
  • Drag & drop file uploads
  • Storage quota management
  • Admin panel for file and user management

Tech Stack

  • Frontend: Svelte 5, TailwindCSS, Carbon Components
  • Backend: Go, Fiber
  • Storage: Local filesystem or S3-compatible storage
  • Database: SQLite

Getting Started

  1. Clone the repository:

    git clone https://github.com/nuuner/bindle.git
    cd bindle
    
  2. Create a .env file in the bindle-server directory:

# local filesystem
FILESYSTEM_PATH=./files

UPLOAD_LIMIT_MB_PER_DAY=1000

# Admin password for /admin panel (optional)
ADMIN_PASSWORD=your_secure_password_here

or

# S3
S3_BUCKET=my-bucket
S3_KEY_ID=001a2b3c4d5e6f7g8h9i0j
S3_APP_KEY=K001AbCdEfGhIjKlMnOpQrStUvWxYz
S3_REGION=us-east-1
S3_ENDPOINT=https://s3.us-east-1.amazonaws.com

UPLOAD_LIMIT_MB_PER_DAY=1000

# Admin password for /admin panel (optional)
ADMIN_PASSWORD=your_secure_password_here
  1. Also create a .env file in the bindle-client directory:
[email protected]
  1. Start the development environment:
    docker compose up --build
    

The application will be available at http://localhost:3001.

Admin Panel

Bindle includes an admin panel for managing users and files. To enable it:

  1. Add an admin password to your .env file in bindle-server:
ADMIN_PASSWORD=your_secure_password_here
  1. Restart the server and navigate to /admin

  2. Enter your admin password when prompted

Admin Features

  • View all users with statistics (file count, storage usage, last login, IP addresses)
  • View all files in the system with owner information
  • Delete individual files
  • Delete all files for a specific user
  • Delete all files in the system (nuclear option)

Development

Frontend

cd bindle-client
npm install
npm run dev

Backend

cd bindle-server
go run cmd/server/main.go

Deployment

The project includes a Docker configuration for easy deployment. Build and run using:

docker compose up --build -d

License

GPLv3

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Top categories

Loading Svelte Themes