Čo budete potrebovať
- Server s Linux distribúciou (Debian/Ubuntu odporúčaná) alebo macOS. Linux pre produkčné, macOS na testovanie.
- Minimálne 1 GB RAM, 10 GB disku, 1 vCPU. Odporúčané: 2 GB RAM, 20 GB SSD pre bytovku do 50 bytov.
- Vlastnú doménu alebo subdoménu (napr.
bytovka.example.sk), ktorá DNS A/AAAA záznamom smeruje na IP vášho servera. - Otvorené porty 80 a 443 z internetu na server. Ak ste za router-om, nastavte port-forward. Ak ste za CGNAT alebo firewallom, použite Cloudflare Tunnel.
- SSH prístup na server s sudo právami.
Doménu môžete obstarať za ~10 €/rok napr. cez Websupport, GoDaddy, Namecheap. Ak nechcete vlastnú doménu, môžete využiť DuckDNS (zadarmo) — bytovka.duckdns.org funguje rovnako dobre.
Rýchla inštalácia cez setup.sh (odporúčané)
Pripravený jednoriadkový script automatizuje takmer všetko. Pripojte sa SSH-om na server a spustite:
curl -fsSL https://get.open-resi.app -o setup.sh
chmod +x setup.sh
./setup.sh
Čo script urobí:
- Detekuje OS (Linux distribúcia alebo macOS).
- Ak chýba Docker, doinštaluje ho cez package manager (apt/yum/dnf/brew).
- Ak chýba openssl, doinštaluje.
- Vytvorí adresár
/opt/openresis konfiguráciou. - Vygeneruje bezpečné heslá pre databázu a session secret (cez openssl rand).
- Interaktívne pýta:
- Vašu doménu (napr.
bytovka.example.sk) - Email pre admin účet
- (Voliteľne) SMTP server pre odosielanie emailov, alebo necháte default Brevo s API kľúčom, ktorý si nastavíte neskôr
- Vašu doménu (napr.
- Stiahne docker-compose.yml a Docker image.
- Spustí kontajnery: PostgreSQL, OpenResiApp web, Caddy reverse proxy.
- Caddy automaticky získa Let's Encrypt certifikát pre vašu doménu.
- Vytvorí admin účet a vypíše prvé heslo do konzoly.
Script je idempotentný — môžete ho spustiť opakovane, zachová existujúce dáta a heslá, opraví len to čo treba.
Prvé prihlásenie
Po dokončení skriptu otvorte v prehliadači:
https://vasa-domena.sk
Caddy automaticky presmeruje HTTP → HTTPS, certifikát je platný od prvej sekundy. Uvítací screen vyzve na zadanie:
- Email (rovnaký, ktorý ste zadali pri inštalácii)
- Iniciálne heslo (zobrazil ho setup script — uložte si ho do password managera!)
Po prihlásení vás čaká wizard pre vytvorenie prvej bytovky. Môžete:
- Naimportovať vlastníkov a byty z Kataster LV (PDF) — backend rozparsuje a vytvorí pre-filled tabuľku
- Alebo cez XLSX template (preddefinovaný — stiahnete priamo z wizardu)
- Alebo manuálne zadať vo editovateľnom gride
Manuálna inštalácia cez docker-compose
Ak preferujete manuálny postup pre väčšiu kontrolu, alebo upravený setup (napr. external PostgreSQL, vlastný reverse proxy), stiahnite docker-compose.yml a upravte:
# Vytvorenie adresára
mkdir -p /opt/openresi && cd /opt/openresi
# Stiahnutie docker-compose.yml
curl -fsSL https://raw.githubusercontent.com/open-resiapp/open-resiapp/main/docker-compose.yml \
-o docker-compose.yml
# Vytvorenie .env súboru
cp .env.example .env
nano .env # upraviť heslá, doménu, SMTP
# Spustenie
docker compose up -d
# Sledovanie logov
docker compose logs -f openresi
Minimálne hodnoty, ktoré musíte v .env upraviť:
DOMAIN— vaša doména (napr.bytovka.example.sk)ADMIN_EMAIL— email pre admin účetPOSTGRES_PASSWORD— bezpečné heslo pre PostgreSQL (generujte cezopenssl rand -base64 32)NEXTAUTH_SECRET— secret pre session (rovnako vygenerujte)SMTP_*— konfigurácia odosielania emailov (Brevo, Mailgun, Postmark, alebo vlastný SMTP)
Zálohovanie
Setup script vytvorí cron job, ktorý každú noc o 3:00 spustí backup script:
0 3 * * * /opt/openresi/backup.sh
Script vyrobí:
- PostgreSQL dump (
pg_dump) komprimovaný gzipom - Tar archív súborových príloh (zápisnice, foto papierových hlasov, dokumenty)
- Uloží do
/var/openresi/backups/YYYY-MM-DD/
Retencia 30 dní — staršie zálohy sa automaticky mažú. Toto je local backup; odporúčame nakonfigurovať aj off-site backup na inú lokalitu (S3, Backblaze B2, alebo vlastný NAS) cez rsync alebo restic. Ukážková restic konfigurácia je v docs/backups.md.
Aktualizácie na novú verziu
Aktualizácia je jednoduchá:
cd /opt/openresi
./backup.sh # manuálna záloha pred aktualizáciou
docker compose pull # stiahne novú verziu image-u
docker compose up -d # reštart s novou verziou
docker compose logs -f openresi # sledovanie migrácií
Migrácie PostgreSQL databázy sa spustia automaticky pri štarte. Pred aktualizáciou si pozrite CHANGELOG.md — breaking changes sú vždy explicitne označené sekciou „⚠️ Breaking changes" a obsahujú migračné inštrukcie.
Časté problémy a riešenia
Caddy nedokáže získať SSL certifikát
Najčastejšia príčina: porty 80/443 nie sú dostupné z internetu, alebo DNS A záznam ešte nepropagoval. Skontrolujte:
dig vasa-domena.sk +short
# Má vrátiť IP vášho servera
curl -I http://vasa-domena.sk
# Má vrátiť odpoveď zo servera, nie timeout
Ak DNS ešte nepropagoval, Caddy bude skúšať každých 5 minút; nechajte bežať a počkajte. Logy: docker compose logs caddy.
OpenResiApp kontajner sa neštartuje
Najčastejšie: chyba v .env súbore (chýbajúce povinné premenné) alebo databáza nedostupná. Pozrite:
docker compose logs openresi --tail 50
Riadky obsahujúce „missing required env" alebo „connection refused" ukážu konkrétny problém.
Emaily sa neodosielajú
Skontrolujte SMTP konfiguráciu v .env. Najčastejšia chyba: použitie SendGrid/Brevo bez správneho API kľúča, alebo firewall blokuje port 587. Testujte priamo:
docker exec -it openresi node -e "require('./scripts/test-email.js')()"