2.8 KiB
2.8 KiB
Seedbox Server
Deploys a seedbox with Transmission for maintaining Linux ISO mirrors.
Quick Start
NFS_SERVER=nas.tailnet.ts.net curl -fsSL https://gitea.arnodo.fr/Damien/infra-scripts/raw/branch/main/seedbox/install.sh | bash
Components
- Transmission: BitTorrent client with WebUI
- NFS v4.1: Mount to NAS for ISO storage
- Tailscale: Private access to WebUI
- Docker: Container runtime
- UFW: Firewall (only peer port exposed publicly)
- fail2ban + unattended-upgrades: Basic hardening
Environment Variables
| Variable | Default | Description |
|---|---|---|
NFS_SERVER |
required | NAS hostname/IP (Tailscale) |
NFS_SHARE |
/volume1/iso |
NFS export path on NAS |
NFS_MOUNT |
/mnt/iso |
Local mount point |
SEEDBOX_HOSTNAME |
seedbox |
Server hostname |
PEER_PORT |
51413 |
BitTorrent peer port |
TRANSMISSION_USER |
admin |
WebUI username |
TRANSMISSION_PASS |
auto-generated | WebUI password |
TZ |
Europe/Paris |
Timezone |
Example with custom settings:
NFS_SERVER=nas.tailnet.ts.net \
NFS_SHARE=/volume1/linux-iso \
TRANSMISSION_USER=damien \
TRANSMISSION_PASS=mysecurepass \
curl -fsSL https://gitea.arnodo.fr/Damien/infra-scripts/raw/branch/main/seedbox/install.sh | bash
Network Access
| Service | Public | Tailscale |
|---|---|---|
| BitTorrent peers | ✅ Port 51413 | ✅ |
| Transmission WebUI | ❌ | ✅ Port 9091 |
| SSH | ❌ | ✅ Tailscale SSH |
| NFS (to NAS) | ❌ | ✅ |
What it does
- Sets hostname
- Installs base packages (vim, fail2ban, unattended-upgrades, nfs-common)
- Installs and connects Tailscale
- Installs Docker
- Configures NFS mount to NAS (via Tailscale)
- Deploys Transmission container
- Configures UFW (peer port public, WebUI via Tailscale only)
Directory Structure
Organize your downloads by distribution:
/mnt/iso/
├── debian/
│ ├── debian-12.7.0-amd64-netinst.iso
│ └── debian-11.11.0-amd64-netinst.iso
├── ubuntu/
│ ├── ubuntu-24.04.1-live-server-amd64.iso
│ └── ubuntu-22.04.5-live-server-amd64.iso
├── rhel/
│ ├── rocky-9.4-x86_64-minimal.iso
│ └── almalinux-9.4-x86_64-minimal.iso
└── proxmox/
└── proxmox-ve_8.2-1.iso
NAS Configuration (Synology)
Ensure your NAS exports the share via NFS v4.1:
- Control Panel → Shared Folder → Edit → NFS Permissions
- Add rule:
- Hostname/IP: Tailscale IP of seedbox (e.g.,
100.x.x.x) - Privilege: Read/Write
- Squash: No mapping
- Security: sys
- Enable NFSv4.1: ✅
- Hostname/IP: Tailscale IP of seedbox (e.g.,
Post-install
# Check NFS mount
df -h /mnt/iso
# View Transmission logs
cd ~/transmission && docker compose logs -f
# Restart Transmission
cd ~/transmission && docker compose restart