Changeset d2b7247 in Klonkt


Ignore:
Timestamp:
06/27/2026 09:53:29 PM (2 months ago)
Author:
Robin Genis <roboburr@…>
Branches:
main
Children:
907a013
Parents:
abdcf33
Message:

chore(branding): stale product names in comments + deploy templates -> Klonkt

Cosmetic only — comments (CSS/EJS/SQL/ecosystem.config.cjs headers) and the deploy/ doc
templates: old names (PrutCMS/PrutFolio) -> Klonkt, stale Prutter (removed DM feature) mentions
dropped, deploy/ Dutch comments translated to English. No code, identifiers, rendered strings,
package name, PWA id, real infra paths, or roboburr refs touched.

Files:
11 edited

Legend:

Unmodified
Added
Removed
  • deploy/DEPLOY.md

    rabdcf33 rd2b7247  
    152152
    153153Now visit `https://YOUR-DOMAIN/`. You should see your site over HTTPS, with
    154 HSTS active and Prutter WebSocket working (browser dev-tools → Network →
    155 filter "WS" → see the `wss://YOUR-DOMAIN/ws/prutter` connection).
     154HSTS active.
    156155
    157156---
  • deploy/backup.sh

    rabdcf33 rd2b7247  
    11#!/usr/bin/env bash
    22#
    3 # PrutCMS v10 — nightly backup script.
     3# Klonkt — nightly backup script.
    44#
    55# Snapshots:
     
    1313#
    1414# Recommended cron:
    15 #   0 3 * * * /home/robin/prutcms/deploy/backup.sh >> /home/robin/prutcms/logs/backup.log 2>&1
     15#   0 3 * * * /home/robin/klonkt/deploy/backup.sh >> /home/robin/klonkt/logs/backup.log 2>&1
    1616
    1717set -euo pipefail
    1818
    1919# ── Config ────────────────────────────────────────────────────────
    20 APP_DIR="${APP_DIR:-/home/robin/prutcms}"
    21 BACKUP_DIR="${BACKUP_DIR:-/home/robin/backups/prutcms}"
     20APP_DIR="${APP_DIR:-/home/robin/klonkt}"
     21BACKUP_DIR="${BACKUP_DIR:-/home/robin/backups/klonkt}"
    2222KEEP_DAYS="${KEEP_DAYS:-14}"
    2323TS="$(date +%Y%m%d-%H%M%S)"
     
    3535
    3636# ── Tar the snapshot + storage subdirs ────────────────────────────
    37 ARCHIVE="$BACKUP_DIR/prutcms-$TS.tar.gz"
     37ARCHIVE="$BACKUP_DIR/klonkt-$TS.tar.gz"
    3838tar -czf "$ARCHIVE" \
    3939    -C "$BACKUP_DIR" "$(basename "$DB_SNAPSHOT")" \
     
    4747
    4848# ── Rotation ───────────────────────────────────────────────────────
    49 find "$BACKUP_DIR" -type f -name 'prutcms-*.tar.gz' -mtime "+$KEEP_DAYS" -delete
     49find "$BACKUP_DIR" -type f -name 'klonkt-*.tar.gz' -mtime "+$KEEP_DAYS" -delete
    5050
    5151SIZE="$(du -h "$ARCHIVE" | cut -f1)"
  • deploy/nginx.conf.example

    rabdcf33 rd2b7247  
    11# ──────────────────────────────────────────────────────────────────
    2 # PrutCMS v10 — nginx reverse proxy
     2# Klonkt — nginx reverse proxy
    33#
    4 # Place this in /etc/nginx/sites-available/prutcms and symlink to
     4# Place this in /etc/nginx/sites-available/klonkt and symlink to
    55# /etc/nginx/sites-enabled/. Replace <YOUR-DOMAIN> with the real host.
    66#
    77# Key points:
    88#   • SSL termination here; Node listens on 127.0.0.1:3000 only.
    9 #   • WebSocket upgrade headers wired through (Prutter live messaging).
     9#   • WebSocket upgrade headers wired through (in case any route uses WS).
    1010#   • Static assets cached aggressively (Node gives them 1y maxAge anyway).
    1111#   • Audio streaming endpoint /audio/stream/* must NOT be cached by nginx —
     
    1414#
    1515# After installing:
    16 #   sudo ln -s /etc/nginx/sites-available/prutcms /etc/nginx/sites-enabled/
     16#   sudo ln -s /etc/nginx/sites-available/klonkt /etc/nginx/sites-enabled/
    1717#   sudo nginx -t
    1818#   sudo systemctl reload nginx
     
    9696    }
    9797
    98     # ── WebSocket: Prutter live chat. Long-lived connection.
     98    # ── WebSocket: long-lived connection (in case any route uses WS).
    9999    location /ws/ {
    100100        proxy_pass http://127.0.0.1:3000;
  • deploy/post-receive

    rabdcf33 rd2b7247  
    11#!/bin/bash
    2 # PrutFolio deploy-hook — werkt zoals logboek-hook.
    3 # Bare repo is single source of truth.
    4 # /srv/prutfolio is de working tree — gevuld via "git --work-tree=..."
    5 # (geen .git submap erin), zelfde patroon als logboek->celine.
     2# Klonkt deploy hook — works like the logboek hook.
     3# The bare repo is the single source of truth.
     4# /srv/prutfolio is the working tree — populated via "git --work-tree=..."
     5# (no .git subdir inside), same pattern as logboek->celine.
    66set -e
    77
     
    1414    echo ">>> Deploying $newrev to $DEPLOY"
    1515
    16     # 1. Heel zelden — als een eerdere bug git-internals los in $DEPLOY
    17     #    heeft gedumpt (HEAD/objects/refs op root), eenmalig opruimen
    18     #    zodat dit een echte working tree wordt.
     16    # 1. Very rarely — if an earlier bug dumped git internals loose into
     17    #    $DEPLOY (HEAD/objects/refs at the root), clean them up once so this
     18    #    becomes a real working tree.
    1919    if [ -f "$DEPLOY/HEAD" ] && [ -d "$DEPLOY/objects" ] && [ ! -d "$DEPLOY/.git" ]; then
    2020        echo "    cleanup: stale bare-init artifacts in $DEPLOY"
     
    2424    fi
    2525
    26     # 2. Force-checkout van bare-repo state naar working tree.
     26    # 2. Force-checkout the bare-repo state into the working tree.
    2727    git --git-dir="$GIT_DIR" --work-tree="$DEPLOY" checkout -f main
    2828
    29     # 3. npm install alleen als package-lock.json wijzigde.
     29    # 3. npm install only when package-lock.json changed.
    3030    if [ -n "$oldrev" ] && [ "$oldrev" != "0000000000000000000000000000000000000000" ]; then
    3131        if git --git-dir="$GIT_DIR" diff --name-only "$oldrev" "$newrev" | grep -q "^package-lock.json$"; then
     
    3838    pm2 reload klonkt 2>/dev/null || true
    3939
    40     echo ">>> Done. App-files in $DEPLOY ongemoeid (.env, node_modules, storage)."
     40    echo ">>> Done. App files in $DEPLOY left untouched (.env, node_modules, storage)."
    4141done
  • ecosystem.config.cjs

    rabdcf33 rd2b7247  
    44 * Single fork (NOT cluster mode) because:
    55 *  - SqliteSessionStore is in-process: cluster workers wouldn't share sessions.
    6  *  - PrutterService.wsConnections is in-process: WS broadcast wouldn't reach
    7  *    sockets attached to other workers.
    86 *  - better-sqlite3 is synchronous and not designed for multi-process writes.
    9  * If you ever need horizontal scaling, swap the session/Prutter stores for a
    10  * shared backend (Redis) first, then enable cluster mode.
     7 * If you ever need horizontal scaling, swap the session store for a shared
     8 * backend (Redis) first, then enable cluster mode.
    119 *
    1210 * Usage:
  • src/assets/css/audio.css

    rabdcf33 rd2b7247  
    1 /* PrutCMS v10 — Audio CSS
     1/* Klonkt — Audio CSS
    22   Two pieces:
    33     1. .post-audio-track — the play-button block inserted by [[track:id]] shortcode
  • src/assets/css/style.css

    rabdcf33 rd2b7247  
    5454}
    5555
    56 /* PrutCMS publieke stijl — editorial-ish, geen emoji-UI */
     56/* Klonkt publieke stijl — editorial-ish, geen emoji-UI */
    5757
    5858:root {
  • src/db/migrations/001-init.sql

    rabdcf33 rd2b7247  
    1 -- PrutFolio v1 — initial schema
    2 -- Forked from PrutCMS v9 (PHP, file-based) → SQLite/Node
    3 -- Complete schema with v9 features (Prutter, Forum, Audio, Themes) + v10 CRDT
     1-- Klonkt — initial schema
     2-- Forked from a v9 PHP, file-based CMS → SQLite/Node
     3-- Complete schema with the v9 features (Forum, Audio, Themes) + v10 CRDT
    44
    55-- ==================== USERS ====================
  • src/views/partials/bottom-tab.ejs

    rabdcf33 rd2b7247  
    44// Tabs:
    55//   logged-out:  Home · Zoek · Inloggen        (3 tabs)
    6 //   logged-in:   Home · Zoek · [Plus] · [Prutter] · Profiel
     6//   logged-in:   Home · Zoek · [Plus] · Profiel
    77//   The Plus tab is a FAB-style center action (accent bg, slightly raised).
    88//   It only appears for users with create-post permission.
    9 //   Prutter only appears when the site has DMs enabled.
    109
    1110const _siteUrlBase = (typeof siteUrlBase !== 'undefined' && siteUrlBase) ? siteUrlBase : '';
  • src/views/partials/chrome.ejs

    rabdcf33 rd2b7247  
    1111//
    1212//   _isAuth     → focus-scherm (in/uitloggen): helemaal geen chrome.
    13 //   _headerless → hub-homepagina én de Prutter-chat: WÉL de mini topnav-balk,
    14 //                 GEEN profielkop (hub: hero = header; chat: full-height view).
     13//   _headerless → hub-homepagina én full-height views: WÉL de mini topnav-balk,
     14//                 GEEN profielkop (hub: hero = header).
    1515//   anders      → topnav + profielkop (+ view-switcher buiten admin).
    1616var _isAdmin   = typeof bodyClass === 'string' && bodyClass.indexOf('on-admin') >= 0;
  • src/views/partials/topnav.ejs

    rabdcf33 rd2b7247  
    99// Desktop (≥768px):
    1010//   - Full v9 masthead: brand left, action row right
    11 //     (Archief / Search / Install / Theme / Prutter / User-menu).
     11//     (Archief / Search / Install / Theme / User-menu).
    1212//   - bottom-tab is hidden via CSS, so all nav must live here.
    1313
Note: See TracChangeset for help on using the changeset viewer.