feat: add Etherpad#1723
Conversation
Adds a new LXC helper-script for Etherpad (https://etherpad.org), a real-time collaborative document editor (Node.js / pnpm). - ct/etherpad.sh — launcher + update_script using check_for_gh_release against ether/etherpad-lite. - install/etherpad-install.sh — Node.js 22 via NodeSource, pnpm via corepack, clone latest release tag, pnpm install --frozen-lockfile && pnpm run build:etherpad, dedicated etherpad system user, systemd unit running `pnpm run prod`. - json/etherpad.json — category 12 (Documents & Notes), port 9001, default credentials none, default resources 2 vCPU / 2 GB RAM / 8 GB disk on Debian 12 unprivileged. Refs ether/etherpad#7529
|
Really valuable feedback, thanks. I'll get to making the proposed changes hopefluly in the next hour or so :) |
- Replace manual tag lookup + git clone/checkout with fetch_and_deploy_gh_release (tarball mode) for both install and update paths, matching repo convention (see ct/clickhouse.sh). - Drop git, curl, ca-certificates from apt deps — base image ships them and the helper no longer needs git. - Remove the id -u etherpad guard; fresh LXC will not have the user. - Bump Debian from 12 to 13 (trixie). - Switch logo to selfh.st/icons webp. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Sorry about the delay in making the changes and thanks again for the feedback, you should be able to review and test deployment now :) |
| "text": "The default install uses the built-in DirtyDB store, intended for evaluation only. For production, edit /opt/etherpad-lite/settings.json and switch the 'dbType' to mysql or postgres.", | ||
| "type": "info" |
There was a problem hiding this comment.
why don't we directly add a mysql or postgresql-db?
we offer functions like setup_postgres_db to directly create a db with user
There was a problem hiding this comment.
Hrm, we abstract database using ueberdb so let me see how we would make that work. I think it should be fine but I don't want to force a specific database on an admin as I think we support ten or so databases...
I'll grab my laptop out and provide a thorough answer shortly
|
Would you be comfortable with sqlite? That might be the optimal choice? If not, I'll look into the setup_postgres_db :) |
|
sure, if you fully support sqlite then that is your choice ^^ |
|
Perfect I'll get back to you within 48 hours |
|
Apologies, it's been a long 48 hours, I will get to this ASAP |
✍️ Description
Adds an LXC helper-script for Etherpad — a real-time collaborative document editor (Node.js / pnpm, Apache-2.0).
ct/etherpad.sh— launcher +update_scriptusingcheck_for_gh_releaseagainstether/etherpad-lite, with service-stop / config-backup /CLEAN_INSTALL=1 fetch_and_deploy_gh_release/ rebuild / config-restore / service-start steps.install/etherpad-install.sh— installs Node.js 22 viasetup_nodejs, enables pnpm via corepack, deploys the latestether/etherpad-literelease tarball to/opt/etherpad-liteviafetch_and_deploy_gh_release, runspnpm install --frozen-lockfile && pnpm run build:etherpad, creates a dedicatedetherpadsystem user, seedssettings.jsonfrom the template (rewritingipto0.0.0.0), and installs a systemd unit runningpnpm run prod.json/etherpad.json— category 12 (Documents & Notes), port 9001, default credentials none, selfh.st/icons logo, Debian 13.🔗 Related PR / Issue
Link: ether/etherpad#7529
✅ Prerequisites
http://<ip>:9001loads the pad, multi-browser collaboration works,systemctl status etherpadactive, logs viajournalctl -u etherpad -fclean. Retest on Debian 13 pending after review refactor.etherpadsystem user; no hardcoded credentials; firewalling is the operator's responsibility.🛠️ Type of Change
🔍 Code & Security Review
Code_Audit.md&CONTRIBUTING.mdguidelinesAppName.sh,AppName-install.sh,AppName.json) —ct/etherpad.sh,install/etherpad-install.sh,json/etherpad.json.📋 Additional Information
fetch_and_deploy_gh_release "etherpad-lite" "ether/etherpad-lite" "tarball" "latest" "/opt/etherpad-lite"— same helper used across the catalog (e.g.ct/clickhouse.sh).check_for_gh_releasedetects newether/etherpad-litetags; on update the script stops the service, backs upsettings.jsonandvar/, redeploys the tarball withCLEAN_INSTALL=1, reinstalls deps, rebuilds, restores config, restarts.e56def8a:fetch_and_deploy_gh_releasereplaces manual clone in both install and update.git,curl,ca-certificatesfrom apt list (base image has them, helper removes git need).id -u etherpadguard arounduseradd.selfh.st/iconswebp.📦 Application Requirements (for new scripts)
developthrough today.ether/etherpad-litehas 18k+ stars.fetch_and_deploy_gh_releaseconsumesarchive/refs/tags/<tag>.tar.gz.🌐 Source