A self-hosted file storage server.
The primary goal of this project is to provide an easy-to-use solution for managing personal storage. It allows users to upload, download and secure their files through web interface.
- Providing basic file and folder operations including create, rename and delete
- Make your storage become a free cloud
- Protect your files with user authentication
- Easy to setup and configure
Note: Storage uses SQLite3 for database
Clone the reposity to your storage, change JWT_SECRET and path in file compose.yaml:
backend:
#...
environment:
JWT_SECRET: "change to your secret"
volumes:
- /path/to/your/db:/data/data.db # Database
- /path/to/your/storage:/storage # Directory you want to mount for storage
#...Then run:
docker compose up -dPrerequisites:
- Go (version 1.25.1)
- SQLite database
- Nodejs and pnpm
Clone the repository and install dependencies:
git clone https://github.com/SteGG200/storage.git
cd storage
go mod downloadSet environment variables for both frontend and backend. List of env is all inside file .env.example and frontend/.env.example
Build the project:
./scripts/production_build.shRun frontend:
cd frontend/
NODE_ENV=production pnpm startFrontend will start on port 8080.
Run backend:
./build/storage -database /path/to/your/db -storage /path/to/your/storageBackend will start on port 3000 by default.