A Docker-based file server with web interface and SMB network sharing.
- File Browser: Web-based file management with upload/download
- SMB/Samba: Network file sharing for local access
- Ngrok Tunnel: Secure internet access to your files
- Docker
- Docker Compose
- Python 3 (for additional tools)
- Clone this Repo:
git clone https://github.com/deep-zspace/fileserver.git
cd fileserver- Run setup script:
sudo chmod 777 ./setup.sh
./setup.shThis will prompt you for:
- Data directory path
- Ngrok auth token
- Ngrok domain (optional)
- SMB username and password
- Start services:
docker compose up -d- Create File Browser user:
docker compose stop filebrowser
docker compose run --rm filebrowser users update <username> <password> --perm.admin
docker compose start filebrowserReplace <username> and <password> with your credentials.
- To add systemd service:
sudo chmod 777 ./install-systemd.sh
./install-systemd.sh- Local: http://localhost:8081
- Internet: https://your-ngrok-domain.ngrok-free.app
- Login: Use credentials created in step 4
- Address:
smb://your-server-ip/movies - Login: Use SMB credentials from setup
fileserver/
├── config/
│ ├── filebrowser.db # File Browser database
│ └── filebrowser.json # File Browser config
├── docker-compose.yml # Docker services configuration
├── setup.sh # Initial setup script
├── install-systemd.sh # Systemd service installer
├── requirements.txt # Python dependencies
├── .env # Environment variables (created by setup.sh)
└── README.md # This file
docker compose up -ddocker compose downdocker compose logs -fdocker compose restart <service-name> Status: sudo systemctl status fileserver
Start: sudo systemctl start fileserver
Stop: sudo systemctl stop fileserver
Restart: sudo systemctl restart fileserver
Logs: docker compose logs -fdocker compose stop filebrowser
docker compose run --rm filebrowser users update <username> --password <new-password>
docker compose start filebrowserdocker compose ps