Go to file
Henrik Jess Nielsen 8e9b569ed9
All checks were successful
Build and Deploy PunktFri / build-and-deploy (push) Successful in 47s
Apply sharper brief: tone, tagline, DNSSEC specifics, Tinglysningsretten analogy
- Hero tagline: 'Dit .dk-domæne. Din infrastruktur. Ingen forhandler.'
- Hero intro: 'Du har ikke bedt om et mellemled' framing
- Section 2: 'Er du en af os?' -> 'Er det dig?'
- Section 2 intro: BIND/DNSSEC specifics, 'Det er absurd, og det ved vi godt'
- Target NOT list: '-> det er ikke os' format per brief
- Baggrunden: Tinglysningsretten analogy added
- Submit button: 'Ja, jeg vil høre mere'
- Footer: 'initieret af en frustreret selvhoster fra Sydsjælland 😄'
2026-04-26 23:34:04 +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%