-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
267 lines (251 loc) · 8.17 KB
/
docker-compose.yaml
File metadata and controls
267 lines (251 loc) · 8.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
version: "3.8"
services:
# Portainer CE
# Managing containers via nice web UI
portainer:
container_name: portainer
image: portainer/portainer-ce
restart: always
ports:
- "9000:9000/tcp"
environment:
- TZ=Europe/Lisbon
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ${ALBERTO_HOME_DIR}/portainer:/data
homeassistant:
container_name: homeassistant
image: "ghcr.io/home-assistant/home-assistant:stable"
volumes:
- ${ALBERTO_HOME_DIR}/homeassistant/config:/config
- /etc/localtime:/etc/localtime:ro
- /run/dbus:/run/dbus:ro
#devices:
# - /dev/ttyUSB0:/dev/ttyUSB0
healthcheck:
test: curl -k https://localhost:8123 || exit 1
retries: 5
start_period: 2m
restart: unless-stopped
privileged: true
network_mode: host
depends_on:
- mariadb
- influxdb
#to fix bluetooth_tracker issue https://community.home-assistant.io/t/how-do-i-fix-unable-to-install-package-pybluez-0-22-error/579478/7
command: /bin/sh -c "apk add gcc musl-dev bluez-dev ; /init"
dns:
- 192.168.1.1
- 8.8.8.8
# Duplicati
# Free backup software to store encrypted backups online
duplicati:
container_name: duplicati
image: lscr.io/linuxserver/duplicati
env_file:
- .env
volumes:
- ${ALBERTO_HOME_DIR}/duplicati/config/:/config
- ${ALBERTO_HOME_DIR}:/source
ports:
- 8200:8200
restart: unless-stopped
# MariaDB
# A database Nginx Proxy Manager and Umami
mariadb:
container_name: mariadb
image: mariadb
restart: unless-stopped
network_mode: host
volumes:
- ${ALBERTO_HOME_DIR}/mariadb/dbdata:/var/lib/mysql
- /etc/localtime:/etc/localtime:ro
- ${ALBERTO_HOME_DIR}/mariadb/config/mariadb.conf.d:/etc/mysql/mariadb.conf.d
- ${ALBERTO_HOME_DIR}/mariadb/init:/docker-entrypoint-initdb.d # FIX entrypoint
env_file:
- .env
# InfluxDB
# Open-source time series database
influxdb:
container_name: influxdb
image: influxdb
restart: unless-stopped
ports:
- "8086:8086/tcp" # So we can access the WebUI
volumes:
- ${ALBERTO_HOME_DIR}/influxdb/data:/var/lib/influxdb2
- ${ALBERTO_HOME_DIR}/influxdb/config/:/etc/influxdb2
ulimits:
nofile:
soft: 32768
hard: 32768
env_file:
- .env
# Adminer
# A dead-simple database manager
adminer:
container_name: adminer
image: adminer
restart: unless-stopped
environment:
ADMINER_PLUGINS: frames
ports:
- 8082:8080
depends_on:
- mariadb
# Mosquitto
# Message broker that implements the MQTT protocol
mosquitto:
container_name: mosquitto
image: eclipse-mosquitto
restart: unless-stopped
user: 1883:1883
ports:
- "1883:1883" # MQTT
- "8883:8883" # MQTTS (secure)
- "9001:9001" # WebSockets
volumes:
- "${ALBERTO_HOME_DIR}/mosquitto/config:/mosquitto/config"
- "${ALBERTO_HOME_DIR}/mosquitto/data:/mosquitto/data"
- "${ALBERTO_HOME_DIR}/mosquitto/log:/mosquitto/log"
env_file:
- .env
zigbee2mqtt:
container_name: zigbee2mqtt
image: koenkk/zigbee2mqtt
restart: unless-stopped
volumes:
- "${ALBERTO_HOME_DIR}/zigbee2mqtt/data:/app/data"
- /run/udev:/run/udev:ro
ports:
# Frontend port
- 8080:8080
devices:
# Make sure this matched your adapter location
- /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_6eff811877d9eb119d90178e6fe9f4d9-if00-port0:/dev/ttyUSB0
env_file:
- .env
depends_on:
- mosquitto
# WireGuard Easy
# WireGuard is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography
# Be sure to forward UDP port 51820 from your router.
wg-easy:
container_name: wg-easy
image: weejewel/wg-easy
restart: unless-stopped
profiles:
- donotstart #do not start service
ports:
- "51820:51820/udp"
- "51821:51821/tcp"
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.src_valid_mark=1
volumes:
- "${ALBERTO_HOME_DIR}/wireguard:/etc/wireguard"
env_file:
- .env
labels:
- "traefik.enable=true"
## HTTP Routers
- "traefik.http.routers.wireguard-rtr.entrypoints=https"
- "traefik.http.routers.wireguard-rtr.rule=HostHeader(`WG_HOST`)"
- "traefik.http.routers.wireguard-rtr.tls=true"
## Middlewares
- "traefik.http.routers.wireguard-rtr.middlewares=chain-authelia@file"
## HTTP Services
- "traefik.http.routers.wireguard-rtr.service=wireguard-svc"
- "traefik.http.services.wireguard-svc.loadbalancer.server.port=51821"
## UDP
- "traefik.udp.routers.wireguard-udp.entrypoints=wireguard"
- "traefik.udp.routers.wireguard-udp.service=wireguard-udp-svc"
- "traefik.udp.services.wireguard-udp-svc.loadbalancer.server.port=51820"
# What's Up Docker
# What's Up Docker (WUD) is a monitoring tool that keeps Docker container versions up-to-date by notifying users whenever a new version is available.
# https://fmartinou.github.io/whats-up-docker/
whatsupdocker:
image: fmartinou/whats-up-docker
container_name: wud
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- "${ALBERTO_HOME_DIR}/whatsupdocker:/store"
env_file:
- .env
environment:
# Watch the local docker host every day at 1am
- WUD_WATCHER_LOCAL_CRON=0 1 * * *
- WUD_TRIGGER_APPRISE_LOCAL_URL=http://apprise:3001
- WUD_TRIGGER_APPRISE_LOCAL_TAG=devops # the tags to use with the config (optional)
- WUD_TRIGGER_APPRISE_SIMPLETITLE=Container $${name} can be updated
- WUD_TRIGGER_APPRISE_SIMPLEBODY=Container $${name} can be updated from version $${local} to version $${remote}
ports:
- 3000:3000
healthcheck:
test: wget --no-verbose --tries=1 --no-check-certificate --spider http://localhost:3000
interval: 10s
timeout: 10s
retries: 3
start_period: 10s
depends_on:
- apprise
# Apprise
# Apprise API was designed to easily fit into existing (and new) eco-systems that are looking for a simple notification solution.
# https://github.com/caronc/apprise-api
apprise:
image: caronc/apprise
container_name: apprise
ports:
- 3001:8000
volumes:
- "${ALBERTO_HOME_DIR}/apprise_api/config:/.config"
# Diun
# Docker Image Update Notifier is a CLI application written in Go and delivered as a single executable (and a Docker image)
# to receive notifications when a Docker image is updated on a Docker registry.
# https://crazymax.dev/diun/
diun:
container_name: diun
image: crazymax/diun:latest
command: serve
volumes:
- "${ALBERTO_HOME_DIR}/diun/data:/data"
- /var/run/docker.sock:/var/run/docker.sock
env_file:
- .env
environment:
- "DIUN_WATCH_SCHEDULE=0 19 * * FRI,SAT,SUN"
- "LOG_LEVEL=info"
- "LOG_JSON=false"
restart: always
# HA Connect Life API Connector
# Connectlife API proxy / MQTT Home Assistant integration
# The add-on utilizes the API acquired through reverse engineering from the Connectlife mobile app to control AC devices and integrates seamlessly with Home Assistant through MQTT, leveraging its discovery feature.
# The reason for the add-on was the lack of official support for device integration.
# https://github.com/Bilan/connectlife-api-connector
ha-connectlife-addon:
container_name: ha-connectlife-addon
image: ha-connectlife-addon
command: /bin/ash -c 'php artisan app:mqtt-loop'
env_file:
- .env
restart: always
# ESPHome is a system to control your microcontrollers by simple yet powerful configuration files
# and control them remotely through Home Automation systems.
# https://esphome.io/
esphome:
container_name: esphome
image: ghcr.io/esphome/esphome
volumes:
- "${ALBERTO_HOME_DIR}/esphome/config:/config"
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "6052:6052/tcp"
restart: unless-stopped
privileged: true
#network_mode: host
env_file:
- .env