21 Commits

Author SHA1 Message Date
Michel Roegl-Brunner
95050dfdb4 Still fixing...! 2026-03-27 13:36:19 +01:00
Michel Roegl-Brunner
7304094dc0 Trying to fix this mess 2026-03-27 13:25:34 +01:00
Michel Roegl-Brunner
c8a481e7fa Fixes 2026-03-27 13:15:47 +01:00
Michel Roegl-Brunner
809d61574e erpnext 2026-03-27 12:57:50 +01:00
Michel Roegl-Brunner
c7b4576a02 Add pip 2026-03-27 12:40:05 +01:00
CanbiZ (MickLesk)
2b98ea03e9 node24 2026-03-26 07:57:35 +01:00
CanbiZ (MickLesk)
c5e5a938c7 feat: add .creds files for erpnext, teable, tubearchivist, storyteller
Write credentials to ~/appname.creds matching existing convention
(affine, discourse, ente). Update CT scripts to reference .creds.

- erpnext: admin pass, db root pass
- teable: db pass, secret key
- tubearchivist: admin pass, ES pass
- storyteller: secret key
2026-03-25 16:07:52 +01:00
CanbiZ (MickLesk)
f8e8feea87 fix(erpnext): link supervisor config and load process groups
bench setup production generates supervisor.conf but doesn't
symlink it into /etc/supervisor/conf.d/. Without the link,
supervisord has no programs and gunicorn never starts (502).

Add: symlink + supervisorctl reread/update after bench setup.
2026-03-25 16:01:13 +01:00
CanbiZ (MickLesk)
8c9c69aa22 fix(erpnext): symlink ansible binaries to /usr/local/bin
bench setup role spawns a subprocess that checks for ansible on
PATH. The binaries are inside the uv venv and not discoverable.
Symlink ansible* to /usr/local/bin/ to make them available.
2026-03-25 15:56:35 +01:00
CanbiZ (MickLesk)
61b8d3e088 fix(erpnext): use get-pip.py instead of ensurepip
uv's bundled Python has ensurepip stripped out.
Bootstrap pip via get-pip.py from pypa instead.
2026-03-25 15:54:39 +01:00
CanbiZ (MickLesk)
d817b4326c fix(erpnext): bootstrap pip in uv venv for ansible install
bench setup production internally runs:
  sudo <uv-venv-python> -m pip install ansible
but uv tool environments don't include pip by default.

Fix: run ensurepip + pip install ansible before bench setup
production to satisfy the dependency.
2026-03-25 15:38:18 +01:00
CanbiZ (MickLesk)
402c2f6924 fix(erpnext): add frappe user to sudoers with NOPASSWD
- bench init internally invokes sudo for system operations
- frappe user has no password, causing 'Sorry, try again' hang
- Add /etc/sudoers.d/frappe with NOPASSWD:ALL
2026-03-25 15:04:20 +01:00
CanbiZ (MickLesk)
83a2a4c37e fix(storyteller): use Node.js 24 as recommended by upstream docs
- Upstream requires Node 24.x - fixes SyntaxError in worker.cjs
- Add sqlite3 CLI tool as recommended dependency
2026-03-25 15:03:28 +01:00
CanbiZ (MickLesk)
825a718a07 fix(erpnext): run bench setup production as root, add nginx+supervisor
- bench setup production requires root (is_root check) - was failing as frappe user
- Add nginx and supervisor as apt dependencies for production setup
- Remove custom erpnext.service - bench manages gunicorn+workers via supervisor
- Port 8000 → 80 (nginx reverse proxy)
- Fix bench update in CT to run as frappe user with proper PATH
2026-03-25 14:26:04 +01:00
CanbiZ (MickLesk)
ba21020873 fix(erpnext): set MariaDB root password for frappe user access
- MariaDB uses unix_socket auth - frappe user can't connect as MySQL root
- Set proper password and pass via --db-root-password to bench new-site
- Store DB_ROOT_PASSWORD in .env for reference
2026-03-25 14:04:04 +01:00
CanbiZ (MickLesk)
18c29e3ce2 fix(erpnext): add python3-dev for hiredis compilation (Python.h) 2026-03-25 13:43:03 +01:00
CanbiZ (MickLesk)
0ac7fa4e2f Run Frappe bench as 'frappe' system user
Create a dedicated 'frappe' user and run all bench/uv commands as that user. Chown /opt, install frappe-bench and perform bench init, get-app and new-site via sudo -u frappe (preserving PATH), and run 'bench setup production frappe --yes'. Update the systemd service to User=frappe so Gunicorn and bench processes do not run as root, improving security and isolation.
2026-03-25 13:28:03 +01:00
CanbiZ (MickLesk)
1f94843c9c fix: tubearchivist port conflict, jitsi flat repo, erpnext root env
- tubearchivist: backend on 8100 behind nginx on 8000 (was both 8000)
- jitsi: URI=download.jitsi.org suite=stable/ component=empty for flat repo
- erpnext: use CI=1 and FRAPPE_ALLOW_SUPERUSER=1 (not BENCH_ALLOW_SUPERUSER)
2026-03-25 12:08:20 +01:00
CanbiZ (MickLesk)
01e5884ae4 fix: erpnext bench root, jitsi repo URL, tubearchivist python3-dev, storyteller deps
- erpnext: add BENCH_ALLOW_SUPERUSER=1 for root execution
- jitsi: fix double stable/stable/ in repo URL
- tubearchivist: add python3-dev for python-ldap C extension build
- storyteller: add python3-setuptools and pkg-config for sqlite3 build
2026-03-25 11:47:22 +01:00
CanbiZ (MickLesk)
525387e6d5 fix(erpnext): add ~/.local/bin to PATH after uv tool install
uv tool install frappe-bench places the bench executable in
~/.local/bin which is not on PATH by default, causing 'command
not found' (exit 127) when running bench init.
2026-03-25 11:07:17 +01:00
CanbiZ (MickLesk)
9d21dfa112 Add CT installers and metadata for six apps
Add container templates, install scripts and metadata for six applications: BirdNET-Go, ERPNext, Jitsi Meet, Storybook, Storyteller and Tube Archivist. New files include ct/* scripts (container templates and update handlers), install/* scripts (installation and systemd service setup, dependency installation and build steps) and json/* metadata entries (app catalog data, default resources, ports and notes). Each install script configures required dependencies, creates services, and prepares runtime configuration (e.g. DB, ElasticSearch, Node/Python environments, ffmpeg/Readium). This commit enables automated LXC provisioning and update flows for these apps.
2026-03-25 10:21:42 +01:00