Etherpad-Go is a performance focused 1 to 1 rewrite of Etherpad-Lite in Go. The old implementation was written in NodeJS and was still in CommonJS. A new implementation in Go allows us to take advantage of Go's concurrency model, static typing, and performance optimizations.
Etherpad is a real-time collaborative editor scalable to thousands of simultaneous real time users. It provides full data export
-
Clone the repository
git clone https://github.com/ether/etherpad-go.git cd etherpad-go -
Create the ui:
cd ui pnpm install cd ../admin pnpm install node build.js
-
Build the Go server:
go build -o etherpad-go ./main.go
-
Copy the binary where you want to run it
-
For customization and configuration, copy the
settings.json.templatetosettings.jsonand edit it to your needs. -
Run the server:
./etherpad-go
-
Etherpad should start within less than a second. Open your browser and navigate to
http://localhost:9001to access the Etherpad interface.
You can also run Etherpad-Go using Docker. Here's how to do it:
-
Build the Docker image:
docker build -t etherpad-go . -
Use a prebuilt one which is available at GitHub Container Registry
You can start the Docker container with a postgres database with docker compose:
docker compose up -dThis will start both the Etherpad-Go server and a Postgres database. The server will be accessible at http://localhost:9001.
You can find the docker compose file in docker-compose.yml
