A lightweight cloud storage built with Go, Gin, and GORM.
- Go 1.23+
- MySQL
- Redis
- AWS S3
- Node.js 18+ (for frontend)
-
Setup Database
mysql -u root -p < setup_db.sql -
Install Dependencies
# Backend dependencies go mod tidy # Frontend dependencies cd frontend && npm install && cd ..
-
Configure Edit
configs/config.yamlor set environment variables:export AWSAccessKeyID=your-access-key export AWSSecretAccessKey=your-secret-key export S3Bucket=your-bucket-name export AWSRegion=us-east-1
-
Start All Services
./start.sh
This will start:
- Backend server (http://localhost:8888)
- Frontend dev server (http://localhost:3000)
- Stripe CLI webhook listener
-
Stop All Services
./stop.sh
Or press
Ctrl+Cin the terminal wherestart.shis running.
If you prefer to start services separately:
Backend:
go run ./cmd/cloud-dist/main.go -config configs/config.yamlFrontend:
cd frontend
npm run devStripe CLI (for webhook testing):
stripe listen --forward-to localhost:8888/api/storage/purchase/webhookVisit http://localhost:3000 to use the application.
- User authentication with JWT
- File upload/download with S3 storage
- File management (folders, rename, move, delete)
- File sharing and friend system
- Storage purchase with Stripe payment
- Backend: Go, Gin, GORM
- Frontend: React, JavaScript
- Storage: AWS S3
- Cache: Redis
- Payment: Stripe
MIT
