Initial import of transcript pipeline

This commit is contained in:
maddin
2026-04-15 00:01:38 +02:00
commit fea662392c
305 changed files with 40508 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
Die öffentliche URL `http://memos.maddin.app` antwortete beim Test am 13. April 2026 mit `Server: Caddy`. Falls die produktive Domain über Caddy verwaltet wird, kann statt nginx die vHost-Datei [memos.maddin.app.Caddyfile](/home/maddin/cloud/whisper/deploy/caddy/memos.maddin.app.Caddyfile) verwendet werden.
Vorbereitung:
```bash
transcript memos-auth
transcript memos-sync
```
Statische Buildartefakte liegen unter `/home/maddin/cloud/whisper/memos-site`.
+8
View File
@@ -0,0 +1,8 @@
memos.maddin.app {
root * /home/maddin/cloud/whisper/memos-site
basicauth {
import /home/maddin/cloud/whisper/deploy/nginx/memos.htpasswd
}
file_server
encode zstd gzip
}
+41
View File
@@ -0,0 +1,41 @@
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="${PROJECT_DIR:-$(cd "$SCRIPT_DIR/../.." && pwd)}"
UNIT_DIR="$HOME/.config/systemd/user"
SERVICE_NAME="com.maddin.whisper-transcript-pipeline.service"
UNIT_PATH="$UNIT_DIR/$SERVICE_NAME"
PYTHON_BIN="${PYTHON_BIN:-$(command -v python3 || true)}"
if [[ -z "$PYTHON_BIN" ]]; then
echo "python3 not found in PATH" >&2
exit 1
fi
mkdir -p "$UNIT_DIR"
cat >"$UNIT_PATH" <<EOF
[Unit]
Description=Whisper transcript pipeline
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
WorkingDirectory=$PROJECT_DIR
ExecStart=$PYTHON_BIN $PROJECT_DIR/transcript_pipeline.py watch
Restart=always
RestartSec=5
Environment=PYTHONUNBUFFERED=1
[Install]
WantedBy=default.target
EOF
systemctl --user daemon-reload
systemctl --user enable --now "$SERVICE_NAME"
echo "Installed and started $SERVICE_NAME"
echo "If the service should survive logout, enable lingering once:"
echo " loginctl enable-linger $USER"
+11
View File
@@ -0,0 +1,11 @@
#!/usr/bin/env bash
set -euo pipefail
SERVICE_NAME="com.maddin.whisper-transcript-pipeline.service"
UNIT_PATH="$HOME/.config/systemd/user/$SERVICE_NAME"
systemctl --user disable --now "$SERVICE_NAME" >/dev/null 2>&1 || true
systemctl --user daemon-reload
rm -f "$UNIT_PATH"
echo "Uninstalled $SERVICE_NAME"
+23
View File
@@ -0,0 +1,23 @@
`memos.maddin.app` erwartet statische Quartz-Buildartefakte unter `/home/maddin/cloud/whisper/memos-site`.
Vorbereitung:
```bash
transcript memos-auth
transcript memos-sync
```
Die dazugehörige nginx-vHost-Datei liegt in [memos.maddin.app.conf](/home/maddin/cloud/whisper/deploy/nginx/memos.maddin.app.conf).
Wichtige Pfade:
- Site-Root: `/home/maddin/cloud/whisper/memos-site`
- htpasswd: `/home/maddin/cloud/whisper/deploy/nginx/memos.htpasswd`
- Quartz-Quelle: `/home/maddin/cloud/whisper/memos-content`
Die Basic-Auth-Zugangsdaten werden aus `.env` gelesen:
- `MEMOS_BASIC_AUTH_USER`
- `MEMOS_BASIC_AUTH_PASSWORD`
Hinweis: Eine per `rclone` synchronisierte statische Website ist noch nicht automatisch geschützt. Der Remote-Webserver muss `auth_basic` bzw. die entsprechende Caddy-/nginx-Auth explizit aktivieren und auf die dort vorhandene htpasswd-Datei verweisen.
+15
View File
@@ -0,0 +1,15 @@
server {
listen 80;
listen [::]:80;
server_name memos.maddin.app;
root /home/maddin/cloud/whisper/memos-site;
index index.html;
auth_basic "Private Memos";
auth_basic_user_file /home/maddin/cloud/whisper/deploy/nginx/memos.htpasswd;
location / {
try_files $uri $uri.html $uri/ /404.html;
}
}