Commit Graph

9376 Commits

Author SHA1 Message Date
CanbiZ (MickLesk)
12623452a7 upgrade to node24 2026-03-26 07:56:40 +01:00
Tobias
b93120a5b2 Merge pull request #1621 from ocelik94/main
fix: use correct url for downloading forgejo-runner
2026-03-25 20:51:16 +01:00
Okan Celik
0708d43dc2 fix: use correct url for downloading forgejo-runner 2026-03-25 19:45:29 +01:00
CanbiZ (MickLesk)
558c27ec88 Add Baserow, LabCA, and LobeHub installers
Add container templates, install scripts, and metadata for Baserow, LabCA, and LobeHub. New ct/*.sh scripts provide container build and update logic (fetching GitHub releases, backup/restore, build steps). New install/*.sh scripts install dependencies, configure PostgreSQL/Node/uv/PNPM as needed, run migrations, and create systemd services for each app. Corresponding json/*.json entries add metadata (ports, resource defaults, docs, and notes) for UI/registry integration.
2026-03-25 17:34:25 +01:00
CanbiZ (MickLesk)
864761104c fix(tubearchivist): restart nginx after writing config
Debian auto-starts nginx on install with default config (port 80).
'enable --now' is a no-op if already running. Use explicit restart
to pick up our port 8000 config.
2026-03-25 17:08:56 +01:00
CanbiZ (MickLesk)
6983456e68 fix(tubearchivist): add ES_SNAPSHOT_DIR to .env
ES snapshot repo defaults to Docker path /usr/share/elasticsearch/data/snapshot
but our elasticsearch.yml uses path.repo: /var/lib/elasticsearch/snapshot.
Add ES_SNAPSHOT_DIR=/var/lib/elasticsearch/snapshot to match.
2026-03-25 17:05:16 +01:00
CanbiZ (MickLesk)
df6fabdbc4 fix(tubearchivist): source .env in run.sh + symlink for dotenv
run.sh needs env vars (TA_CACHE_DIR etc) before Django starts.
- Add set -a/source .env in run.sh so vars are available
- Symlink .env to backend/ so Django's load_dotenv('.env') finds it
- Fixes 'unable to open database file' (CACHE_DIR defaulting to /cache)
2026-03-25 17:02:45 +01:00
CanbiZ (MickLesk)
3bce8dd3f8 fix(tubearchivist): use startup wrapper script like Docker
Move Django management commands (migrate, collectstatic, ta_envcheck,
ta_connection, ta_startup) into run.sh startup wrapper that:
- Waits up to 60s for ElasticSearch to be healthy
- Runs all init commands before starting uvicorn
- Matches Docker's run.sh approach

This fixes ta_startup failing during install because ES wasn't ready.
The commands now run at every service start with ES readiness check.
2026-03-25 16:43:07 +01:00
CanbiZ (MickLesk)
462c95ee19 fix(tubearchivist): add nginx reverse proxy + celery services
TubeArchivist requires nginx to serve the frontend SPA and proxy API
requests to Django. Without nginx, only API routes work.

Changes:
- Add nginx with config matching Docker's nginx.conf (port 8000)
- Add TA_APP_DIR, TA_CACHE_DIR, TA_MEDIA_DIR env vars for bare-metal paths
- Run Django migrate, collectstatic, ta_envcheck, ta_connection, ta_startup
- Add celery worker + beat scheduler as separate systemd services
- Fix interface port from 8080 to 8000 (nginx)
- Add migrations step to update script
2026-03-25 16:30:36 +01:00
CanbiZ (MickLesk)
617b4443f9 fix(tubearchivist): correct port to 8080
backend_start.py reads TA_BACKEND_PORT (default 8080), not TA_PORT.
Fix .env var name and all port references from 8000 to 8080.
2026-03-25 16:19:04 +01:00
CanbiZ (MickLesk)
d5412462fe Update jitsi.json 2026-03-25 16:11:52 +01:00
CanbiZ (MickLesk)
2a03c9194d fix json 2026-03-25 16:11:26 +01:00
CanbiZ (MickLesk)
b3df4b8cb2 fix(teable): remove unnecessary .creds file
PG_DB_PASS is auto-generated by setup_postgresql_db and stored in
.env. No user-facing credentials are generated - accounts are
created via the web UI.
2026-03-25 16:09:08 +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)
1e9311e67f fix(teable): rm -rf static dir before symlinking
The build creates /opt/teable/static/ as a real directory.
ln -sf on an existing directory creates the symlink INSIDE it
instead of replacing it. Must rm -rf first.
2026-03-25 15:36:35 +01:00
CanbiZ (MickLesk)
20c6c3e74f fix(teable): point static symlink to nested static/static dir
Build process reorganizes apps/nestjs-backend/static/ creating a
nested static/static/{plugin,system} structure. The code resolves
paths like 'static/system/automation-robot.png' relative to cwd,
so the symlink must point to the inner static/ directory.

Adds fallback: checks for nested structure first, falls back to
direct path if not present.
2026-03-25 15:29:38 +01:00
CanbiZ (MickLesk)
4fead19d7d fix(teable): symlink static/ dir for builtin system assets
- NestJS backend expects /opt/teable/static/ at workspace root
- Actual files live in apps/nestjs-backend/static/
- Fixes ENOENT on automation-robot.png during startup
2026-03-25 15:24:24 +01:00
CanbiZ (MickLesk)
9e4d963645 fix(teable): add missing env vars for NestJS config validation
- Add BACKEND_CACHE_PROVIDER=sqlite (no Redis needed)
- Add BACKEND_CACHE_SQLITE_URI for sqlite cache path
- Add NEXTJS_DIR for next.js app resolution
- Create .assets and .temporary dirs for local cache/storage
- Fixes 'PRISMA_DATABASE_URL is required' config validation error
2026-03-25 15:20:48 +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)
2ca9ae4d1b fix(storyteller): use cp -rT to merge into existing standalone dirs
- cp -r creates nested dirs when target already exists (sqlite/sqlite/)
- cp -rT merges source contents INTO the target directory
- mkdir -p ensures target dirs exist before merge
- Fixes uuid.c.so not being found in standalone/web/sqlite/
2026-03-25 14:59:43 +01:00
CanbiZ (MickLesk)
17b027da9b feat(teable): add Teable no-code database LXC script
- NestJS backend serves both API and Next.js frontend on port 3000
- PostgreSQL 16 with Prisma ORM for database management
- pnpm monorepo build with NODE_OPTIONS=8192MB heap
- Symlink /app -> /opt/teable for upstream compatibility
- 4 CPU / 10GB RAM / 25GB disk (heavy build process)
2026-03-25 14:56:16 +01:00
CanbiZ (MickLesk)
f42318842e fix(jitsi): remove sysctl tuning - not available in LXC containers
- net.core.rmem_max and netdev_max_backlog are kernel params
- Unprivileged LXC containers cannot modify /proc/sys/net/core/*
- These are optional performance tunings, not required for Jitsi
2026-03-25 14:26:39 +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)
929e78f39b fix(storyteller): sync CT update_script with install bugfixes
- Bump var_ram 8192 → 10240 to match JSON
- Add NODE_OPTIONS, gcc uuid.c.so, build env vars to update
- Copy migrations/, sqlite/, static/, public/ to standalone
- Symlink .env into standalone working directory
- Restore .env before build so symlink target exists
2026-03-25 14:18:27 +01:00
CanbiZ (MickLesk)
1c939ff0cc fix(storyteller): copy migrations, sqlite and .env to standalone dir
- cp migrations/ and sqlite/ (dlopen needs real files, not symlinks)
- symlink .env into standalone working directory
- Fixes standalone mode missing database and config files
2026-03-25 14:17:24 +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)
5352292d5b fix(storyteller): OOM fix - limit Node heap, restore \, bump RAM to 10GB
- NODE_OPTIONS=--max-old-space-size=4096 to cap V8 heap during yarn install/build
- Restore \ prefixes removed by formatter
- RAM 8192 -> 10240 in JSON
- yarn install --network-timeout 600000 for large monorepo fetch
2026-03-25 13:52:18 +01:00
CanbiZ (MickLesk)
3776f44c1e Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2026-03-25 13:51:38 +01:00
CanbiZ (MickLesk)
2b85a73348 test 2026-03-25 13:51:36 +01:00
Michel Roegl-Brunner
5d1fecf144 Add community contribution section to README
Added a section inviting community contributions and linking to documentation.
2026-03-25 13:47:28 +01:00
Michel Roegl-Brunner
ad2f1bc879 Delete .github/CONTRIBUTOR_AND_GUIDES/ct directory 2026-03-25 13:46:38 +01:00
Michel Roegl-Brunner
3b3edc9c62 Delete .github/CONTRIBUTOR_AND_GUIDES/install directory 2026-03-25 13:46:25 +01:00
Michel Roegl-Brunner
3ad666a9aa Delete .github/CONTRIBUTOR_AND_GUIDES/json directory 2026-03-25 13:46:17 +01:00
Michel Roegl-Brunner
66bc2bcfc2 Revise contributing guidelines and remove outdated info
Updated the contributing guidelines for clarity and conciseness.
2026-03-25 13:46:01 +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)
bfbafb781b fix(jitsi): remove prosody.im repo, use Debian's prosody 0.12.x
Prosody 13.x from prosody.im requires Lua 5.2+ but Debian 12 only has
Lua 5.1. Debian's own prosody (0.12.x) is compatible and satisfies
jitsi-meet's >= 0.12.0 dependency.
2026-03-25 13:34:35 +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)
8dc0295f13 fix(storybook): add --no-dev to prevent init from starting dev server
storybook v10 starts the dev server after init by default, causing the
install script to hang forever
2026-03-25 12:46:25 +01:00
CanbiZ (MickLesk)
6a5e7b88fd fix(tools.func): flat repo detection for suites ending with /
- setup_deb822_repo: skip Components for any suite ending with /
- Previously only skipped for exactly './' but 'stable/' is also flat
- Fixes Jitsi repo producing 'Malformed entry (absolute Suite Component)'
2026-03-25 12:41:33 +01:00
CanbiZ (MickLesk)
f5a72358f3 fix(tubearchivist): remove nginx, backend listens directly on 8000
- Remove nginx reverse proxy (caused 502 because backend didn't start)
- TA_PORT=8000 so Django serves directly on port 8000
2026-03-25 12:15:16 +01:00
CanbiZ (MickLesk)
419893df01 fix(storyteller): correct standalone path, add CI=1, copy static assets
- WorkingDirectory: web/.next/standalone/web (not .next/standalone/web)
- CI=1 to prevent interactive prompts during yarn build
- Copy .next/static and public into standalone output
2026-03-25 12:14:36 +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)
c2f189e9f9 fix(jitsi): use ./ suite for flat repo format
stable/ is also a flat repo but setup_deb822_repo only recognizes
./ as flat. Use URI with /stable and suite ./ to avoid malformed
sources entry.
2026-03-25 11:56:13 +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)
7a68fd9a24 Set Debian version to 12 and drop Java setup
Align defaults to Debian 12 and remove the explicit Java setup call from the installer. Updated ct/jitsi-meet.sh to default var_version to 12, json/jitsi.json to reflect version "12", and removed the `JAVA_VERSION=17 setup_java` line from install/jitsi-meet-install.sh so Java is no longer forced by the installer.
2026-03-25 11:27:57 +01:00