forked from earlhickey/home-assistant-pi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
148 lines (133 loc) · 5 KB
/
docker-compose.yml
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
version: '2.4'
services:
# reverse-proxy:
# container_name: reverse-proxy
# image: jwilder/nginx-proxy
# restart: always
# networks:
# my_network:
# ipv4_address: 172.24.0.3
# ports:
# - 80:80
# - 443:443
# # - 1883:1883 # mosquito
# # - 3306:3306 # mysql
# # - 8443:8443 # phoscon deconz
# volumes:
# - "/var/run/docker.sock:/tmp/docker.sock:ro"
# - "./data/reverse-proxy/vhost.d:/etc/nginx/vhost.d:ro"
# - ./data/reverse-proxy/certs/nginx-selfsigned.crt:/etc/nginx/certs/nginx-selfsigned.crt
# - ./data/reverse-proxy/certs/nginx-selfsigned.key:/etc/nginx/certs/nginx-selfsigned.key
# logging:
# driver: "json-file"
# options:
# max-size: "5m"
# max-file: "10"
# # No memory limit support
# cpu_shares: 279
traefik:
image: traefik:v2.9
container_name: traefik
restart: always
# Se usa el socket Docker para detectar dinámicamente los contenedores
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data/traefik/letsencrypt:/letsencrypt
- ./data/traefik/certs:/certs
- ./data/traefik/dynamic.yaml:/dynamic_conf/dynamic.yaml # Archivo de configuración dinámica
command:
# Proveedor Docker y red a usar
- "--providers.docker=true"
- "--providers.docker.network=my_network"
- "--providers.file.filename=/dynamic_conf/dynamic.yaml"
# Definición de entrypoints:
- "--entrypoints.web.address=:80"
- "--entrypoints.internal.address=:443"
- "--entrypoints.immich-ext.address=:8081"
# - "--api.dashboard=true"
# - "--entrypoints.dashboard.address=:8080"
# Configuración de Let's Encrypt para dominios públicos (por ejemplo, para el entrypoint immich-ext)
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
# - "--api.insecure=true"
ports:
# Estos puertos se abren en la Raspberry Pi:
- "80:80" # Para ACME y redirección a HTTPS
- "443:443" # Para el tráfico interno (acceso por homer.mired e immich.mired)
- "8081:8081" # Para el acceso externo a Immich (mired.tplinkdns.com:8081)
logging:
driver: "json-file"
options:
max-size: "5m"
max-file: "10"
# No memory limit support
cpu_shares: 279
networks:
my_network:
ipv4_address: 172.24.0.3
homer:
image: b4bz/homer
container_name: homer
volumes:
- ./data/homer:/www/assets # Make sure your local config directory exists
user: 1000:1000 # default
restart: unless-stopped
networks:
my_network:
ipv4_address: 172.24.0.18
environment:
# - VIRTUAL_HOST=homer.mired
# - VIRTUAL_PORT=8080
# - CERT_NAME=nginx-selfsigned
- TZ=America/Montevideo
- INIT_ASSETS=1 # default, requires the config directory to be writable for the container user (see user option)
labels:
- "traefik.enable=true"
- "traefik.http.services.homer.loadbalancer.server.port=8080"
- "traefik.http.routers.homer.rule=Host(`homer.mired`)"
- "traefik.http.routers.homer.entrypoints=internal"
- "traefik.http.routers.homer.tls=true"
logging:
driver: "json-file"
options:
max-size: "5m"
max-file: "10"
# No memory limit support
cpu_shares: 279
# portainer:
# container_name: portainer
# image: portainer/portainer:1.24.0
# restart: always
# networks:
# my_network:
# ipv4_address: 172.24.0.6
# environment:
# - VIRTUAL_HOST=portainer.mired
# - VIRTUAL_PORT=9000
# - CERT_NAME=nginx-selfsigned
# ports:
# - 8000:8000
# volumes:
# - /var/run/docker.sock:/var/run/docker.sock
# - ./data/portainer:/data
# logging:
# driver: "json-file"
# options:
# max-size: "5m"
# max-file: "10"
networks:
# host_applications:
# name: applications
# driver: bridge
# ipam:
# config:
# - subnet: 172.18.0.0/24
# gateway: 172.18.0.1
my_network:
name: my_network
driver: bridge
ipam:
config:
- subnet: 172.24.0.0/16
gateway: 172.24.0.1