Compare commits

...

4 Commits

Author SHA1 Message Date
Simon Milvert d5c4b1e762 Added Server/Dev to .env 2020-08-17 12:46:01 +02:00
Simon Milvert 0e695105eb Moved to new structure 2020-08-17 10:13:31 +02:00
Simon Milvert a5c26d09ed Merge branch 'master' into refactor_docker 2020-08-13 21:09:00 +02:00
Simon Milvert fc41a56667 Start of refactor docker 2020-08-13 21:06:36 +02:00
9 changed files with 156 additions and 169 deletions

17
.env_dev Normal file
View File

@ -0,0 +1,17 @@
UID=1000
GID=1000
DIR=./data
DOMAIN=localhost
MYSQL_USERNAME=root
MYSQL_PASSWORD=qwerty
POSTGRES_USER=root
POSTGRES_PASSWORD=qwerty
PGADMIN_DEFAULT_EMAIL=kalle@asd.com
PGADMIN_DEFAULT_PASSWORD=bajsa
PUID=1000
PGID=1000
TZ=Europe/Stockholm

View File

View File

@ -2,6 +2,33 @@
version: '3'
services:
gitea:
image: gitea/gitea:1.12
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"
grafana:
image: grafana/grafana
container_name: grafana
@ -18,7 +45,7 @@ services:
- "traefik.http.services.grafana-service.loadbalancer.server.port=3000"
influx:
image: quay.io/influxdb/influxdb:2.0.0-beta
image: influxdb
container_name: influxdb
networks:
- backend
@ -29,8 +56,15 @@ services:
- "traefik.http.routers.influx.rule=host(`influx.${DOMAIN}`)"
- "traefik.http.services.influx-service.loadBalancer.server.port=8086"
restart: always
volumes:
- ${DIR}/influx-data:/var/lib/influxdb
environment:
- INFLUX_TOKEN=-I2TAAlmXdJ06yMw9wf-Mztf83ZzYZUdE8Ov2hMrnYabvXUnxL2cZfDzNHR6LTbW7ND5rE95CdvV2-Cy8IMHZQ==
- INFLUXDB_DB=SOME_DB_NAME # set any other to create database on initialization
- INFLUXDB_HTTP_ENABLED=true
- INFLUXDB_HTTP_AUTH_ENABLED=true
- INFLUXDB_ADMIN_USER=SECURE_USERNAME
- INFLUXDB_ADMIN_PASSWORD=SECURE_PASS
telegraf:
container_name: telegraf
@ -40,10 +74,8 @@ services:
- backend
ports:
- 8081:8081
environment:
- INFLUX_TOKEN=-I2TAAlmXdJ06yMw9wf-Mztf83ZzYZUdE8Ov2hMrnYabvXUnxL2cZfDzNHR6LTbW7ND5rE95CdvV2-Cy8IMHZQ==
volumes:
- ./telegraf.conf:/etc/telegraf/telegraf.conf
- ./data-handling/telegraf.conf:/etc/telegraf/telegraf.conf
- /var/run/docker.sock:/var/run/docker.sock

50
docker-compose.home.yml Normal file
View File

@ -0,0 +1,50 @@
version: '3'
services:
node-red:
image: nodered/node-red:latest
container_name: "node-red"
networks:
- backend
environment:
- TZ=Europe/Stockholm
ports:
- "1881:1880"
#devices:
#- /dev/ttyAMA0
restart: unless-stopped
user: ${UID}
volumes:
- ${DIR}/nodered:/data
labels:
- "traefik.http.routers.node-red.rule=Host(`nodered.${DOMAIN}`)"
- "traefik.http.routers.node-red.entrypoints=web"
- "traefik.http.services.node-red-service.loadbalancer.server.port=1880"
- "traefik.http.routers.node-red-secure.entrypoints=web-secure"
- "traefik.http.routers.node-red-secure.rule=Host(`nodered.${DOMAIN}`)"
- "traefik.http.routers.node-red-secure.tls.certresolver=milvert"
- "traefik.http.routers.node-red-secure.tls=true"
- "traefik.enable=true"
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
networks:
frontend:
external: true
backend:
external: false

46
docker-compose.web.yml Normal file
View File

@ -0,0 +1,46 @@
version: '3'
services:
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:
- "./milvert.com/conf:/etc/nginx/conf.d"
- "./milvert.com/html:/html"
whoami:
# A container that exposes an API to show its IP address
container_name: whoami
image: containous/whoami
networks:
- backend
- frontend
ports:
# The HTTP port
- "81:80"
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"
networks:
frontend:
external: true
backend:
external: false

View File

@ -21,116 +21,6 @@ services:
- backend
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
grafana:
image: grafana/grafana:6.4.2
container_name: grafana
networks:
- backend
volumes:
# Data persistency
# sudo mkdir -p /srv/docker/grafana/data; chown 472:472 /srv/docker/grafana/data
- "${DIR}/grafana:/var/lib/grafana"
labels:
- "traefik.enable=true"
- "traefik.http.routers.grafana.rule=Host(`grafana.${DOMAIN}`)"
- "traefik.http.routers.grafana.entrypoints=web"
- "traefik.http.services.grafana-service.loadbalancer.server.port=3000"
influx:
image: influxdb:1.7
container_name: influxdb
networks:
- backend
labels:
- "traefik.http.routers.influx.entryPoints=port8086"
- "traefik.http.routers.influx.rule=host(`influx.${DOMAIN}`)"
- "traefik.http.services.influx-service.loadBalancer.server.port=8086"
restart: always
volumes:
- ${DIR}/influx-data:/var/lib/influxdb
environment:
- INFLUXDB_DB=SOME_DB_NAME # set any other to create database on initialization
- INFLUXDB_HTTP_ENABLED=true
- INFLUXDB_HTTP_AUTH_ENABLED=true
- INFLUXDB_ADMIN_USER=SECURE_USERNAME
- INFLUXDB_ADMIN_PASSWORD=SECURE_PASS
gitea:
image: gitea/gitea:1.12
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
@ -147,7 +37,7 @@ services:
- PGID=1000
- TZ=Europe/Stockholm
volumes:
- ./mosquitto/mosquitto.conf:/mqtt/mosquitto.conf
- ./main/mosquitto/mosquitto.conf:/mqtt/mosquitto.conf
- ${DIR}/mqtt/data:/mqtt/data
- ${DIR}/mqtt/log:/mqtt/log
labels:
@ -156,58 +46,10 @@ services:
- "traefik.http.services.mqtt-service.loadbalancer.server.port=9001"
- "traefik.enable=true"
node-red:
image: nodered/node-red:latest
container_name: "node-red"
networks:
- backend
environment:
- TZ=Europe/Stockholm
ports:
- "1881:1880"
#devices:
#- /dev/ttyAMA0
restart: unless-stopped
user: ${UID}
volumes:
- ${DIR}/nodered:/data
labels:
- "traefik.http.routers.node-red.rule=Host(`nodered.${DOMAIN}`)"
- "traefik.http.routers.node-red.entrypoints=web"
- "traefik.http.services.node-red-service.loadbalancer.server.port=1880"
- "traefik.http.routers.node-red-secure.entrypoints=web-secure"
- "traefik.http.routers.node-red-secure.rule=Host(`nodered.${DOMAIN}`)"
- "traefik.http.routers.node-red-secure.tls.certresolver=milvert"
- "traefik.http.routers.node-red-secure.tls=true"
- "traefik.enable=true"
domoticz:
image: linuxserver/domoticz
container_name: domoticz
networks:
- backend
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Stockholm
#- WEBROOT=domoticz #optional
volumes:
- ${DIR}/domoticz:/config
ports:
- 8081:8080
#devices:
#- path to device:path to device
restart: unless-stopped
labels:
- "traefik.http.routers.domo.rule=Host(`domo.${DOMAIN}`)"
- "traefik.http.routers.domo.entrypoints=web"
- "traefik.http.services.domo-service.loadbalancer.server.port=8080"
- "traefik.enable=true"
reverse-proxy:
traefik:
# The official v2.0 Traefik docker image
image: traefik:v2.1
image: traefik
container_name: "traefik"
networks:
- backend
@ -220,11 +62,11 @@ services:
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
- ./main/traefik.yml:/etc/traefik/traefik.yml
- ./main/static_config.yml:/etc/traefik/static_config.yml
# - "./log.json:/etc/traefik/log.json"
#- ./acme.json:/acme.json
- ./letsencrypt:/letsencrypt
- ./main/letsencrypt:/letsencrypt
dns:
- 8.8.8.8