From 350eee1ff0654c195687a88f5a03278ae932b8a3 Mon Sep 17 00:00:00 2001 From: Steve Dudenhoeffer Date: Thu, 4 Jan 2024 21:42:14 +0000 Subject: [PATCH] sync of changes up to 2024-01-04 --- drone/docker-compose.yml | 4 ++++ homarr/.env.example | 2 ++ homarr/docker-compose.yml | 40 ++++++++++++++++++++++++++++++++++++ homepage/.env.example | 2 ++ homepage/docker-compose.yml | 28 +++++++++++++++++++++++++ mort/docker-compose.yml | 28 ++++++++++++++++++++++--- nextcloud/.env.example | 2 ++ nextcloud/docker-compose.yml | 33 +++++++++++++++++++++++++++++ portainer/docker-compose.yml | 4 +++- traefik/custom/nas.yml | 13 ++++++++++++ traefik/custom/nextcloud.yml | 40 ++++++++++++++++++++++++++++++++++++ traefik/custom/pihole.yml | 13 ++++++++++++ whoogle/docker-compose.yml | 6 ++++++ 13 files changed, 211 insertions(+), 4 deletions(-) create mode 100644 homarr/.env.example create mode 100644 homarr/docker-compose.yml create mode 100644 homepage/.env.example create mode 100644 homepage/docker-compose.yml create mode 100644 nextcloud/.env.example create mode 100644 nextcloud/docker-compose.yml create mode 100644 traefik/custom/nas.yml create mode 100644 traefik/custom/nextcloud.yml create mode 100644 traefik/custom/pihole.yml diff --git a/drone/docker-compose.yml b/drone/docker-compose.yml index 1ea7778..2aab0ab 100644 --- a/drone/docker-compose.yml +++ b/drone/docker-compose.yml @@ -30,6 +30,7 @@ services: - gitea-ssh.${DOMAIN_ROOT}:${HOST_IP} networks: + - default - web runner: @@ -54,6 +55,9 @@ services: - nuc.${DOMAIN_ROOT}:${HOST_IP} - gitea-ssh.${DOMAIN_ROOT}:${HOST_IP} + networks: + - default + networks: web: external: true diff --git a/homarr/.env.example b/homarr/.env.example new file mode 100644 index 0000000..c378c6a --- /dev/null +++ b/homarr/.env.example @@ -0,0 +1,2 @@ +# DOMAIN_ROOT is the root domain that this service will register as with Traefik +DOMAIN_ROOT=domain.tld \ No newline at end of file diff --git a/homarr/docker-compose.yml b/homarr/docker-compose.yml new file mode 100644 index 0000000..3edef75 --- /dev/null +++ b/homarr/docker-compose.yml @@ -0,0 +1,40 @@ +version: "3.8" + +services: + homarr: + image: ghcr.io/ajnart/homarr:latest + container_name: homarr + restart: unless-stopped + + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - homarr_config:/app/data/configs + - homarr_data:/data + - homarr_icons:/app/public/homarr_icons + + + environment: + - DOMAIN_ROOT=${DOMAIN_ROOT} + + labels: + - "traefik.http.services.homarr.loadbalancer.server.port=7575" + - "traefik.enable=true" + - "traefik.http.routers.homarr.rule=Host(`home.${DOMAIN_ROOT}`)" + - 'traefik.http.routers.homarr.middlewares=authelia@docker' + + networks: + - web + +networks: + web: + external: true + +volumes: + homarr_config: + external: true + + homarr_data: + external: true + + homarr_icons: + external: true \ No newline at end of file diff --git a/homepage/.env.example b/homepage/.env.example new file mode 100644 index 0000000..c378c6a --- /dev/null +++ b/homepage/.env.example @@ -0,0 +1,2 @@ +# DOMAIN_ROOT is the root domain that this service will register as with Traefik +DOMAIN_ROOT=domain.tld \ No newline at end of file diff --git a/homepage/docker-compose.yml b/homepage/docker-compose.yml new file mode 100644 index 0000000..913c5be --- /dev/null +++ b/homepage/docker-compose.yml @@ -0,0 +1,28 @@ +version: "3.3" +services: + homepage: + image: ghcr.io/gethomepage/homepage:latest + container_name: homepage + volumes: + - homepage-config:/app/config # Make sure your local config directory exists + - /var/run/docker.sock:/var/run/docker.sock # (optional) For docker integrations + + environment: + - DOMAIN_ROOT=${DOMAIN_ROOT} + + labels: + - "traefik.http.services.homepage.loadbalancer.server.port=3000" + - "traefik.enable=true" + - "traefik.http.routers.homepage.rule=Host(`home.${DOMAIN_ROOT}`)" + - 'traefik.http.routers.homepage.middlewares=authelia@docker' + + networks: + - web + +volumes: + homepage-config: + external: true + +networks: + web: + external: true \ No newline at end of file diff --git a/mort/docker-compose.yml b/mort/docker-compose.yml index c3582d3..eb66647 100644 --- a/mort/docker-compose.yml +++ b/mort/docker-compose.yml @@ -4,13 +4,32 @@ services: image: gitea.dudenhoeffer.casa/steve/mort:latest restart: unless-stopped container_name: mort - command: ./mort --env /app/.env + command: ./mort environment: - DOMAIN_ROOT=${DOMAIN_ROOT} + - DISCORD_BOT_TOKEN=${DISCORD_BOT_TOKEN} + - DATABASE_DSN=${DATABASE_DSN} + - WOLFRAM_APPID=${WOLFRAM_APPID} + - TENOR_API_KEY=${TENOR_API_KEY} + - TENOR_API_CLI=${TENOR_API_CLI} + - OPENAI_KEY=${OPENAI_KEY} + - GITEA_ENDPOINT=${GITEA_ENDPOINT} + - GITEA_TOKEN=${GITEA_TOKEN} + - GITEA_USER=${GITEA_USER} + - GITEA_PASS=${GITEA_PASS} + - BOBROSS_ENDPOINT=${BOBROSS_ENDPOINT} + - BOBROSS_API_KEY=${BOBROSS_API_KEY} + - HUGGINGFACE_TOKEN=${HUGGINGFACE_TOKEN} + - TODOIST_TOKEN=${TODOIST_TOKEN} + - TVDB_API_KEY=${TVDB_API_KEY} + - TMDB_API_KEY=${TMDB_API_KEY} + - TMDB_READ_ACCESS_TOKEN=${TMDB_READ_ACCESS_TOKEN} + - OVERSEERR_ENDPOINT=${OVERSEERR_ENDPOINT} + - PLEX_ENDPOINT=${PLEX_ENDPOINT} + - PLEX_TOKEN=${PLEX_TOKEN} + - OPENWEATHERMAP_API_KEY=${OPENWEATHERMAP_API_KEY} - volumes: - - .env:/app/.env labels: - "traefik.enable=true" - "traefik.http.services.bobross-receiver-mort.loadbalancer.server.port=8080" @@ -46,6 +65,9 @@ services: environment: MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD} + ports: + - 3306:3306/tcp + volumes: - mariadb_data:/var/lib/mysql diff --git a/nextcloud/.env.example b/nextcloud/.env.example new file mode 100644 index 0000000..c378c6a --- /dev/null +++ b/nextcloud/.env.example @@ -0,0 +1,2 @@ +# DOMAIN_ROOT is the root domain that this service will register as with Traefik +DOMAIN_ROOT=domain.tld \ No newline at end of file diff --git a/nextcloud/docker-compose.yml b/nextcloud/docker-compose.yml new file mode 100644 index 0000000..11aecb5 --- /dev/null +++ b/nextcloud/docker-compose.yml @@ -0,0 +1,33 @@ +version: "3.8" + +services: + nextcloud: + container_name: nextcloud-aio-mastercontainer + image: nextcloud/all-in-one:latest + restart: unless-stopped + + environment: + - DOMAIN_ROOT=${DOMAIN_ROOT} + - APACHE_PORT=11000 + - SKIP_DOMAIN_VALIDATION=true + + + + + labels: + - "traefik.enable=false" + + volumes: + - nextcloud_aio_mastercontainer:/mnt/docker-aio-config + - /var/run/docker.sock:/var/run/docker.sock:ro + + networks: + - web + - default +networks: + web: + external: true + +volumes: + nextcloud_aio_mastercontainer: + external: true diff --git a/portainer/docker-compose.yml b/portainer/docker-compose.yml index 6f28b51..3f80834 100644 --- a/portainer/docker-compose.yml +++ b/portainer/docker-compose.yml @@ -12,8 +12,10 @@ services: - DOMAIN_ROOT=${DOMAIN_ROOT} labels: + - "traefik.enable=true" + - "traefik.http.routers.portainer.rule=Host(`portainer.${DOMAIN_ROOT}`)" - "traefik.http.services.portainer.loadbalancer.server.port=9000" - + volumes: - portainer_data:/data - /var/run/docker.sock:/var/run/docker.sock diff --git a/traefik/custom/nas.yml b/traefik/custom/nas.yml new file mode 100644 index 0000000..fa9e122 --- /dev/null +++ b/traefik/custom/nas.yml @@ -0,0 +1,13 @@ +http: + routers: + nas-router: + rule: "Host(`nas.dudenhoeffer.casa`)" + service: nas-service + # Optionally, you can add TLS configuration here if your router is serving HTTPS + + services: + nas-service: + loadBalancer: + servers: + - url: "http://192.168.0.145:5000" + passHostHeader: true diff --git a/traefik/custom/nextcloud.yml b/traefik/custom/nextcloud.yml new file mode 100644 index 0000000..857cdb1 --- /dev/null +++ b/traefik/custom/nextcloud.yml @@ -0,0 +1,40 @@ +http: + routers: + nextcloud: + rule: "Host(`cloud.dudenhoeffer.casa`)" + #entrypoints: + # - "web" + service: nextcloud + #middlewares: + # - nextcloud-chain + + + services: + nextcloud: + loadBalancer: + #serversTransport: "nextcloud-servers-transport" + servers: + - url: "http://nextcloud-aio-nextcloud:9000" # Use the host's IP address if Traefik runs outside the host network + + middlewares: + nextcloud-secure-headers: + headers: + hostsProxyHeaders: + - "X-Forwarded-Host" + referrerPolicy: "same-origin" + + https-redirect: + redirectscheme: + scheme: https + + nextcloud-chain: + chain: + middlewares: + # - ... (e.g. rate limiting middleware) + - https-redirect + - nextcloud-secure-headers + + # Define the serversTransport to skip TLS verification + serversTransports: + nextcloud-servers-transport: + insecureSkipVerify: true \ No newline at end of file diff --git a/traefik/custom/pihole.yml b/traefik/custom/pihole.yml new file mode 100644 index 0000000..012c768 --- /dev/null +++ b/traefik/custom/pihole.yml @@ -0,0 +1,13 @@ + +http: + routers: + pihole-router: + rule: "Host(`pihole.dudenhoeffer.casa`)" + service: pihole-service + + services: + pihole-service: + loadBalancer: + servers: + - url: "http://192.168.0.197:8081" + passHostHeader: true \ No newline at end of file diff --git a/whoogle/docker-compose.yml b/whoogle/docker-compose.yml index 606af51..762037d 100644 --- a/whoogle/docker-compose.yml +++ b/whoogle/docker-compose.yml @@ -8,6 +8,12 @@ services: networks: - web + labels: + - "traefik.enable=true" + - "traefik.http.routers.whoogle.rule=Host(`whoogle.${DOMAIN_ROOT}`)" + - "traefik.http.services.whoogle.loadbalancer.server.port=5000" + - 'traefik.http.routers.whoogle.middlewares=authelia@docker' + networks: web: external: true \ No newline at end of file