Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork3k
Etherpad: A modern really-real-time collaborative document editor.
License
ether/etherpad-lite
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Etherpad is a real-time collaborative editorscalable to thousands ofsimultaneous real time users. It providesfulldataexportcapabilities, and runs onyour server, underyour control.
Wikimedia provide apublic Etherpad instance for you to Try Etherpad out. oruse another public Etherpad instance to see other features
We're looking for maintainers and have some funding available. Please contact John McLear if you can help.
services:app:user:"0:0"image:etherpad/etherpad:latesttty:truestdin_open:truevolumes: -plugins:/opt/etherpad-lite/src/plugin_packages -etherpad-var:/opt/etherpad-lite/vardepends_on: -postgresenvironment:NODE_ENV:productionADMIN_PASSWORD:${DOCKER_COMPOSE_APP_ADMIN_PASSWORD:-admin}DB_CHARSET:${DOCKER_COMPOSE_APP_DB_CHARSET:-utf8mb4}DB_HOST:postgresDB_NAME:${DOCKER_COMPOSE_POSTGRES_DATABASE:-etherpad}DB_PASS:${DOCKER_COMPOSE_POSTGRES_PASSWORD:-admin}DB_PORT:${DOCKER_COMPOSE_POSTGRES_PORT:-5432}DB_TYPE:"postgres"DB_USER:${DOCKER_COMPOSE_POSTGRES_USER:-admin}# For now, the env var DEFAULT_PAD_TEXT cannot be unset or empty; it seems to be mandatory in the latest version of etherpadDEFAULT_PAD_TEXT:${DOCKER_COMPOSE_APP_DEFAULT_PAD_TEXT:- }DISABLE_IP_LOGGING:${DOCKER_COMPOSE_APP_DISABLE_IP_LOGGING:-false}SOFFICE:${DOCKER_COMPOSE_APP_SOFFICE:-null}TRUST_PROXY:${DOCKER_COMPOSE_APP_TRUST_PROXY:-true}restart:alwaysports: -"${DOCKER_COMPOSE_APP_PORT_PUBLISHED:-9001}:${DOCKER_COMPOSE_APP_PORT_TARGET:-9001}"postgres:image:postgres:15-alpineenvironment:POSTGRES_DB:${DOCKER_COMPOSE_POSTGRES_DATABASE:-etherpad}POSTGRES_PASSWORD:${DOCKER_COMPOSE_POSTGRES_PASSWORD:-admin}POSTGRES_PORT:${DOCKER_COMPOSE_POSTGRES_PORT:-5432}POSTGRES_USER:${DOCKER_COMPOSE_POSTGRES_USER:-admin}PGDATA:/var/lib/postgresql/data/pgdatarestart:always# Exposing the port is not needed unless you want to access this database instance from the host.# Be careful when other postgres docker container are running on the same port# ports:# - "5432:5432"volumes: -postgres_data:/var/lib/postgresql/datavolumes:postgres_data:plugins:etherpad-var:
Node.js >=18.18.2.
- Download the latest Node.js runtime fromnodejs.org.
- Install pnpm:
npm install -g pnpm
(Administrator privileges may be required). - Clone the repository:
git clone -b master
- Run
pnpm i
- Run
pnpm run build:etherpad
- Run
pnpm run prod
- Visit
http://localhost:9001
in your browser.
Findhere information on running Etherpad in a container.
Etherpad is very customizable through plugins.
For a list of available plugins, see thepluginssite.
You can install plugins from the admin web interface (e.g.,http://127.0.0.1:9001/admin/plugins).
Alternatively, you can install plugins from the command line:
cd /path/to/etherpad-litepnpm run plugins i ep_${plugin_name}
Also seethe plugin wikiarticle.
Run the following command in your Etherpad folder to get all of the featuresvisible in the above demo gif:
pnpm run plugins i \ ep_align \ ep_comments_page \ ep_embedded_hyperlinks2 \ ep_font_color \ ep_headings2 \ ep_markdown \ ep_webrtc
For user authentication, you are encouraged to run anOpenIDConnect identity provider (OP) and install thefollowing plugins:
- ep_openid_connect toauthenticate against your OP.
- ep_guest to create a"guest" account that has limited access (e.g., read-only access).
- ep_user_displaynameto automatically populate each user's displayed name from your OP.
- ep_stable_authorid sothat each user's chosen color, display name, comment ownership, etc. isstrongly linked to their account.
Run the following command in your Etherpad folder to upgrade
- Stop any running Etherpad (manual, systemd ...)
- Get present version
git -P tag --contains
- List versions available
git -P tag --list"v*" --merged
- Select the version
git checkout v2.2.5git switch -c v2.2.5
- Upgrade Etherpad
./bin/run.sh
- Stop with [CTRL-C]
- Restart your Etherpad service
You can modify the settings insettings.json
. If you need to handle multiplesettings files, you can pass the path to a settings file tobin/run.sh
using the-s|--settings
option: this allows you to run multiple Etherpadinstances from the same installation. Similarly,--credentials
can be used togive a settings override file,--apikey
to give a different APIKEY.txt fileand--sessionkey
to give a non-defaultSESSIONKEY.txt
.Each configurationparameter can also be set via an environment variable, using the syntax"${ENV_VAR}"
or"${ENV_VAR:default_value}"
. For details, refer tosettings.json.template
. Once you have access to your/admin
section,settings can be modified through the web browser.
If you are planning to use Etherpad in a production environment, you should usea dedicated database such asmysql
, since thedirtyDB
database driver isonly for testing and/or development purposes.
If you have enabled authentication inusers
section insettings.json
, it isa good security practice tostore hashes instead of plain text passwords inthat file. This isespecially advised if you are running a productioninstallation.
Please installep_hash_auth pluginand configure it. If you prefer,ep_hash_auth
also gives you the option ofstoring the users in a custom directory in the file system, without having toeditsettings.json
and restart Etherpad each time.
Openhttp://127.0.0.1:9001/p/test#skinvariantsbuilder in your browser and startplaying!
Thewiki is your one-stopresource for Tutorials and How-to's.
Documentation can be found indoc/
.
You can debug Etherpad usingbin/debugRun.sh
.
You can run Etherpad quickly launchingbin/fastRun.sh
. It's convenient fordevelopers and advanced users. Be aware that it will skip the dependenciesupdate, so remember to runbin/installDeps.sh
after installing a newdependency or upgrading version.
If you want to find out how Etherpad'sEasysync
works (the library that makesit really realtime), start with thisPDF(complex, but worth reading).
Read ourDeveloperGuidelines
Etherpad is designed to be easily embeddable and provides aHTTPAPI that allows your webapplication to manage pads, users and groups. It is recommended to use theavailable clientimplementationsin order to interact with this API.
OpenAPI (previously swagger) definitions for the API are exposed under/api/openapi.json
.
There is ajQuery pluginthat helps you to embed Pads into your website.
Etherpad offers a plugin framework, allowing you to easily add your ownfeatures. By default your Etherpad is extremely light-weight and it's up to youto customize your experience. Once you have Etherpad installed you shouldvisitthe plugin page and take control.
Etherpad comes with translations into all languages thanks to the team atTranslateWiki.
If you require translations inplugins pleasesend pull request to each plugin individually.
Visit theFAQ.
The official channel for contacting the development team is via theGitHubissues.
Forresponsible disclosure of vulnerabilities, please write a mail to themaintainers (a.mux@inwind.it andcontact@etherpad.org).
Join the officialEtherpad DiscordChannel.
About
Etherpad: A modern really-real-time collaborative document editor.
Topics
Resources
License
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.