feat: Re-structured services and updated readme
This commit is contained in:
@@ -1,24 +0,0 @@
|
||||
services:
|
||||
|
||||
#MongoDB (27017)
|
||||
mongodb:
|
||||
image: "mongo:latest"
|
||||
container_name: mongoDB
|
||||
volumes:
|
||||
- ./mongo/:/data/db
|
||||
networks:
|
||||
- proxy
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.tcp.routers.mongodb.rule=HostSNI(`*`)"
|
||||
- "traefik.tcp.routers.mongodb.entrypoints=mongo"
|
||||
- "traefik.tcp.routers.mongodb.service=mongodb"
|
||||
- "traefik.tcp.services.mongodb.loadbalancer.server.port=27017"
|
||||
environment:
|
||||
MONGO_INITDB_ROOT_USERNAME: root
|
||||
MONGO_INITDB_ROOT_PASSWORD: rootpassword
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
@@ -1,51 +0,0 @@
|
||||
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
|
||||
|
||||
portainer:
|
||||
image: portainer/portainer-ce:latest
|
||||
container_name: portainer
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
- ./portainer-data:/data
|
||||
networks:
|
||||
- proxy
|
||||
labels:
|
||||
## Expose portainer Through Trefik ##
|
||||
- "traefik.enable=true" # <== Enable traefik to proxy this container
|
||||
|
||||
- "traefik.http.middlewares.redirect-web-secure.redirectscheme.scheme=https"
|
||||
- "traefik.http.routers.portainer-insecure.middlewares=redirect-web-secure"
|
||||
- "traefik.http.routers.portainer-insecure.rule=Host(`portainer.luke-else.co.uk`)"
|
||||
- "traefik.http.routers.portainer-insecure.entrypoints=web"
|
||||
|
||||
- "traefik.http.routers.portainer.rule=Host(`portainer.luke-else.co.uk`)"
|
||||
- "traefik.http.services.portainer.loadbalancer.server.port=9000"
|
||||
- "traefik.http.routers.portainer.entrypoints=websecure"
|
||||
- "traefik.http.routers.portainer.tls.certresolver=myresolver"
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
@@ -1,52 +0,0 @@
|
||||
services:
|
||||
ackee:
|
||||
image: electerious/ackee
|
||||
container_name: ackee
|
||||
environment:
|
||||
- WAIT_HOSTS=mongo:27017
|
||||
- ACKEE_MONGODB=mongodb://mongo-ackee:27017/ackee
|
||||
env_file:
|
||||
- .env
|
||||
expose:
|
||||
- 3000
|
||||
networks:
|
||||
- tracking
|
||||
- proxy
|
||||
labels:
|
||||
## Expose Ackee Through Trefik ##
|
||||
- "traefik.enable=true" # <== Enable traefik to proxy this container
|
||||
|
||||
# Enable CORS headers
|
||||
- "traefik.http.middlewares.cors-tracking.headers.accesscontrolallowmethods=*"
|
||||
- "traefik.http.middlewares.cors-tracking.headers.accesscontrolalloworiginlist=https://luke-else.co.uk"
|
||||
- "traefik.http.middlewares.cors-tracking.headers.accesscontrolallowcredentials=true"
|
||||
- "traefik.http.middlewares.cors-tracking.headers.accesscontrolallowheaders=Content-Type,Authorization"
|
||||
- "traefik.http.middlewares.cors-tracking.headers.addvaryheader=true"
|
||||
- "traefik.http.middlewares.cors-tracking.headers.accesscontrolmaxage=100"
|
||||
|
||||
- "traefik.http.middlewares.redirect-web-secure.redirectscheme.scheme=https"
|
||||
- "traefik.http.routers.ackee-insecure.middlewares=redirect-web-secure"
|
||||
- "traefik.http.routers.ackee-insecure.rule=Host(`tracking.luke-else.co.uk`)"
|
||||
- "traefik.http.routers.ackee-insecure.entrypoints=web"
|
||||
|
||||
- "traefik.http.routers.ackee.rule=Host(`tracking.luke-else.co.uk`)"
|
||||
- "traefik.http.routers.ackee.entrypoints=websecure"
|
||||
- "traefik.http.routers.ackee.tls.certresolver=myresolver"
|
||||
- "traefik.http.routers.ackee.middlewares=cors-tracking"
|
||||
depends_on:
|
||||
- mongo
|
||||
restart: unless-stopped
|
||||
|
||||
mongo:
|
||||
image: mongo
|
||||
container_name: mongo-ackee
|
||||
volumes:
|
||||
- ./data:/data/db
|
||||
networks:
|
||||
- tracking
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
tracking:
|
||||
@@ -1,16 +0,0 @@
|
||||
#Script file for spinning down all CICD relevant docker-containers
|
||||
cd ./Development/Runners/
|
||||
docker compose down
|
||||
cd ../..
|
||||
|
||||
cd ./TraefikRunner/
|
||||
docker compose down
|
||||
cd ..
|
||||
|
||||
cd ./Watchtower/
|
||||
docker compose down
|
||||
cd ..
|
||||
|
||||
docker rmi $(docker images -q)
|
||||
docker system prune -f -a
|
||||
docker volume prune -f -a
|
||||
@@ -1,13 +0,0 @@
|
||||
#Script file for spinning up all docker-containers
|
||||
|
||||
cd ./TraefikRunner/
|
||||
docker compose pull && docker compose up -d
|
||||
cd ..
|
||||
|
||||
cd ./Development/Runners/
|
||||
docker compose pull && docker compose up -d
|
||||
cd ../..
|
||||
|
||||
cd ./Watchtower/
|
||||
docker compose pull && docker compose up -d
|
||||
cd ..
|
||||
+2
-2
@@ -13,7 +13,7 @@ services:
|
||||
CONFIG_FILE: /config.yaml
|
||||
GITEA_INSTANCE_URL: "https://git.luke-else.co.uk"
|
||||
GITEA_RUNNER_REGISTRATION_TOKEN: "INSERT REGISTRATION TOKEN"
|
||||
GITEA_RUNNER_NAME: "CICD"
|
||||
GITEA_RUNNER_NAME: "CICD#1"
|
||||
labels:
|
||||
## Expose cicd Through Trefik ##
|
||||
- "traefik.enable=true" # <== Enable traefik to proxy this container
|
||||
@@ -30,4 +30,4 @@ services:
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
external: true
|
||||
Executable
+14
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
# Script file for spinning down all dev docker-containers
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
cd Runners
|
||||
docker compose down
|
||||
cd ..
|
||||
|
||||
docker compose -f traefik-docker-compose.yml down
|
||||
docker compose -f watchtower-docker-compose.yml down
|
||||
|
||||
docker rmi $(docker images -q)
|
||||
docker system prune -f -a
|
||||
docker volume prune -f -a
|
||||
Executable
+12
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
# Script file for spinning up all dev docker-containers
|
||||
set -e
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
docker compose -f traefik-docker-compose.yml pull && docker compose -f traefik-docker-compose.yml up -d
|
||||
|
||||
cd Runners
|
||||
docker compose pull && docker compose up -d
|
||||
cd ..
|
||||
|
||||
docker compose -f watchtower-docker-compose.yml pull && docker compose -f watchtower-docker-compose.yml up -d
|
||||
@@ -1,42 +0,0 @@
|
||||
#Script file for spinning down all docker-containers
|
||||
|
||||
cd ./Websites/
|
||||
docker compose down
|
||||
cd ..
|
||||
|
||||
cd ./Tracking/
|
||||
docker compose down
|
||||
cd ..
|
||||
|
||||
|
||||
cd ./Development/Gitea/
|
||||
docker compose down
|
||||
cd ../..
|
||||
|
||||
cd ./Database/
|
||||
docker compose down
|
||||
cd ..
|
||||
|
||||
cd ./Bitwarden/
|
||||
docker compose down
|
||||
cd ..
|
||||
|
||||
cd ./Rustdesk/
|
||||
docker compose down
|
||||
cd ..
|
||||
|
||||
cd ./Misc/
|
||||
docker compose down
|
||||
cd ..
|
||||
|
||||
cd ./Watchtower/
|
||||
docker compose down
|
||||
cd ..
|
||||
|
||||
cd ./Traefik/
|
||||
docker compose down
|
||||
cd ..
|
||||
|
||||
docker rmi $(docker images -q)
|
||||
docker system prune -f -a
|
||||
docker volume prune -f -a
|
||||
@@ -1,39 +0,0 @@
|
||||
#Script file for spinning up all docker-containers
|
||||
|
||||
cd ./Traefik/
|
||||
docker compose pull && docker compose up -d
|
||||
cd ..
|
||||
|
||||
cd ./Development/Gitea/
|
||||
docker compose pull && docker compose up -d
|
||||
cd ../..
|
||||
|
||||
sleep 20 # Allow Gitea + registry to start up before starting the rest of the services
|
||||
|
||||
cd ./Watchtower/
|
||||
docker compose pull && docker compose up -d
|
||||
cd ..
|
||||
|
||||
cd ./Tracking/
|
||||
docker compose pull && docker compose up -d
|
||||
cd ..
|
||||
|
||||
cd ./Websites/
|
||||
docker compose pull && docker compose up -d
|
||||
cd ..
|
||||
|
||||
cd ./Database/
|
||||
docker compose pull && docker compose up -d
|
||||
cd ..
|
||||
|
||||
cd ./Bitwarden/
|
||||
docker compose pull && docker compose up -d
|
||||
cd ..
|
||||
|
||||
cd ./Rustdesk/
|
||||
docker compose pull && docker compose up -d
|
||||
cd ..
|
||||
|
||||
cd ./Misc/
|
||||
docker compose pull && docker compose up -d
|
||||
cd ..
|
||||
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
|
||||
@@ -8,7 +8,6 @@ services:
|
||||
- "--providers.docker.exposedbydefault=false"
|
||||
- "--entrypoints.web.address=:80"
|
||||
- "--entrypoints.websecure.address=:443"
|
||||
- "--entrypoints.mongo.address=:27017"
|
||||
- "--entrypoints.web.transport.respondingTimeouts.readTimeout=120s"
|
||||
- "--entrypoints.websecure.transport.respondingTimeouts.readTimeout=120s"
|
||||
- "--entrypoints.web.transport.respondingTimeouts.writeTimeout=120s"
|
||||
@@ -36,11 +35,11 @@ services:
|
||||
- "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.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
|
||||
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
|
||||
@@ -3,13 +3,6 @@
|
||||
## General
|
||||
|
||||
- Setup non root user
|
||||
- UFW should be setup to keep VPS secure and only allow for:
|
||||
|
||||
- https
|
||||
- http
|
||||
- ssh
|
||||
- ftp
|
||||
- 27017
|
||||
|
||||
- "21115:21115/tcp"
|
||||
- "21116:21116/tcp"
|
||||
@@ -17,8 +10,6 @@
|
||||
- "21117:21117/tcp"
|
||||
- "21119:21119/tcp"
|
||||
|
||||
- Install SSH keys
|
||||
- Setup unattended upgrades
|
||||
- Install docker, docker-compose and apache utils.
|
||||
|
||||
## Traefik + TraefikRunner + Traefik VPN
|
||||
@@ -34,15 +25,6 @@
|
||||
|
||||
- Ensure that a registration token has been setup before continuing
|
||||
|
||||
## Tracking
|
||||
|
||||
Create a .env file with the following content:
|
||||
|
||||
```sh
|
||||
ACKEE_USERNAME=luke-else
|
||||
ACKEE_PASSWORD=XXX
|
||||
```
|
||||
|
||||
## Websites
|
||||
|
||||
- Ensure website files are copied over
|
||||
@@ -52,13 +34,3 @@ ACKEE_PASSWORD=XXX
|
||||
|
||||
- Ensure that all data is fully encrypted during transfer.
|
||||
- Ensure that ports are assigned correctly for the system
|
||||
|
||||
## Rustdesk
|
||||
|
||||
- No additional setup required bar the ports
|
||||
|
||||
## Database
|
||||
|
||||
- Ensure that mysql root password, user and default database are updated.
|
||||
- Ensure that mongo root password, and user are updated.
|
||||
- Ensure database ports are correctly assigned and do not have to pass through traefik.
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
#Script file for spinning down all CICD relevant docker-containers
|
||||
|
||||
cd ./VPN/
|
||||
docker compose down
|
||||
cd ..
|
||||
|
||||
cd ./TraefikVPN/
|
||||
docker compose down
|
||||
cd ..
|
||||
|
||||
cd ./Watchtower/
|
||||
docker compose down
|
||||
cd ..
|
||||
|
||||
docker rmi $(docker images -q)
|
||||
docker system prune -f -a
|
||||
docker volume prune -f -a
|
||||
@@ -1,13 +0,0 @@
|
||||
#Script file for spinning up all docker-containers
|
||||
|
||||
cd ./TraefikRunner/
|
||||
docker compose pull && docker compose up -d
|
||||
cd ..
|
||||
|
||||
cd ./VPN/
|
||||
docker compose pull && docker compose up -d
|
||||
cd ..
|
||||
|
||||
cd ./Watchtower/
|
||||
docker compose pull && docker compose up -d
|
||||
cd ..
|
||||
Executable
+11
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
# Script file for spinning down all vpn docker-containers
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
docker compose -f vpn-docker-compose.yml down
|
||||
docker compose -f traefik-docker-compose.yml down
|
||||
docker compose -f watchtower-docker-compose.yml down
|
||||
|
||||
docker rmi $(docker images -q)
|
||||
docker system prune -f -a
|
||||
docker volume prune -f -a
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
# Script file for spinning up all vpn docker-containers
|
||||
set -e
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
docker compose -f traefik-docker-compose.yml pull && docker compose -f traefik-docker-compose.yml up -d
|
||||
docker compose -f vpn-docker-compose.yml pull && docker compose -f vpn-docker-compose.yml up -d
|
||||
docker compose -f watchtower-docker-compose.yml pull && docker compose -f watchtower-docker-compose.yml up -d
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user