3543 Commits

Author SHA1 Message Date
CanbiZ (MickLesk)
4ac7d3b34b fix(tubearchivist): use Docker-compatible paths for cache/media
TubeArchivist uses TA_CACHE_DIR and TA_MEDIA_DIR directly as URL paths.
In Docker these are /cache and /youtube, matching nginx locations.
Our paths (/opt/tubearchivist/cache, /opt/tubearchivist/media) broke
video playback URLs and file downloads.

Create symlinks /cache and /youtube pointing to data dirs, set env vars
to match Docker defaults. Aligns nginx alias paths with official config.
2026-03-30 13:38:46 +02:00
Tobias
04cefef9c4 re-add: dashy 2026-03-30 13:38:20 +02:00
CanbiZ (MickLesk)
8fc2dc2427 fix(tubearchivist): fix nginx auth_request for cache/media files
The auth_request subrequest to /api/ping/ through the generic /api
location block doesn't properly forward cookies to the Django backend,
causing 403 for all /cache/ and /media/ requests.

Use a dedicated internal /_auth location that explicitly proxies to
/api/ping/ with Cookie header forwarding.
2026-03-30 13:32:36 +02:00
CanbiZ (MickLesk)
cc71bb8e70 nodejs 2026-03-30 13:18:18 +02:00
CanbiZ (MickLesk)
38246408c0 add hint 2026-03-30 13:17:37 +02:00
CanbiZ (MickLesk)
32ab032797 fix(tubearchivist): fix celery beat race condition on first boot
Beat service starts before manage.py migrate creates the
django_celery_beat tables, causing 'no such table' error.
Add ExecStartPre that waits for migration to complete by
polling the SQLite DB for the crontab table.
2026-03-30 13:12:38 +02:00
tremor021
2a1e0ab678 fireshare: fix sed 2026-03-30 12:09:14 +02:00
CanbiZ (MickLesk)
a25ddb6fce fix(transmute): use xvfb-run instead of ExecStartPre for Xvfb
ExecStartPre runs Xvfb as a blocking foreground process, preventing
systemd from ever reaching ExecStart (timeout/failure).
Use xvfb-run wrapper to properly manage the virtual display.
2026-03-30 11:57:48 +02:00
CanbiZ (MickLesk)
96fbb51abe fix(tubearchivist): correct TA_APP_DIR to backend path
Docker copies backend to /app, so APP_DIR=/app maps static/img/ correctly.
Our bare-metal install has backend at /opt/tubearchivist/backend/,
so TA_APP_DIR must point there for fallback thumbnails to resolve.

Fixes missing thumbnails, default-channel-banner.jpg not found error.
Update script migrates existing installs to the corrected path.
2026-03-30 11:56:22 +02:00
CanbiZ (MickLesk)
90a4304fa4 Transmute: move setup_gs before apt deps to avoid double install
libreoffice-common and inkscape pull in ghostscript 10.05 via apt.
Moving setup_gs (10.07) before apt deps prevents the downgrade+upgrade cycle.
2026-03-30 11:46:11 +02:00
CanbiZ (MickLesk)
1a519ad63b Fix Nametag: copy static assets into standalone dir
Next.js standalone output requires .next/static and public/ to be
copied manually into .next/standalone/ for CSS/JS to be served.
Also source .env before prisma generate in update script.
2026-03-30 11:42:51 +02:00
CanbiZ (MickLesk)
12271687c2 Fix DrawDB: switch Caddy to Nginx, add crypto.randomUUID polyfill
- Replace Caddy with Nginx (matches upstream Dockerfile)
- Add crypto.randomUUID polyfill in index.html for non-HTTPS access
  (browsers only expose crypto.randomUUID in secure contexts)
- Apply polyfill also in update script
2026-03-30 11:34:25 +02:00
CanbiZ (MickLesk)
8cfbde0228 Fix Transmute Calibre 404, Nametag prisma env, OTBR drop setup_nodejs
- Transmute: replace manual curl with fetch_and_deploy_gh_release prebuild
- Nametag: pass DATABASE_URL to prisma generate (config needs it at load time)
- OTBR: use apt nodejs/npm instead of setup_nodejs (only needed for cmake web build)
2026-03-30 11:32:01 +02:00
CanbiZ (MickLesk)
4858dae113 Add OpenThread Border Router (OTBR) script
- Build from source via git clone + cmake/ninja
- Privileged container for network admin (iptables/ipset/tun)
- Web GUI on port 80, REST API, mDNS service discovery
- Configurable RCP device path in /etc/default/otbr-agent
- Git-based update with shallow fetch + rebuild
2026-03-30 11:27:31 +02:00
tremor021
c91d4a43c8 fireshare: added some more vars 2026-03-30 10:47:10 +02:00
CanbiZ (MickLesk)
634e89a762 feat: add Transmute, DrawDB, and Nametag CT scripts
Transmute: Self-hosted file converter (Python 3.13/FastAPI + Node.js 20)
  - 100+ formats: images, video, audio, docs, spreadsheets, fonts
  - ffmpeg, ghostscript, inkscape, tesseract, libreoffice, pandoc, calibre
  - Port 3313, SQLite, Xvfb for headless rendering

DrawDB: Database schema editor (pure SPA, Node.js 20 + Caddy)
  - Tags-only repo: uses fetch_and_deploy_gh_tag/check_for_gh_tag
  - Port 3000, no backend, no database

Nametag: Personal relationships manager (Next.js standalone + PostgreSQL)
  - Prisma ORM, photo storage, cron jobs for reminders/purge
  - Port 3000, auto-verified accounts for self-hosted
2026-03-30 10:11:50 +02:00
tremor021
ea6845f05b fireshare: better directory structure 2026-03-30 09:49:55 +02:00
github-actions[bot]
24060a1c39 Delete bambuddy (ct) after migration to ProxmoxVE (#1646)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-30 07:30:15 +00:00
CanbiZ (MickLesk)
ac38d4134e feat(homelable): add new CT script for Homelable
Interactive homelab network visualization and monitoring tool.
Backend: Python 3.13 (FastAPI/uvicorn), Frontend: Node.js 20 (Vite/React)
Caddy reverse proxy on port 3000, SQLite database, nmap network scanning.
Default credentials: admin/admin
2026-03-30 08:56:22 +02:00
CanbiZ (MickLesk)
7b55c3f637 fix(ente): auto-fill ente account add with photos + /opt/ente_data/photos
Skip interactive prompts for app type and export directory by piping
defaults. Use /opt/ente_data/photos instead of /photos.
2026-03-30 08:39:01 +02:00
CanbiZ (MickLesk)
9de814e1d6 fix(ente): use LXC IP instead of localhost for MinIO S3 endpoints
Browser uploads fail with ERR_CONNECTION_REFUSED because Museum returns
presigned S3 URLs with localhost:3200 — unreachable from the user's PC.
Changed all three S3 bucket endpoints to use LOCAL_IP:3200.
2026-03-30 08:36:00 +02:00
tremor021
2a65797f55 test 2026-03-28 11:03:33 +01:00
tremor021
ff1fb45e9a oops 2026-03-28 11:02:37 +01:00
tremor021
f60a861216 fileflows test 2026-03-28 10:47:22 +01:00
github-actions[bot]
3486a46d36 Delete matter-server (ct) after migration to ProxmoxVE (#1641)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-27 21:44:27 +00:00
CanbiZ (MickLesk)
022395a962 fix(ente): rewrite ente-setup to auto-extract OTT from logs
- Remove broken hardcoded-ott config (local-domain-suffix '@' never matches)
- ente-setup now guides through 4 steps: register, extract OTT from journalctl, admin whitelist, CLI+subscription
- Fallback: shows recent codes if auto-detect fails
- Update JSON notes to reference ente-setup instead of code 123456
2026-03-27 16:10:05 +01:00
CanbiZ (MickLesk)
93015c3b55 fix(ente): emails are encrypted in DB, query first user_id instead
Museum encrypts emails before storing (encrypted_email column).
Cannot query by plaintext email. Instead select the first user_id
which is the admin user created during first-start setup.
2026-03-27 16:02:02 +01:00
CanbiZ (MickLesk)
f3b9feba2a fix(ente): use TCP connection for psql in ente-setup
Peer authentication fails when running as root but connecting as
user 'ente'. Use PGPASSWORD with -h 127.0.0.1 to force TCP/password
authentication instead of Unix socket peer auth.
2026-03-27 16:00:30 +01:00
CanbiZ (MickLesk)
4eb9090ce5 fix(ente): add MinIO object storage for photo uploads
Museum requires an S3-compatible object storage backend for file
uploads. The install script had dummy S3 credentials pointing to
localhost:3200 but no service was running there, causing HTTP 500
on /files/upload-url.

- Install MinIO binary with random password
- Create required buckets (b2-eu-cen, wasabi-eu-central-2-v3, scw-eu-fr-v3)
- Configure museum.yaml with proper S3 credentials and bucket names
- MinIO runs on port 3200 (API) and 3201 (console)
2026-03-27 15:46:36 +01:00
CanbiZ (MickLesk)
d7bf4d51f1 feat(ente): automate first-start setup with ente-setup script
- Add hardcoded OTT (123456) for all emails in museum.yaml so users
  don't need to search logs for verification codes
- Replace separate helper scripts with single 'ente-setup' command
  that handles: admin whitelisting (user_id from DB), CLI account
  add, and subscription upgrade in one guided flow
- Simplify JSON notes to single first-start instruction
2026-03-27 15:44:00 +01:00
CanbiZ (MickLesk)
4fe1d95c81 fix(ente): auto-whitelist admin by user_id from database
The admin CLI requires the user to be whitelisted via their numeric
user_id in museum.yaml's internal.admin field. The helper script
ente-upgrade-subscription now:
1. Looks up user_id from PostgreSQL by email
2. Adds internal.admin to museum.yaml if not present
3. Restarts museum
4. Runs the subscription upgrade

This replaces the previous approach that incorrectly assumed the
first user was auto-admin (that fallback only works when internal
section is completely absent AND was unreliable).
2026-03-27 15:41:05 +01:00
CanbiZ (MickLesk)
dbabc9a1c2 fix(ente): remove explicit admins:[] from museum.yaml
The 'internal.admins' field expects user IDs, not emails. Setting it
to an empty array explicitly disables admin access. Without the field,
museum falls back to treating the first registered user as admin,
which is the correct behavior for self-hosted instances.
2026-03-27 15:38:07 +01:00
CanbiZ (MickLesk)
4b2c538ed9 fix(ente): add admin config section and fix CLI flags
- Add 'internal: admins: []' section to museum.yaml so admin CLI
  commands work after adding email to the list
- Fix --no-limit flag in helper script (requires 'True' argument)
- Add admin setup step to JSON first-start notes
2026-03-27 15:36:01 +01:00
CanbiZ (MickLesk)
ab6fe149b5 fix(oxicloud): set OXICLOUD_STATIC_PATH to serve frontend
The server defaults to ./static relative to the working directory.
Without WorkingDirectory in the service, it looks at /static which
doesn't exist, causing 404 on the web UI. Set the absolute path
/opt/oxicloud/static in the .env file.
2026-03-27 15:20:53 +01:00
CanbiZ (MickLesk)
1e82098f7c fix(labca): remove blocking -init call and system user
The labca-gui -init flag does not exit after initialization - it starts
the HTTP server and blocks forever, causing the install to hang.
Removed the -init call; the service handles first-run setup via the
browser /setup route automatically. Also removed system user (runs as
root in LXC).
2026-03-27 15:03:27 +01:00
CanbiZ (MickLesk)
3540b0ae90 fix(ente,garmin-grafana): resolve port conflict and credential piping
Ente: Remove circular Caddy :8080 reverse_proxy block that conflicted
with Museum binding to the same port. Museum serves directly on 8080.

Garmin-Grafana: Use GARMINCONNECT_EMAIL and GARMINCONNECT_BASE64_PASSWORD
env vars instead of broken heredoc stdin piping through timeout+uv run.
MFA code piped via stdin only when provided.
2026-03-27 14:54:58 +01:00
CanbiZ (MickLesk)
61d73907ec Fix update scripts: pixelfed storage backup, github-runner full config backup, forgejo-runner version check 2026-03-27 14:41:46 +01:00
Michel Roegl-Brunner
b889281340 Trying to fix twenty 2026-03-27 14:33:19 +01:00
CanbiZ (MickLesk)
60965428ab Refactor multiple scripts: fix garmin-grafana unbound var, remove creds files, fix tor-snowflake user/sudo, fix ente source URL, fix oxicloud env sourcing, fix pixelfed creds footer 2026-03-27 14:32:27 +01:00
CanbiZ (MickLesk)
682d8b566a Rename Companion to Bitfocus Companion: files, slug, paths, service, remove system user (Anti-Pattern #9) 2026-03-27 14:17:30 +01:00
CanbiZ (MickLesk)
a72a5e051e Refactor Companion: apt-get to apt, remove pre-installed jq from deps 2026-03-27 14:12:53 +01:00
CanbiZ (MickLesk)
e13cc61a6d Merge pull request #1584 from glabutis/feat/companion
feat: add Bitfocus Companion LXC installer
2026-03-27 14:09:25 +01:00
CanbiZ (MickLesk)
ef0a16733f Refactor Apprise-API: fix URLs to ProxmoxVED, remove pre-installed deps (curl, sed) 2026-03-27 14:06:26 +01:00
CanbiZ (MickLesk)
cb49eacbc1 Merge pull request #1610 from SystemIdleProcess/add/apprise-api
feat: add Apprise API container
2026-03-27 14:04:25 +01:00
CanbiZ (MickLesk)
eb36cb3133 Refactor CLIProxyAPI: remove msg wrapper, remove creds file, update JSON notes 2026-03-27 14:03:38 +01:00
CanbiZ (MickLesk)
b4f7bfae1d Merge pull request #1509 from mathiasnagler/add/cliproxyapi
New lxc : CLIProxyAPI
2026-03-27 14:00:09 +01:00
CanbiZ (MickLesk)
8fcc515303 Refactor SurrealDB: remove msg wrapper, remove creds file, add JSON 2026-03-27 13:59:27 +01:00
CanbiZ (MickLesk)
2543033369 Merge pull request #1512 from PouletteMC/feature/surrealdb
New LXC: SurrealDB
2026-03-27 13:58:04 +01:00
CanbiZ (MickLesk)
ea48145d59 Refactor Bambuddy: fix URLs to ProxmoxVED, apt-get to apt, add JSON 2026-03-27 13:54:24 +01:00
CanbiZ (MickLesk)
dcc0af2a75 Merge pull request #1565 from Adrian-RDA/add/bambuddy
feat: add Bambuddy LXC container script
2026-03-27 13:52:28 +01:00