A simple, self-hosted file sharing web application built with Go. Upload, view, and manage your files through a modern web interface or via FTP.
- 📂 File Management: Upload and download files easily.
- 🖼️ Image Thumbnails: Automatic thumbnail generation for uploaded images.
- 🖱️ Drag & Drop: Modern upload interface with drag-and-drop support.
- 🔌 FTP Support: Built-in FTP server for alternative file access.
- 🐳 Docker Ready: Easy deployment with Docker and Docker Compose.
- Docker and Docker Compose
- Or Go 1.25+ for local development
-
Clone the repository:
git clone https://github.com/ionutale/home-cloud.git cd home-cloud -
Start the application:
docker-compose up -d --build
-
Access the application:
- Web Interface: http://localhost:8080
- FTP Server:
localhost:2121
-
Install dependencies:
go mod tidy
-
Run the application:
go run main.go
Open your browser to http://localhost:8080. You can drag and drop files into the upload area or click to select files. Uploaded images will automatically display thumbnails.
You can connect to the file server using any FTP client (like FileZilla) or the command line.
- Host:
localhost - Port:
2121 - Username:
admin - Password:
admin
home-cloud/
├── main.go # Go backend (HTTP & FTP servers)
├── Dockerfile # Docker build configuration
├── docker-compose.yml # Docker Compose configuration
├── public/ # Frontend assets
│ ├── index.html
│ ├── style.css
│ └── app.js
├── uploads/ # Directory for stored files
└── thumbnails/ # Directory for generated thumbnails
- Backend: Go (Golang)
- Frontend: HTML5, CSS3, JavaScript
- FTP Server: goftp.io/server
- Image Processing: disintegration/imaging
This project is open source and available under the MIT License.