Update Docker Compose files for various stacks
This commit is contained in:
@@ -134,6 +134,6 @@ networks:
|
|||||||
x-dockge:
|
x-dockge:
|
||||||
urls:
|
urls:
|
||||||
- https://auth.${DOMAIN}
|
- https://auth.${DOMAIN}
|
||||||
- https://{$SERVER_IP}:9091
|
- https://${SERVER_IP}:9091
|
||||||
- https://traefik.${DOMAIN}
|
- https://traefik.${DOMAIN}
|
||||||
- https://{$SERVER_IP}:8080
|
- https://${SERVER_IP}:8080
|
||||||
@@ -114,9 +114,9 @@ x-dockge:
|
|||||||
urls:
|
urls:
|
||||||
# Proxied URLs (through Traefik)
|
# Proxied URLs (through Traefik)
|
||||||
- https://homepage.${DOMAIN}
|
- https://homepage.${DOMAIN}
|
||||||
- https://{$SERVER_IP}:3003
|
- https://${SERVER_IP}:3003
|
||||||
- https://homarr.${DOMAIN}
|
- https://homarr.${DOMAIN}
|
||||||
- https://{$SERVER_IP}:7575
|
- https://${SERVER_IP}:7575
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
homelab-network:
|
homelab-network:
|
||||||
|
|||||||
@@ -240,3 +240,19 @@ networks:
|
|||||||
external: true
|
external: true
|
||||||
traefik-network:
|
traefik-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
|
x-dockge:
|
||||||
|
urls:
|
||||||
|
# Proxied URLs (through Traefik)
|
||||||
|
- https://ha.${DOMAIN}
|
||||||
|
- http://${SERVER_IP}:8123
|
||||||
|
- https://esphome.${DOMAIN}
|
||||||
|
- http://${SERVER_IP}:6052
|
||||||
|
- https://tasmoadmin.${DOMAIN}
|
||||||
|
- http://${SERVER_IP}:8084
|
||||||
|
- https://motioneye.${DOMAIN}
|
||||||
|
- http://${SERVER_IP}:8765
|
||||||
|
- https://nodered.${DOMAIN}
|
||||||
|
- http://${SERVER_IP}:1880
|
||||||
|
- mqtt://${SERVER_IP}:1883
|
||||||
|
- https://zigbee2mqtt.${DOMAIN}
|
||||||
@@ -128,7 +128,9 @@ x-dockge:
|
|||||||
urls:
|
urls:
|
||||||
# Proxied URLs (through Traefik)
|
# Proxied URLs (through Traefik)
|
||||||
- https://jellyfin.${DOMAIN}
|
- https://jellyfin.${DOMAIN}
|
||||||
|
- http://${SERVER_IP}:8096
|
||||||
- https://calibre.${DOMAIN}
|
- https://calibre.${DOMAIN}
|
||||||
|
- http://${SERVER_IP}:8083
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
homelab-network:
|
homelab-network:
|
||||||
|
|||||||
@@ -8,18 +8,18 @@
|
|||||||
# - See individual service comments for specific reasoning
|
# - See individual service comments for specific reasoning
|
||||||
|
|
||||||
# Service Access URLs:
|
# Service Access URLs:
|
||||||
# - Prometheus: http://server-ip:9090 (or configure Traefik)
|
# - Prometheus: http://${SERVER_IP}:9090 (or configure Traefik)
|
||||||
# - Grafana: http://server-ip:3000 (or configure Traefik)
|
# - Grafana: http://${SERVER_IP}:3000 (or configure Traefik)
|
||||||
# - Uptime Kuma: https://status.${DOMAIN}
|
# - Uptime Kuma: https://status.${DOMAIN}
|
||||||
# - Node Exporter: http://server-ip:9100/metrics
|
# - Node Exporter: http://${SERVER_IP}:9100/metrics
|
||||||
# - cAdvisor: http://server-ip:8082
|
# - cAdvisor: http://${SERVER_IP}:8082
|
||||||
# - Loki: http://server-ip:3100
|
# - Loki: http://${SERVER_IP}:3100
|
||||||
# NOTE: Prometheus, Grafana, Loki use ports because they need to be accessible to other services
|
# NOTE: Prometheus, Grafana, Loki use ports because they need to be accessible to other services
|
||||||
# Add Traefik labels if you want https://prometheus.${DOMAIN} access
|
# Add Traefik labels if you want https://prometheus.${DOMAIN} access
|
||||||
|
|
||||||
services:
|
services:
|
||||||
# Prometheus - Metrics collection and storage
|
# Prometheus - Metrics collection and storage
|
||||||
# Access at: http://server-ip:9090
|
# Access at: http://${SERVER_IP}:9090
|
||||||
prometheus:
|
prometheus:
|
||||||
image: prom/prometheus:v2.48.1
|
image: prom/prometheus:v2.48.1
|
||||||
deploy:
|
deploy:
|
||||||
@@ -66,7 +66,7 @@ services:
|
|||||||
- "traefik.http.services.prometheus.loadbalancer.server.port=9090"
|
- "traefik.http.services.prometheus.loadbalancer.server.port=9090"
|
||||||
|
|
||||||
# Grafana - Metrics visualization
|
# Grafana - Metrics visualization
|
||||||
# Access at: http://server-ip:3000
|
# Access at: http://${SERVER_IP}:3000
|
||||||
# Default credentials: admin / admin (change on first login)
|
# Default credentials: admin / admin (change on first login)
|
||||||
grafana:
|
grafana:
|
||||||
image: grafana/grafana:10.2.3
|
image: grafana/grafana:10.2.3
|
||||||
@@ -115,7 +115,7 @@ services:
|
|||||||
- "traefik.http.services.grafana.loadbalancer.server.port=3000"
|
- "traefik.http.services.grafana.loadbalancer.server.port=3000"
|
||||||
|
|
||||||
# Node Exporter - Host metrics exporter
|
# Node Exporter - Host metrics exporter
|
||||||
# Metrics at: http://server-ip:9100/metrics
|
# Metrics at: http://${SERVER_IP}:9100/metrics
|
||||||
node-exporter:
|
node-exporter:
|
||||||
image: prom/node-exporter:v1.7.0
|
image: prom/node-exporter:v1.7.0
|
||||||
container_name: node-exporter
|
container_name: node-exporter
|
||||||
@@ -138,7 +138,7 @@ services:
|
|||||||
- "homelab.description=Hardware and OS metrics exporter"
|
- "homelab.description=Hardware and OS metrics exporter"
|
||||||
|
|
||||||
# cAdvisor - Container metrics exporter
|
# cAdvisor - Container metrics exporter
|
||||||
# Access at: http://server-ip:8082
|
# Access at: http://${SERVER_IP}:8082
|
||||||
cadvisor:
|
cadvisor:
|
||||||
image: gcr.io/cadvisor/cadvisor:v0.47.2
|
image: gcr.io/cadvisor/cadvisor:v0.47.2
|
||||||
container_name: cadvisor
|
container_name: cadvisor
|
||||||
@@ -215,7 +215,7 @@ services:
|
|||||||
- "traefik.http.services.uptime-kuma.loadbalancer.server.port=3001"
|
- "traefik.http.services.uptime-kuma.loadbalancer.server.port=3001"
|
||||||
|
|
||||||
# Loki - Log aggregation
|
# Loki - Log aggregation
|
||||||
# Access at: http://server-ip:3100
|
# Access at: http://${SERVER_IP}:3100
|
||||||
loki:
|
loki:
|
||||||
image: grafana/loki:2.9.3
|
image: grafana/loki:2.9.3
|
||||||
deploy:
|
deploy:
|
||||||
@@ -289,3 +289,13 @@ networks:
|
|||||||
external: true
|
external: true
|
||||||
traefik-network:
|
traefik-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
|
x-dockge:
|
||||||
|
urls:
|
||||||
|
# Proxied URLs (through Traefik)
|
||||||
|
- http://${SERVER_IP}:9090
|
||||||
|
- http://${SERVER_IP}:3000
|
||||||
|
- https://uptime-kuma.${DOMAIN}
|
||||||
|
- http://${SERVER_IP}:9100/metrics
|
||||||
|
- http://${SERVER_IP}:8082
|
||||||
|
- http://${SERVER_IP}:3100
|
||||||
|
|||||||
@@ -327,12 +327,12 @@ x-dockge:
|
|||||||
urls:
|
urls:
|
||||||
# Proxied URLs (through Traefik)
|
# Proxied URLs (through Traefik)
|
||||||
- https://nextcloud.${DOMAIN}
|
- https://nextcloud.${DOMAIN}
|
||||||
- https://{$SERVER_IP}:8089
|
- https://${SERVER_IP}:8089
|
||||||
- https://mealie.${DOMAIN}
|
- https://mealie.${DOMAIN}
|
||||||
- https://{$SERVER_IP}:9000
|
- https://${SERVER_IP}:9000
|
||||||
- https://wordpress.${DOMAIN}
|
- https://wordpress.${DOMAIN}
|
||||||
- https://{$SERVER_IP}:8088
|
- https://${SERVER_IP}:8088
|
||||||
- https://gitea.${DOMAIN}
|
- https://gitea.${DOMAIN}
|
||||||
- https://{$SERVER_IP}:3010
|
- https://${SERVER_IP}:3010
|
||||||
- https://jupyter.${DOMAIN}
|
- https://jupyter.${DOMAIN}
|
||||||
- https://{$SERVER_IP}:8890
|
- https://${SERVER_IP}:8890
|
||||||
|
|||||||
@@ -237,10 +237,10 @@ networks:
|
|||||||
x-dockge:
|
x-dockge:
|
||||||
urls:
|
urls:
|
||||||
- https://backrest.${DOMAIN}
|
- https://backrest.${DOMAIN}
|
||||||
- https://{$SERVER_IP}:9898
|
- https://${SERVER_IP}:9898
|
||||||
- https://duplicati.${DOMAIN}
|
- https://duplicati.${DOMAIN}
|
||||||
- https://{$SERVER_IP}:8200
|
- https://${SERVER_IP}:8200
|
||||||
- https://forms.${DOMAIN}
|
- https://forms.${DOMAIN}
|
||||||
- https://{$SERVER_IP}:3002
|
- https://${SERVER_IP}:3002
|
||||||
- https://vault.${DOMAIN}
|
- https://vault.${DOMAIN}
|
||||||
- https://{$SERVER_IP}:8091
|
- https://${SERVER_IP}:8091
|
||||||
@@ -54,7 +54,7 @@ services:
|
|||||||
- "traefik.http.services.qbittorrent.loadbalancer.server.port=8081"
|
- "traefik.http.services.qbittorrent.loadbalancer.server.port=8081"
|
||||||
# Sablier configuration
|
# Sablier configuration
|
||||||
- "sablier.enable=true"
|
- "sablier.enable=true"
|
||||||
- "sablier.group=qbittorrent"
|
- "sablier.group=${SERVER_HOSTNAME}-qbittorrent"
|
||||||
- "sablier.sessionDuration=1h"
|
- "sablier.sessionDuration=1h"
|
||||||
|
|
||||||
# qBittorrent - Torrent client
|
# qBittorrent - Torrent client
|
||||||
|
|||||||
@@ -181,8 +181,8 @@ x-dockge:
|
|||||||
urls:
|
urls:
|
||||||
# Proxied URLs (through Traefik)
|
# Proxied URLs (through Traefik)
|
||||||
- https://bookstack.${DOMAIN}
|
- https://bookstack.${DOMAIN}
|
||||||
- https://{$SERVER_IP}:6875
|
- https://${SERVER_IP}:6875
|
||||||
- https://dokuwiki.${DOMAIN}
|
- https://dokuwiki.${DOMAIN}
|
||||||
- https://{$SERVER_IP}:8087
|
- https://${SERVER_IP}:8087
|
||||||
- https://mediawiki.${DOMAIN}
|
- https://mediawiki.${DOMAIN}
|
||||||
- https://{$SERVER_IP}:8086
|
- https://${SERVER_IP}:8086
|
||||||
|
|||||||
24
tasks.txt
24
tasks.txt
@@ -4,27 +4,3 @@ I am developing the EZ-Homelab repository. The focus is on the repo not the test
|
|||||||
I'm troubleshooting the ez-homelab.sh setup process.
|
I'm troubleshooting the ez-homelab.sh setup process.
|
||||||
|
|
||||||
Install notes
|
Install notes
|
||||||
|
|
||||||
Ran install script directly on fresh Debian 12 install without creating the .env file first.
|
|
||||||
There was a permission error creating .env file.
|
|
||||||
Note in order to install docker it must be run with sudo, then logout/login and rerun script without sudo.
|
|
||||||
When running with sudo it forces you to logout/login even if docker was already installed and running. If docker installed it should skip that part and continue.
|
|
||||||
|
|
||||||
SSHed in using VS Code, manually created the .env file.
|
|
||||||
ran ez-homelab.sh completed without errors
|
|
||||||
|
|
||||||
Sablier lazyloading wasn't working, the services were available by ip:port
|
|
||||||
|
|
||||||
Required configure docker daemon on server to listen on port 2375 unsecured and
|
|
||||||
sudo ufw allow 2375/tcp
|
|
||||||
Need to implement TLS and configure sablier to use TLS
|
|
||||||
|
|
||||||
Resolution
|
|
||||||
|
|
||||||
- Fixed ez-homelab.sh to handle .env file creation as the actual user to avoid permission errors.
|
|
||||||
- Added check for Docker group membership to only prompt logout when necessary.
|
|
||||||
- Implemented TLS for Docker API (port 2376) with proper certificates.
|
|
||||||
- Configured Sablier to use TLS with mounted certificates and DOCKER_HOST=tcp://${SERVER_IP}:2376.
|
|
||||||
- Updated healthchecks in media-management services to use localhost instead of ${SERVER_IP}.
|
|
||||||
- Verified TLS connection working, Sablier detecting groups successfully.
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user