Commit graph

8 commits

Author SHA1 Message Date
73d1e46467 Utled SOAPBOX_BASE_PATH fra stien i SOAPBOX_SITE_URL
https://domene.no/blog gir automatisk base-path /blog. SOAPBOX_BASE_PATH
beholdes kun som overstyring (tom verdi) for proxyer som stripper
prefikset. Dokumentasjon og Caddyfile-eksempel oppdatert; README hadde
også utdatert slug-eksempel og beskrivelse av SITE_URL.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JcEy43fNYpwg6K6oTKakWR
2026-08-26 15:04:13 +02:00
4d9b6f9d90 run.sh: automatisk backup med rotasjon, og --restart=always
Før hver oppstart eksporteres datavolumet til
SOAPBOX_BACKUP_DIR/soapbox-data-<UTC-tidsstempel>.tar.gz; de
SOAPBOX_BACKUP_KEEP nyeste beholdes (standard 5, 0 = av). Bind-mounts
pakkes med tar, navngitte volum med podman volume export.

--restart unless-stopped byttet til --restart=always i run.sh og
compose.yaml: podman håndterer ikke unless-stopped som docker.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JcEy43fNYpwg6K6oTKakWR
2026-08-26 14:41:16 +02:00
50722bf7c2 Utdrag på forsiden og forenklet favicon
Forsiden viser første avsnitt av hvert innlegg som ren tekst (nytt
Jinja-filter `excerpt`, tilgjengelig for egne temaer). Favicon har
færre og større former med tykkere streker så det holder seg ved 16 px.
Siste to punkter fra UI-gjennomgangen.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JcEy43fNYpwg6K6oTKakWR
2026-08-26 14:14:25 +02:00
9eb375e339 Egne temaer i innholdsrepoet, temavalg i innstillinger
Temaer slås opp i content/themes/<navn>/ før de innebygde, slik at et
eget tema følger med i git, backup og ved flytting – uten ny container.
Et tema kan være delvis: manglende maler/filer arves fra green (Jinja
ChoiceLoader, static kopieres lagvis). Valget lagres i site.toml;
SOAPBOX_THEME er bare standardverdi.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JcEy43fNYpwg6K6oTKakWR
2026-08-26 13:45:04 +02:00
fa8b980edd Historikk per innlegg i admin, og presisert flytte-avsnitt i README
Redigeringssiden lenker til /admin/history/<id> som lister commits som
har rørt innleggets mappe; klikk på en commit viser diffen fargelagt.
Samme tilgangsregler som editoren (gjester ser bare egne innlegg).

README skiller nå tydelig mellom å kopiere hele data-volumet (ingen nye
brukere) og å klone bare innholdsrepoet (brukere må opprettes på nytt).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JcEy43fNYpwg6K6oTKakWR
2026-08-26 13:21:32 +02:00
6fef73793f Lisensier under AGPL-3.0-or-later og lenk til kildekoden i footeren
AGPL §13 krever at brukere av en nettverkstjeneste kan hente kildekoden;
temaet viser derfor en lenke til repoet på hver side.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JcEy43fNYpwg6K6oTKakWR
2026-08-26 13:13:25 +02:00
5f6fc252a7 Legg til build.sh, run.sh og .env.example
build.sh bygger imaget med build-dato og git-revisjon, run.sh starter
containeren idempotent (podman run --replace) med innstillinger fra .env.
compose.yaml leser nå samme .env. Alle variabler har standardverdier;
.env.example dokumenterer dem.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JcEy43fNYpwg6K6oTKakWR
2026-08-26 12:36:12 +02:00
7ab2320be6 Soapbox: statisk blogg med mobilvennlig markdown-editor
Flask-app som genererer statiske sider til public/ og serverer dem
sammen med et admin-grensesnitt (/admin). Innhold ligger som markdown
og bilder i et git-repo (data/content), brukere i sqlite.

- Editor med toolbar, live server-side forhåndsvisning, bildeopplasting
  via knapp, dra-og-slipp og lim inn. Bilder nedskaleres og EXIF fjernes.
- Hovedbruker publiserer under /<slug>/, gjester under /<bruker>/<slug>/.
  Slug lages fra tittelen og fryses ved publisering.
- Alle interne lenker er relative, så siden kan flyttes mellom domener og
  sub-paths (SOAPBOX_BASE_PATH) uten rebuild.
- Tema 'green' med CSS-variabler, mørk modus og WCAG-kontrast.
- Containerfile (python:alpine + git), compose.yaml og Caddyfile-eksempel.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JcEy43fNYpwg6K6oTKakWR
2026-08-26 12:12:33 +02:00