Go to file
Henrik Jess Nielsen ff33f622be
All checks were successful
Build and Deploy PunktFri / build-and-deploy (push) Successful in 47s
Add 'Forening vs. firma' section with structural comparison
Neutral, factual explanation of why a forening provides structural
guarantees an ApS cannot:
- Cannot be sold/acquired
- No profit motive — overskud stays in the org
- Transparent accounts
- Members, not customers — you own the collective
- Concluding note: ingen kan købe PunktFri og tjene penge på dine domæner

CSS: compare-grid with two-column layout, preferred column highlighted
in primary blue with checkmarks, non-preferred column with muted dashes.
2026-04-26 23:40:49 +02:00
2026-04-26 18:20:54 +02:00
2026-04-26 18:20:54 +02:00

PunktFri.dk

Flask landing page for PunktFri — a Danish non-profit registrar initiative for self-hosters.

Setup

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python app.py

Visit http://localhost:5000

Environment variables

Variable Default Description
PORT 5000 Port to listen on
DATABASE punktfri.db SQLite database path
LOG_FILE signups.log Signup log file path
ADMIN_USER admin Admin username
ADMIN_PASS punktfri2024 Admin password

Change ADMIN_USER and ADMIN_PASS before deploying publicly.

Routes

  • / — Landing page + signup form
  • /tak — Confirmation page after signup
  • /admin — Signup table (HTTP Basic Auth)
  • /health — Health check (returns {"status": "ok"})

Data

Signups are stored in two places:

  • SQLite (punktfri.db) — queryable, used by /admin
  • Log file (signups.log) — append-only plaintext log

Both are created automatically on first run.

Admin

Visit http://localhost:5000/admin and enter the credentials above.

Description
No description provided
Readme 141 KiB
Languages
HTML 46.1%
CSS 35.6%
Python 11.7%
HCL 4.6%
Dockerfile 1.2%
Other 0.8%