https://github.com/lunastev/mirror-docker
A ready-to-deploy Linux mirror server powered by Docker and rsync.
https://github.com/lunastev/mirror-docker
automation cron devops docker linux linux-mirror mirror rsync
Last synced: 5 months ago
JSON representation
A ready-to-deploy Linux mirror server powered by Docker and rsync.
- Host: GitHub
- URL: https://github.com/lunastev/mirror-docker
- Owner: LunaStev
- License: mit
- Created: 2025-07-04T14:45:56.000Z (7 months ago)
- Default Branch: master
- Last Pushed: 2025-07-12T02:27:40.000Z (7 months ago)
- Last Synced: 2025-08-21T08:35:02.563Z (5 months ago)
- Topics: automation, cron, devops, docker, linux, linux-mirror, mirror, rsync
- Language: Dockerfile
- Homepage: https://mirror.lunastev.org
- Size: 4.88 KB
- Stars: 31
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# mirror-docker
A simple and extensible Linux mirror server powered by Docker, rsync, and nginx.
This project allows you to deploy your own Arch Linux and Ubuntu mirror servers using Docker. It automatically syncs with official upstream mirrors using `rsync`, and serves the contents via `nginx`. All components are containerized, cron-scheduled, and easy to manage or extend.
---
## ✅ Features
- 🔄 Automatic synchronization via `rsync` with upstream mirrors
- 🕒 Periodic syncing handled by `cron`
- 📁 Directory listing via `nginx` with autoindex enabled
- 🐳 Dockerized: Easy to deploy, rebuild, or expand
- ⚙️ Supports Arch Linux and Ubuntu (extensible to others)
- 🖥️ Ready for reverse proxy and domain-based access
---
## 📦 Requirements
- Docker
- Docker Compose
- Basic shell or CMD environment
---
## 🚀 Getting Started
### 1. Clone the repository
```bash
git clone https://github.com/LunaStev/mirror-docker.git
cd mirror-docker
```
### 2. Run
On Linux/macOS:
```bash
./docstart.sh
```
On Windows (CMD):
```cmd
docstart.bat
```
This will build and run both Arch and Ubuntu mirror containers in the background.
---
## 🌐 Access URLs
- Arch mirror: http://localhost:8081
- Ubuntu mirror: http://localhost:8082
---
## ✍️ Customizing
- Change `REMOTE` in `sync.sh` to select your preferred upstream rsync mirror
- Modify nginx settings via `default.conf` or `nginx.conf`
- Add TLS or domain routing by configuring a reverse proxy on the host machine
---
## 📄 License
[MIT License](LICENSE)