Commit Graph

3561 Commits

Author SHA1 Message Date
MickLesk
daf3a5ce6e fix(slink): enable PHP-FPM via PHP_FPM=YES in setup_php 2026-04-03 21:16:50 +02:00
MickLesk
b0651c0e6e fix(openthread-br): enable and start dbus, rsyslog, bind9 before otbr-agent 2026-04-03 20:52:58 +02:00
MickLesk
f13616e3b9 fix(trek): extract admin creds from log; fix(slink): export APP_ENV=prod for all symfony commands 2026-04-02 22:53:30 +02:00
MickLesk
5c02002a19 fix(slink): set APP_ENV=prod for composer to skip dev bundles 2026-04-02 22:42:00 +02:00
MickLesk
81bdfe5eaa fix(soulsync): use uv pip instead of missing venv pip 2026-04-02 22:41:25 +02:00
MickLesk
c04e0141b9 fix(trek): add python3 dep, install all npm deps, improve env config 2026-04-02 22:40:49 +02:00
MickLesk
d351fb2968 fix(labca): enable standalone mode for embedded templates 2026-04-02 22:24:25 +02:00
MickLesk
486eb90163 fix(slink): upgrade PHP 8.3 → 8.5 (required by latest release) 2026-04-02 22:21:47 +02:00
MickLesk
93544b905c fix(slink): add git dependency for composer 2026-04-02 22:09:43 +02:00
MickLesk
0f758c9ab2 fix(soulsync): use apt ffmpeg instead of setup_ffmpeg 2026-04-02 22:06:47 +02:00
MickLesk
f1581d8449 fix(dashy,transmute): use Node.js 24 instead of 22 2026-04-02 22:05:33 +02:00
MickLesk
deb95b1bcf fix(trek,anchor,slink): use Node.js 24 instead of 22 2026-04-02 22:04:39 +02:00
MickLesk
2a75902281 feat(new-scripts): add TREK, SoulSync, UpSnap, Anchor, Slink
- TREK: Self-hosted travel planner (Node.js 22, Express, SQLite)
- SoulSync: Music discovery & automation (Python 3.11, Flask)
- UpSnap: Wake-on-LAN web app (Go binary, PocketBase)
- Anchor: Offline-first note taking (NestJS, Next.js, PostgreSQL)
- Slink: Image sharing platform (PHP/Symfony, SvelteKit, Redis, Caddy)
2026-04-02 21:55:54 +02:00
MickLesk
1aac11e6b3 fix(openthread-br): set privileged mode, don't auto-start services 2026-04-02 21:21:59 +02:00
MickLesk
fcb8e932f1 fix(netboot-xyz): rename install script to match naming convention 2026-04-02 21:04:56 +02:00
MickLesk
81dcba7758 fix(postiz,ente,lobehub): address testing feedback
- postiz: add postiz-rebuild helper for env changes & social provider setup
- ente: rewrite ente-setup Step 4 to use direct SQL instead of flaky CLI
- ente: improve ente-upgrade-subscription to bypass interactive prompts
- lobehub: replace broken ParadeDB APT repo (402) with GitHub release .deb
2026-04-02 18:14:49 +02:00
github-actions[bot]
679a514f86 Delete drawdb (ct) after migration to ProxmoxVE (#1658)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-04-01 20:08:50 +00:00
CanbiZ (MickLesk)
fa7e18f917 lol 2026-04-01 13:18:57 +02:00
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