lemmy: hacktivism extra_themes + apply-branding
This commit is contained in:
parent
4609035d46
commit
d519fb3c80
9 changed files with 80 additions and 6 deletions
|
|
@ -32,7 +32,7 @@ configs/ # mirrored app configs (caddy, taler, forgejo, …)
|
||||||
taler-exchange/ # exchange conf (inside ansible container)
|
taler-exchange/ # exchange conf (inside ansible container)
|
||||||
taler-exchange-ansible/ # container taler-hacktivism-exchange-ansible
|
taler-exchange-ansible/ # container taler-hacktivism-exchange-ansible
|
||||||
forgejo/ # rootless git.hacktivism.ch
|
forgejo/ # rootless git.hacktivism.ch
|
||||||
castopod/ bonfire/ prime/ # compose mirrors (no secret values)
|
castopod/ bonfire/ lemmy/ prime/ # compose mirrors (no secret values)
|
||||||
tops/ # koopa-tops-ng1…ng3 + autostart unit
|
tops/ # koopa-tops-ng1…ng3 + autostart unit
|
||||||
tor/ # KoopaRelay ORPort 8080
|
tor/ # KoopaRelay ORPort 8080
|
||||||
scripts/ # merchant, exchange, monitoring helpers
|
scripts/ # merchant, exchange, monitoring helpers
|
||||||
|
|
@ -52,6 +52,7 @@ scripts/ # merchant, exchange, monitoring helpers
|
||||||
| `taler-hacktivism-bank` | libeufin-bank (GOA) | **9012** (+ landing **9013**) |
|
| `taler-hacktivism-bank` | libeufin-bank (GOA) | **9012** (+ landing **9013**) |
|
||||||
| `koopa-castopod` (+ mariadb/redis) | Castopod | **9020** |
|
| `koopa-castopod` (+ mariadb/redis) | Castopod | **9020** |
|
||||||
| `koopa-bonfire` (+ postgres) | Bonfire | **9021** |
|
| `koopa-bonfire` (+ postgres) | Bonfire | **9021** |
|
||||||
|
| `koopa-lemmy-proxy` (+ lemmy/ui/pictrs/db) | Lemmy | **9026** |
|
||||||
| `koopa-prime-jellyfin` | Jellyfin | **9022** |
|
| `koopa-prime-jellyfin` | Jellyfin | **9022** |
|
||||||
| `koopa-prime-qbittorrent` | qBittorrent | **9023** |
|
| `koopa-prime-qbittorrent` | qBittorrent | **9023** |
|
||||||
| `koopa-forgejo` (+ postgres) | Forgejo rootless | **9024** + SSH **9200** |
|
| `koopa-forgejo` (+ postgres) | Forgejo rootless | **9024** + SSH **9200** |
|
||||||
|
|
@ -62,8 +63,8 @@ Start model (exchange): `~/ansible-taler-exchange/` → `run-container-koopa.sh`
|
||||||
Start model (user apps): `hernani` → `cd ~/koopa-* && podman-compose up -d`.
|
Start model (user apps): `hernani` → `cd ~/koopa-* && podman-compose up -d`.
|
||||||
Start model (tops): user unit `container-koopa-tops.service` (linger).
|
Start model (tops): user unit `container-koopa-tops.service` (linger).
|
||||||
|
|
||||||
Public hosts: `taler.` / `exchange.` / `bank.` / `castopod.` / `bonfire.` / `prime.` / `bt.` / **`git.hacktivism.ch`** / `tops.ng1`–`ng3`.hacktivism.ch
|
Public hosts: `taler.` / `exchange.` / `bank.` / `castopod.` / `bonfire.` / `prime.` / `bt.` / **`git.hacktivism.ch`** / `lemmy.` / `tops.ng1`–`ng3`.hacktivism.ch
|
||||||
(Caddy → 9010–9015 / 9020–**9024** / **9090–9092**; git-SSH host **9200** direct).
|
(Caddy → 9010–9015 / 9020–**9026** / **9090–9092**; git-SSH host **9200** direct).
|
||||||
|
|
||||||
Service **details**: `configs/taler-hacktivism*`, `configs/taler-exchange*`, `configs/forgejo/`, `configs/tops/`, `scripts/*`.
|
Service **details**: `configs/taler-hacktivism*`, `configs/taler-exchange*`, `configs/forgejo/`, `configs/tops/`, `scripts/*`.
|
||||||
Host-wide picture: **`host/overview/services.md`**.
|
Host-wide picture: **`host/overview/services.md`**.
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ Directories are named to match **live podman container names** where possible.
|
||||||
| `taler-exchange/` | conf inside exchange container | (see exchange-ansible) |
|
| `taler-exchange/` | conf inside exchange container | (see exchange-ansible) |
|
||||||
| `taler-exchange-ansible/` | **`taler-hacktivism-exchange-ansible`** | `taler-hacktivism-exchange-ansible:landing` |
|
| `taler-exchange-ansible/` | **`taler-hacktivism-exchange-ansible`** | `taler-hacktivism-exchange-ansible:landing` |
|
||||||
| `bank-landing/` `exchange-landing/` `merchant-landing/` | nginx landing snippets | ports 9013–9015 |
|
| `bank-landing/` `exchange-landing/` `merchant-landing/` | nginx landing snippets | ports 9013–9015 |
|
||||||
| `koopa-*` apps | `koopa-castopod`, `koopa-bonfire`, … | compose mirrors |
|
| `koopa-*` apps | `koopa-castopod`, `koopa-bonfire`, `koopa-lemmy`, … | compose mirrors |
|
||||||
| `tops/` | `koopa-tops-ng1` … `ng3` | `nginxinc/nginx-unprivileged:1.27-alpine` (non-root, :8080) |
|
| `tops/` | `koopa-tops-ng1` … `ng3` | `nginxinc/nginx-unprivileged:1.27-alpine` (non-root, :8080) |
|
||||||
| `caddy/` `firewalld/` `systemd/` | host services | |
|
| `caddy/` `firewalld/` `systemd/` | host services | |
|
||||||
| `tor/` | **`koopa-tor-relay`** (podman host net) | `localhost/koopa-tor-relay:latest` (**non-root** uid 1000) |
|
| `tor/` | **`koopa-tor-relay`** (podman host net) | `localhost/koopa-tor-relay:latest` (**non-root** uid 1000) |
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,12 @@
|
||||||
|
|
||||||
Secrets: host `~/koopa-lemmy/{.env,lemmy.hjson}` (mode 600). Not in this repo.
|
Secrets: host `~/koopa-lemmy/{.env,lemmy.hjson}` (mode 600). Not in this repo.
|
||||||
|
|
||||||
|
Theme: `extra_themes/hacktivism-overrides.css` + `scripts/lemmy/apply-branding.sh` (exchange-dark, same palette as Bonfire).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd ~/koopa-lemmy && set -a && source .env && set +a && podman-compose up -d
|
cd ~/koopa-lemmy && set -a && source .env && set +a && podman-compose up -d
|
||||||
scripts/lemmy/install-systemd.sh
|
scripts/lemmy/install-systemd.sh
|
||||||
|
scripts/lemmy/apply-branding.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Daylog: `2026/2026-08-17--lemmy.md`.
|
Daylog: `2026/2026-08-17--lemmy.md`.
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,9 @@ services:
|
||||||
- LEMMY_UI_LEMMY_INTERNAL_HOST=lemmy:8536
|
- LEMMY_UI_LEMMY_INTERNAL_HOST=lemmy:8536
|
||||||
- LEMMY_UI_LEMMY_EXTERNAL_HOST=${LEMMY_HOSTNAME}
|
- LEMMY_UI_LEMMY_EXTERNAL_HOST=${LEMMY_HOSTNAME}
|
||||||
- LEMMY_UI_HTTPS=true
|
- LEMMY_UI_HTTPS=true
|
||||||
|
- LEMMY_UI_EXTRA_THEMES_FOLDER=/app/extra_themes
|
||||||
|
volumes:
|
||||||
|
- ./extra_themes:/app/extra_themes:ro
|
||||||
depends_on:
|
depends_on:
|
||||||
- lemmy
|
- lemmy
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
|
||||||
54
configs/lemmy/extra_themes/hacktivism-overrides.css
Normal file
54
configs/lemmy/extra_themes/hacktivism-overrides.css
Normal file
|
|
@ -0,0 +1,54 @@
|
||||||
|
/* hacktivism — same palette as bonfire/git.hacktivism.ch (exchange-dark) */
|
||||||
|
:root,
|
||||||
|
[data-bs-theme=dark],
|
||||||
|
[data-bs-theme=light] {
|
||||||
|
--bs-primary: #e8a838;
|
||||||
|
--bs-primary-rgb: 232, 168, 56;
|
||||||
|
--bs-secondary: #3d3128;
|
||||||
|
--bs-secondary-rgb: 61, 49, 40;
|
||||||
|
--bs-success: #16a34a;
|
||||||
|
--bs-info: #3ecfbf;
|
||||||
|
--bs-info-rgb: 62, 207, 191;
|
||||||
|
--bs-warning: #f0d090;
|
||||||
|
--bs-body-color: #fff6e8;
|
||||||
|
--bs-body-color-rgb: 255, 246, 232;
|
||||||
|
--bs-body-bg: #1a1410;
|
||||||
|
--bs-body-bg-rgb: 26, 20, 16;
|
||||||
|
--bs-emphasis-color: #fff6e8;
|
||||||
|
--bs-secondary-color: #ebe0d0;
|
||||||
|
--bs-tertiary-bg: #221c16;
|
||||||
|
--bs-border-color: #2a2018;
|
||||||
|
--bs-link-color: #e8a838;
|
||||||
|
--bs-link-color-rgb: 232, 168, 56;
|
||||||
|
--bs-link-hover-color: #f0d090;
|
||||||
|
--bs-link-hover-color-rgb: 240, 208, 144;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
background-color: #1a1410 !important;
|
||||||
|
color: #fff6e8 !important;
|
||||||
|
}
|
||||||
|
.navbar,
|
||||||
|
.navbar-dark,
|
||||||
|
.bg-dark,
|
||||||
|
.navbar.bg-dark {
|
||||||
|
background-color: #14110e !important;
|
||||||
|
}
|
||||||
|
.navbar .navbar-brand,
|
||||||
|
.navbar .nav-link.active {
|
||||||
|
color: #e8a838 !important;
|
||||||
|
}
|
||||||
|
.btn-primary {
|
||||||
|
background-color: #e8a838 !important;
|
||||||
|
border-color: #e8a838 !important;
|
||||||
|
color: #1a1410 !important;
|
||||||
|
}
|
||||||
|
.card,
|
||||||
|
.list-group-item,
|
||||||
|
.post-listing,
|
||||||
|
.comment {
|
||||||
|
background-color: #221c16 !important;
|
||||||
|
color: #fff6e8 !important;
|
||||||
|
border-color: #2a2018 !important;
|
||||||
|
}
|
||||||
|
a { color: #e8a838 !important; }
|
||||||
|
a:hover { color: #f0d090 !important; }
|
||||||
|
|
@ -8,7 +8,7 @@ Canonical mirror in this repo: **`configs/caddy/Caddyfile`** (same content as `h
|
||||||
| **9000** | HTTP + ACME webroot + HTTPS redirect |
|
| **9000** | HTTP + ACME webroot + HTTPS redirect |
|
||||||
| **9001** | HTTPS vhosts |
|
| **9001** | HTTPS vhosts |
|
||||||
|
|
||||||
Public sites: `taler` / `exchange` / `bank` / `castopod` / `bonfire` / `prime` / `bt` / **`git`** / **`paivana`** / tops.ng*.
|
Public sites: `taler` / `exchange` / `bank` / `castopod` / `bonfire` / `prime` / `bt` / **`git`** / **`paivana`** / **`lemmy`** / tops.ng*.
|
||||||
Forgejo HTTP: Caddy → `127.0.0.1:9024`. Git SSH is **host :9200** (not Caddy).
|
Forgejo HTTP: Caddy → `127.0.0.1:9024`. Git SSH is **host :9200** (not Caddy).
|
||||||
Paivana: Caddy → `127.0.0.1:9025`.
|
Paivana: Caddy → `127.0.0.1:9025`.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
| `nym/` | **koopa-nym** build/up/status (nym.com nym-node) |
|
| `nym/` | **koopa-nym** build/up/status (nym.com nym-node) |
|
||||||
| `taler-wallet-cli/` | thin wrappers; **benchmarks live in** `../benchmarks/` |
|
| `taler-wallet-cli/` | thin wrappers; **benchmarks live in** `../benchmarks/` |
|
||||||
| `castopod/` | host `hernani` podman-compose `~/koopa-castopod` — see `castopod/README.md` |
|
| `castopod/` | host `hernani` podman-compose `~/koopa-castopod` — see `castopod/README.md` |
|
||||||
|
| `lemmy/` | host `hernani` podman-compose `~/koopa-lemmy` — see `configs/lemmy/README.md` |
|
||||||
|
|
||||||
**Secrets:** never in this tree — sibling **`../koopa-admin-secrets`** (`koopa/host-root/<service>/` ↔ `/root/` on host; `containers/…/secrets/` for in-container).
|
**Secrets:** never in this tree — sibling **`../koopa-admin-secrets`** (`koopa/host-root/<service>/` ↔ `/root/` on host; `containers/…/secrets/` for in-container).
|
||||||
|
|
||||||
|
|
|
||||||
12
scripts/lemmy/apply-branding.sh
Executable file
12
scripts/lemmy/apply-branding.sh
Executable file
|
|
@ -0,0 +1,12 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# Build extra_themes/hacktivism.css (darkly + hacktivism overrides) and set site default.
|
||||||
|
set -euo pipefail
|
||||||
|
LIVE="${HOME}/koopa-lemmy"
|
||||||
|
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
|
||||||
|
OVERRIDES="${ROOT}/configs/lemmy/extra_themes/hacktivism-overrides.css"
|
||||||
|
OUT="${LIVE}/extra_themes/hacktivism.css"
|
||||||
|
|
||||||
|
mkdir -p "${LIVE}/extra_themes"
|
||||||
|
podman exec koopa-lemmy-ui cat /app/dist/assets/css/themes/darkly.css > "${OUT}"
|
||||||
|
cat "${OVERRIDES}" >> "${OUT}"
|
||||||
|
echo "wrote ${OUT} ($(wc -l < "${OUT}") lines)"
|
||||||
|
|
@ -65,7 +65,7 @@ overall: OK ok=42 warn=0 fail=0
|
||||||
| Git SSH | TCP `:9200` |
|
| Git SSH | TCP `:9200` |
|
||||||
|
|
||||||
**Critical** (→ overall FAIL): merchant, exchange, bank, forgejo, edge/critical ports.
|
**Critical** (→ overall FAIL): merchant, exchange, bank, forgejo, edge/critical ports.
|
||||||
**Optional** (→ WARN): castopod, bonfire, prime, bt, paivana, tops, tor, nym.
|
**Optional** (→ WARN): castopod, bonfire, lemmy, prime, bt, paivana, tops, tor, nym.
|
||||||
|
|
||||||
Read-only. No restarts, no secrets.
|
Read-only. No restarts, no secrets.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue