Docker/docker-compose.yml

160 lines
4.4 KiB
YAML

version: '3'
services:
syncthing:
image: linuxserver/syncthing
container_name: syncthing
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Stockholm
- UMASK_SET=022
volumes:
- ./syncthing/config:/config
- /mnt/johanna_backup:/data1
ports:
- 8384:8384
- 22000:22000
- 21027:21027/udp
restart: unless-stopped
milvert-nginx:
container_name: milvert-nginx
image: nginx:latest
restart: always
networks:
- backend
labels:
- "traefik.enable=true"
#HTTPS
- "traefik.http.routers.milvert-secure.entrypoints=web-secure"
- "traefik.http.routers.milvert-secure.rule=Host(`www.${DOMAIN}`, `${DOMAIN}`)"
- "traefik.http.routers.milvert-secure.priority=1"
# SSL
- "traefik.http.routers.milvert-secure.tls.certresolver=milvert"
- "traefik.http.routers.milvert-secure.tls=true"
volumes:
- "${DIR}/milvert-nginx/conf:/etc/nginx/conf.d"
- "${DIR}/milvert-nginx/html:/html"
zigbee2mqtt:
container_name: zigbee2mqtt
networks:
- backend
image: koenkk/zigbee2mqtt:1.13.0
volumes:
- ${DIR}/zigbee2matt:/app/data
- ${DIR}/zigbee2mqtt_node_log:/root/.npm
devices:
- /dev/ttyACM1:/dev/ttyACM0
environment:
- UID=1000
- GID=1000
- TZ=Europe/Stockholm
gitea:
image: gitea/gitea:1.9.3
container_name: gitea
networks:
- backend
restart: always
environment:
- USER_UID=1001
- USER_GID=1005
volumes:
#- /var/lib/gitea:/data
- ${DIR}/gitea:/data
- /home/git/.ssh:/data/git/.ssh
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "127.0.0.1:2222:22"
- "3000:3000"
labels:
- "traefik.enable=true"
- "traefik.http.services.gitea-service.loadbalancer.server.port=3000"
- "traefik.http.routers.gitea-secure.entrypoints=web-secure"
- "traefik.http.routers.gitea-secure.rule=Host(`gitea.${DOMAIN}`)"
- "traefik.http.routers.gitea-secure.tls.certresolver=milvert"
- "traefik.http.routers.gitea-secure.tls=true"
whoami:
# A container that exposes an API to show its IP address
container_name: whoami
image: containous/whoami
networks:
- backend
labels:
- "traefik.enable=true"
- "traefik.http.routers.whoami-secure.entrypoints=web-secure"
- "traefik.http.routers.whoami-secure.rule=Host(`whoami.${DOMAIN}`)"
- "traefik.http.routers.whoami-secure.tls.certresolver=milvert"
- "traefik.http.routers.whoami-secure.tls=true"
mqtt:
image: eclipse-mosquitto:1.6.10
container_name: mqtt
networks:
- frontend
- backend
restart: always
ports:
- "1883:1883"
- "9001:9001"
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Stockholm
volumes:
- ./mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf
labels:
- "traefik.http.routers.mqtt.rule=Host(`mqtt.${DOMAIN}`)"
- "traefik.http.routers.mqtt.entrypoints=mqtt"
- "traefik.http.services.mqtt-service.loadbalancer.server.port=9001"
- "traefik.enable=true"
traefik:
# The official v2.0 Traefik docker image
image: traefik
container_name: "traefik"
networks:
- backend
- frontend
ports:
# The HTTP port
- "80:80"
- "443:443"
- "8080:8080"
volumes:
# So that Traefik can listen to the Docker events
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik.yml:/etc/traefik/traefik.yml
- ./static_config.yml:/etc/traefik/static_config.yml
# - "./log.json:/etc/traefik/log.json"
#- ./acme.json:/acme.json
- ./letsencrypt:/letsencrypt
dns:
- 8.8.8.8
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.rule=Host(`tra.${DOMAIN}`)"
- "traefik.http.routers.traefik-secure.entrypoints=web-secure"
- "traefik.http.routers.traefik-secure.rule=Host(`tra.${DOMAIN}`)"
- "traefik.http.routers.traefik-secure.tls.certresolver=milvert"
- "traefik.http.routers.traefik-secure.tls=true"
- "traefik.http.services.traefik-service.loadbalancer.server.port=8080"
- "traefik.http.routers.traefik-secure.middlewares=traefik-auth"
- "traefik.http.middlewares.traefik-auth.basicauth.users=simon:$$apr1$$o3vIe.DX$$3XExiBMe8rUo3HujDSYEo0"
networks:
frontend:
external: true
backend:
external: false