grundstruktur der dockerverzeichnisse mit richtegen funktionsfähigen docker files
This commit is contained in:
50
docker/bookstack/docker-compose.yml
Normal file
50
docker/bookstack/docker-compose.yml
Normal file
@@ -0,0 +1,50 @@
|
||||
version: "3"
|
||||
services:
|
||||
bookstack:
|
||||
image: lscr.io/linuxserver/bookstack:latest
|
||||
container_name: bookstack
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- APP_URL=https://bookstack.hessenkamp-server.de
|
||||
- DB_HOST=bookstack_db
|
||||
- DB_PORT=3306
|
||||
- DB_USER=bookstack
|
||||
- DB_PASS=ObV2rbC9MgBKGCZjTLI2 # Ändern Sie dies!
|
||||
- DB_DATABASE=bookstackapp
|
||||
volumes:
|
||||
- ../containerdaten/bookstack/config:/config
|
||||
ports:
|
||||
- 6875:80
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- bookstack_db
|
||||
networks:
|
||||
- traefik_network
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.bookstack.rule=Host(`bookstack.hessenkamp-server.de`)"
|
||||
- "traefik.http.routers.bookstack.entrypoints=websecure"
|
||||
- "traefik.http.routers.bookstack.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.services.bookstack.loadbalancer.server.port=80"
|
||||
|
||||
bookstack_db:
|
||||
image: lscr.io/linuxserver/mariadb:latest
|
||||
container_name: bookstack_db
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- MYSQL_ROOT_PASSWORD=ObV2rbC9MgBKGCZjTLI2 # Ändern Sie dies!
|
||||
- TZ=Europe/Berlin
|
||||
- MYSQL_DATABASE=bookstackapp
|
||||
- MYSQL_USER=bookstack
|
||||
- MYSQL_PASSWORD=ObV2rbC9MgBKGCZjTLI2 # Muss mit DB_PASS übereinstimmen
|
||||
volumes:
|
||||
- ../containerdaten/bookstack/db:/config
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- traefik_network
|
||||
|
||||
networks:
|
||||
traefik_network:
|
||||
external: true
|
||||
21
docker/duplicati/docker-compose.yml
Normal file
21
docker/duplicati/docker-compose.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
networks:
|
||||
traefik_network:
|
||||
external: true
|
||||
services:
|
||||
duplicati:
|
||||
container_name: duplicati
|
||||
image: lscr.io/linuxserver/duplicati:latest
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.duplicati.rule=Host(`duplicati.hessenkamp-server.de`)
|
||||
- traefik.http.routers.duplicati.entrypoints=websecure
|
||||
- traefik.http.routers.duplicati.tls.certresolver=letsencrypt
|
||||
- traefik.http.services.duplicati.loadbalancer.server.port=8200
|
||||
networks:
|
||||
- traefik_network
|
||||
restart: always
|
||||
volumes:
|
||||
- /home/andiamolino/backups:/backups
|
||||
- ../containerdaten/duplicati/config:/config
|
||||
- /:/source:ro
|
||||
version: '3'
|
||||
26
docker/elasticsearch/docker-compose.yml
Normal file
26
docker/elasticsearch/docker-compose.yml
Normal file
@@ -0,0 +1,26 @@
|
||||
version: '3'
|
||||
|
||||
networks:
|
||||
traefik_network:
|
||||
external: true
|
||||
|
||||
services:
|
||||
elasticsearch:
|
||||
container_name: elasticsearch
|
||||
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.10
|
||||
environment:
|
||||
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
|
||||
- "discovery.type=single-node"
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.elasticsearch.rule=Host(`elasticsearch.hessenkamp-server.de`)
|
||||
- traefik.http.routers.elasticsearch.entrypoints=websecure
|
||||
- traefik.http.routers.elasticsearch.tls.certresolver=letsencrypt
|
||||
- traefik.http.services.elasticsearch.loadbalancer.server.port=9200
|
||||
networks:
|
||||
- traefik_network
|
||||
restart: always
|
||||
volumes:
|
||||
- ../containerdaten/elasticsearch/data:/usr/share/elasticsearch/data
|
||||
ports:
|
||||
- "9200:9200"
|
||||
27
docker/gitea/docker-compose.yml
Normal file
27
docker/gitea/docker-compose.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
gitea:
|
||||
image: gitea/gitea:latest
|
||||
container_name: gitea
|
||||
environment:
|
||||
- USER_UID=1000
|
||||
- USER_GID=1000
|
||||
- GITEA__database__DB_TYPE=sqlite3
|
||||
restart: always
|
||||
networks:
|
||||
- traefik_network
|
||||
volumes:
|
||||
- ../containerdaten/gitea/data:/data
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.gitea.rule=Host(`gitea.hessenkamp-server.de`)"
|
||||
- "traefik.http.routers.gitea.entrypoints=websecure"
|
||||
- "traefik.http.routers.gitea.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.services.gitea.loadbalancer.server.port=3000"
|
||||
|
||||
networks:
|
||||
traefik_network:
|
||||
external: true
|
||||
21
docker/grafana/docker-compose.yml
Normal file
21
docker/grafana/docker-compose.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
grafana:
|
||||
image: grafana/grafana:latest
|
||||
container_name: grafana
|
||||
restart: always
|
||||
networks:
|
||||
- traefik_network
|
||||
volumes:
|
||||
- ../containerdaten/grafana/data:/var/lib/grafana
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.grafana.rule=Host(`grafana.hessenkamp-server.de`)"
|
||||
- "traefik.http.routers.grafana.entrypoints=websecure"
|
||||
- "traefik.http.routers.grafana.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.services.grafana.loadbalancer.server.port=3000"
|
||||
|
||||
networks:
|
||||
traefik_network:
|
||||
external: true
|
||||
53
docker/invoiceNinja/docker-compose.yml
Normal file
53
docker/invoiceNinja/docker-compose.yml
Normal file
@@ -0,0 +1,53 @@
|
||||
|
||||
services:
|
||||
server:
|
||||
container_name: invoiceninja-server
|
||||
image: nginx
|
||||
restart: always
|
||||
env_file: env
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- ./config/nginx/in-vhost.conf:/etc/nginx/conf.d/in-vhost.conf:ro
|
||||
- ./docker/app/public:/var/www/app/public:ro
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.invoiceninja.rule=Host(`invoice.hessenkamp-server.de`)"
|
||||
- "traefik.http.routers.invoiceninja.entrypoints=websecure"
|
||||
- "traefik.http.routers.invoiceninja.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.services.invoiceninja.loadbalancer.server.port=80"
|
||||
depends_on:
|
||||
- app
|
||||
networks:
|
||||
- traefik_network
|
||||
|
||||
app:
|
||||
container_name: invoiceninja-app
|
||||
image: invoiceninja/invoiceninja:5
|
||||
env_file: env
|
||||
restart: always
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- ./config/hosts:/etc/hosts:ro
|
||||
- ./docker/app/public:/var/www/app/public:rw,delegated
|
||||
- ./docker/app/storage:/var/www/app/storage:rw,delegated
|
||||
depends_on:
|
||||
- db
|
||||
networks:
|
||||
- traefik_network
|
||||
|
||||
db:
|
||||
container_name: invoiceninja-db
|
||||
image: mariadb:10.4
|
||||
restart: always
|
||||
env_file: env
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- ./docker/mysql/data:/var/lib/mysql:rw,delegated
|
||||
- ./docker/mysql/bak:/backups:rw
|
||||
- ./config/mysql/backup-script:/etc/cron.weekly/weekly:ro
|
||||
networks:
|
||||
- traefik_network
|
||||
|
||||
networks:
|
||||
traefik_network:
|
||||
external: true
|
||||
20
docker/logstash/docker-compose.yml
Normal file
20
docker/logstash/docker-compose.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
networks:
|
||||
traefik_network:
|
||||
external: true
|
||||
services:
|
||||
logstash:
|
||||
container_name: logstash
|
||||
image: docker.elastic.co/logstash/logstash:7.17.10
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.logstash.rule=Host(`logstash.hessenkamp-server.de`)
|
||||
- traefik.http.routers.logstash.entrypoints=websecure
|
||||
- traefik.http.routers.logstash.tls.certresolver=letsencrypt
|
||||
- traefik.http.services.logstash.loadbalancer.server.port=5044
|
||||
networks:
|
||||
- traefik_network
|
||||
restart: always
|
||||
volumes:
|
||||
- ../containerdaten/logstash/config:/usr/share/logstash/config
|
||||
- ../containerdaten/logstash/pipeline:/usr/share/logstash/pipeline
|
||||
version: '3'
|
||||
28
docker/portainer/docker-compose.yml
Normal file
28
docker/portainer/docker-compose.yml
Normal file
@@ -0,0 +1,28 @@
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
portainer:
|
||||
image: portainer/portainer-ce:latest
|
||||
container_name: portainer
|
||||
restart: always
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- portainer_data:/data
|
||||
networks:
|
||||
- traefik_network
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.portainer.rule=Host(`portainer.hessenkamp-server.de`)"
|
||||
- "traefik.http.routers.portainer.entrypoints=websecure"
|
||||
- "traefik.http.routers.portainer.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.services.portainer.loadbalancer.server.port=9000"
|
||||
|
||||
volumes:
|
||||
portainer_data:
|
||||
|
||||
networks:
|
||||
traefik_network:
|
||||
external: true
|
||||
|
||||
19
docker/prometheus/docker-compose.yml
Normal file
19
docker/prometheus/docker-compose.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
networks:
|
||||
traefik_network:
|
||||
external: true
|
||||
services:
|
||||
prometheus:
|
||||
container_name: prometheus
|
||||
image: prom/prometheus:latest
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.prometheus.rule=Host(`prometheus.hessenkamp-server.de`)
|
||||
- traefik.http.routers.prometheus.entrypoints=websecure
|
||||
- traefik.http.routers.prometheus.tls.certresolver=letsencrypt
|
||||
- traefik.http.services.prometheus.loadbalancer.server.port=9090
|
||||
networks:
|
||||
- traefik_network
|
||||
restart: always
|
||||
volumes:
|
||||
- ../containerdaten/prometheus/data:/data
|
||||
version: '3'
|
||||
37
docker/traefik/docker-compose.yml
Normal file
37
docker/traefik/docker-compose.yml
Normal file
@@ -0,0 +1,37 @@
|
||||
version: '3'
|
||||
services:
|
||||
reverse-proxy:
|
||||
image: traefik:v3.1
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- ./traefik.yml:/etc/traefik/traefik.yml
|
||||
- ./acme.json:/acme.json
|
||||
networks:
|
||||
- traefik_network
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.dashboard.rule=Host(`traefik.hessenkamp-server.de`)"
|
||||
- "traefik.http.routers.dashboard.service=api@internal"
|
||||
- "traefik.http.routers.dashboard.middlewares=auth"
|
||||
- "traefik.http.middlewares.auth.basicauth.users=admino:$$apr1$$RaHHY28p$$EMckBAfuRv1BF2Qvy40d20"
|
||||
- "traefik.http.routers.dashboard.entrypoints=websecure"
|
||||
- "traefik.http.routers.dashboard.tls=true"
|
||||
- "traefik.http.routers.dashboard.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)"
|
||||
- "traefik.http.routers.http-catchall.entrypoints=web"
|
||||
- "traefik.http.routers.http-catchall.middlewares=redirect-to-https"
|
||||
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
|
||||
networks:
|
||||
traefik_network:
|
||||
name: traefik_network
|
||||
|
||||
20
docker/traefik/traefik.yml
Normal file
20
docker/traefik/traefik.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
api:
|
||||
dashboard: true
|
||||
|
||||
entryPoints:
|
||||
web:
|
||||
address: ":80"
|
||||
websecure:
|
||||
address: ":443"
|
||||
|
||||
providers:
|
||||
docker:
|
||||
exposedByDefault: false
|
||||
|
||||
certificatesResolvers:
|
||||
letsencrypt:
|
||||
acme:
|
||||
email: alexander@hessenkamp.de
|
||||
storage: acme.json
|
||||
httpChallenge:
|
||||
entryPoint: web
|
||||
37
docker/wg-easy/docker-compose.yml
Normal file
37
docker/wg-easy/docker-compose.yml
Normal file
@@ -0,0 +1,37 @@
|
||||
version: "3"
|
||||
services:
|
||||
wg-easy:
|
||||
image: weejewel/wg-easy
|
||||
container_name: wg-easy
|
||||
environment:
|
||||
- WG_HOST=wgeasy.hessenkamp-server.de
|
||||
- PASSWORD=!(hB1nDerAdn1n
|
||||
- WG_PORT=51820
|
||||
- WG_DEFAULT_ADDRESS=10.8.0.x
|
||||
- WG_DEFAULT_DNS=1.1.1.1
|
||||
volumes:
|
||||
- ../containerdaten/wg-easy:/etc/wireguard
|
||||
ports:
|
||||
- "51820:51820/udp"
|
||||
- "51821:51821/tcp"
|
||||
restart: unless-stopped
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
- SYS_MODULE
|
||||
sysctls:
|
||||
- net.ipv4.conf.all.src_valid_mark=1
|
||||
- net.ipv4.ip_forward=1
|
||||
networks:
|
||||
- traefik_network
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.wg-easy.rule=Host(`wgeasy.hessenkamp-server.de`)"
|
||||
- "traefik.http.routers.wg-easy.entrypoints=websecure"
|
||||
- "traefik.http.routers.wg-easy.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.services.wg-easy.loadbalancer.server.port=51821"
|
||||
- "traefik.http.routers.wg-easy.middlewares=wg-easy-auth"
|
||||
- "traefik.http.middlewares.wg-easy-auth.basicauth.users=admino:$$apr1$$ffntQ3Qe$$WPCeUgCF7jgWYuJ6FyrC9."
|
||||
|
||||
networks:
|
||||
traefik_network:
|
||||
external: true
|
||||
54
docker/wireguard-ui/docker-compose.yml
Normal file
54
docker/wireguard-ui/docker-compose.yml
Normal file
@@ -0,0 +1,54 @@
|
||||
version: "3"
|
||||
services:
|
||||
wireguard:
|
||||
image: linuxserver/wireguard
|
||||
container_name: wireguard
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
- SYS_MODULE
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- SERVERURL=wgcool.hessenkamp-server.de
|
||||
- SERVERPORT=51820
|
||||
- PEERS=1
|
||||
- PEERDNS=auto
|
||||
- INTERNAL_SUBNET=10.13.13.0
|
||||
volumes:
|
||||
- ./config:/config
|
||||
- /lib/modules:/lib/modules
|
||||
ports:
|
||||
- 51820:51820/udp
|
||||
sysctls:
|
||||
- net.ipv4.conf.all.src_valid_mark=1
|
||||
restart: unless-stopped
|
||||
|
||||
wireguard-ui:
|
||||
image: ngoduykhanh/wireguard-ui:latest
|
||||
container_name: wireguard-ui
|
||||
depends_on:
|
||||
- wireguard
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
environment:
|
||||
- WGUI_USERNAME=admino
|
||||
- WGUI_PASSWORD=!(hB1nDerAdn1n
|
||||
- WGUI_MANAGE_START=true
|
||||
- WGUI_MANAGE_RESTART=true
|
||||
volumes:
|
||||
- ./config:/etc/wireguard
|
||||
- ./db:/app/db
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.wireguard-ui.rule=Host(`wgcool.hessenkamp-server.de`)"
|
||||
- "traefik.http.routers.wireguard-ui.entrypoints=websecure"
|
||||
- "traefik.http.routers.wireguard-ui.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.services.wireguard-ui.loadbalancer.server.port=5000"
|
||||
- "traefik.http.routers.wireguard-ui.middlewares=wireguard-auth"
|
||||
- "traefik.http.middlewares.wireguard-auth.basicauth.users=admino:$$apr1$$ffntQ3Qe$$WPCeUgCF7jgWYuJ6FyrC9."
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
default:
|
||||
external: true
|
||||
name: traefik_network
|
||||
Reference in New Issue
Block a user