Členský portál brněnského hackerspace Base48.
- Keycloak OIDC autentizace
- Automatické stahování a párování plateb z FIO Banky
- Automatická správa měsíčních členských příspěvků
- QR platební kódy
- Fundraising projekty
- Admin rozhraní pro správu uživatelů, plateb a fundraisingu
make setup # Závislosti + .env
make db-init # Inicializace DB
nano .env # Nastavení konfigurace
make sqlc # Generování SQL kódu
make run # Spuštění serveruServer běží na http://localhost:4848
- Go 1.24+
- Keycloak server
- SQLite3 CLI
make dev # Hot reload (air)
make build-all # Build všech binárků
make test # Testy
make help # Všechny příkazyportal-cron daemon # Vše na jednom místě (sync á 2 min, poplatky 1. v měsíci)
portal-cron sync # Synchronizace plateb + role sync (každé 2 min)
portal-cron fees # Měsíční poplatky (1. den v měsíci)
portal-cron report # Report nespárovaných plateb (ad-hoc)Produkce jede přes Ansible z privátního repa base48/servers-config-ng
(playbook potřebuje vault se secrets, tohle repo je veřejné):
cd <servers-config-ng>
ansible-playbook -i phoenix, member-portal/playbooks/deploy.yaml --ask-vault-passRučně (dev, nebo fallback na hostu):
cp .env.example .env && $EDITOR .env
docker compose up -d --buildStack je app-only — TLS a vhosty zůstávají na reverse proxy hostu.
Integrace s RevBank kioskem.
Sync script: contrib/revbank-sync.sh — běží na kiosku via cron, pushuje data do portálu.
Detaily: docs/REVBANK_INTEGRATION.md