feat: Re-structured services and updated readme
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
Executable
+14
@@ -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
|
||||
Executable
+14
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user