Fix port conflicts and standardize service configurations
- Resolve port conflicts: TasmoAdmin (8084), Form.io (3002), Gitea (3010) - Add missing Authelia SSO and Sablier lazy loading to utilities stack - Standardize Form.io labels to match TRAEFIK CONFIGURATION guidelines - Reorganize ports-in-use.md with stack-based table and proper column order - Remove Dokuwiki deployment from ez-homelab.sh (already in productivity stack) - Update service restart policies for lazy loading compatibility
This commit is contained in:
@@ -26,7 +26,7 @@ services:
|
|||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
ports:
|
ports:
|
||||||
- "3000:3000"
|
- "3003:3000"
|
||||||
volumes:
|
volumes:
|
||||||
- ./homepage:/app/config
|
- ./homepage:/app/config
|
||||||
- /var/run/docker.sock:/var/run/docker.sock # For Docker integration do not mount RO
|
- /var/run/docker.sock:/var/run/docker.sock # For Docker integration do not mount RO
|
||||||
@@ -50,7 +50,7 @@ services:
|
|||||||
- "traefik.http.routers.homepage.entrypoints=websecure"
|
- "traefik.http.routers.homepage.entrypoints=websecure"
|
||||||
- "traefik.http.routers.homepage.tls=true"
|
- "traefik.http.routers.homepage.tls=true"
|
||||||
- "traefik.http.routers.homepage.middlewares=authelia@docker"
|
- "traefik.http.routers.homepage.middlewares=authelia@docker"
|
||||||
- "traefik.http.services.homepage.loadbalancer.server.port=3000"
|
- "traefik.http.services.homepage.loadbalancer.server.port=3003"
|
||||||
# Sablier lazy loading (disabled by default - uncomment to enable)
|
# Sablier lazy loading (disabled by default - uncomment to enable)
|
||||||
# - "sablier.enable=true"
|
# - "sablier.enable=true"
|
||||||
# - "sablier.group=${SERVER_HOSTNAME}-homarr"
|
# - "sablier.group=${SERVER_HOSTNAME}-homarr"
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ services:
|
|||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
ports:
|
ports:
|
||||||
- "80:80"
|
- "8084:80"
|
||||||
volumes:
|
volumes:
|
||||||
- /opt/stacks/tasmoadmin/data:/data
|
- /opt/stacks/tasmoadmin/data:/data
|
||||||
environment:
|
environment:
|
||||||
@@ -111,7 +111,7 @@ services:
|
|||||||
- "traefik.http.routers.tasmoadmin.entrypoints=websecure"
|
- "traefik.http.routers.tasmoadmin.entrypoints=websecure"
|
||||||
- "traefik.http.routers.tasmoadmin.tls.certresolver=letsencrypt"
|
- "traefik.http.routers.tasmoadmin.tls.certresolver=letsencrypt"
|
||||||
- "traefik.http.routers.tasmoadmin.middlewares=authelia@docker"
|
- "traefik.http.routers.tasmoadmin.middlewares=authelia@docker"
|
||||||
- "traefik.http.services.tasmoadmin.loadbalancer.server.port=80"
|
- "traefik.http.services.tasmoadmin.loadbalancer.server.port=8084"
|
||||||
|
|
||||||
# MotionEye - Video surveillance
|
# MotionEye - Video surveillance
|
||||||
# Access at: https://motioneye.${DOMAIN}
|
# Access at: https://motioneye.${DOMAIN}
|
||||||
|
|||||||
@@ -233,7 +233,7 @@ services:
|
|||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
ports:
|
ports:
|
||||||
- "8443:8443"
|
- "8079:8443"
|
||||||
volumes:
|
volumes:
|
||||||
- ./code-server/config:/config
|
- ./code-server/config:/config
|
||||||
- /opt/stacks:/opt/stacks # Access to all stacks
|
- /opt/stacks:/opt/stacks # Access to all stacks
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ services:
|
|||||||
container_name: sonarr
|
container_name: sonarr
|
||||||
restart: no
|
restart: no
|
||||||
networks:
|
networks:
|
||||||
- homelab-network
|
|
||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
ports:
|
ports:
|
||||||
@@ -66,7 +65,6 @@ services:
|
|||||||
container_name: radarr
|
container_name: radarr
|
||||||
restart: no
|
restart: no
|
||||||
networks:
|
networks:
|
||||||
- homelab-network
|
|
||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
ports:
|
ports:
|
||||||
@@ -105,7 +103,6 @@ services:
|
|||||||
container_name: prowlarr
|
container_name: prowlarr
|
||||||
restart: no
|
restart: no
|
||||||
networks:
|
networks:
|
||||||
- homelab-network
|
|
||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
ports:
|
ports:
|
||||||
@@ -142,7 +139,6 @@ services:
|
|||||||
container_name: readarr
|
container_name: readarr
|
||||||
restart: no
|
restart: no
|
||||||
networks:
|
networks:
|
||||||
- homelab-network
|
|
||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
ports:
|
ports:
|
||||||
@@ -181,7 +177,6 @@ services:
|
|||||||
container_name: lidarr
|
container_name: lidarr
|
||||||
restart: no
|
restart: no
|
||||||
networks:
|
networks:
|
||||||
- homelab-network
|
|
||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
ports:
|
ports:
|
||||||
@@ -220,7 +215,6 @@ services:
|
|||||||
container_name: lazylibrarian
|
container_name: lazylibrarian
|
||||||
restart: no
|
restart: no
|
||||||
networks:
|
networks:
|
||||||
- homelab-network
|
|
||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
ports:
|
ports:
|
||||||
@@ -260,7 +254,6 @@ services:
|
|||||||
container_name: mylar3
|
container_name: mylar3
|
||||||
restart: no
|
restart: no
|
||||||
networks:
|
networks:
|
||||||
- homelab-network
|
|
||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
ports:
|
ports:
|
||||||
@@ -299,7 +292,6 @@ services:
|
|||||||
container_name: jellyseerr
|
container_name: jellyseerr
|
||||||
restart: no
|
restart: no
|
||||||
networks:
|
networks:
|
||||||
- homelab-network
|
|
||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
ports:
|
ports:
|
||||||
@@ -349,7 +341,6 @@ services:
|
|||||||
container_name: tdarr-server
|
container_name: tdarr-server
|
||||||
restart: no
|
restart: no
|
||||||
networks:
|
networks:
|
||||||
- homelab-network
|
|
||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
ports:
|
ports:
|
||||||
@@ -419,11 +410,10 @@ services:
|
|||||||
container_name: unmanic
|
container_name: unmanic
|
||||||
restart: no
|
restart: no
|
||||||
networks:
|
networks:
|
||||||
- homelab-network
|
|
||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
ports:
|
ports:
|
||||||
- "8888:8888"
|
- "8889:8888"
|
||||||
volumes:
|
volumes:
|
||||||
- ./unmanic/config:/config
|
- ./unmanic/config:/config
|
||||||
- /mnt/media:/library
|
- /mnt/media:/library
|
||||||
@@ -447,10 +437,11 @@ services:
|
|||||||
- "traefik.http.routers.unmanic.entrypoints=websecure"
|
- "traefik.http.routers.unmanic.entrypoints=websecure"
|
||||||
- "traefik.http.routers.unmanic.tls.certresolver=letsencrypt"
|
- "traefik.http.routers.unmanic.tls.certresolver=letsencrypt"
|
||||||
- "traefik.http.routers.unmanic.middlewares=authelia@docker"
|
- "traefik.http.routers.unmanic.middlewares=authelia@docker"
|
||||||
- "traefik.http.services.unmanic.loadbalancer.server.port=8888"
|
- "traefik.http.services.unmanic.loadbalancer.server.port=8889"
|
||||||
- "sablier.enable=true"
|
- "sablier.enable=true"
|
||||||
- "sablier.group=${SERVER_HOSTNAME}-arr"
|
- "sablier.group=${SERVER_HOSTNAME}-arr"
|
||||||
- "sablier.start-on-demand=true"
|
- "sablier.start-on-demand=true"
|
||||||
|
|
||||||
x-dockge:
|
x-dockge:
|
||||||
urls:
|
urls:
|
||||||
- https://sonarr.${DOMAIN}
|
- https://sonarr.${DOMAIN}
|
||||||
@@ -473,6 +464,7 @@ x-dockge:
|
|||||||
- http://localhost:8265
|
- http://localhost:8265
|
||||||
- https://unmanic.${DOMAIN}
|
- https://unmanic.${DOMAIN}
|
||||||
- http://localhost:8888
|
- http://localhost:8888
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
homelab-network:
|
homelab-network:
|
||||||
external: true
|
external: true
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ services:
|
|||||||
container_name: jellyfin
|
container_name: jellyfin
|
||||||
restart: no
|
restart: no
|
||||||
networks:
|
networks:
|
||||||
- homelab-network
|
|
||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
ports:
|
ports:
|
||||||
@@ -91,7 +90,6 @@ services:
|
|||||||
container_name: calibre-web
|
container_name: calibre-web
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- homelab-network
|
|
||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -34,7 +34,6 @@ services:
|
|||||||
container_name: prometheus
|
container_name: prometheus
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- homelab-network
|
|
||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
ports:
|
ports:
|
||||||
@@ -83,7 +82,6 @@ services:
|
|||||||
container_name: grafana
|
container_name: grafana
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- homelab-network
|
|
||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
ports:
|
ports:
|
||||||
@@ -146,7 +144,6 @@ services:
|
|||||||
container_name: cadvisor
|
container_name: cadvisor
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- homelab-network
|
|
||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
ports:
|
ports:
|
||||||
@@ -193,7 +190,6 @@ services:
|
|||||||
container_name: uptime-kuma
|
container_name: uptime-kuma
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- homelab-network
|
|
||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
ports:
|
ports:
|
||||||
@@ -234,7 +230,6 @@ services:
|
|||||||
container_name: loki
|
container_name: loki
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- homelab-network
|
|
||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -59,14 +59,12 @@ services:
|
|||||||
- "sablier.enable=true"
|
- "sablier.enable=true"
|
||||||
- "sablier.group=${SERVER_HOSTNAME}-backrest"
|
- "sablier.group=${SERVER_HOSTNAME}-backrest"
|
||||||
- "sablier.start-on-demand=true"
|
- "sablier.start-on-demand=true"
|
||||||
- "x-dockge.url=https://backrest.${DOMAIN}"
|
|
||||||
- "x-dockge.url=https://backrest.${DOMAIN}"
|
|
||||||
# Duplicati - Backup solution
|
# Duplicati - Backup solution
|
||||||
# Access at: https://duplicati.${DOMAIN}
|
# Access at: https://duplicati.${DOMAIN}
|
||||||
duplicati:
|
duplicati:
|
||||||
image: lscr.io/linuxserver/duplicati:2.0.7
|
image: lscr.io/linuxserver/duplicati:2.0.7
|
||||||
container_name: duplicati
|
container_name: duplicati
|
||||||
restart: unless-stopped
|
restart: no
|
||||||
networks:
|
networks:
|
||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
@@ -95,18 +93,22 @@ services:
|
|||||||
- "traefik.http.routers.duplicati.middlewares=authelia@docker"
|
- "traefik.http.routers.duplicati.middlewares=authelia@docker"
|
||||||
# Service configuration
|
# Service configuration
|
||||||
- "traefik.http.services.duplicati.loadbalancer.server.port=8200"
|
- "traefik.http.services.duplicati.loadbalancer.server.port=8200"
|
||||||
|
# Sablier configuration
|
||||||
|
- "sablier.enable=true"
|
||||||
|
- "sablier.group=${SERVER_HOSTNAME}-duplicati"
|
||||||
|
- "sablier.start-on-demand=true"
|
||||||
# Form.io - Form builder
|
# Form.io - Form builder
|
||||||
# Uncomment and configure if formio/formio image becomes available
|
# Uncomment and configure if formio/formio image becomes available
|
||||||
formio:
|
formio:
|
||||||
image: calipseo/formio:latest
|
image: calipseo/formio:latest
|
||||||
container_name: formio
|
container_name: formio
|
||||||
restart: unless-stopped
|
restart: no
|
||||||
networks:
|
networks:
|
||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
- homelab-network
|
|
||||||
ports:
|
ports:
|
||||||
- "3001:3001"
|
- "3002:3001"
|
||||||
environment:
|
environment:
|
||||||
- MONGO=mongodb://formio-mongo:27017/formio
|
- MONGO=mongodb://formio-mongo:27017/formio
|
||||||
- JWT_SECRET=${FORMIO_JWT_SECRET}
|
- JWT_SECRET=${FORMIO_JWT_SECRET}
|
||||||
@@ -117,18 +119,22 @@ services:
|
|||||||
# TRAEFIK CONFIGURATION
|
# TRAEFIK CONFIGURATION
|
||||||
# ==========================================
|
# ==========================================
|
||||||
# Service metadata
|
# Service metadata
|
||||||
|
- "com.centurylinklabs.watchtower.enable=true"
|
||||||
- "homelab.category=utilities"
|
- "homelab.category=utilities"
|
||||||
- "homelab.description=Form builder platform"
|
- "homelab.description=Form builder platform"
|
||||||
# Traefik reverse proxy (comment/uncomment to disable/enable)
|
# Traefik labels
|
||||||
# If Traefik is on a remote server: these labels are NOT USED;
|
|
||||||
# configure external yml files in /traefik/dynamic folder instead.
|
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
|
# Router configuration
|
||||||
- "traefik.http.routers.formio.rule=Host(`forms.${DOMAIN}`)"
|
- "traefik.http.routers.formio.rule=Host(`forms.${DOMAIN}`)"
|
||||||
- "traefik.http.routers.formio.entrypoints=websecure"
|
- "traefik.http.routers.formio.entrypoints=websecure"
|
||||||
- "traefik.http.routers.formio.tls.certresolver=letsencrypt"
|
- "traefik.http.routers.formio.tls.certresolver=letsencrypt"
|
||||||
- "traefik.http.routers.formio.middlewares=authelia@docker"
|
- "traefik.http.routers.formio.middlewares=authelia@docker"
|
||||||
|
# Service configuration
|
||||||
- "traefik.http.services.formio.loadbalancer.server.port=3001"
|
- "traefik.http.services.formio.loadbalancer.server.port=3001"
|
||||||
|
# Sablier configuration
|
||||||
|
- "sablier.enable=true"
|
||||||
|
- "sablier.group=${SERVER_HOSTNAME}-formio"
|
||||||
|
- "sablier.start-on-demand=true"
|
||||||
formio-mongo:
|
formio-mongo:
|
||||||
image: mongo:4.4
|
image: mongo:4.4
|
||||||
container_name: formio-mongo
|
container_name: formio-mongo
|
||||||
@@ -145,7 +151,7 @@ services:
|
|||||||
vaultwarden:
|
vaultwarden:
|
||||||
image: vaultwarden/server:1.30.1
|
image: vaultwarden/server:1.30.1
|
||||||
container_name: vaultwarden
|
container_name: vaultwarden
|
||||||
restart: unless-stopped
|
restart: no
|
||||||
networks:
|
networks:
|
||||||
- homelab-network
|
- homelab-network
|
||||||
- traefik-network
|
- traefik-network
|
||||||
@@ -182,6 +188,10 @@ services:
|
|||||||
# SSO disabled for browser extension and mobile app compatibility
|
# SSO disabled for browser extension and mobile app compatibility
|
||||||
# - "traefik.http.routers.vaultwarden.middlewares=authelia@docker"
|
# - "traefik.http.routers.vaultwarden.middlewares=authelia@docker"
|
||||||
- "traefik.http.services.vaultwarden.loadbalancer.server.port=80"
|
- "traefik.http.services.vaultwarden.loadbalancer.server.port=80"
|
||||||
|
# Sablier configuration
|
||||||
|
- "sablier.enable=true"
|
||||||
|
- "sablier.group=${SERVER_HOSTNAME}-vaultwarden"
|
||||||
|
- "sablier.start-on-demand=true"
|
||||||
# Authelia Redis - Session storage for Authelia
|
# Authelia Redis - Session storage for Authelia
|
||||||
# No web UI - backend service
|
# No web UI - backend service
|
||||||
# authelia-redis:
|
# authelia-redis:
|
||||||
|
|||||||
@@ -1,45 +1,55 @@
|
|||||||
# Ports in Use
|
# Ports in Use
|
||||||
|
|
||||||
This document tracks all ports used by services in the AI-Homelab. Update this document whenever services are added or ports are changed.
|
This document tracks all ports used by services in the EZ-Homelab. Update this document whenever services are added or ports are changed.
|
||||||
|
|
||||||
## Core Stack ([core.yml](../docker-compose/core.yml))
|
| Stack | Service | External Port | Internal Port | Protocol | Purpose |
|
||||||
|
|-------|---------|---------------|---------------|----------|---------|
|
||||||
| Service | Port | Protocol | Purpose | Internal Port |
|
| **Core** | [Traefik](../service-docs/traefik.md) | 80 | 80 | TCP | HTTP (redirects to HTTPS) |
|
||||||
|---------|------|----------|---------|---------------|
|
| **Core** | [Traefik](../service-docs/traefik.md) | 443 | 443 | TCP | HTTPS |
|
||||||
| [Traefik](../service-docs/traefik.md) | 80 | TCP | HTTP (redirects to HTTPS) | 80 |
|
| **Core** | [Traefik](../service-docs/traefik.md) | 8080 | 8080 | TCP | Dashboard (protected) |
|
||||||
| [Traefik](../service-docs/traefik.md) | 443 | TCP | HTTPS | 443 |
|
| **Infrastructure** | [Dockge](../service-docs/dockge.md) | 5001 | 5001 | TCP | Web UI |
|
||||||
| [Traefik](../service-docs/traefik.md) | 8080 | TCP | Dashboard (protected) | 8080 |
|
| **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 |
|
||||||
## Infrastructure Stack ([infrastructure.yml](../docker-compose/infrastructure.yml))
|
| **Home Assistant** | [ESPHome](../service-docs/esphome.md) | 6052 | 6052 | TCP | Web UI |
|
||||||
|
| **Home Assistant** | [TasmoAdmin](../service-docs/tasmoadmin.md) | 8084 | 80 | TCP | Web UI |
|
||||||
| Service | Port | Protocol | Purpose | Internal Port |
|
| **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 |
|
||||||
| [Dockge](../service-docs/dockge.md) | 5001 | TCP | Web UI | 5001 |
|
| **Home Assistant** | [Mosquitto](../service-docs/mosquitto.md) | 1883 | 1883 | TCP | MQTT |
|
||||||
| [Pi-hole](../service-docs/pihole.md) | 53 | TCP/UDP | DNS | 53 |
|
| **Home Assistant** | [Mosquitto](../service-docs/mosquitto.md) | 9001 | 9001 | TCP | MQTT Websockets |
|
||||||
| [Docker Proxy](../service-docs/docker-proxy.md) | 127.0.0.1:2375 | TCP | Docker API proxy | 2375 |
|
| **Media** | [Jellyfin](../service-docs/jellyfin.md) | 8096 | 8096 | TCP | Web UI |
|
||||||
|
| **Media** | [Calibre-Web](../service-docs/calibre-web.md) | 8083 | 8083 | TCP | Web UI |
|
||||||
## Home Assistant Stack ([homeassistant.yml](../docker-compose/homeassistant.yml))
|
| **Media Management** | [Sonarr](../service-docs/sonarr.md) | 8989 | 8989 | TCP | Web UI |
|
||||||
|
| **Media Management** | [Radarr](../service-docs/radarr.md) | 7878 | 7878 | TCP | Web UI |
|
||||||
| Service | Port | Protocol | Purpose | Internal Port |
|
| **Media Management** | [Prowlarr](../service-docs/prowlarr.md) | 9696 | 9696 | TCP | Web UI |
|
||||||
|---------|------|----------|---------|---------------|
|
| **Media Management** | [Readarr](../service-docs/readarr.md) | 8787 | 8787 | TCP | Web UI |
|
||||||
| [MotionEye](../service-docs/motioneye.md) | 8765 | TCP | Web UI | 8765 |
|
| **Media Management** | [Lidarr](../service-docs/lidarr.md) | 8686 | 8686 | TCP | Web UI |
|
||||||
| [Mosquitto](../service-docs/mosquitto.md) | 1883 | TCP | MQTT | 1883 |
|
| **Media Management** | [Lazylibrarian](../service-docs/lazylibrarian.md) | 5299 | 5299 | TCP | Web UI |
|
||||||
| [Mosquitto](../service-docs/mosquitto.md) | 9001 | TCP | MQTT Websockets | 9001 |
|
| **Media Management** | [Mylar3](../service-docs/mylar3.md) | 8090 | 8090 | TCP | Web UI |
|
||||||
|
| **Media Management** | [Jellyseerr](../service-docs/jellyseerr.md) | 5055 | 5055 | TCP | Web UI |
|
||||||
## Monitoring Stack ([monitoring.yml](../docker-compose/monitoring.yml))
|
| **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 |
|
||||||
| Service | Port | Protocol | Purpose | Internal Port |
|
| **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 |
|
||||||
| [Prometheus](../service-docs/prometheus.md) | 9090 | TCP | Web UI/Metrics | 9090 |
|
| **Monitoring** | [Prometheus](../service-docs/prometheus.md) | 9090 | 9090 | TCP | Web UI/Metrics |
|
||||||
|
| **Monitoring** | [Grafana](../service-docs/grafana.md) | 3000 | 3000 | TCP | Web UI |
|
||||||
## VPN Stack ([vpn.yml](../docker-compose/vpn.yml))
|
| **Monitoring** | [cAdvisor](../service-docs/cadvisor.md) | 8082 | 8080 | TCP | Web UI |
|
||||||
|
| **Monitoring** | [Uptime Kuma](../service-docs/uptime-kuma.md) | 3001 | 3001 | TCP | Web UI |
|
||||||
| Service | Port | Protocol | Purpose | Internal Port |
|
| **Monitoring** | [Loki](../service-docs/loki.md) | 3100 | 3100 | TCP | Web UI |
|
||||||
|---------|------|----------|---------|---------------|
|
| **Monitoring** | [Node Exporter](../service-docs/node-exporter.md) | 9100 | 9100 | TCP | Metrics |
|
||||||
| [Gluetun](../service-docs/gluetun.md) | 8888 | TCP | HTTP proxy | 8888 |
|
| **Utilities** | [Backrest](../service-docs/backrest.md) | 9898 | 9898 | TCP | Web UI |
|
||||||
| [Gluetun](../service-docs/gluetun.md) | 8388 | TCP/UDP | Shadowsocks | 8388 |
|
| **Utilities** | [Duplicati](../service-docs/duplicati.md) | 8200 | 8200 | TCP | Web UI |
|
||||||
| [Gluetun](../service-docs/gluetun.md) | 8081 | TCP | qBittorrent Web UI | 8080 |
|
| **Utilities** | [Form.io](../service-docs/formio.md) | 3002 | 3001 | TCP | Web UI |
|
||||||
| [Gluetun](../service-docs/gluetun.md) | 6881 | TCP/UDP | qBittorrent | 6881 |
|
| **Utilities** | [Vaultwarden](../service-docs/vaultwarden.md) | 80 | 80 | TCP | Internal port |
|
||||||
|
| **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) | 80 | 80 | TCP | Internal port |
|
||||||
|
| **Productivity** | [Nextcloud](../service-docs/nextcloud.md) | 80 | 80 | TCP | Internal port |
|
||||||
|
| **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 |
|
||||||
|
|
||||||
## Port Range Reference
|
## Port Range Reference
|
||||||
|
|
||||||
@@ -51,12 +61,13 @@ This document tracks all ports used by services in the AI-Homelab. Update this d
|
|||||||
|
|
||||||
## Common Port Conflicts
|
## Common Port Conflicts
|
||||||
|
|
||||||
- **Port 80/443**: Used by Traefik for HTTP/HTTPS
|
- **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 53**: Used by Pi-hole for DNS
|
||||||
- **Port 2375**: Used by Docker Proxy (localhost only)
|
- **Port 2375**: Used by Docker Proxy (localhost only)
|
||||||
- **Port 5001**: Used by Dockge
|
- **Port 5001**: Used by Dockge
|
||||||
- **Port 5432**: Used by PostgreSQL
|
|
||||||
- **Port 6379**: Used by Redis
|
|
||||||
- **Port 8080**: Used by Traefik dashboard
|
- **Port 8080**: Used by Traefik dashboard
|
||||||
- **Port 9090**: Used by Prometheus
|
- **Port 9090**: Used by Prometheus
|
||||||
|
|
||||||
@@ -88,4 +99,4 @@ This document should be updated whenever:
|
|||||||
Run this command to find all port mappings in compose files:
|
Run this command to find all port mappings in compose files:
|
||||||
```bash
|
```bash
|
||||||
grep -r "ports:" docker-compose/ | grep -v "^#" | sort
|
grep -r "ports:" docker-compose/ | grep -v "^#" | sort
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -470,47 +470,6 @@ perform_deployment() {
|
|||||||
if [ "$SETUP_STACKS" = true ]; then
|
if [ "$SETUP_STACKS" = true ]; then
|
||||||
setup_stacks_for_dockge
|
setup_stacks_for_dockge
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Deploy Dokuwiki (always deployed as it's part of the base setup)
|
|
||||||
deployed_count=3 # Dockge is always deployed
|
|
||||||
[ "$DEPLOY_CORE" = true ] && deployed_count=$((deployed_count + 1))
|
|
||||||
[ "$DEPLOY_INFRASTRUCTURE" = true ] && deployed_count=$((deployed_count + 1))
|
|
||||||
[ "$DEPLOY_DASHBOARDS" = true ] && deployed_count=$((deployed_count + 1))
|
|
||||||
step_num=$((deployed_count + 1))
|
|
||||||
log_info "Step $step_num: Deploying Dokuwiki wiki platform..."
|
|
||||||
log_info " - DokuWiki (File-based wiki with pre-configured content)"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Create Dokuwiki directory
|
|
||||||
mkdir -p /opt/stacks/dokuwiki/config
|
|
||||||
|
|
||||||
# Copy Dokuwiki compose file
|
|
||||||
cp "$REPO_DIR/config-templates/dokuwiki/docker-compose.yml" /opt/stacks/dokuwiki/docker-compose.yml
|
|
||||||
|
|
||||||
# Replace domain placeholders in Dokuwiki
|
|
||||||
sed -i "s/\${DOMAIN}/${DOMAIN}/g" /opt/stacks/dokuwiki/docker-compose.yml
|
|
||||||
|
|
||||||
# Copy pre-configured Dokuwiki config, content, and keys
|
|
||||||
if [ -d "$REPO_DIR/config-templates/dokuwiki/conf" ]; then
|
|
||||||
cp -r "$REPO_DIR/config-templates/dokuwiki/conf" /opt/stacks/dokuwiki/config/
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d "$REPO_DIR/config-templates/dokuwiki/data" ]; then
|
|
||||||
cp -r "$REPO_DIR/config-templates/dokuwiki/data" /opt/stacks/dokuwiki/config/
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d "$REPO_DIR/config-templates/dokuwiki/keys" ]; then
|
|
||||||
cp -r "$REPO_DIR/config-templates/dokuwiki/keys" /opt/stacks/dokuwiki/config/
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Set proper ownership for Dokuwiki config
|
|
||||||
sudo chown -R 1000:1000 /opt/stacks/dokuwiki/config
|
|
||||||
|
|
||||||
# Deploy Dokuwiki
|
|
||||||
cd /opt/stacks/dokuwiki
|
|
||||||
docker compose up -d
|
|
||||||
log_success "Dokuwiki deployed with pre-configured content"
|
|
||||||
echo ""
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Setup stacks for Dockge function
|
# Setup stacks for Dockge function
|
||||||
|
|||||||
Reference in New Issue
Block a user