Dokery
docker-compose.yml
Uptime-kuma
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
restart: unless-stopped
ports:
- "3002:3001"
volumes:
- ./data:/app/data
Homepage
services:
homepage:
image: ghcr.io/gethomepage/homepage:latest
container_name: homepage
restart: unless-stopped
environment:
HOMEPAGE_ALLOWED_HOSTS: "*"
ports:
- "3001:3000"
volumes:
- ./config:/app/config
- /var/run/docker.sock:/var/run/docker.sock:ro
Gitea
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: unless-stopped
ports:
- "3000:3000"
- "2222:22"
volumes:
- ./data:/data
Home Assistant
services:
homeassistant:
container_name: homeassistant
image: "ghcr.io/home-assistant/home-assistant:stable"
volumes:
- /PATH_TO_YOUR_CONFIG:/config
- /etc/localtime:/etc/localtime:ro
- /run/dbus:/run/dbus:ro
restart: unless-stopped
privileged: true
network_mode: host
environment:
TZ: Europe/Amsterdam
ESPHome
services:
esphome:
container_name: esphome
image: ghcr.io/esphome/esphome
volumes:
- /path/to/esphome/config:/config
- /etc/localtime:/etc/localtime:ro
restart: always
privileged: true
network_mode: host
environment:
- USERNAME=test
- PASSWORD=ChangeMe
AdGuard
services:
adguard:
image: adguard/adguardhome
container_name: adguard
restart: unless-stopped
ports:
- "53:53/tcp"
- "53:53/udp"
- "67:67/udp"
- "80:80/tcp"
- "3000:3000/tcp"
volumes:
- ./work:/opt/adguardhome/work
- ./conf:/opt/adguardhome/conf
MQTT
Dla Mosquitto (MQTT) przygotuj katalog na dane:
mkdir -p /opt/docker/mosquitto/config
mkdir -p /opt/docker/mosquitto/data
mkdir -p /opt/docker/mosquitto/log
Utwórz plik konfiguracyjny:
sudo nano /opt/docker/mosquitto/config/mosquitto.conf
Wklej:
listener 1883
allow_anonymous false
password_file /mosquitto/config/passwd
persistence true
persistence_location /mosquitto/data/
log_dest stdout
Utwórz plik z hasłami:
sudo docker run --rm -it \
-v /opt/docker/mosquitto/config:/mosquitto/config \
eclipse-mosquitto \
mosquitto_passwd -c /mosquitto/config/passwd mqtt
Podaj hasło dla użytkownika mqtt.
Jeżeli katalog należy do root, a kontener działa jako użytkownik 1883 (domyślny użytkownik Mosquitto), nadaj odpowiednie uprawnienia:
sudo chown -R 1883:1883 /opt/docker/mosquitto
sudo chmod -R 755 /opt/docker/mosquitto
Jeśli tworzysz pliki z poziomu hosta (np. mosquitto.conf lub passwd), możesz je utworzyć jako root, a następnie zmienić właściciela:
sudo chown 1883:1883 /opt/docker/mosquitto/config/mosquitto.conf
sudo chown 1883:1883 /opt/docker/mosquitto/config/passwd
Stack w Portainerze
W Portainerze wybierz Stacks → Add stack i wklej:
services:
mosquitto:
image: eclipse-mosquitto:2
container_name: mosquitto
restart: unless-stopped
ports:
- "1883:1883"
volumes:
- /opt/docker/mosquitto/config:/mosquitto/config
- /opt/docker/mosquitto/data:/mosquitto/data
- /opt/docker/mosquitto/log:/mosquitto/log
Najprościej przetestować Mosquitto z terminala za pomocą narzędzi mosquitto_pub i mosquitto_sub.
Jeśli nie są zainstalowane:
sudo apt update
sudo apt install mosquitto-clients
1. Otwórz pierwszy terminal – nasłuch
mosquitto_sub -h localhost -p 1883 -u mqtt -P TWOJE_HASŁO -t test/topic -v
Jeśli broker jest na innym komputerze:
mosquitto_sub -h 192.168.100.132 -p 1883 -u mqtt -P TWOJE_HASŁO -t test/topic -v
2. Otwórz drugi terminal – wyślij wiadomość
mosquitto_pub -h localhost -p 1883 -u mqtt -P TWOJE_HASŁO -t test/topic -m "Witaj MQTT!"
lub do zdalnego brokera:
mosquitto_pub -h 192.168.100.132 -p 1883 -u mqtt -P TWOJE_HASŁO -t test/topic -m "Witaj MQTT!"
Homer
1. Utwórz katalogi
mkdir -p /opt/docker/homer/assets
2. Stack homer W Portainerze wybierz Stacks → Add stack i wklej:
services:
homer:
image: b4bz/homer:latest
container_name: homer
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- /opt/docker/homer/assets:/www/assets
skopiowanie danych ze starego na nowy
scp -r /tmp/homer-assets użytkownik@NOWY_SERWER:/opt/docker/homer/assets