196 Commits

Author SHA1 Message Date
SamTV12345
c55007361c
chore: updated node to supported 22,24,25 (#7628)
* chore: updated node to supported 22,24,25

* chore: updated node to supported 22,24,25

* chore: updated node to supported 22,24,25

* chore: updated node to supported 22,24,25

* chore: upgrade deb

* chore: upgrade dockerfile

* chore: use explicit node

* chore: use node 22

* chore: use node 22
2026-04-28 22:45:28 +02:00
John McLear
c2e69388d9
ci: publish Docker images to GHCR alongside Docker Hub (#7569)
* ci: publish Docker images to GHCR alongside Docker Hub

Adds ghcr.io/ether/etherpad as a second publish target on release tags,
reusing the existing docker/metadata-action step so the same SemVer tags
(e.g. 2.6.1, 2.6, 2, latest) are pushed to both registries.

Motivation: downstream consumers (Helm charts in particular) hit Docker
Hub anonymous pull rate limits. GHCR has no such limits and the
workflow already runs with GITHUB_TOKEN, so this is additive with no
new secrets required.

Docker Hub remains the primary/canonical source; GHCR is a mirror.

Note: this only affects future release tags. The 2.6.1 tag already on
Docker Hub will need to be mirrored separately (e.g. via skopeo) if
downstream needs it on GHCR before the next release.

* address qodo review: scope packages:write to publish job, document GHCR

Two fixes from the qodo code review on #7569:

1. Overprivileged PR token (security). The original change set
   'packages: write' at workflow level, which meant pull_request runs
   (whose Test step executes PR-controlled code) also inherited push
   access to GHCR. Splits the workflow into two jobs:
     - build-test: runs on pull_request and push with contents:read
       only. Does the single-arch load+test as before.
     - publish: needs build-test, runs only on push with
       packages:write. Does the multi-arch build-and-push, Docker Hub
       description update, and ether-charts bump.
   Docker Hub login is also now gated by job-level 'if' (same effect
   as the previous step-level 'if').

2. Docs miss GHCR option. Updates doc/docker.md and README.md to
   document the GHCR mirror alongside Docker Hub with equivalent pull
   examples, so downstream users discovering via docs can choose the
   mirror to avoid Docker Hub rate limits.
2026-04-20 10:19:11 +01:00
Stefan Müller
e8c9efb5c5
chore: Rename some occurences of etherpad-lite to etherpad (#7552)
* chore: Rename some occurences of etherpad-lite to etherpad

* chore: Adjust etherpad git urls

* chore: Rename more occurences from etherpad-lite to etherpad

* chore: Adjust default text
2026-04-19 16:53:57 +02:00
John McLear
706dd4bc4c
docs(readme): lead with positioning, not feature description (#7526)
- Rewrite title + About to lead with what Etherpad is for
  (authorship, sovereignty, malleability) before features
- Rewrite Project Status to make the maintainer ask specific and
  to situate the project's 16-year track record
- Add new "Who uses Etherpad" section with categorical adopter
  profiles so institutional evaluators have proof points on-page

No code or behaviour changes.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 11:55:26 +01:00
John McLear
301ae4df2c
feat: add one-line installer script (#7466) (#7485)
* feat: add one-line installer script (#7466)

Adds bin/installer.sh, a small POSIX shell script that:
- Verifies prerequisites (git, Node.js >= 18)
- Installs pnpm globally if missing (with sudo fallback)
- Clones etherpad-lite (configurable branch / dir)
- Runs `pnpm i` and `pnpm run build:etherpad`
- Optionally starts Etherpad if ETHERPAD_RUN=1

Users can now install Etherpad with a single command:

  curl -fsSL https://raw.githubusercontent.com/ether/etherpad-lite/master/bin/installer.sh | sh

README updated to feature the one-liner above the existing
Docker-Compose / manual install instructions.

Closes #7466

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* test: add installer-test workflow + Windows PowerShell installer

- bin/installer.ps1: PowerShell port of installer.sh so the one-liner
  also works on Windows via 'irm ... | iex'.
- .github/workflows/installer-test.yml: end-to-end CI that runs each
  installer against the PR's own commit (via ETHERPAD_REPO/BRANCH env
  vars), verifies clone + node_modules + admin SPA artifacts, and
  smoke-tests by starting Etherpad and curling /api. Runs on
  ubuntu-latest, macos-latest, and windows-latest. Includes a
  shellcheck job for installer.sh.
- README: feature the Windows one-liner alongside the POSIX one.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* test: fix windows smoke test - wrap pnpm in cmd /c

Start-Process can't run pnpm.cmd directly ("not a valid Win32 application").
Wrap it via cmd.exe /c instead, and bump the wait window to 90s for slower
Windows runners. Also dump stderr alongside stdout when the smoke test
fails for easier debugging.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: address Qodo review on installer (#7485)

Two correctness issues caught by Qodo:

1. Node version mismatch: installer required Node >= 18, but the repo's
   engines.node is >= 20. Bump REQUIRED_NODE_MAJOR to 20 in both shell
   and PowerShell installers, and update the README's quick-install
   prerequisite and Requirements section to match.

2. Branch ignored for existing checkouts: when ETHERPAD_DIR already
   existed, the script ran 'git pull --ff-only' on whatever branch
   happened to be checked out, ignoring ETHERPAD_BRANCH and never
   verifying ETHERPAD_REPO. The existing-dir path now:
   - validates the remote URL matches ETHERPAD_REPO
   - refuses to clobber uncommitted changes (excluding pnpm-lock.yaml,
     which pnpm i rewrites during install)
   - fetches with --tags --prune
   - checks out ETHERPAD_BRANCH as a branch or detaches at it as a tag
   - prints the resulting commit short SHA for clarity

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 17:10:22 +01:00
John McLear
4d80659fc8
docs: add AGENTS.MD for AI and developer guidance (#7348)
* docs: add AGENTS.MD for AI and developer guidance

* docs: update project name from Etherpad Lite to Etherpad

* docs: fix incorrect test directory path in AGENTS.MD

* docs: correct test stack description in AGENTS.MD (Mocha is primary)

* docs: fix incorrect easysync documentation path in AGENTS.MD

* chore: add .pr_agent.toml to enable automatic PR review/description on push

* docs: remove nodejs version from README and AGENTS.MD (prefer package.json)

* docs: standardize all indentation to 2 spaces

* chore: update src/package.json node engine to match root (>=20.0.0)
2026-03-04 21:03:58 +00:00
pppery
5295e98595
Remove advertising of Wikimedia etherpad instance (#7327)
Per https://phabricator.wikimedia.org/T371591 they don't want their etherpad instance advertised for unrelated uses.
2026-02-15 19:59:27 +01:00
SamTV12345
6208a04556 fix: use data postgresql mapping 2025-04-19 20:18:27 +02:00
AJ Formation
ac4489875f
Simple Readme documentation (#6729)
* Simple Readme documentation

* Get actual version
2024-10-28 18:18:03 +01:00
SamTV12345
a63c27df0f Unified installation process 2024-08-06 17:47:47 +02:00
SamTV12345
27dab95113
Fixed documentation to be pnpm run plugins i for plugin installation (#6405) 2024-05-24 21:57:39 +02:00
SamTV12345
9f5ff6171a
Fixed docker compose (#6337) 2024-04-17 20:50:21 +02:00
SamTV12345
18cdced765 Fixed images in readme. 2024-03-25 15:36:33 +01:00
Stefan Müller
7ef69d3840
Fix paths in README (#6222) 2024-03-14 16:09:34 +01:00
Stefan Müller
fe106f0afc
Improve plugins docker build and fixed plugin loading when dependencies are specified (#6164)
* Install pnpm only local - not global

* Install plugins during docker build with live-plugin-manager

* Migrated installer to ts.

* Added missing workspace script.

* Fixed docker build.

* Fix Dockerfile

* Fixed installer not being yet initialized.

* Ported installer to correct install path.

* Fixed pnpm installation.

* Fixed docker build.

* Fixed plugin loading.

* Fixed plugins not being able to be loaded.

* Fix plugin installation instructions in README

* Fixed startup.

* Fixed folder not present.

* Added unlinking dependencies.

* Added deleting dependencies.

* Fixed listing plugins.

---------

Co-authored-by: SamTV12345 <40429738+samtv12345@users.noreply.github.com>
2024-03-14 16:06:32 +01:00
SamTV12345
ead3c0ea38
Added typescript to etherpad
* Fixed determining file extension.

* Added ts-node

* Fixed backend tests.

* Fixed frontend test runs.

* Fixed tests.

* Use script approach for starting etherpad.

* Change directory to src.

* Fixed env.

* Change directory

* Fixed build arg.

* Fixed docker build.

* Fixed.

* Fixed cypress file path.

* Fixed.

* Use latest node container.

* Fixed windows workflow.

* Use tsx and optimized docker image.

* Added workflow for type checks.

* Fixed.

* Added tsconfig.

* Converted more files to typescript.

* Removed commented keys.

* Typed caching middleware.

* Added script for checking the types.

* Moved SecretRotator to typescript.

* Fixed npm installation and moved to types folder.

* Use better scripts for watching typescript changes.

* Update windows.yml

* Fixed order of npm installation.

* Converted i18n.

* Added more types.

* Added more types.

* Fixed import.

* Fixed tests.

* Fixed tests.

* Fixed type checking test.

* Fixed stats

* Added express types.

* fixed.
2024-02-05 21:13:02 +01:00
XSpielinbox
fdd1750ac9
Correct Node.js install instructions (#6077) 2023-12-18 17:05:40 +01:00
Stefan
f154a4cd52
Update required node.js version in README (#6067) (#6068) 2023-12-12 21:54:24 +00:00
ppom
d13a5f89ec
fix doc link (#5901)
Co-authored-by: ppom <>
2023-09-01 00:50:54 +02:00
John McLear
1d289520eb
Require Node 16 for Etherpad and target Node 20 for testing (#5771) 2023-06-26 18:11:32 +01:00
John McLear
1c23a40aea docs for public instances 2023-06-20 17:13:01 +01:00
John McLear
a17a498caa require node 14 2023-06-20 15:11:41 +01:00
John McLear
89fe3e79a4 note to get help 2023-06-20 13:58:01 +01:00
John McLear
9e86666b7e Remove LGTM 2023-06-20 13:58:01 +01:00
Richard Hansen
00173cf55d Windows build: Consolidate Windows workflows 2022-05-14 18:25:29 -04:00
Richard Hansen
1d7a41fec2 docs: Expand plugin documentation 2022-04-02 01:11:00 -04:00
Richard Hansen
5b53fda9b0 docs: README formatting tweaks 2022-04-02 01:11:00 -04:00
Richard Hansen
581a5df5ff docs: Use http URL for cloning
and some minor edits
2022-04-02 00:16:30 -04:00
Richard Hansen
1e604add99 deps: Require Node.js 12.17.0 or later
This makes it possible to use dynamic `import()`.
2022-01-27 01:27:10 -05:00
John McLear
90a2b553d1 Revert "Update README.md"
This reverts commit 1c49970fda1e2af1d7b760f43ce4958e8c360a7f.
2021-10-03 11:41:14 +01:00
John McLear
1c49970fda
Update README.md 2021-10-03 11:22:00 +01:00
Richard Hansen
ef1ba21104 deps: Drop support for Node.js < 12.13.0 2021-06-14 23:17:17 +02:00
John McLear
9bc3ac0957 Include shard.etherpad.com in the README 2021-03-09 18:10:49 +00:00
John McLear
f24353e806
Update README.md 2021-03-02 07:00:05 +00:00
John McLear
05b27cfd5d
Update README.md 2021-03-02 06:54:08 +00:00
John McLear
a79f9efdb4
Include props to Sauce Labs for the tests they power. (#4897)
* Include props to Sauce Labs for the tests they power.

* include message in CI
2021-03-01 14:46:50 +00:00
Stefan
a6ac0940cd Link discord and plugins badge with a meaningful url 2021-02-28 11:24:10 +00:00
John McLear
9675a584ce
Windows Installer Badge into README
Windows Installer Badge into README
2021-02-25 10:44:00 +00:00
Dan Sonntag
79fee9e796 Update README.md 2021-02-24 18:44:07 +00:00
John McLear
1a9709bb87
Update README.md 2021-02-23 07:24:39 +00:00
John McLear
a102bbfbef
badges: color fix 2021-02-22 09:37:30 +00:00
John McLear
b7958b915a
docs: Badge polish 2021-02-22 09:28:37 +00:00
Richard Hansen
6198e92706 tests: Pass --legacy-peer-deps flag to work around npm v7 bug
This flag is unknown to npm v6, but npm v6 silently ignores unknown
flags.
2021-02-22 03:36:12 -05:00
John McLear
08d2024caf
docs: badges
Badges into the README.md to show code quality, engagement etc.
2021-02-20 13:22:23 +00:00
Richard Hansen
6163339c0d plugins: Always install plugins with --no-save
The npm CLI can get confused if `package.json` or `package-lock.json`
exist.
2021-02-18 19:18:59 +00:00
Richard Hansen
bdd32f8915 Replace node_modules/ep_etherpad-lite with src 2021-02-16 10:35:05 +00:00
Richard Hansen
8b28e00784 restructure: Prefix bin/ and tests/ with src/
This is a follow-up to commit
2ea8ea12754c92ea06f22428f1e86341dcf00d99.
2021-02-05 21:52:08 +00:00
John McLear
0cc8405e9c Bump minimum required Node.js version to 10.17.0
This makes it possible to use fs.promises.
2021-01-30 17:00:40 -05:00
bytecaster
1d6319b852 docs: Remove ep_page_view from README
Removes ep_page_view plugin from the installation instructions in README.md to aid new users installing etherpad-lite.

According to the plugin directory at https://static.etherpad.org/index.html, the plugin is defunct as it is now part of etherpad-lite core and when I tried installing etherpad with the plugin (following the instructions), its installation resulted in an error every time I opened a pad.
2021-01-20 07:38:54 +00:00
John McLear
8bee2e41f4
docs: update Node version to 14 which is LTS 2020-12-16 19:50:21 +00:00