Files
EZ-Homelab/docs/ports-in-use.md
EZ-Homelab 5e7fe08652 feat: Complete Sablier lazy loading implementation
- Add Sablier middleware to all 32 services across stacks
- Update vaultwarden port from 80 to 8091 to avoid conflicts
- Add tdarr-server and unmanic services with lazy loading
- Optimize health checks (wget for some services, dozzle built-in)
- Update Traefik routers and service definitions
- Update port documentation

All services now support on-demand startup via Sablier middleware.
2026-01-24 20:20:11 -05:00

104 lines
6.1 KiB
Markdown

# Ports in Use
This document tracks all ports used by services in the EZ-Homelab. Update this document whenever services are added or ports are changed.
| Stack | Service | External Port | Internal Port | Protocol | Purpose |
|-------|---------|---------------|---------------|----------|---------|
| **Core** | [Traefik](../service-docs/traefik.md) | 80 | 80 | TCP | HTTP (redirects to HTTPS) |
| **Core** | [Traefik](../service-docs/traefik.md) | 443 | 443 | TCP | HTTPS |
| **Core** | [Traefik](../service-docs/traefik.md) | 8080 | 8080 | TCP | Dashboard (protected) |
| **Infrastructure** | [Dockge](../service-docs/dockge.md) | 5001 | 5001 | TCP | Web UI |
| **Infrastructure** | [Pi-hole](../service-docs/pihole.md) | 53 | 53 | TCP/UDP | DNS |
| **Infrastructure** | [Docker Proxy](../service-docs/docker-proxy.md) | 127.0.0.1:2375 | 2375 | TCP | Docker API proxy |
| **Home Assistant** | [ESPHome](../service-docs/esphome.md) | 6052 | 6052 | TCP | Web UI |
| **Home Assistant** | [TasmoAdmin](../service-docs/tasmoadmin.md) | 8084 | 80 | TCP | Web UI |
| **Home Assistant** | [MotionEye](../service-docs/motioneye.md) | 8765 | 8765 | TCP | Web UI |
| **Home Assistant** | [Node-RED](../service-docs/nodered.md) | 1880 | 1880 | TCP | Web UI |
| **Home Assistant** | [Mosquitto](../service-docs/mosquitto.md) | 1883 | 1883 | TCP | MQTT |
| **Home Assistant** | [Mosquitto](../service-docs/mosquitto.md) | 9001 | 9001 | TCP | MQTT Websockets |
| **Media** | [Jellyfin](../service-docs/jellyfin.md) | 8096 | 8096 | TCP | Web UI |
| **Media** | [Calibre-Web](../service-docs/calibre-web.md) | 8083 | 8083 | TCP | Web UI |
| **Media Management** | [Sonarr](../service-docs/sonarr.md) | 8989 | 8989 | TCP | Web UI |
| **Media Management** | [Radarr](../service-docs/radarr.md) | 7878 | 7878 | TCP | Web UI |
| **Media Management** | [Prowlarr](../service-docs/prowlarr.md) | 9696 | 9696 | TCP | Web UI |
| **Media Management** | [Readarr](../service-docs/readarr.md) | 8787 | 8787 | TCP | Web UI |
| **Media Management** | [Lidarr](../service-docs/lidarr.md) | 8686 | 8686 | TCP | Web UI |
| **Media Management** | [Lazylibrarian](../service-docs/lazylibrarian.md) | 5299 | 5299 | TCP | Web UI |
| **Media Management** | [Mylar3](../service-docs/mylar3.md) | 8090 | 8090 | TCP | Web UI |
| **Media Management** | [Jellyseerr](../service-docs/jellyseerr.md) | 5055 | 5055 | TCP | Web UI |
| **Media Management** | [Unmanic](../service-docs/unmanic.md) | 8888 | 8888 | TCP | Web UI |
| **Media Management** | [Tdarr Server](../service-docs/tdarr.md) | 8266 | 8266 | TCP | Web UI |
| **Media Management** | [Tdarr Node](../service-docs/tdarr.md) | 8267 | 8267 | TCP | Worker port |
| **Media Management** | [Flaresolverr](../service-docs/flaresolverr.md) | 8191 | 8191 | TCP | HTTP proxy |
| **Monitoring** | [Prometheus](../service-docs/prometheus.md) | 9090 | 9090 | TCP | Web UI/Metrics |
| **Monitoring** | [Grafana](../service-docs/grafana.md) | 3000 | 3000 | TCP | Web UI |
| **Monitoring** | [cAdvisor](../service-docs/cadvisor.md) | 8082 | 8080 | TCP | Web UI |
| **Monitoring** | [Uptime Kuma](../service-docs/uptime-kuma.md) | 3001 | 3001 | TCP | Web UI |
| **Monitoring** | [Loki](../service-docs/loki.md) | 3100 | 3100 | TCP | Web UI |
| **Monitoring** | [Node Exporter](../service-docs/node-exporter.md) | 9100 | 9100 | TCP | Metrics |
| **Utilities** | [Backrest](../service-docs/backrest.md) | 9898 | 9898 | TCP | Web UI |
| **Utilities** | [Duplicati](../service-docs/duplicati.md) | 8200 | 8200 | TCP | Web UI |
| **Utilities** | [Form.io](../service-docs/formio.md) | 3002 | 3001 | TCP | Web UI |
| **Utilities** | [Vaultwarden](../service-docs/vaultwarden.md) | 8091 | 80 | TCP | Web UI |
| **VPN** | [Gluetun](../service-docs/gluetun.md) | 8888 | 8888 | TCP | HTTP proxy |
| **VPN** | [Gluetun](../service-docs/gluetun.md) | 8388 | 8388 | TCP/UDP | Shadowsocks |
| **VPN** | [Gluetun](../service-docs/gluetun.md) | 8081 | 8080 | TCP | qBittorrent Web UI |
| **VPN** | [Gluetun](../service-docs/gluetun.md) | 6881 | 6881 | TCP/UDP | qBittorrent |
| **VPN** | [qBittorrent](../service-docs/qbittorrent.md) | N/A | N/A | N/A | Routed through Gluetun |
| **Productivity** | [DokuWiki](../service-docs/dokuwiki.md) | 8087 | 80 | TCP | Web UI |
| **Productivity** | [Nextcloud](../service-docs/nextcloud.md) | 8089 | 80 | TCP | Web UI |
| **Productivity** | [Gitea](../service-docs/gitea.md) | 3010 | 3000 | TCP | Web UI |
| **Productivity** | [MinIO](../service-docs/minio.md) | 9000 | 9000 | TCP | API |
| **Productivity** | [MinIO](../service-docs/minio.md) | 9001 | 9001 | TCP | Web UI |
| **Productivity** | [MediaWiki](../service-docs/mediawiki.md) | 8086 | 80 | TCP | Web UI |
## Port Range Reference
| Range | Usage |
|-------|-------|
| 1-1023 | System ports (well-known) |
| 1024-49151 | Registered ports |
| 49152-65535 | Dynamic/private ports |
## Common Port Conflicts
- **Port 80**: Used by Traefik for HTTP (conflicts with internal services only)
- **Port 3000**: Used by Grafana
- **Port 3001**: Used by Uptime Kuma
- **Port 8888**: Used by Gluetun HTTP proxy
- **Port 53**: Used by Pi-hole for DNS
- **Port 2375**: Used by Docker Proxy (localhost only)
- **Port 5001**: Used by Dockge
- **Port 8080**: Used by Traefik dashboard
- **Port 9090**: Used by Prometheus
## Adding New Services
When adding new services:
1. Check this document for available ports
2. Choose ports that don't conflict with existing services
3. Update this document with new port mappings
4. Consider using Traefik labels instead of direct port exposure for web services
## Port Planning Guidelines
- **Web services**: Use Traefik labels (no direct ports needed)
- **Databases**: Use internal networking only (no external ports)
- **VPN services**: Route through Gluetun for security
- **Development tools**: Consider localhost-only binding (127.0.0.1:port)
- **Monitoring**: Use high-numbered ports (9000+ range)
## Updating This Document
This document should be updated whenever:
- New services are added to any stack
- Existing services change their port mappings
- Services are removed from stacks
- Network configurations change
Run this command to find all port mappings in compose files:
```bash
grep -r "ports:" docker-compose/ | grep -v "^#" | sort
```