feat: Re-structured services and updated readme

This commit is contained in:
2026-07-10 20:13:33 +01:00
parent 3bfa0e6f32
commit d0d1385bf4
33 changed files with 300 additions and 364 deletions
@@ -0,0 +1,27 @@
services:
#Bitwarden ()
bitwarden:
image: "vaultwarden/server:latest"
container_name: vaultwarden
volumes:
- ./bitwarden/:/data/
networks:
- proxy
labels:
## Expose Bitwarden Through Trefik ##
- "traefik.enable=true" # <== Enable traefik to proxy this container
- "traefik.http.middlewares.redirect-web-secure.redirectscheme.scheme=https"
- "traefik.http.routers.bitwarden-insecure.middlewares=redirect-web-secure"
- "traefik.http.routers.bitwarden-insecure.rule=Host(`bitwarden.luke-else.co.uk`)"
- "traefik.http.routers.bitwarden-insecure.entrypoints=web"
- "traefik.http.routers.bitwarden.rule=Host(`bitwarden.luke-else.co.uk`)"
- "traefik.http.routers.bitwarden.entrypoints=websecure"
- "traefik.http.routers.bitwarden.tls.certresolver=myresolver"
restart: unless-stopped
networks:
proxy:
external: true
+53
View File
@@ -0,0 +1,53 @@
services:
hbbs:
image: rustdesk/rustdesk-server:latest
container_name: rustdesk-hbbs
command: hbbs
restart: unless-stopped
volumes:
- ./data:/root
networks:
- proxy
ports:
- "21115:21115/tcp"
- "21116:21116/tcp"
- "21116:21116/udp"
# - "21118:21118/tcp"
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.redirect-web-secure.redirectscheme.scheme=https"
- "traefik.http.routers.rustdesk-insecure.middlewares=redirect-web-secure"
- "traefik.http.routers.rustdesk-insecure.rule=Host(`rd.luke-else.co.uk`)"
- "traefik.http.routers.rustdesk-insecure.entrypoints=web"
- "traefik.http.routers.rustdesk.rule=Host(`rd.luke-else.co.uk`)"
- "traefik.http.routers.rustdesk.entrypoints=websecure"
- "traefik.http.routers.rustdesk.tls.certresolver=myresolver"
# Service
- "traefik.http.services.rustdesk.loadbalancer.server.port=21118"
hbbr:
image: rustdesk/rustdesk-server:latest
container_name: rustdesk-hbbr
command: hbbr
restart: unless-stopped
volumes:
- ./data:/root
networks:
- proxy
ports:
- "21117:21117/tcp"
- "21119:21119/tcp"
networks:
proxy:
external: true
+14
View File
@@ -0,0 +1,14 @@
#!/bin/bash
# Script file for spinning down all prod docker-containers
cd "$(dirname "$0")"
docker compose -f web-docker-compose.yml down
docker compose -f status-docker-compose.yml down
docker compose -f bitwarden-docker-compose.yml down
docker compose -f rd-docker-compose.yml down
docker compose -f watchtower-docker-compose.yml down
docker compose -f traefik-docker-compose.yml down
docker rmi $(docker images -q)
docker system prune -f -a
docker volume prune -f -a
+14
View File
@@ -0,0 +1,14 @@
#!/bin/bash
# Script file for spinning up all prod docker-containers
set -e
cd "$(dirname "$0")"
docker compose -f traefik-docker-compose.yml pull && docker compose -f traefik-docker-compose.yml up -d
sleep 20 # Allow Traefik + registry auth to settle before starting the rest of the services
docker compose -f watchtower-docker-compose.yml pull && docker compose -f watchtower-docker-compose.yml up -d
docker compose -f status-docker-compose.yml pull && docker compose -f status-docker-compose.yml up -d
docker compose -f web-docker-compose.yml pull && docker compose -f web-docker-compose.yml up -d
docker compose -f bitwarden-docker-compose.yml pull && docker compose -f bitwarden-docker-compose.yml up -d
docker compose -f rd-docker-compose.yml pull && docker compose -f rd-docker-compose.yml up -d
+25
View File
@@ -0,0 +1,25 @@
services:
status:
image: louislam/uptime-kuma:latest
container_name: status
volumes:
- ./uptime-kuma/data:/app/data
networks:
- proxy
labels:
## Expose uptime-kuma Through Trefik ##
- "traefik.enable=true" # <== Enable traefik to proxy this container
- "traefik.http.middlewares.redirect-web-secure.redirectscheme.scheme=https"
- "traefik.http.routers.status-insecure.middlewares=redirect-web-secure"
- "traefik.http.routers.status-insecure.rule=Host(`status.luke-else.co.uk`)"
- "traefik.http.routers.status-insecure.entrypoints=web"
- "traefik.http.routers.status.rule=Host(`status.luke-else.co.uk`)"
- "traefik.http.routers.status.entrypoints=websecure"
- "traefik.http.routers.status.tls.certresolver=myresolver"
restart: unless-stopped
networks:
proxy:
external: true
+45
View File
@@ -0,0 +1,45 @@
services:
traefik:
image: "traefik:latest"
container_name: "traefik"
command:
- "--api.dashboard=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--entrypoints.web.transport.respondingTimeouts.readTimeout=120s"
- "--entrypoints.websecure.transport.respondingTimeouts.readTimeout=120s"
- "--entrypoints.web.transport.respondingTimeouts.writeTimeout=120s"
- "--entrypoints.websecure.transport.respondingTimeouts.writeTimeout=120s"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
- "--certificatesresolvers.myresolver.acme.email=contact@luke-else.co.uk"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
- "27017:27017"
volumes:
- "./letsencrypt:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.redirect-web-secure.redirectscheme.scheme=https"
- "traefik.http.routers.traefik-insecure.middlewares=redirect-web-secure"
- "traefik.http.routers.traefik-insecure.rule=Host(`traefik.luke-else.co.uk`)"
- "traefik.http.routers.traefik-insecure.entrypoints=web"
- "traefik.http.routers.traefik.rule=Host(`traefik.luke-else.co.uk`)"
- "traefik.http.routers.traefik.entrypoints=websecure"
- "traefik.http.routers.traefik.service=api@internal"
- "traefik.http.routers.traefik.tls.certresolver=myresolver"
- "traefik.http.routers.traefik.middlewares=traefik-auth"
- "traefik.http.middlewares.traefik-auth.basicauth.users=user:$$2y$$05$$s/vPphFtSO2fWJR7SYkEb.90UwPDRM3aOKqgOF/rme/3fUQ5tvpTS"
restart: unless-stopped
networks:
proxy:
name: proxy
@@ -0,0 +1,8 @@
services:
watchtower:
image: nickfedor/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_POLL_INTERVAL=60
+103
View File
@@ -0,0 +1,103 @@
services:
#Websites luke-else.co.uk (8000) snexo.co.uk (8001) divine-couture.co.uk (80) wmgzon.luke-else.co.uk (8080)
luke-else:
image: git.luke-else.co.uk/luke-else/luke-else.co.uk
container_name: luke-else
networks:
- proxy
labels:
## Expose luke-else Through Trefik ##
- "traefik.enable=true" # <== Enable traefik to proxy this container
- "traefik.http.middlewares.redirect-web-secure.redirectscheme.scheme=https"
- "traefik.http.routers.personal-insecure.middlewares=redirect-web-secure"
- "traefik.http.routers.personal-insecure.rule=Host(`luke-else.co.uk`)"
- "traefik.http.routers.personal-insecure.entrypoints=web"
- "traefik.http.routers.personal.rule=Host(`luke-else.co.uk`)"
- "traefik.http.routers.personal.entrypoints=websecure"
- "traefik.http.routers.personal.tls.certresolver=myresolver"
restart: unless-stopped
luke-else-dev:
image: git.luke-else.co.uk/luke-else/luke-else.co.uk:dev
container_name: luke-else-dev
networks:
- proxy
labels:
## Expose luke-else Through Trefik ##
- "traefik.enable=true" # <== Enable traefik to proxy this container
- "traefik.http.middlewares.redirect-web-secure.redirectscheme.scheme=https"
- "traefik.http.routers.personal-dev-insecure.middlewares=redirect-web-secure"
- "traefik.http.routers.personal-dev-insecure.rule=Host(`dev.luke-else.co.uk`)"
- "traefik.http.routers.personal-dev-insecure.entrypoints=web"
- "traefik.http.routers.personal-dev.rule=Host(`dev.luke-else.co.uk`)"
- "traefik.http.routers.personal-dev.entrypoints=websecure"
- "traefik.http.routers.personal-dev.tls.certresolver=myresolver"
restart: unless-stopped
metarius:
image: git.luke-else.co.uk/luke-else/metarius:latest
container_name: metarius
networks:
- proxy
labels:
## Expose metarius Through Trefik ##
- "traefik.enable=true" # <== Enable traefik to proxy this container
- "traefik.http.middlewares.redirect-web-secure.redirectscheme.scheme=https"
- "traefik.http.routers.metarius-insecure.middlewares=redirect-web-secure"
- "traefik.http.routers.metarius-insecure.rule=Host(`metarius.luke-else.co.uk`)"
- "traefik.http.routers.metarius-insecure.entrypoints=web"
- "traefik.http.routers.metarius.rule=Host(`metarius.luke-else.co.uk`)"
- "traefik.http.routers.metarius.entrypoints=websecure"
- "traefik.http.routers.metarius.tls.certresolver=myresolver"
restart: unless-stopped
divine-couture:
image: git.luke-else.co.uk/luke-else/divine-couture.co.uk:latest
container_name: divine-couture
networks:
- proxy
labels:
## Expose divine-couture Through Trefik ##
- "traefik.enable=true" # <== Enable traefik to proxy this container
- "traefik.http.middlewares.redirect-web-secure.redirectscheme.scheme=https"
- "traefik.http.routers.divine-couture-insecure.middlewares=redirect-web-secure"
- "traefik.http.routers.divine-couture-insecure.rule=Host(`www.divine-couture.co.uk`)"
- "traefik.http.routers.divine-couture-insecure.entrypoints=web"
- "traefik.http.routers.divine-couture.rule=Host(`www.divine-couture.co.uk`)"
- "traefik.http.routers.divine-couture.entrypoints=websecure"
- "traefik.http.routers.divine-couture.tls.certresolver=myresolver"
restart: unless-stopped
snexo:
image: "php:apache"
container_name: snexo
volumes:
- ./snexo.co.uk/:/var/www/html
networks:
- proxy
labels:
## Expose Snexo Through Trefik ##
- "traefik.enable=true" # <== Enable traefik to proxy this container
- "traefik.http.middlewares.redirect-web-secure.redirectscheme.scheme=https"
- "traefik.http.routers.snexo-insecure.middlewares=redirect-web-secure"
- "traefik.http.routers.snexo-insecure.rule=Host(`snexo.co.uk`)"
- "traefik.http.routers.snexo-insecure.entrypoints=web"
- "traefik.http.routers.snexo.rule=Host(`snexo.co.uk`)"
- "traefik.http.routers.snexo.entrypoints=websecure"
- "traefik.http.routers.snexo.tls.certresolver=myresolver"
restart: unless-stopped
networks:
proxy:
external: true