MENU

Etherpad,又一款强大的实时协作Markdown工具 | OpenEuler 社区SIG Meeting同款工具

• September 5, 2025 • Read: 25 • 编码👨🏻‍💻

Etherpad 介绍

一款强大的实时协作 Markdown 笔记工具

Etherpad 是一种开源的实时协作编辑器,允许多个用户同时编辑同一文档,并实时显示每个用户的输入内容。Etherpad 最初由 Etherpad 基金会开发,后来被 Google 收购,现在由 Apache 软件基金会维护。Etherpad 可以用于协作编辑文档、记录会议纪要、编写代码等多种场景。现已开源。

🚢 项目地址

🚀Etherpad 特征

  • ⚡️实时编辑: 与他人实时协作。立即查看发生的变化。
  • 🛠️ 可扩展的插件框架: 使用插件向 Etherpad 添加新功能。创建自己的或使用。
  • 💬 实时聊天: 在编辑时与他人交流。讨论更改并分享想法。
  • 📝 富文本编辑: 设置文本格式、添加图像等。轻松创建精美的文档。
  • 🌐多语言支持: 首选需要的语言使用 Etherpad。本地化界面和文档。
  • 📦易于安装: 支持 Docker,可 Docker 快速入门,使用单个命令安装 Etherpad。

🛠️ 部署 Etherpad

👻 先决条件/要求

  • 最低 512MB RAM(推荐 1GB+)
  • 具备 docker,docker-compose 环境

🐳 使用 Docker Compose 部署

services:
  app:
    user: "0:0"
    #image: etherpad/etherpad:latest
    image: docker.cnb.cool/srebro/pidin/etherpad:latest   ##CNB 镜像加速地址
    tty: true
    stdin_open: true
    volumes:
      - plugins:/opt/etherpad-lite/src/plugin_packages
      - etherpad-var:/opt/etherpad-lite/var
    depends_on:
      - postgres
    environment:
      NODE_ENV: production
      ADMIN_PASSWORD: ${DOCKER_COMPOSE_APP_ADMIN_PASSWORD:-admin}
      DB_CHARSET: ${DOCKER_COMPOSE_APP_DB_CHARSET:-utf8mb4}
      DB_HOST: postgres
      DB_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 etherpad
      DEFAULT_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: always
    ports:
      - "${DOCKER_COMPOSE_APP_PORT_PUBLISHED:-9001}:${DOCKER_COMPOSE_APP_PORT_TARGET:-9001}"

  postgres:
    #image: postgres:15-alpine
    image: docker.cnb.cool/srebro/pidin/postgres:15-alpine   ##CNB 镜像加速地址
    environment:
      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/pgdata
    restart: 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/data/pgdata

volumes:
  postgres_data:
  plugins:
  etherpad-var:

浏览器访问 Etherpad 地址:http://ip:9001/

image-20250501221456256

image-20250501222949018

image-20250501221632825

Plugins 插件安装

Basic install

Full Features

args:
        ETHERPAD_PLUGINS: >-
          ep_image_upload
          ep_embedded_hyperlinks2
          ep_headings2
          ep_align
                    ...

🧭 使用 Nginx 反向代理

#Etherpad
  server {
        listen       443 ssl;
        server_name  etherpad.srebro.cn;  ##替换成自己的域名
        error_page  404              /404/404.html;
        charset utf-8;

        ssl_certificate /home/application/nginx/cert/srebro.cn.pem; 
        ssl_certificate_key /home/application/nginx/cert/srebro.cn.key;
        ssl_session_cache    shared:SSL:1m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

    location / {
    proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header x-wiz-real-ip $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://localhost:9001;
        }
}

🎁 获取 Etherpad

Archives Tip
QR Code for this page
Tipping QR Code