Self-hosted object storage
that just works
An S3-compatible storage gateway with enterprise SSO, IAM-style policies, and support for multiple backends. Your data, your infrastructure.
Deploy with Docker Compose in minutes
Everything you need for file storage
S3 Compatible
Full AWS SDK compatibility. Use existing tools like aws-cli, s3fs, or any S3 client. Mount buckets as local drives.
Multi-Backend
Store files locally, on AWS S3, MinIO, or DigitalOcean Spaces. Different buckets can use different backends.
IAM Policies
Fine-grained access control with familiar AWS-style policy syntax. Deny-by-default with explicit allow rules.
Enterprise SSO
Google OAuth and HashiCorp Vault OIDC with PKCE. Automatic user provisioning and policy sync from groups.
Security First
TLS everywhere, bcrypt password hashing, JWT authentication, and access keys with AWS Signature V4.
Modern Web UI
Dual-pane file browser with drag-and-drop, search filters, context menus, and real-time upload progress.
Built for production
Go Backend
High-performance API server with Gin framework. Handles concurrent uploads and streaming efficiently.
React Frontend
TypeScript, Vite, and Tailwind CSS. Fast builds and a responsive interface that works everywhere.
PostgreSQL
Reliable data storage with SSL connections. GORM handles migrations automatically.
Enterprise SSO
Google OAuth and HashiCorp Vault OIDC with PKCE. Automatic user provisioning from identity providers.
IAM Policies
AWS-style policy documents for fine-grained access control. Deny-by-default with explicit allow rules.
Docker Native
Compose-based deployment with isolated networking. Production-ready out of the box.
Who it's for
bkt is designed for teams that need control over their file storage without vendor lock-in. Run it on your own infrastructure with your own authentication.
- Teams needing a unified S3 interface across local and cloud storage
- Organizations with data residency or compliance requirements
- Hybrid cloud environments spanning multiple providers
- Self-hosted infrastructure with existing identity providers
Quick Start
Get up and running with local storage in under 5 minutes. Requires Docker, Docker Compose, and Python 3.
Clone the repository
git clone https://github.com/seahop/bkt.git
cd bkt
Run the setup script
python3 setup.py
Generates SSL certificates, admin credentials, and .env file. Save the admin password displayed in the output.
Start the services
docker compose up --build -d
First run builds the containers. Access the UI at https://localhost:5173
The application uses self-signed certificates. Your browser will show a warning - accept it to continue, or import the CA certificate from certs/ca/ca.crt.
Advanced Configuration
Configure SSO, external storage backends, and production settings by editing the .env file.
S3 Storage Backend
Store objects on AWS S3, MinIO, or any S3-compatible service instead of local disk.
STORAGE_BACKEND=s3
S3_ENDPOINT=s3.amazonaws.com
S3_REGION=us-east-1
S3_ACCESS_KEY_ID=your-key
S3_SECRET_ACCESS_KEY=your-secret
Google SSO
Enable browser-based single sign-on with Google OAuth. Users are auto-provisioned on first login.
GOOGLE_OIDC_ENABLED=true
GOOGLE_CLIENT_ID=your-client-id
GOOGLE_CLIENT_SECRET=your-secret
GOOGLE_REDIRECT_URL=https://your-domain/api/auth/google/callback
FRONTEND_URL=https://your-domain
Vault OIDC
Enterprise SSO with HashiCorp Vault using PKCE. Supports automatic policy sync from Vault groups.
VAULT_OIDC_ENABLED=true
VAULT_ADDR=https://vault.example.com
VAULT_OIDC_CLIENT_ID=your-client-id
VAULT_OIDC_PROVIDER_URL=https://vault.example.com/v1/identity/oidc/provider/default
VAULT_OIDC_REDIRECT_URL=https://your-domain/api/auth/vault/callback
FRONTEND_URL=https://your-domain
Production Settings
Key settings to review before deploying to production.
# Disable self-registration
ALLOW_REGISTRATION=false
# Use real SSL certificates
# Replace certs/ with CA-signed certs
# Set your domain for CORS
CORS_ALLOWED_ORIGINS=https://your-domain
See the full documentation for detailed guides on SSO setup, S3 backend configuration, and production deployment.
Open source and self-hosted
No cloud dependencies, no usage fees. Your storage, your rules.