Open Source · Self-hosted · Cloud · Docker Hub · § 182/1993 Z.z. · SK & CZ

Elektronické hlasovanie
a správa bytovky
pre ľudí, nie pre právnikov

Online hlasovanie vlastníkov bytov, nástenka s diskusiami a anketami, mandáty, PDF zápisnice a push notifikácie pre SVB, bytové družstvá a české SVJ. Plus susedská komunita: burza, výpomoc, udalosti, adresár. V súlade so zákonom č. 182/1993 Z. z. a českým § 89/2012 Sb. Open-source, alebo cloud od 4 €/mes.

bash
# Stiahni a spusti – to je všetko
mkdir open-resiapp && cd open-resiapp
curl -O https://raw.githubusercontent.com/open-resiapp/open-resiapp/main/setup.sh
chmod +x setup.sh && ./setup.sh

Doména: dom.example.sk
Admin: admin@dom.example.sk
Pulling ipk0/open-resiapp:latest...
✓ Databáza pripravená
✓ Migrácie hotové
✓ Admin účet vytvorený
✓ App beží na https://dom.example.sk

Pre SVB, bytové družstvá aj české SVJ

Jedna platforma pre tri právne formy správy bytových domov – slovenské aj české. Country prepínač na úrovni budovy mení terminológiu, kvórá aj model výboru.

🏛️

Spoločenstvá vlastníkov bytov (SVB)

Pre slovenské SVB podľa zákona č. 182/1993 Z. z. Elektronické hlasovanie podľa podielu, bytov alebo plochy. Tri typy kvóra. Mandáty s úradne overeným podpisom. Predseda + rada.

🏗️

Bytové družstvá

Pre družstevný sektor – členské schôdze, hlasovanie online aj na schôdzi, evidencia bytov a podielov, nájomcovia bez hlasovacieho práva, správca s prístupom k oznamom.

🇨🇿

Společenství vlastníků jednotek (SVJ)

Pro česká SVJ podle zákona č. 89/2012 Sb. (občanský zákoník, § 1158–1222). Lokalizovaná terminologie — shromáždění, výbor, předseda / místopředseda / člen výboru. Česká kvóra a hlasovací pravidla (nadpoloviční většina přítomných, kvalifikovaná většina pro změnu prohlášení vlastníka). Stejná aplikace, country toggle přepne kontext: terminologii, kvóra, model orgánů.

Všetko čo bytovka potrebuje

Hlasovanie, nástenka, mandáty, PDF zápisnice. Navrhnuté pre slovenské aj české právne prostredie, prístupné pre každého – aj pre dôchodcov.

🗳️

Váhované hlasovanie

Tri metódy hlasovania podľa § 14 zákona 182/1993 Z.z.: podľa podielu, podľa bytov, podľa plochy. Tri typy kvóra (nadpolovičná väčšina prítomných, všetkých, 2/3 všetkých). Každý hlas je auditovaný SHA-256 hashom.

📄

Papierové hlasy

Sčítač zadá hlas za dôchodcu, priloží foto lístka. Vlastník dostane email s potvrdením.

✍️

Mandáty

Splnomocnenie s úradne overeným podpisom podľa § 14 ods. 5. Vlastník deleguje hlas susedovi pre konkrétne hlasovanie. Reťazové mandáty nie sú povolené.

📋

Nástenka, diskusie a ankety

Oznamy, udalosti, opravy. 4 kategórie (info, náliehavé, udalosť, údržba), cielenie na konkrétny vchod. Pod každým oznamom môžu susedia diskutovať vo vlákne — alebo predseda pridá rýchlu anketu (napr. „Súhlasíte s opravou strechy?“) bez spúšťania plného hlasovania. Počet odpovedí vidno hneď v zozname.

🏠

Viac vchodov

Jedno spoločenstvo, viacero vchodov. Každý byt má definovaný spoluvlastnícky podiel a plochu.

📊

Zápisnice PDF

Po hlasovaní automaticky vygenerovaná zápisnica s audit logom a QR kódom. Predseda ju podpíše fyzicky.

Zapnite len to, čo vaša bytovka potrebuje

Funkcie ako hlasovanie, komunita, intercom alebo vlastné integrácie sú samostatné moduly. Každá bytovka si zapne len tie, ktoré používa. Menšie SVB nepotrebuje plnú komunitnú vrstvu — väčšie družstvo zase chce intercom a smart zámky. Žiadny modul navyše neznamená žiadny šum v UI.

🗳️

Hlasovanie a mandáty

Jadro, ktoré nikdy nevypnete. Tri metódy hlasovania, tri kvórá, mandáty s overeným podpisom, audit log, PDF zápisnice.

👥

Komunita susedov

Burza, výpomoc, udalosti, adresár. Voliteľné — komunity, ktoré chcú držať aplikáciu „len na hlasovanie“, to nezapnú.

📡

Intercom a smart zariadenia

Pripojte intercom systém, smart zámky vchodu, IoT senzory cez modul s API kľúčmi a párovacími požiadavkami.

🧩

Vlastné moduly (SDK)

Self-hosters si môžu napísať vlastný modul — SDK + lifecycle hooks. Oznamy z lokálnej webky, integrácia s účtovníckym softvérom, čokoľvek.

Granty modulov sú per-komunita — admin ich kedykoľvek zapne alebo vypne v nastaveniach budovy.

V súlade so zákonom č. 182/1993 Z.z.

Hlasovací modul je navrhnutý podľa zákona o vlastníctve bytov a nebytových priestorov v znení neskorších predpisov.

§ 14a ods. 1–2
Písomné hlasovanie (per rollam) aj hlasovanie na schôdzi
§ 14a ods. 4
Splnomocnenie s úradne overeným podpisom, bez reťazového delegovania
§ 14b ods. 1–2
Tri typy kvóra – nadpolovičná väčšina prítomných, všetkých vlastníkov, alebo 2/3 všetkých vlastníkov
§ 14 ods. 2
Tri metódy: podľa spoluvlastníckeho podielu, podľa bytov, podľa plochy
§ 14b ods. 5
Štvrtina vlastníkov môže iniciovať hlasovanie
SHA-256
Každý hlas auditovaný kryptografickým hashom s e-mailovým potvrdením

Súlad so zákonom

Požiadavka zákona Status
Hlasovanie podľa spoluvlastníckeho podielu
Nadpolovičná väčšina všetkých vlastníkov
Dvojtretinová väčšina všetkých vlastníkov
Písomné hlasovanie (per rollam)
Hlasovanie na schôdzi (len papierové hlasy)
Splnomocnenie s úradne overeným podpisom
Zákaz reťazenia splnomocnení
Hlasovanie iniciované ¼ vlastníkov
Overovateľ hlasovania
Auditný záznam (SHA-256 + email)
Nájomníci nemajú hlasovacie právo
Zápisnica z hlasovania (PDF)
Jednomyseľný súhlas všetkých vlastníkov (pôžičky, predaj spol. častí)

A pre české SVJ — zákon č. 89/2012 Sb.

Country prepínač na úrovni budovy aktivuje českú vetvu pravidiel: shromáždení s nadpolovičnou väčšinou prítomných, kvalifikovaná väčšina pre zmenu prehlásenia vlastníka, výbor s predsedom a miestopredsedom. Terminológia v UI sa prispôsobí.

  • Shromáždení — nadpolovičná väčšina prítomných
  • Kvalifikovaná väčšina pre zmenu prehlásenia vlastníka
  • Výbor — predseda, miestopredseda, člen
  • Plná moc — písomná, bez úradného overenia
  • Per rollam (mimo shromáždení) — § 1210

Súhlasy a privacy, ktoré obstoja pri kontrole

GDPR nie je galéria zaškrtávacích boxov. Každý súhlas má verziu, dátum, IP a držíme audit log zmien — aby ste pri sťažnosti dotknutej osoby alebo kontrole z ÚOOÚ vedeli, kto, kedy a aký súhlas dal.

  • Per-user consent management — vlastník vidí všetky svoje súhlasy a môže ich kedykoľvek odvolať.
  • Verzionované súhlasy — keď upravíte text privacy policy, staré súhlasy zostanú platné, nové sa pýtajú znovu.
  • Audit log — kto, kedy, aký súhlas, z akej IP. Exportovateľné do CSV pre prípadnú kontrolu.
  • Privacy policy a cookie banner sú súčasťou aplikácie — nie nalepené z generátora, ale vygenerované z konfigurácie inštancie.
  • Self-hosted = dáta sú u vás. Cloud = dáta v EÚ (Hetzner Helsinki / Falkenstein), spracovateľská zmluva pripravená.

Päť rolí, jasné hranice

Každý vidí len to, čo mu patrí. Roly sú pridelené správcom bytovky.

Admin / Predseda
  • Vytvára hlasovania
  • Spravuje vlastníkov a byty
  • Publikuje oznamy
  • Prideľuje roly
  • Generuje zápisnice
Vlastník
  • Hlasuje elektronicky
  • Udeľuje mandát
  • Vidí výsledky hlasovaní
  • Číta nástenku
  • Sťahuje dokumenty
Nájomca
  • Číta nástenku
  • Vidí dokumenty
  • Dostáva notifikácie
Sčítač hlasov
  • Zadáva papierové hlasy
  • Fotí hlasovací lístok
  • Rola platí len pre 1 hlasovanie
Správca
  • Číta nástenku
  • Vidí nastavenia budovy
  • Publikuje oznamy

Výbor a správa — kto právne zastupuje spoločenstvo

Roly v aplikácii hovoria, kto čo vidí. Výbor hovorí, kto za spoločenstvo podpisuje zápisnice, jedná s úradmi a zvoláva schôdze. Sú ortogonálne — predseda býva často aj admin, ale nemusí byť. Eviduje sa zloženie výboru, funkčné obdobia a podpisové oprávnenia.

Tri modely riadenia (per budova)

👑

Predseda + rada

Klasický slovenský model (§ 7c zákona 182/1993). Predseda + 1–N členov rady. Vhodné pre stredné a väčšie SVB. chairman_council

👥

Výbor

Český model podľa § 1205 zák. 89/2012 Sb. — kolektívny štatutárny orgán: predseda výboru + členovia výboru. Použiteľné aj pre slovenské družstvá. committee

👤

Len predseda

Pre malé SVB (typicky < 10 bytov), kde stanovy povoľujú jednoosobový štatutár. Bez rady ani výboru. chairman_only

Štyri funkcie vo výbore

Predseda chairman

Štatutár v modeli predseda+rada alebo len predseda. Podpisuje zápisnice, zvoláva schôdzu.

Člen rady council_member

Spolurozhoduje s predsedom v modeli predseda+rada (§ 7c).

Predseda výboru committee_chairman

Vedúci kolektívneho výboru (český model + slovenské družstvá).

Člen výboru committee_member

Hlasuje na zasadnutiach výboru, podiel na štatutárnom rozhodovaní.

📅 Plný CRUD pre členov výboru — pridanie, úprava, odvolanie. Funkčné obdobie (od / do) per člen, po skončení sa záznam archivuje, nemaže — pre históriu uznesení a auditu. Notifikácia týždeň pred koncom obdobia (kvórum vo výbore môže klesnúť).

Prepínač krajiny na budove (SK / CZ) ovplyvňuje, ktoré governance modely sú v UI ponuknúte ako default a aká terminológia sa zobrazuje (predseda vs předseda, člen rady vs člen výboru). Schémy enumov sú spoločné — jurisdikčné je len UI mapovanie.

96 bytov, 120 vlastníkov, 6 vchodov — za 10 minút

Nová bytovka v aplikácii nie je hodina klikania po jednom byte. Importní sprievodca preberie celej bytovku z toho, čo má predseda doma: list vlastníctva z Katastra, Excel tabuľka, alebo prosto napísať do tabuľky v prehliadači.

📋

Nahrajte LV ako PDF

Pretiahnite PDF s listom vlastníctva (alebo vyberte zo súborov). Server prečíta PDF, extrahuje vlastníkov, byty, podiely, vchody — vrátane BSM a viac-vlastníckych bytov — a vytvorí predvyplnenú tabuľku na schválenie. Žiadne API na Kataster, žiadne ručné prepisovanie mien.

📗

XLSX šablóna

Stiahnite Excel šablónu prispôsobenú vašej budove (vchody on/off, bloky on/off). Podílové stľpce sú formátované ako text — 1/96 sa nepremení na 1. január 1996. Vyplníte v Exceli, uploadnete, hotovo.

✏️

Alebo píšte priamo

Editovateľná tabuľka priamo v aplikácii. Validation per cell, chyby s tooltipom, opraviť bez re-uploadu. Pre malé SVB (5-10 bytov) najrýchlejšia cesta.

📐 Podiely v každom formáte. Zlomky (1/96), dlhé zlomky (5614/100000), desatinné čísla (0.01042), percentá (1,042%) — všetko sa znormalizuje na exaktnú raciоnálnu aritmetiku. Sumy podielov sa skontrolujú — keď sa byt nezíska na 1/1, dozvete sa pred importom.
💡 Dry-run preview pred upložením. Sprievodca ukáže koľko entitied a vlastníkov vznikne, kde sú chyby, koľko je sum podielov. Až po vašom kliknutí Importovať sa celá bytovka založí v jednej DB transakcii — buď všetko, alebo nič.

Vlastníci bez emailu sa založia ako shell users — plný záznam v evidencii, prihlasovanie aktivujú neskôr cez QR (viď nižšie) alebo email pozvánku.

Pozvite všetkých vlastníkov naraz — QR kód na schôdzi

Klasická schôdza, predseda premietne QR kód. Vlastníci ho naskenujú, vyplnia základné údaje, hotovo. Žiadne emailové pozvánky vyhľadávané manuálne v evidencii, žiadne reset-password telefonáty.

  1. 1 Admin v aplikácii klikne Generovať pozývací QR — vznikne token s expiráciou (default 24 h).
  2. 2 Vlastník naskenuje, otvorí sa registračný formulár predvyplnený názvom bytovky a vchodu.
  3. 3 Po odoslaní sa zaradí medzi čakajúcich vlastníkov — admin vidí dashboard, schvaľuje a priraďuje k bytu jedným klikom.

Pre veľké družstvá: jeden QR vytlačený na nástenku platí všetkým vchodom, alebo per-vchod token pre cielené pozvanie.

Nielen správa, ale aj komunita susedov

Konkurencia rieši paragrafy. My riešime aj život v dome. Štyri sekcie pre sused-na-suseda interakciu – bez Facebooku, bez bazoša, bez cudzincov.

🛍️

Susedská burza

Predám, darujem, požičiam – medzi vlastníkmi a nájomcami v dome. Filter podľa typu, jedna foto per post, označenie „Vyriešené / Predáné“. Voliteľne obmedzené len na konkrétny vchod.

🤝

Susedská výpomoc

„Prosím o pomoc“ vs „Ponúkam pomoc“ ako dva oddelené typy. Zalievanie kvetov počas dovolenky, IT pomoc, drobné opravy, vyvenčenie psa. Bez platieb – toto je susedská výpomoc.

🎉

Susedské udalosti

Grilovačka na dvore, brigáda, vianočné stretnutie, zbierka. RSVP „Áno / Možno / Nie“ s počítadlom účastníkov. Email pripomienka deň pred udalosťou. Nadchádzajúce vs ukončené udalosti.

📒

Adresár susedov (opt-in)

Sused si sám zvolí, či zdieľa telefón, email, poznámku a zručnosti (elektrikár, IT, záhrada). Nemusíte víckrát hľadať elektrikára cez Google – býva o tri poschodia nižšie.

✉️ Email notifikácie a auto-expirácia. Autor postu dostane email pri každej reákcii. Staršie posty sa automaticky expirujú. Pripomienky udalostí chodía 1 deň vopred. Cron job to všetko rieši automaticky. Susedia môžu zapnúť push notifikácie na nové oznamy, RSVP a pripomienky udalostí (viď nižšie).

Push priamo do prehľadača — žiadna apka netreba

Web Push (VAPID) doručí oznam, hlasovanie alebo udalosť aj keď máte zatvorený tab. Funguje na Chrome, Edge, Firefox, Safari (iOS 16.4+). Pre prehľadače bez podpory máme email fallback.

  • 🔔Vlastník si zapne push v profile — stačí raz, browser si pamätá.
  • 📢Nové hlasovanie, nový oznam, nová odpoveď v diskusii, RSVP pripomienka — užívateľ si vyberie typy.
  • ↩️Detekcia odmietnutej alebo nepodporovanej notifikácie — vrátime sa na email, bez tichého zlyhania.
  • 🌍Email šablóny lokalizované SK/CZ/EN, dedup a throttling proti zaplaveniu schránky.

Pripojte intercom, smart zámky alebo vlastné systémy

External connections + pairing requests v schéme. API kľúče s granulárnymi oprávneniami (read-only, write-posts, manage-devices…). Každé pripojené zariadenie alebo služba je auditované — kedy sa pripojilo, akú akciu volalo.

🔗

Párovanie zariadení

Admin schvaľuje pairing request (z intercomu, zámky, IoT senzora) v dashboarde.

🔐

Granulárne API kľúče

Permissions enum — od čistého read-only až po správu modulov. Žiadne all-or-nothing tokeny.

Webhooks

Pre zmeny stavu — nový vlastník schválený, hlasovanie ukončené, oznam publikovaný.

📖

OpenAPI 3.1

Dokumentácia OpenAPI 3.1, generované klienty pre TypeScript a Python.

Self-hosted = vaše API na vašej doméne. Cloud = api.<vasabytovka>.open-resi.app

Postavené na moderne

Ovežené technológie, ktoré vám uľahčia deploy aj príspevky.

Detaily, ktoré používatelia naozaj vnímajú: svetlý a tmavý režim s cookie persistence (SSR-safe, bez bliknutia pri prepnutí), plná lokalizácia SK / CZ / EN, dashboard so zoznamom posledných príspevkov a nadchádzajúcich udalostí — nie zastarané statistické karty.
Next.js 16 App Router
React 19 UI
TypeScript Strict
Tailwind CSS Styling
Drizzle ORM Database
PostgreSQL 16 Storage
NextAuth v5 Auth
Docker Deploy
Caddy HTTPS
Nodemailer Email
next-intl i18n
next-themes Dark mode
Web Push (VAPID) Push notif
react-pdf PDF export

Nechcete sa starať o server?

Spustíme to za vás. Rovnaká aplikácia, žiadna údržba. 7 dní zadarmo.

Spustené za 5 minút

Žiadny server, žiadny Docker, žiadna konfigurácia. Zaregistrujte sa a vaša bytovka beží v cloude.

🔒

Zálohy a bezpečnosť

Automatické denné zálohy, SSL, izolácia dát. Každá bytovka beží v samostatnom prostredí.

💶

Od 4 €/mesiac

Platíte len za aktívne bytovky. Čím viac bytoviek, tým nižšia cena za jednu.

Počet bytoviek Cena za bytovku
17 €/mes.
2–36 €/mes.
4–55 €/mes.
6+4 €/mes.
Vyskúšajte 7 dní zadarmo →

Bez kreditnej karty. Plné funkcie počas skúšobného obdobia.

Ako to rozbehnúť

Požiadavky

Na spustenie OpenResiApp potrebuješ:

  • Docker 24+ a Docker Compose plugin
  • Server alebo VPS s min. 1 GB RAM a 10 GB disku
  • Doménu alebo subdoménu (pre HTTPS)
  • SMTP prístup (pre emaily)
💡 Na lokálne testovanie stačí aj tvoj laptop – Docker Desktop na Windows alebo macOS.

Inštalácia

&x2139;️ Docker obraz ipk0/open-resiapp je dostupný na Docker Hub. Podporuje linux/amd64 a linux/arm64.

Jeden príkaz (odporúčané)

Setup skript zistí váš OS (macOS / Linux), nainštaluje Docker a openssl ak chýbajú, opýta sa na doménu a názov budovy, vygeneruje bezpečné heslá a vytvorí admin účet:

curl -fsSL https://get.open-resi.app | bash
💡 Skript je idempotentný — ak ho spustíte druhýkrát, len doplní chýbajúce kroky. Funguje na čistom Ubuntu, Debian, Fedora, macOS (Homebrew Docker Desktop). Generuje POSTGRES_PASSWORD aj NEXTAUTH_SECRET cez openssl rand.
Manuálna inštalácia (pre správcov, ktorí chcú každý krok pod kontrolou)

1. Vytvor docker-compose.yml

mkdir open-resiapp && cd open-resiapp

Ulož nasledovný obsah ako docker-compose.yml:

services:
  db:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DB: resiapp
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 10s
      timeout: 5s
      retries: 5

  app:
    image: ipk0/open-resiapp:latest
    restart: unless-stopped
    depends_on:
      db:
        condition: service_healthy
    environment:
      DATABASE_URL: postgresql://postgres:${POSTGRES_PASSWORD}@db:5432/resiapp
      NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
      NEXTAUTH_URL: ${APP_URL}
      AUTH_TRUST_HOST: "true"
      APP_NAME: ${APP_NAME:-Bytove spolocenstvo}
      LANGUAGE: ${LANGUAGE:-sk}
    volumes:
      - uploads:/app/uploads

  caddy:
    image: caddy:2-alpine
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - caddy_data:/data
    depends_on:
      - app
    command: caddy reverse-proxy --from ${APP_DOMAIN} --to app:3000

volumes:
  postgres_data:
  uploads:
  caddy_data:

2. Nastav .env

Vytvor súbor .env s týmito hodnotami:

APP_NAME="Bytove spolocenstvo Hlavna 12"
APP_URL=https://yourdomain.sk
APP_DOMAIN=yourdomain.sk
POSTGRES_PASSWORD=changeMe_veryLongPassword123
NEXTAUTH_SECRET=changeMe_anotherRandomString456
# Generate secrets: openssl rand -base64 32

3. Spusti

docker compose up -d

Docker automaticky stiahne obrazy z Docker Hub, vytvorí databázu a spustí app. Migrácie sa spustia automaticky.

Konfigurácia .env

Otvor súbor .env a uprav nasledovné hodnoty:

APP_NAME="Bytove spolocenstvo Hlavna 12"
APP_URL=https://yourdomain.sk
APP_DOMAIN=yourdomain.sk
POSTGRES_PASSWORD=changeMe_veryLongPassword123
NEXTAUTH_SECRET=changeMe_anotherRandomString456
# Generate secrets: openssl rand -base64 32
&x26A0;️ Nikdy nezdieľaj súbor .env a nedávaj ho do Gitu. Súbor .gitignore ho automaticky vylučuje.

Prvé spustenie

Po spustení overte, že všetko beží:

docker compose ps

Všetky tri služby (app, db, caddy) musia mať status Up.

Otvor prehliadač na http://localhost:3000 – uvidíš prihlasovací formulár.

Seed dáta pre testovanie

Pre rýchle otestovanie môžeš načítať ukážkové dáta:

docker compose exec app npm run db:seed

Toto vytvorí testovacích vlastníkov, byty a jedno aktívne hlasovanie. Prihlasovacie údaje admina:

Email:  admin@test.sk
Heslo:  Admin123!
&x26A0;️ Seed dáta používaj len na testovanie. V produkcii ich nespušťaj.

Vlastná doména

Uprav .env:

APP_URL=https://bytovka.mojadomena.sk
APP_DOMAIN=bytovka.mojadomena.sk

Nastav DNS A záznam tvojej domény na IP adresu servera:

bytovka.mojadomena.sk.  A  1.2.3.4

DNS zmeny sa môžu šíriť 5–60 minút.

HTTPS (automaticky)

OpenResiApp používa Caddy ako reverse proxy, ktorý automaticky zaobstará a obnovuje SSL certifikát cez Let's Encrypt. Nemusíš nič ručne nastavovať.

&x2139;️ HTTPS funguje len ak je doména verejne dostupná. Na lokálnom testovania (localhost) je HTTP v poriadku.

Po nastavení domény reštartuj stack:

docker compose down
docker compose up -d

Zálohovanie

Všetky dáta sú v PostgreSQL databáze a v priečinku uploads/. Odporúčame zálohovať denne.

Automatická záloha

docker compose exec db pg_dump -U postgres resiapp | gzip > backup_$(date +%Y%m%d).sql.gz

Pridaj do cronu pre denné zálohy:

(crontab -l 2>/dev/null; echo "0 3 * * * cd /path/to/project && docker compose exec -T db pg_dump -U postgres resiapp | gzip > /backups/resiapp_\$(date +\%Y\%m\%d).sql.gz") | crontab -

Obnova zo zálohy

gunzip < backup_20260309.sql.gz | docker compose exec -T db psql -U postgres resiapp

Aktualizácia na novú verziu

Aktualizácia je jednoduchá – nové migrácie sa spustia automaticky pri štarte.

docker compose pull
docker compose up -d

Toto stiahne najnovší Docker image a reštartuje app. Migrácie databázy sa spustia automaticky – žiadne manuálne kroky.

&x26A0;️ Pred každou aktualizáciou urob zálohu databázy.

Admin účet

Pri prvom spustení v produkcii vytvor admin účet cez príkazový riadok:

docker compose exec app \
  npx tsx src/scripts/create-admin.ts \
  --email predseda@bytovka.sk \
  --name "Ján Novák"

Príkaz vytlačí dočasné heslo. Po prvom prihlásení si ho zmeň v nastaveníach.

Pridanie vlastníkov

Po prihlásení ako admin:

  • Choď do Nastavenia → Byty a vchody – vytvor vchody a byty s podielmi
  • Choď do Vlastníci → Pozvať vlastníka – zadaj email a priraď byt
  • Vlastník dostane email s odkazom na nastavenie hesla
&x2139;️ Spoluvlastnícky podiel (napr. 75/10000) nájdeš na liste vlastníctva z katastra nehnuteľností.

Prvé hlasovanie

Ako admin choď do Hlasovanie → Nové hlasovanie:

  • Zadaj názov a popis
  • Nastav dátum začiatku a konca
  • Voliteľne priraď sčítača hlasov pre papierové lístky
  • Klikni Spustiť hlasovanie

Všetkým vlastníkom príde email s odkazom. Výsledky sú viditeľné v reálnom čase. Po skončení môžeš vygenerovať PDF zápisnicu.

Časté otázky o OpenResiApp

Stručné odpovede na to, čo sa najčastejšie pýtajú predsedovia SVB, výbory bytových družstiev a české SVJ. Ak ti niečo chýba, napíš do GitHub Discussions.

Čo je OpenResiApp?

OpenResiApp je open-source webová aplikácia pre správu bytových spoločenstiev (SVB), bytových družstiev a českých SVJ. Obsahuje elektronické hlasovanie v súlade so zákonom č. 182/1993 Z. z., nástenku, správu vlastníkov a bytov, mandáty s overeným podpisom, automatické PDF zápisnice a komunitný modul so susedskou burzou, výpomocou, udalosťami a opt-in adresárom susedov.

Je elektronické hlasovanie vlastníkov bytov legálne?

Áno. OpenResiApp implementuje hlasovanie podľa zákona č. 182/1993 Z. z. o vlastníctve bytov a nebytových priestorov: tri metódy hlasovania (podľa spoluvlastníckeho podielu, podľa bytov, podľa plochy), tri typy kvóra, písomné hlasovanie (per rollam) aj hlasovanie na schôdzi, mandáty s úradne overeným podpisom bez reťazenia a SHA-256 audit log s emailovým potvrdením každého hlasu.

Aký je rozdiel medzi OpenResiApp a inými systémami pre správu bytoviek (Poschodoch, Resitech)?

Tri hlavné rozdiely. (1) OpenResiApp je open-source pod MIT licenciou — kód je verejný na GitHube, nie sú v ňom zadné vrátka, dáta zostávajú u vás. (2) Okrem správy a hlasovania obsahuje plnohodnotnú susedskú komunitu: burzu (predaj/darovanie/požičanie vecí medzi susedmi), susedskú výpomoc (prosby aj ponuky), udalosti s RSVP a opt-in adresár susedov so zručnosťami. Konkurencia rieši paragrafy, OpenResiApp aj život v dome. (3) Self-hosted verzia je zadarmo cez Docker, alebo managed cloud od 4 €/mesiac s 7-dňovou skúškou bez kreditnej karty.

Čo všetko obsahuje sekcia Komunita?

Komunitný modul obsahuje štyri samostatné sekcie. Burza: posty typu „Predám", „Darujem", „Požičiam" s filtrami a označením „Vyriešené/Predané". Pomoc: susedská výpomoc s rozlíšením „Prosím o pomoc" vs „Ponúkam pomoc" (napríklad zaliatie kvetov, IT, drobné opravy). Udalosti: susedské stretnutia ako grilovačky, brigády či zbierky s RSVP systémom (áno/možno/nie) a počítadlom účastníkov. Adresár: opt-in profily susedov so zručnosťami (elektrikár, IT, záhrada) — sused si sám zvolí, či zdieľa telefón a email. Všetko s email notifikáciami a automatickou expiráciou starších postov.

Funguje OpenResiApp pre české SVJ a bytové družstvá?

Áno. OpenResiApp je lokalizovaný pre slovenský aj český trh. Podporuje slovenské bytové spoločenstvá (SVB) podľa zákona 182/1993 Z. z., bytové družstvá, aj české Společenství vlastníků jednotek (SVJ) podľa českého zákona 89/2012 Sb. Hlasovací algoritmus, model budov, oprávnenia a mandáty sú generické a parametrické — country config nastaví terminológiu, kvóra a štruktúru orgánov (predseda+rada vs výbor).

Je OpenResiApp zadarmo?

Áno, OpenResiApp je open-source pod MIT licenciou. Self-hosted verziu cez Docker si môžete nainštalovať na vlastný server bezplatne s plnou funkcionalitou. Ak nechcete spravovať server, managed cloud verzia začína na 4 € za bytovku mesačne s 7-dňovou skúšobnou dobou bez kreditnej karty na cloud.open-resi.app.

Aký je rozdiel medzi self-hosted a cloud verziou?

Self-hosted verzia je zadarmo — nainštalujete ju na vlastný server cez Docker. Cloud verzia na cloud.open-resi.app je managed služba, kde sa o server, zálohy, SSL a aktualizácie staráme my. Obe verzie majú rovnakú funkcionalitu vrátane elektronického hlasovania, komunity a PDF zápisníc. Cloud začína 7-dňovou skúšobnou dobou bez kreditnej karty.

Koľko stojí OpenResiApp Cloud?

OpenResiApp Cloud má cenotvorbu za bytovku s objemovými zľavami: 1 bytovka stojí 7 €/mesiac, 2–3 bytovky po 6 €, 4–5 bytoviek po 5 €, 6 a viac bytoviek po 4 €. Skúšobná doba 7 dní zadarmo bez kreditnej karty. Účtuje sa len za aktívne bytovky.

Ako funguje hlasovanie per rollam?

Per rollam (písomné hlasovanie mimo schôdze) podľa § 14a ods. 1 zákona 182/1993 Z. z. funguje tak, že vlastníci dostanú email s odkazom na hlasovací formulár. Hlas potvrdia online, systém zaznamená SHA-256 hash hlasu a pošle email s potvrdením. Po skončení hlasovania sa automaticky vygeneruje PDF zápisnica s audit logom a QR kódom. Pre vlastníkov bez prístupu na internet sčítač hlasov zadá papierový hlas s fotkou lístka.

Čo s vlastníkmi bez internetu alebo smartfónu?

OpenResiApp má rolu Sčítač hlasov — administrátor priradí dôveryhodnú osobu, ktorá pri hlasovaní zadá hlas za vlastníka bez internetu, priloží fotku papierového lístka. Vlastník dostane email s potvrdením. Rola Sčítač platí len pre konkrétne hlasovanie a po jeho skončení automaticky zaniká.