- Timestamp:
- 06/21/2026 11:12:08 PM (3 months ago)
- Branches:
- main
- Children:
- 19b0727
- Parents:
- 7bd97a6
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
README.md
r7bd97a6 r5a2cb69 9 9 ## Filosofie 10 10 11 - **Editorial feel.** Magazine-typografie (Fraunces + Literata + Plus Jakarta), royale spacing, 8 paletten waaronder Sage / Paper / Ocean / Forest / Stone / Midnight / Sunset / Cream. Light + dark per palette.11 - **Editorial feel.** Magazine-typografie (Fraunces + Literata + Plus Jakarta), royale spacing, 12 paletten (o.a. Sage, Paper, Ocean, Forest, Stone, Midnight, Sunset, Cream, Rose, Goud, Terracotta, Lilac). Light + dark per palette. 12 12 - **App-feel waar het telt.** Geen full page reloads — htmx swaps + (binnenkort) View Transitions. Voelt als app, niet als website. 13 13 - **Server-rendered.** Geen build step, geen SPA-tax. EJS + htmx + minimale Alpine. … … 26 26 | **2.0 — E2EE DMs** | MLS protocol via `@openmls/openmls`, single-device first | ⚪ apart project | 27 27 28 ## Quick start 28 ## Zelf hosten 29 30 Klonkt is een **Node-app** (geen PHP) — draai 'm op een VPS, in Docker of op een 31 Node-hostingplatform. **Niet** op klassieke shared PHP-hosting. De database 32 (SQLite) maakt zichzelf aan bij de eerste start; er is geen los installatiescript. 33 34 ### Optie A — Docker (aanbevolen) 35 36 Alles (Node, ffmpeg, cwebp) zit in het image; je hoeft alleen Docker te hebben. 29 37 30 38 ```bash 31 npm install 39 git clone <repo-url> klonkt && cd klonkt 32 40 cp .env.example .env 33 # zet SESSION_SECRET op iets random (>=32 chars in production) 34 npm run migrate 35 npm run dev 41 # vul in .env minimaal in: SESSION_SECRET (>=32 random tekens) + PUBLIC_BASE_URL 42 docker compose up -d 36 43 ``` 37 44 38 Open http://localhost:3000 45 De app draait nu op poort 3000. Alle data (database + geüploade media/audio) 46 blijft bewaard in het `klonkt-data`-volume, ook na een update. Updaten: 47 48 ```bash 49 git pull && docker compose up -d --build 50 ``` 51 52 ### Optie B — direct met Node (Node 20+) 53 54 ```bash 55 git clone <repo-url> klonkt && cd klonkt 56 npm ci 57 cp .env.example .env # SESSION_SECRET + PUBLIC_BASE_URL invullen 58 npm start # database wordt bij de eerste start aangemaakt 59 ``` 60 61 Open http://localhost:3000. Voor productie: zet 'm achter een procesmanager 62 (pm2/systemd) zodat 'ie aanblijft. `cwebp` is optioneel (Debian/Ubuntu: 63 `apt install webp`) voor WebP-afbeeldingen — ontbreekt 'ie, dan wordt het 64 origineel bewaard. (`npm run dev` = watch-mode voor ontwikkeling.) 65 66 ### HTTPS (productie) 67 68 Zet een reverse-proxy vóór de app voor TLS. Met **Caddy** (automatisch 69 Let's Encrypt) volstaat één blok: 70 71 ```caddy 72 jouwdomein.nl { 73 reverse_proxy localhost:3000 74 encode gzip zstd 75 } 76 ``` 77 78 ### Eerste keer 79 80 Open je site en ga naar **`/auth/register`** — de **eerste gebruiker wordt 81 automatisch beheerder**; daarna sluit registratie zich. Wachtwoord kwijt? 82 `npm run reset-admin` (in Docker: `docker compose exec klonkt npm run reset-admin`). 39 83 40 84 ## Stack
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)