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
This commit is contained in:
parent
4faeeeaf81
commit
73d1e46467
4 changed files with 18 additions and 13 deletions
|
|
@ -12,9 +12,9 @@
|
|||
# Må oppdateres og containeren startes på nytt hvis bloggen flyttes.
|
||||
SOAPBOX_SITE_URL=https://blog.domene.no
|
||||
|
||||
# Sub-path bloggen ligger under bak Caddy, f.eks. /blog. Tom = rot.
|
||||
# Må stemme med stien i SOAPBOX_SITE_URL.
|
||||
SOAPBOX_BASE_PATH=
|
||||
# Sub-path utledes automatisk fra SOAPBOX_SITE_URL (…/blog → /blog).
|
||||
# Sett denne bare hvis proxyen stripper prefikset før appen (da: tom verdi).
|
||||
#SOAPBOX_BASE_PATH=
|
||||
|
||||
# Standardtema før noe er valgt i admin. Valget lagres i content/site.toml.
|
||||
# Egne temaer: /data/content/themes/<navn>/ (følger med i git og backup).
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
# Eksempel 1: bloggen på et eget domene (SOAPBOX_BASE_PATH tom)
|
||||
# Eksempel 1: bloggen på et eget domene (SOAPBOX_SITE_URL=https://blog.domene.no)
|
||||
blog.domene.no {
|
||||
encode zstd gzip
|
||||
reverse_proxy localhost:8080
|
||||
}
|
||||
|
||||
# Eksempel 2: bloggen under en sub-path (SOAPBOX_BASE_PATH=/blog).
|
||||
# Eksempel 2: bloggen under en sub-path (SOAPBOX_SITE_URL=https://annet-domene.com/blog).
|
||||
# Appen forventer å få hele stien inkl. /blog, så ingen strip_prefix her.
|
||||
annet-domene.com {
|
||||
encode zstd gzip
|
||||
|
|
|
|||
12
README.md
12
README.md
|
|
@ -16,7 +16,7 @@ data/
|
|||
└── secret_key cookie-signering (genereres automatisk)
|
||||
```
|
||||
|
||||
* **Slug** lages av tittelen (`Grønt er skjønt` → `groent-er-skjoent`). Den følger tittelen så
|
||||
* **Slug** lages av tittelen (`Grønt er skjønt` → `grønt-er-skjønt`). Den følger tittelen så
|
||||
lenge innlegget er utkast, og fryses ved publisering så lenker aldri brekker.
|
||||
* **Alle interne lenker er relative.** Malene regner ut `../` ut fra sidens dybde, og absolutte
|
||||
lenker du skriver i Markdown (`/annet-innlegg/`) skrives om. Derfor fungerer samme `public/`
|
||||
|
|
@ -47,8 +47,8 @@ hovedbrukeren bør settes.
|
|||
| Variabel | Standard | Beskrivelse |
|
||||
|---|---|---|
|
||||
| `SOAPBOX_DATA_DIR` | `./data` (`/data` i container) | Alt persistent |
|
||||
| `SOAPBOX_BASE_PATH` | `` | `/blog` hvis bloggen ligger under en sub-path |
|
||||
| `SOAPBOX_SITE_URL` | `http://localhost:8080` | Absolutt URL til rot, brukes **bare** i `feed.xml` |
|
||||
| `SOAPBOX_BASE_PATH` | stien i `SOAPBOX_SITE_URL` | Overstyring, kun hvis proxyen stripper prefikset |
|
||||
| `SOAPBOX_SITE_URL` | `http://localhost:8080` | Absolutt URL til rot inkl. sub-path; brukes i Open Graph, feed, sitemap og til å utlede base-path |
|
||||
| `SOAPBOX_THEME` | `green` | Mappe under `soapbox/themes/` |
|
||||
| `SOAPBOX_MAX_IMAGE_PX` | `2000` | Lengste side på opplastede bilder |
|
||||
| `SOAPBOX_SECRET_KEY` | autogenerert | Overstyr hvis du vil ha nøkkelen utenfor volumet |
|
||||
|
|
@ -71,7 +71,7 @@ Ny versjon: `git pull && ./build.sh && ./run.sh`. Data ligger i podman-volumet `
|
|||
nyeste (standard 5). Gjenopprett med `podman volume import soapbox-data <fil>`.
|
||||
|
||||
Caddy er ren reverse proxy, se `Caddyfile.example`. Ved sub-path skal Caddy **ikke** strippe
|
||||
prefikset – appen monteres selv under `SOAPBOX_BASE_PATH`.
|
||||
prefikset – appen monteres selv under stien fra `SOAPBOX_SITE_URL`.
|
||||
|
||||
## Flytte bloggen (nytt domene og/eller sub-path)
|
||||
|
||||
|
|
@ -92,8 +92,8 @@ podman volume export soapbox-data | ssh ny-server 'podman volume import soapbox-
|
|||
git clone gammel-server:/sti/til/data/content ./data/content
|
||||
```
|
||||
|
||||
Deretter, uansett metode: sett `SOAPBOX_SITE_URL` og eventuelt `SOAPBOX_BASE_PATH` til de nye
|
||||
verdiene og start. Siden bygges på nytt ved oppstart.
|
||||
Deretter, uansett metode: sett `SOAPBOX_SITE_URL` til den nye adressen (sub-path utledes
|
||||
derfra) og start. Siden bygges på nytt ved oppstart.
|
||||
|
||||
## Tema
|
||||
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import secrets
|
|||
import tomllib
|
||||
from dataclasses import dataclass, field
|
||||
from pathlib import Path
|
||||
from urllib.parse import urlsplit
|
||||
|
||||
|
||||
@dataclass
|
||||
|
|
@ -100,8 +101,12 @@ def load_config(env: dict[str, str] | None = None) -> Config:
|
|||
key_file.write_text(secret)
|
||||
key_file.chmod(0o600)
|
||||
|
||||
base_path = _normalize_base_path(env.get("SOAPBOX_BASE_PATH", ""))
|
||||
site_url = env.get("SOAPBOX_SITE_URL", "http://localhost:8080" + base_path).rstrip("/")
|
||||
# Base-path utledes fra stien i SOAPBOX_SITE_URL (https://x.no/blog → /blog).
|
||||
# SOAPBOX_BASE_PATH er kun en overstyring for oppsett der proxyen stripper
|
||||
# prefikset før forespørselen når appen.
|
||||
site_url = env.get("SOAPBOX_SITE_URL", "http://localhost:8080").rstrip("/")
|
||||
explicit = env.get("SOAPBOX_BASE_PATH")
|
||||
base_path = _normalize_base_path(explicit if explicit is not None else urlsplit(site_url).path)
|
||||
|
||||
cfg = Config(
|
||||
data_dir=data_dir,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue