Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<!--

1. If you haven't already, please read https://github.com/ether/etherpad-lite/blob/master/CONTRIBUTING.md#pull-requests .
2. Run all the tests, both front-end and back-end. (see https://github.com/ether/etherpad-lite/blob/master/CONTRIBUTING.md#testing)
1. If you haven't already, please read https://github.com/ether/etherpad/blob/master/CONTRIBUTING.md#pull-requests .
2. Run all the tests, both front-end and back-end. (see https://github.com/ether/etherpad/blob/master/CONTRIBUTING.md#testing)
3. Keep business logic and validation on the server-side.
4. Update documentation.
5. Write `fixes #XXXX` in your comment to auto-close an issue.
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.MD
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ pnpm --filter ep_etherpad-lite run prod # Start production server
- **Commits:** Maintain a linear history (no merge commits). Use meaningful messages in the format: `submodule: description`.
- **Feature Flags:** New features should be placed behind feature flags and disabled by default.
- **Deprecation:** Never remove features abruptly; deprecate them first with a `WARN` log.
- **Forks:** For etherpad-lite changes, commit to `johnmclear/etherpad-lite` fork on a new branch, then PR to `ether/etherpad-lite`. For plugins (`ep_*` repos), committing directly is acceptable.
- **Forks:** For etherpad-lite changes, commit to `johnmclear/etherpad-lite` fork on a new branch, then PR to `ether/etherpad`. For plugins (`ep_*` repos), committing directly is acceptable.

### Testing & Validation
- **Requirement:** Every bug fix MUST include a regression test in the same commit.
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Contributor Guidelines
(Please talk to people on the mailing list before you change this page, see our section on [how to get in touch](https://github.com/ether/etherpad-lite#get-in-touch))
(Please talk to people on the mailing list before you change this page, see our section on [how to get in touch](https://github.com/ether/etherpad#get-in-touch))

**We have decided that LLM/Agent/AI contributions are fine as long as they are within the instructions set out by this document.**

Expand Down Expand Up @@ -140,5 +140,5 @@ Etherpad is much more than software. So if you aren't a developer then worry no
* Write proposals for grants
* Co-Author and Publish CVEs
* Work with SFC to maintain legal side of project
* Maintain TODO page - https://github.com/ether/etherpad-lite/wiki/TODO#IMPORTANT_TODOS
* Maintain TODO page - https://github.com/ether/etherpad/wiki/TODO#IMPORTANT_TODOS

6 changes: 3 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Etherpad Lite Dockerfile
# Etherpad Dockerfile
#
# https://github.com/ether/etherpad-lite
# https://github.com/ether/etherpad
#
# Author: muxator
# Set to "copy" for builds without git metadata (source tarballs, some CI):
Expand All @@ -18,7 +18,7 @@ RUN pnpm run build:ui


FROM node:lts-alpine AS build
LABEL maintainer="Etherpad team, https://github.com/ether/etherpad-lite"
LABEL maintainer="Etherpad team, https://github.com/ether/etherpad"

# Set these arguments when building the image from behind a proxy
ARG http_proxy=
Expand Down
48 changes: 24 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,32 +14,32 @@ Etherpad runs on your server, under your governance. No telemetry. No upsells. A

The code is Apache 2.0. The data format is open. It [scales to thousands of simultaneous editors per pad](http://scale.etherpad.org/). Translated into 105 languages. Extended through hundreds of plugins. Used by Wikimedia, governments, public-sector institutions, and self-hosters worldwide since 2009.

[Full data export](https://github.com/ether/etherpad-lite/wiki/Understanding-Etherpad's-Full-Data-Export-capabilities) is built in. The history is yours.
[Full data export](https://github.com/ether/etherpad/wiki/Understanding-Etherpad's-Full-Data-Export-capabilities) is built in. The history is yours.

## Try it out

[Try out a public Etherpad instance](https://github.com/ether/etherpad-lite/wiki/Sites-That-Run-Etherpad#sites-that-run-etherpad)
[Try out a public Etherpad instance](https://github.com/ether/etherpad/wiki/Sites-That-Run-Etherpad#sites-that-run-etherpad)

## Project Status

Etherpad has been doing the same thing — well — since 2009. No pivots, no acquisitions, no enshittification. Maintained by a small volunteer team.

**We are actively looking for maintainers.** If you have experience with Node.js, real-time systems, or institutional collaboration tooling and you want to work on infrastructure that thousands of organisations quietly depend on, please [open an issue](https://github.com/ether/etherpad-lite/issues) or contact [John McLear](https://github.com/JohnMcLear).
**We are actively looking for maintainers.** If you have experience with Node.js, real-time systems, or institutional collaboration tooling and you want to work on infrastructure that thousands of organisations quietly depend on, please [open an issue](https://github.com/ether/etherpad/issues) or contact [John McLear](https://github.com/JohnMcLear).

### Code Quality

[![Code Quality](https://github.com/ether/etherpad-lite/actions/workflows/codeql-analysis.yml/badge.svg?color=%2344b492)](https://github.com/ether/etherpad-lite/actions/workflows/codeql-analysis.yml)
[![Code Quality](https://github.com/ether/etherpad/actions/workflows/codeql-analysis.yml/badge.svg?color=%2344b492)](https://github.com/ether/etherpad/actions/workflows/codeql-analysis.yml)

### Testing

[![Backend tests](https://github.com/ether/etherpad-lite/actions/workflows/backend-tests.yml/badge.svg?color=%2344b492)](https://github.com/ether/etherpad-lite/actions/workflows/backend-tests.yml)
[![Simulated Load](https://github.com/ether/etherpad-lite/actions/workflows/load-test.yml/badge.svg?color=%2344b492)](https://github.com/ether/etherpad-lite/actions/workflows/load-test.yml)
[![Rate Limit](https://github.com/ether/etherpad-lite/actions/workflows/rate-limit.yml/badge.svg?color=%2344b492)](https://github.com/ether/etherpad-lite/actions/workflows/rate-limit.yml)
[![Docker file](https://github.com/ether/etherpad-lite/actions/workflows/dockerfile.yml/badge.svg?color=%2344b492)](https://github.com/ether/etherpad-lite/actions/workflows/dockerfile.yml)
[![Frontend admin tests powered by Sauce Labs](https://github.com/ether/etherpad-lite/actions/workflows/frontend-admin-tests.yml/badge.svg?color=%2344b492)](https://github.com/ether/etherpad-lite/actions/workflows/frontend-admin-tests.yml)
[![Frontend tests powered by Sauce Labs](https://github.com/ether/etherpad-lite/actions/workflows/frontend-tests.yml/badge.svg?color=%2344b492)](https://github.com/ether/etherpad-lite/actions/workflows/frontend-tests.yml)
[![Backend tests](https://github.com/ether/etherpad/actions/workflows/backend-tests.yml/badge.svg?color=%2344b492)](https://github.com/ether/etherpad/actions/workflows/backend-tests.yml)
[![Simulated Load](https://github.com/ether/etherpad/actions/workflows/load-test.yml/badge.svg?color=%2344b492)](https://github.com/ether/etherpad/actions/workflows/load-test.yml)
[![Rate Limit](https://github.com/ether/etherpad/actions/workflows/rate-limit.yml/badge.svg?color=%2344b492)](https://github.com/ether/etherpad/actions/workflows/rate-limit.yml)
[![Docker file](https://github.com/ether/etherpad/actions/workflows/docker.yml/badge.svg?color=%2344b492)](https://github.com/ether/etherpad/actions/workflows/docker.yml)
[![Frontend admin tests powered by Sauce Labs](https://github.com/ether/etherpad/actions/workflows/frontend-admin-tests.yml/badge.svg?color=%2344b492)](https://github.com/ether/etherpad/actions/workflows/frontend-admin-tests.yml)
[![Frontend tests powered by Sauce Labs](https://github.com/ether/etherpad/actions/workflows/frontend-tests.yml/badge.svg?color=%2344b492)](https://github.com/ether/etherpad/actions/workflows/frontend-tests.yml)
[![Sauce Test Status](https://saucelabs.com/buildstatus/etherpad.svg)](https://saucelabs.com/u/etherpad)
[![Windows Build](https://github.com/ether/etherpad-lite/actions/workflows/windows.yml/badge.svg?color=%2344b492)](https://github.com/ether/etherpad-lite/actions/workflows/windows.yml)
[![Windows Build](https://github.com/ether/etherpad/actions/workflows/windows.yml/badge.svg?color=%2344b492)](https://github.com/ether/etherpad/actions/workflows/windows.yml)

### Engagement

Expand All @@ -60,7 +60,7 @@ For more than a decade, Etherpad has quietly underpinned the documents that matt
- **Newsrooms and investigative journalism teams** — where authorship and editing history matter for legal and editorial integrity.
- **Tens of thousands of self-hosted instances** worldwide, run by IT teams who chose Etherpad because it is theirs.

If your organisation runs Etherpad and would be willing to be listed publicly, please [add it to the wiki](https://github.com/ether/etherpad-lite/wiki/Sites-That-Run-Etherpad).
If your organisation runs Etherpad and would be willing to be listed publicly, please [add it to the wiki](https://github.com/ether/etherpad/wiki/Sites-That-Run-Etherpad).

## Installation

Expand All @@ -71,13 +71,13 @@ The fastest way to get Etherpad running. Requires `git` and Node.js >= 20.
**macOS / Linux / WSL:**

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

**Windows (PowerShell):**

```powershell
irm https://raw.githubusercontent.com/ether/etherpad-lite/master/bin/installer.ps1 | iex
irm https://raw.githubusercontent.com/ether/etherpad/master/bin/installer.ps1 | iex
```
Comment thread
qodo-free-for-open-source-projects[bot] marked this conversation as resolved.

Both installers clone Etherpad into `./etherpad-lite`, install dependencies, and
Expand All @@ -93,12 +93,12 @@ To install and start in one go:

```sh
# macOS / Linux / WSL
ETHERPAD_RUN=1 sh -c "$(curl -fsSL https://raw.githubusercontent.com/ether/etherpad-lite/master/bin/installer.sh)"
ETHERPAD_RUN=1 sh -c "$(curl -fsSL https://raw.githubusercontent.com/ether/etherpad/master/bin/installer.sh)"
```

```powershell
# Windows
$env:ETHERPAD_RUN=1; irm https://raw.githubusercontent.com/ether/etherpad-lite/master/bin/installer.ps1 | iex
$env:ETHERPAD_RUN=1; irm https://raw.githubusercontent.com/ether/etherpad/master/bin/installer.ps1 | iex
```

### Docker-Compose
Expand Down Expand Up @@ -200,7 +200,7 @@ pnpm run plugins i ep_${plugin_name}
```

Also see [the plugin wiki
article](https://github.com/ether/etherpad-lite/wiki/Available-Plugins).
article](https://github.com/ether/etherpad/wiki/Available-Plugins).

### Suggested Plugins

Expand Down Expand Up @@ -297,7 +297,7 @@ playing!

## Helpful resources

The [wiki](https://github.com/ether/etherpad-lite/wiki) is your one-stop
The [wiki](https://github.com/ether/etherpad/wiki) is your one-stop
resource for Tutorials and How-to's.

Documentation can be found in `doc/`.
Expand All @@ -315,21 +315,21 @@ dependency or upgrading version.

If you want to find out how Etherpad's `Easysync` works (the library that makes
it really realtime), start with this
[PDF](https://github.com/ether/etherpad-lite/raw/master/doc/easysync/easysync-full-description.pdf)
[PDF](https://github.com/ether/etherpad/raw/master/doc/easysync/easysync-full-description.pdf)
(complex, but worth reading).

### Contributing

Read our [**Developer
Guidelines**](https://github.com/ether/etherpad-lite/blob/master/CONTRIBUTING.md)
Guidelines**](https://github.com/ether/etherpad/blob/master/CONTRIBUTING.md)

### HTTP API

Etherpad is designed to be easily embeddable and provides a [HTTP
API](https://github.com/ether/etherpad-lite/wiki/HTTP-API) that allows your web
API](https://github.com/ether/etherpad/wiki/HTTP-API) that allows your web
application to manage pads, users and groups. It is recommended to use the
[available client
implementations](https://github.com/ether/etherpad-lite/wiki/HTTP-API-client-libraries)
implementations](https://github.com/ether/etherpad/wiki/HTTP-API-client-libraries)
in order to interact with this API.

OpenAPI (previously swagger) definitions for the API are exposed under
Expand Down Expand Up @@ -357,12 +357,12 @@ send pull request to each plugin individually.

## FAQ

Visit the **[FAQ](https://github.com/ether/etherpad-lite/wiki/FAQ)**.
Visit the **[FAQ](https://github.com/ether/etherpad/wiki/FAQ)**.

## Get in touch

The official channel for contacting the development team is via the [GitHub
issues](https://github.com/ether/etherpad-lite/issues).
issues](https://github.com/ether/etherpad/issues).

For **responsible disclosure of vulnerabilities**, please write a mail to the
maintainers (a.mux@inwind.it and contact@etherpad.org).
Expand Down
2 changes: 1 addition & 1 deletion best_practices.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Contributor Guidelines
(Please talk to people on the mailing list before you change this page, see our section on [how to get in touch](https://github.com/ether/etherpad-lite#get-in-touch))
(Please talk to people on the mailing list before you change this page, see our section on [how to get in touch](https://github.com/ether/etherpad#get-in-touch))

**We have decided that LLM/Agent/AI contributions are fine as long as they are within the instructions set out by this document.**

Expand Down
4 changes: 2 additions & 2 deletions bin/createRelease.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ while true; do
esac
done

ETHER_REPO="https://github.com/ether/etherpad-lite.git"
ETHER_REPO="https://github.com/ether/etherpad.git"
ETHER_WEB_REPO="https://github.com/ether/ether.github.com.git"
TMP_DIR="/tmp/"

Expand Down Expand Up @@ -186,7 +186,7 @@ function publish_release {

function todo_notification {
echo "Release procedure was successful, but you have to do some steps manually:"
echo "- Update the wiki at https://github.com/ether/etherpad-lite/wiki"
echo "- Update the wiki at https://github.com/ether/etherpad/wiki"
echo "- Create a pull request on github to merge the master branch back to develop"
echo "- Announce the new release on the mailing list, blog.etherpad.org and Twitter"
}
Expand Down
4 changes: 2 additions & 2 deletions bin/installer.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# Optional environment variables:
# $env:ETHERPAD_DIR Directory to install into (default: .\etherpad-lite)
# $env:ETHERPAD_BRANCH Branch / tag to clone (default: master)
# $env:ETHERPAD_REPO Repo URL (default: https://github.com/ether/etherpad-lite.git)
# $env:ETHERPAD_REPO Repo URL (default: https://github.com/ether/etherpad.git)
# $env:ETHERPAD_RUN If "1", start Etherpad after install
# $env:NO_COLOR If set, disables coloured output

Expand Down Expand Up @@ -37,7 +37,7 @@ function Test-Cmd([string]$name) {
# ---------- defaults ----------
$EtherpadDir = if ($env:ETHERPAD_DIR) { $env:ETHERPAD_DIR } else { 'etherpad-lite' }
$EtherpadBranch = if ($env:ETHERPAD_BRANCH) { $env:ETHERPAD_BRANCH } else { 'master' }
$EtherpadRepo = if ($env:ETHERPAD_REPO) { $env:ETHERPAD_REPO } else { 'https://github.com/ether/etherpad-lite.git' }
$EtherpadRepo = if ($env:ETHERPAD_REPO) { $env:ETHERPAD_REPO } else { 'https://github.com/ether/etherpad.git' }
$RequiredNodeMajor = 20

Write-Step 'Etherpad installer'
Expand Down
2 changes: 1 addition & 1 deletion bin/installer.sh
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ is_cmd() { command -v "$1" >/dev/null 2>&1; }
# ---------- defaults ----------
ETHERPAD_DIR="${ETHERPAD_DIR:-etherpad-lite}"
ETHERPAD_BRANCH="${ETHERPAD_BRANCH:-master}"
ETHERPAD_REPO="${ETHERPAD_REPO:-https://github.com/ether/etherpad-lite.git}"
ETHERPAD_REPO="${ETHERPAD_REPO:-https://github.com/ether/etherpad.git}"
REQUIRED_NODE_MAJOR=20

step "Etherpad installer"
Expand Down
4 changes: 2 additions & 2 deletions bin/plugins/checkPlugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -447,10 +447,10 @@ log4js.configure({
if (files.includes('static')) {
const staticFiles = await fsp.readdir(`${pluginPath}/static`);
if (!staticFiles.includes('tests')) {
logger.warn('Test files not found, please create tests. https://github.com/ether/etherpad-lite/wiki/Creating-a-plugin#writing-and-running-front-end-tests-for-your-plugin');
logger.warn('Test files not found, please create tests. https://github.com/ether/etherpad/wiki/Creating-a-plugin#writing-and-running-front-end-tests-for-your-plugin');
}
} else {
logger.warn('Test files not found, please create tests. https://github.com/ether/etherpad-lite/wiki/Creating-a-plugin#writing-and-running-front-end-tests-for-your-plugin');
logger.warn('Test files not found, please create tests. https://github.com/ether/etherpad/wiki/Creating-a-plugin#writing-and-running-front-end-tests-for-your-plugin');
}

// Update all dependencies to their latest compatible versions.
Expand Down
4 changes: 2 additions & 2 deletions bin/plugins/lib/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Contributor Guidelines
(Please talk to people on the mailing list before you change this page, see our section on [how to get in touch](https://github.com/ether/etherpad-lite#get-in-touch))
(Please talk to people on the mailing list before you change this page, see our section on [how to get in touch](https://github.com/ether/etherpad#get-in-touch))

## Pull requests

Expand Down Expand Up @@ -131,5 +131,5 @@ Etherpad is much more than software. So if you aren't a developer then worry no
* Write proposals for grants
* Co-Author and Publish CVEs
* Work with SFC to maintain legal side of project
* Maintain TODO page - https://github.com/ether/etherpad-lite/wiki/TODO#IMPORTANT_TODOS
* Maintain TODO page - https://github.com/ether/etherpad/wiki/TODO#IMPORTANT_TODOS

2 changes: 1 addition & 1 deletion doc/.vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ export default defineConfig({
},

socialLinks: [
{ icon: 'github', link: 'https://github.com/ether/etherpad-lite' }
{ icon: 'github', link: 'https://github.com/ether/etherpad' }
]
}
})
8 changes: 4 additions & 4 deletions doc/api/changeset_library.adoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
== Changeset Library

The https://github.com/ether/etherpad-lite/blob/develop/src/static/js/Changeset.ts[changeset
The https://github.com/ether/etherpad/blob/develop/src/static/js/Changeset.ts[changeset
library]
provides tools to create, read, and apply changesets.

Expand Down Expand Up @@ -31,7 +31,7 @@ const AttributePool = require('ep_etherpad-lite/static/js/AttributePool');
----

Changesets do not include any attribute key–value pairs. Instead, they use
numeric identifiers that reference attributes kept in an https://github.com/ether/etherpad-lite/blob/develop/src/static/js/AttributePool.ts[attribute pool].
numeric identifiers that reference attributes kept in an https://github.com/ether/etherpad/blob/develop/src/static/js/AttributePool.ts[attribute pool].
This attribute interning reduces the transmission overhead of attributes that
are used many times.

Expand All @@ -42,5 +42,5 @@ historical attribute used in the pad.

Detailed information about the changesets & Easysync protocol:

* https://github.com/ether/etherpad-lite/blob/develop/doc/easysync/easysync-notes.pdf[Easysync Protocol]
* https://github.com/ether/etherpad-lite/blob/develop/doc/easysync/easysync-full-description.pdf[Etherpad and EasySync Technical Manual]
* https://github.com/ether/etherpad/blob/develop/doc/easysync/easysync-notes.pdf[Easysync Protocol]
* https://github.com/ether/etherpad/blob/develop/doc/easysync/easysync-full-description.pdf[Etherpad and EasySync Technical Manual]
6 changes: 3 additions & 3 deletions doc/api/changeset_library.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ const AttributePool = require('ep_etherpad-lite/static/js/AttributePool');

Changesets do not include any attribute key–value pairs. Instead, they use
numeric identifiers that reference attributes kept in an [attribute
pool](https://github.com/ether/etherpad-lite/blob/develop/src/static/js/AttributePool.ts).
pool](https://github.com/ether/etherpad/blob/develop/src/static/js/AttributePool.ts).
This attribute interning reduces the transmission overhead of attributes that
are used many times.

Expand All @@ -40,5 +40,5 @@ historical attribute used in the pad.

Detailed information about the changesets & Easysync protocol:

* [Easysync Protocol](https://github.com/ether/etherpad-lite/blob/develop/doc/easysync/easysync-notes.pdf)
* [Etherpad and EasySync Technical Manual](https://github.com/ether/etherpad-lite/blob/develop/doc/easysync/easysync-full-description.pdf)
* [Easysync Protocol](https://github.com/ether/etherpad/blob/develop/doc/easysync/easysync-notes.pdf)
* [Etherpad and EasySync Technical Manual](https://github.com/ether/etherpad/blob/develop/doc/easysync/easysync-full-description.pdf)
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
},
"repository": {
"type": "git",
"url": "https://github.com/ether/etherpad-lite.git"
"url": "https://github.com/ether/etherpad.git"
},
"engineStrict": true,
"version": "2.6.1",
Expand Down
2 changes: 1 addition & 1 deletion settings.json.template
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@
/*
* An Example of MySQL Configuration (commented out).
*
* See: https://github.com/ether/etherpad-lite/wiki/How-to-use-Etherpad-Lite-with-MySQL
* See: https://github.com/ether/etherpad/wiki/How-to-use-Etherpad-Lite-with-MySQL
*/

/*
Expand Down
Loading
Loading