Added new environment for the actual network implementation. Most YML files are combinations from individual compose files

This commit is contained in:
2024-02-18 11:50:20 +00:00
parent 248b4c23aa
commit 2fad853b75
6 changed files with 337 additions and 0 deletions
+78
View File
@@ -0,0 +1,78 @@
version: "3.7"
#volumes:
# pihole:
services:
pihole:
image: pihole/pihole:latest
container_name: "mason-ph"
hostname: "pihole"
# user: "root:root"
ports:
- "53:53/udp"
- "53:53/tcp"
- "80:80"
# - target: 53
# published: 53
# protocol: tcp
# - target: 53
# published: 53
# protocol: udp
# - target: 80
# published: 8053
# protocol: tcp
# network_mode: "host"
volumes:
- type: bind
source: /pihole_data
target: /etc/pihole
# - pihole:/etc/pihole
# - "/home/ansible/stacks/lighttpd/external.conf:/etc/lighttpd/external.conf"
# - dnsmasq:/etc/dnsmasq.d
# depends_on:
# - cloudflared
restart: always
environment:
TZ: Europe/Amsterdam
# - "DNS1=1.1.1.1"
# - "REV_SERVER=true"
# - "REV_SERVER_CIDR=192.168.1.0/24" #Update these fields to match your environment
# - "REV_SERVER_TARGET=192.168.1.1"
# - "REV_SERVER_DOMAIN=home.local"
WEBPASSWORD: 'password'
# networks:
# - web
# deploy:
# mode: global
# replicas: 1
# placement:
# constraints:
# - "node.labels.dns==true"
pihole_exporter:
image: ekofr/pihole-exporter
container_name: pihole_exporter
expose:
- 9617
environment:
PIHOLE_HOSTNAME: pihole
# PIHOLE_PORT: 8053
PIHOLE_PASSWORD: password
INTERVAL: 30s
PORT: 9617
restart: always
# deploy:
# labels:
# - "traefik.enable=false"
# mode: replicated
# replicas: 1
# placement:
# constraints:
# - "node.hostname==swarm-master"
networks:
web:
# external: true
name: web
+78
View File
@@ -0,0 +1,78 @@
version: "3.7"
#volumes:
# pihole:
services:
pihole:
image: pihole/pihole:latest
container_name: "phil-ph"
hostname: "pihole"
# user: "root:root"
ports:
- "53:53/udp"
- "53:53/tcp"
- "80:80"
# - target: 53
# published: 53
# protocol: tcp
# - target: 53
# published: 53
# protocol: udp
# - target: 80
# published: 8053
# protocol: tcp
# network_mode: "host"
volumes:
- type: bind
source: /pihole_data
target: /etc/pihole
# - pihole:/etc/pihole
# - "/home/ansible/stacks/lighttpd/external.conf:/etc/lighttpd/external.conf"
# - dnsmasq:/etc/dnsmasq.d
# depends_on:
# - cloudflared
restart: always
environment:
TZ: Europe/Amsterdam
# - "DNS1=1.1.1.1"
# - "REV_SERVER=true"
# - "REV_SERVER_CIDR=192.168.1.0/24" #Update these fields to match your environment
# - "REV_SERVER_TARGET=192.168.1.1"
# - "REV_SERVER_DOMAIN=home.local"
WEBPASSWORD: 'password'
# networks:
# - web
# deploy:
# mode: global
# replicas: 1
# placement:
# constraints:
# - "node.labels.dns==true"
pihole_exporter:
image: ekofr/pihole-exporter
container_name: pihole_exporter
expose:
- 9617
environment:
PIHOLE_HOSTNAME: pihole
# PIHOLE_PORT: 8053
PIHOLE_PASSWORD: password
INTERVAL: 30s
PORT: 9617
restart: always
# deploy:
# labels:
# - "traefik.enable=false"
# mode: replicated
# replicas: 1
# placement:
# constraints:
# - "node.hostname==swarm-master"
networks:
web:
# external: true
name: web
+41
View File
@@ -0,0 +1,41 @@
version: '3'
volumes:
registrystorage:
driver_opts:
type: nfs
o: addr=dockerstorage,nfsvers=4
device: :/dockerstorage/registry
registryauth:
driver_opts:
type: nfs
o: addr=dockerstorage,nfsvers=4
device: :/dockerstorage/registry/auth
services:
registry:
image: registry:2
volumes:
- registryauth:/auth
- registrystorage:/var/lib/registry
environment:
- REGISTRY_AUTH=htpasswd
- REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm
- REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd
- VIRTUAL_HOST=registry.vbchaos.nl
- VIRTUAL_PORT=5000
- VIRTUAL_PROTO=http
ports:
- '5000:5000'
registrybrowser:
image: klausmeyer/docker-registry-browser
ports:
- 8082:8080
environment:
- 'DOCKER_REGISTRY_URL=https://registry.vbchaos.nl'
- 'PUBLIC_REGISTRY_URL=registry.vbchaos.nl'
- 'NO_SSL_VERIFICATION=true'
- 'ENABLE_DELETE_IMAGES=true'
+100
View File
@@ -0,0 +1,100 @@
version: '3.8'
volumes:
prometheus_data:
driver_opts:
type: nfs
o: addr=dockerstorage,nfsvers=4
device: :/grafana_prometheus_data
grafana_data:
driver_opts:
type: nfs
o: addr=dockerstorage,nfsvers=4
device: :/dockerstorage/grafana/grafana
loki_data:
driver_opts:
type: nfs
o: addr=dockerstorage,nfsvers=4
device: :/dockerstorage/grafana/loki
services:
loki:
image: grafana/loki:2.6.1
user: "0:0"
volumes:
- loki_data:/loki
ports:
- "3100:3100"
command: -config.file=/etc/loki/local-config.yaml
promtail:
image: grafana/promtail:2.6.1
user: "0:0"
volumes:
- /var/log:/var/log
command: -config.file=/etc/promtail/config.yml
prometheus:
user: "0:0"
hostname: prometheus
image: prom/prometheus
environment:
- TZ=Europe/Berlin #change Time Zone if needed
configs:
- source: prometheus_config
target: /etc/prometheus/prometheus.yml
volumes:
- prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
ports:
- 9090:9090
grafana:
user: "0:0"
hostname: grafana
image: grafana/grafana
depends_on:
- influx
environment:
- TZ=Europe/Amsterdam
configs:
- source: grafana_config
target: /etc/grafana/grafana.ini
volumes:
- grafana_data:/var/lib/grafana
ports:
- 3300:3000
node-exporter:
image: prom/node-exporter:latest
deploy:
mode: global
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
command:
- '--path.procfs=/host/proc'
- '--path.rootfs=/rootfs'
- '--path.sysfs=/host/sys'
- '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
ports:
- "9100:9100"
tado-exporter:
user: "1000:1000"
image: registry.vbchaos.nl/tado-exporter:arm64
hostname: tado-exporter
environment:
EXPORTER_USERNAME: matthias.mitscherlich@gmail.com
EXPORTER_PASSWORD: 14Mai1984
ports:
- "9898:9898"
@@ -0,0 +1,39 @@
version: '3.2'
services:
agent:
image: portainer/agent:2.19.4
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
networks:
- agent_network
deploy:
mode: global
placement:
constraints: [node.platform.os == linux]
portainer:
image: portainer/portainer-ce:2.19.4
command: -H tcp://tasks.agent:9001 --tlsskipverify
ports:
- "9443:9443"
- "9000:9000"
- "8000:8000"
volumes:
- portainer_data:/data
networks:
- agent_network
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == manager]
networks:
agent_network:
driver: overlay
attachable: true
volumes:
portainer_data:
+1
View File
@@ -0,0 +1 @@
docker stack deploy -c grafana.yml --with-registry-auth tado-exporter