Prejsť na obsah
Accquix Register
Esc
↑↓navigácia↵otvoriť⌘Jnáhľad
Na tejto stránke

Coolify, Dokploy a podobné

Nasadenie na platforme, ktorá spúšťa Docker Compose z Git repozitára, so všetkými tajomstvami v nastaveniach prostredia platformy.

Platformy ako Coolify, Dokploy alebo stacky v Portaineri spúšťajú súbor Docker Compose z Git repozitára a tajomstvá držia vo vlastných nastaveniach. Nevedia spustiť make-secrets.sh, preto referenčné nasadenie docker compose, ktoré číta súbory s tajomstvami, im nevyhovuje. deploy/paas/compose.yaml je to isté riešenie nastavené výlučne cez premenné prostredia.

Hodí sa najmä vtedy, keď už server na niečo iné prevádzkujete: register pridá asi 2,5 GB na disku, náročnejšiu prvú synchronizáciu asi na 15 minút a potom už veľmi málo.

Služba Spúšťa Životný cyklus
postgres PostgreSQL 18 Beží trvalo, s kontrolou zdravia
roles Vytvorí alebo aktualizuje štyri databázové roly Raz pri každom nasadení, ako superpoužívateľ
migrate accquix-register migrate Raz pri každom nasadení
setup Jeden príkaz operátora z REGISTER_SETUP_COMMAND Raz pri každom nasadení; predvolene version
sync accquix-register sync --every 1h Beží trvalo
serve accquix-register serve na porte 8080 Beží trvalo, za proxy platformy

Postup

Pridajte zdroj

Vytvorte zdroj typu Docker Compose z repozitára (alebo vášho forku) so súborom deploy/paas/compose.yaml. Obraz sa zostaví zo zdrojového kódu; keď bude existovať vydaný obraz, nastavte REGISTER_IMAGE.

Nastavte premenné

Mená premenných skopírujte z deploy/paas/.env.example do nastavení prostredia platformy:

openssl rand -hex 32      # jedna hodnota pre každé z piatich hesiel
key=$(openssl rand -hex 24); echo "API kľúč: $key"
printf 'default:%s\n' "$(printf %s "$key" | shasum -a 256 | cut -d' ' -f1)"   # REGISTER_API_KEYS
Premenná Hodnota
POSTGRES_PASSWORD Superpoužívateľ; používa ho len služba roles
REGISTER_MIGRATE_PASSWORD, REGISTER_SYNC_PASSWORD, REGISTER_OPERATOR_PASSWORD, REGISTER_API_PASSWORD Jedno pre každú rolu
REGISTER_API_KEYS meno:sha256hex, odtlačok každého API kľúča; samotný kľúč uložte inde
REGISTER_SETUP_COMMAND suppress --init-empty, len pre prvé nasadenie

Používajte hexadecimálne hodnoty: heslá idú do URL spojení tak, ako sú.

Nasmerujte doménu

Nasmerujte doménu na službu serve, port 8080, s TLS z platformy. Na portoch hostiteľa sa nič nezverejňuje.

Nasaďte a odstráňte príkaz setup

Prvé nasadenie potvrdí, že ide o novú inštaláciu bez námietok na obnovenie; dovtedy API odpovedá 503 reason=setup. Potom REGISTER_SETUP_COMMAND vymažte. Ak by zostal, pri ďalšom nasadení neškodne zlyhá, no po opätovne zostavenej databáze by potvrdil „žiadne námietky“ bez toho, aby to niekto skontroloval.

Počkajte na prvú synchronizáciu

GET /readyz odpovie ready, keď sú zverejnené všetky zdroje, približne po 15 minútach.

Príkazy operátora

REGISTER_SETUP_COMMAND spustí raz ľubovoľný príkaz accquix-register s rolou operátora, no jeho výstup skončí v logoch platformy, kam identifikátor z námietky nepatrí. Používajte ho len na suppress --init-empty. Námietky a ich zálohy spúšťajte zo shellu servera, v Docker sieti projektu (jej meno ukáže platforma), s heslom operátora:

mkdir -p backup && chmod 777 backup     # obraz beží ako uid 65532
docker run --rm --network <sieť projektu> -v "$PWD/backup:/backup" \
  -e REGISTER_OPERATOR_DATABASE_URL="postgres://register_operator:<heslo>@postgres:5432/register?sslmode=disable" \
  <obraz> suppress --export --output /backup/objections.tsv --overwrite

Rovnako sa spúšťa suppress --subject …, --undo alebo --restore /backup/objections.tsv. Čo ktorý robí, je v Prevádzke. Obraz nemá shell, takže docker exec … sh nefunguje.

Spoločný existujúci PostgreSQL

Ak chcete namiesto služby postgres použiť PostgreSQL, ktorý na serveri už beží, vytvorte samostatnú databázu a roly z Databázy a nasmerujte na ňu štyri URL premennými z Konfigurácie. Synchronizácia musí mať priame spojenie, nikdy nie cez PgBouncer.