Initial docker compose files
This commit is contained in:
commit
194b674c7d
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
.env
|
||||||
|
todo
|
||||||
|
certs/
|
||||||
|
traefik/config/
|
21
crafty/compose.yaml
Normal file
21
crafty/compose.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
services:
|
||||||
|
crafty:
|
||||||
|
container_name: crafty_container
|
||||||
|
image: registry.gitlab.com/crafty-controller/crafty-4:latest
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- TZ=Etc/UTC
|
||||||
|
ports:
|
||||||
|
- "8443:8443" # HTTPS
|
||||||
|
# - "8123:8123" # DYNMAP
|
||||||
|
- "19132:19132/udp" # BEDROCK
|
||||||
|
- "25500-25600:25500-25600" # MC SERV PORT RANGE
|
||||||
|
volumes:
|
||||||
|
- ./docker/backups:/crafty/backups
|
||||||
|
- ./docker/logs:/crafty/logs
|
||||||
|
- ./docker/servers:/crafty/servers
|
||||||
|
- ./docker/config:/crafty/app/config
|
||||||
|
- ./docker/import:/crafty/import
|
||||||
|
|
41
ddns/compose.yaml
Normal file
41
ddns/compose.yaml
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
---
|
||||||
|
services:
|
||||||
|
cloudflare-ddns:
|
||||||
|
image: oznu/cloudflare-ddns:latest
|
||||||
|
container_name: cloudflare-ddns
|
||||||
|
environment:
|
||||||
|
- API_KEY=${API_KEY}
|
||||||
|
- ZONE=${DOMAIN}
|
||||||
|
- PROXIED=false
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
ddns-git:
|
||||||
|
image: oznu/cloudflare-ddns:latest
|
||||||
|
container_name: ddns-git
|
||||||
|
environment:
|
||||||
|
- API_KEY=${API_KEY}
|
||||||
|
- ZONE=${DOMAIN}
|
||||||
|
- SUBDOMAIN=git
|
||||||
|
- PROXIED=false
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
ddns-crafty:
|
||||||
|
image: oznu/cloudflare-ddns:latest
|
||||||
|
container_name: ddns-crafty
|
||||||
|
environment:
|
||||||
|
- API_KEY=${API_KEY}
|
||||||
|
- ZONE=${DOMAIN}
|
||||||
|
- SUBDOMAIN=crafty
|
||||||
|
- PROXIED=false
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
ddns-nextcloud:
|
||||||
|
image: oznu/cloudflare-ddns:latest
|
||||||
|
container_name: ddns-nextcloud
|
||||||
|
environment:
|
||||||
|
- API_KEY=${API_KEY}
|
||||||
|
- ZONE=${DOMAIN}
|
||||||
|
- SUBDOMAIN=cloud
|
||||||
|
- PROXIED=false
|
||||||
|
restart: always
|
||||||
|
|
61
gitea/compose.yaml
Normal file
61
gitea/compose.yaml
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
---
|
||||||
|
services:
|
||||||
|
server:
|
||||||
|
image: gitea/gitea:1.23.8
|
||||||
|
container_name: gitea-server
|
||||||
|
environment:
|
||||||
|
- USER_UID=1000
|
||||||
|
- USER_GID=1000
|
||||||
|
- GITEA__database__DB_TYPE=postgres
|
||||||
|
- GITEA__database__HOST=${POSTGRES_HOST:-db}:${POSTGRES_PORT:-5432}
|
||||||
|
- GITEA__database__NAME=${POSTGRES_DB:?POSTGRES_DB not set}
|
||||||
|
- GITEA__database__USER=${POSTGRES_USER:?POSTGRES_USER not set}
|
||||||
|
- GITEA__database__PASSWD=${POSTGRES_PASSWORD:?POSTGRES_PASSWORD not set}
|
||||||
|
- GITEA__server__SSH_PORT=2221
|
||||||
|
- GITEA__server__ROOT_URL=https://git.${DOMAIN}
|
||||||
|
networks:
|
||||||
|
- frontend
|
||||||
|
- backend
|
||||||
|
volumes:
|
||||||
|
- /mnt/hdd1/data/docker/volumes/gitea-data:/data
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
ports:
|
||||||
|
|
||||||
|
- "2221:22"
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
# <--
|
||||||
|
labels:
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.services.gitea.loadbalancer.server.port=3000
|
||||||
|
- traefik.http.services.gitea.loadbalancer.server.scheme=http
|
||||||
|
- traefik.http.routers.gitea-https.entrypoints=websecure
|
||||||
|
- traefik.http.routers.gitea-https.rule=Host(`git.${DOMAIN}`)
|
||||||
|
- traefik.http.routers.gitea-https.tls=true
|
||||||
|
- traefik.http.routers.gitea-https.tls.certresolver=cloudflare
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
db:
|
||||||
|
image: postgres:14
|
||||||
|
container_name: gitea-db
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=${POSTGRES_USER:?POSTGRES_USER not set}
|
||||||
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:?POSTGRES_PASSWORD not set}
|
||||||
|
- POSTGRES_DB=${POSTGRES_DB:?POSTGRES_DB not set}
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
volumes:
|
||||||
|
- /mnt/hdd1/data/docker/volumes/gitea-db:/var/lib/postgresql/data
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
gitea-data:
|
||||||
|
driver: local
|
||||||
|
gitea-db:
|
||||||
|
driver: local
|
||||||
|
|
||||||
|
networks:
|
||||||
|
frontend:
|
||||||
|
external: true
|
||||||
|
backend:
|
||||||
|
external: true
|
50
nextcloud/compose.yaml
Normal file
50
nextcloud/compose.yaml
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
---
|
||||||
|
volumes:
|
||||||
|
nextcloud-main:
|
||||||
|
nextcloud-db:
|
||||||
|
services:
|
||||||
|
nextcloud-app:
|
||||||
|
image: docker.io/library/nextcloud:31.0.5-apache
|
||||||
|
container_name: nextcloud-app
|
||||||
|
volumes:
|
||||||
|
- /mnt/hdd1/nextcloud-data:/var/www/html/data
|
||||||
|
- nextcloud-main:/var/www/html
|
||||||
|
labels:
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.routers.nextcloud.rule=Host(`cloud.${DOMAIN}`)
|
||||||
|
- traefik.http.routers.nextcloud.entrypoints=websecure
|
||||||
|
- traefik.http.routers.nextcloud.tls=true
|
||||||
|
- traefik.http.routers.nextcloud.tls.certresolver=cloudflare
|
||||||
|
- traefik.http.middlewares.nextcloud-headers.headers.customrequestheaders.X-Forwarded-Proto=https
|
||||||
|
|
||||||
|
|
||||||
|
environment:
|
||||||
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||||
|
- POSTGRES_DB=${POSTGRES_DB}
|
||||||
|
- POSTGRES_USER=${POSTGRES_USER}
|
||||||
|
- POSTGRES_HOST=nextcloud-db
|
||||||
|
networks:
|
||||||
|
- frontend
|
||||||
|
- backend
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
nextcloud-db:
|
||||||
|
image: postgres:14
|
||||||
|
container_name: nextcloud-db
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
volumes:
|
||||||
|
- nextcloud-db:/var/lib/postgresql/data
|
||||||
|
environment:
|
||||||
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||||
|
- POSTGRES_DB=${POSTGRES_DB}
|
||||||
|
- POSTGRES_USER=${POSTGRES_USER}
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
networks:
|
||||||
|
frontend:
|
||||||
|
external: true
|
||||||
|
backend:
|
||||||
|
external: true
|
||||||
|
|
||||||
|
|
20
test/docker-compose.yaml
Normal file
20
test/docker-compose.yaml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
version: '3.7'
|
||||||
|
|
||||||
|
services:
|
||||||
|
nginx:
|
||||||
|
image: nginx:latest # Use the latest official Nginx image
|
||||||
|
container_name: nginx_test_site
|
||||||
|
networks:
|
||||||
|
- frontend
|
||||||
|
labels:
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.routers.nginx-http.rule=Host(`${DOMAIN}`) || Host(`www.${DOMAIN}`)
|
||||||
|
- traefik.http.routers.nginx-http.entrypoints=web
|
||||||
|
- traefik.http.routers.nginx-https.tls=true
|
||||||
|
- traefik.http.routers.nginx-https.tls.certresolver=cloudflare
|
||||||
|
- traefik.http.routers.nginx-https.entrypoints=websecure
|
||||||
|
- traefik.http.routers.nginx-https.rule=Host(`${DOMAIN}`) || Host(`www.${DOMAIN}`)
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
frontend:
|
||||||
|
external: true
|
22
traefik/compose.yaml
Normal file
22
traefik/compose.yaml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
services:
|
||||||
|
traefik:
|
||||||
|
image: docker.io/library/traefik:v3.4.0
|
||||||
|
container_name: traefik
|
||||||
|
ports:
|
||||||
|
- 80:80
|
||||||
|
- 443:443
|
||||||
|
#- 8080:8080
|
||||||
|
volumes:
|
||||||
|
- /run/docker.sock:/run/docker.sock:ro
|
||||||
|
- ./config/:/etc/traefik/:ro
|
||||||
|
- ./certs/:/var/traefik/certs/:rw
|
||||||
|
environment:
|
||||||
|
- CF_DNS_API_TOKEN=${CF_DNS_API_TOKEN}
|
||||||
|
networks:
|
||||||
|
- frontend
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
networks:
|
||||||
|
frontend:
|
||||||
|
external: true
|
Loading…
x
Reference in New Issue
Block a user