-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
145 lines (137 loc) · 4.32 KB
/
docker-compose.yaml
File metadata and controls
145 lines (137 loc) · 4.32 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
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: always
ports:
- "9999:9000" # Web interface
- "8000:8000" # (Optional) Edge agent
volumes:
- /var/run/docker.sock:/var/run/docker.sock # Docker host control
- ${DISK_PATH}/Docker/portainer:/data
mem_limit: 512m
cpus: 0.5
pihole:
container_name: pihole
image: pihole/pihole:2025.08.0
platform: linux/arm64
restart: unless-stopped
network_mode: host # Use host network mode, no additional configuration needed in ports
environment:
TZ: ${TZ}
FTLCONF_webserver_api_password: "${PIHOLE_PWD}" # Password para la web UI
FTLCONF_dns_listeningMode: all
FTLCONF_webserver_port: "7777"
FTLCONF_dns_domain: "redacted"
FTLCONF_dns_bogusPriv: "true"
FTLCONF_dns_reply_host_IPv4: ${PIHOLE_IP}
FTLCONF_dns_reply_host_force4: "true"
volumes:
- ${DISK_PATH}/Docker/pihole/etc-pihole:/etc/pihole
- ${DISK_PATH}/Docker/pihole/etc-dnsmasq.d:/etc/dnsmasq.d
cap_add:
- NET_ADMIN
- SYS_TIME
- SYS_NICE
mem_limit: 512m
cpus: 0.5
tailscale:
image: tailscale/tailscale:latest
container_name: tailscale
restart: unless-stopped
network_mode: host # necesary to expose local services
privileged: true # necessary to manipulate the network
volumes:
- ${DISK_PATH}/Docker/tailscale:/var/lib/tailscale
devices:
- /dev/net/tun:/dev/net/tun
command: sh -c "
tailscaled &
sleep 5 &&
tailscale up \
--authkey=${TS_AUTHKEY} \
--advertise-routes=192.168.1.0/24 \
--advertise-exit-node \
--hostname=homelab-docker"
cap_add:
- NET_ADMIN
- SYS_MODULE
mem_limit: 256m
cpus: 0.25
watchtower:
image: containrrr/watchtower:latest
container_name: watchtower
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WATCHTOWER_CLEANUP=true # delete old images
- WATCHTOWER_POLL_INTERVAL=3600 # update interval in seconds
mem_limit: 128m
cpus: 0.25
cloudflared:
image: cloudflare/cloudflared:2025.8.1
platform: linux/arm64 # for ARM64 architecture
container_name: cloudflared
restart: unless-stopped
command: tunnel --no-autoupdate run --token ${CLOUDFLARED_TOKEN}
environment:
- TUNNEL_TOKEN=${CLOUDFLARED_TOKEN}
networks:
- ha_net
mem_limit: 256m
cpus: 0.25
homeassistant:
container_name: homeassistant
image: homeassistant/home-assistant:2025.7
restart: unless-stopped
volumes:
- ${DISK_PATH}/Docker/homeassistant:/config
environment:
- TZ=${TZ}
ports:
- "8123:8123"
privileged: true
mem_limit: 1536m
cpus: 1.5
networks:
- ha_net
sftpgo:
image: drakkan/sftpgo:v2.6.6
container_name: sftpgo
restart: unless-stopped
ports:
- "6666:2022" # SFTP port
- "9998:8080" # Web UI port
volumes:
- ${DISK_PATH}/Docker/sftpgo:/var/lib/sftpgo
- ${DISK_PATH}/Docker/sftpgo/backups:/srv/sftpgo/backups
- ${DISK_PATH}:/srv/sftpgo/data/${FTP_USER}
environment:
- SFTPGO_USER=${FTP_USER}
- SFTPGO_PASSWORD=${FTP_PASSWORD}
networks:
- default
mem_limit: 512m
cpus: 0.5
homebridge:
image: homebridge/homebridge:latest
restart: always
network_mode: host
volumes:
- ${DISK_PATH}/Docker/homebridge:/homebridge
environment:
- TZ=${TZ}
logging:
driver: json-file
options:
max-size: "10mb"
max-file: "1"
mem_limit: 1024m
cpus: 1.0
networks:
ha_net:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/24