Files
dice-counter/deploy/compose.yaml
T
gitea-actions eaa9c12ebc
binárka / linux (pull_request) Successful in 10s
testy / pytest (3.11) (pull_request) Successful in 1s
testy / pytest (3.12) (pull_request) Successful in 1s
testy / pytest (3.13) (pull_request) Successful in 1s
testy / pytest (3.14) (pull_request) Successful in 0s
Nasazení na server: Proxmox LXC a Docker
Aby se to dalo nechat běžet pořád, ne jen spouštět večer na notebooku.

pve-kostky.sh se pouští na uzlu Proxmoxu, založí kontejner a předá řízení
lxc-install.sh, který uvnitř stáhne vydanou binárku, ověří kontrolní součet
a zapíše službu. Ty dva jsou oddělené schválně: instalátor o Proxmoxu nic
neví, takže se dá pustit i v kontejneru, který sis založil sám. Podoba je
odkoukaná od community-scripts.org, ale nic z jejich frameworku se nestahuje
— jejich build.func si instalační skript hledá natvrdo ve vlastním
repozitáři, takže mimo něj nefunguje.

Docker se staví ze zdrojáků, ne z binárky: image pak jde sestavit pro obě
architektury a nezávisí na tom, jestli release proběhl. Zamčené závislosti
z minula dělají sestavení opakovatelné.

Compose používá síť hostitele, a to je podstatné. V bridge režimu vidí
kontejner uvnitř adresu 172.17.0.2, tabule ji poctivě nabídne a udělá na ni
QR kód — jenže z telefonu je nedosažitelná. Ověřeno, ne odhadnuto; kdo bridge
potřebuje, musí nastavit DICE_HOST.

Aplikace sama nepotřebovala změnit nic. DICE_DB, DICE_PORT a DICE_HOST
pokrývají obojí a v LXC má kontejner vlastní adresu v LAN, takže hledání
adres i QR kód fungují beze změny.
2026-08-22 19:12:57 +02:00

46 lines
1.3 KiB
YAML

# Počitadlo kostek v Dockeru.
#
# cd deploy && docker compose up -d
#
# Počítá se s domácí sítí. Appka nemá přihlašování, tohle ji nijak
# nezabezpečuje a do internetu nepatří.
services:
kostky:
build:
context: ..
dockerfile: deploy/Dockerfile
args:
VERSION: ${VERSION:-vlastní sestavení}
image: kostky:latest
container_name: kostky
restart: unless-stopped
# Python jako PID 1 nesklízí osiřelé procesy a hůř reaguje na signály.
init: true
# Síť hostitele schválně. V bridge režimu kontejner uvnitř vidí adresu
# jako 172.17.0.2, tabule ji poctivě nabídne a vygeneruje na ni QR kód —
# jenže z telefonu je nedosažitelná. Se sítí hostitele appka najde tu
# adresu, na kterou se telefon opravdu dovolá.
#
# Kdo bridge potřebuje, ať zakomentuje řádek níž, odkomentuje ports
# a nastaví DICE_HOST na adresu hostitele v LAN:
#
# ports:
# - "8000:8000"
# environment:
# DICE_HOST: 192.168.1.10
network_mode: host
environment:
DICE_PORT: 8000
DICE_DB: /data/dice.db
volumes:
- kostky-data:/data
volumes:
# Zálohu si stáhneš rovnou z appky přes /export, takže se sem nemusí lézt.
kostky-data: