Hello, I'd like to self-host Etherpad. Can you offer any recommendations?

Regarding my own efforts:

  • The only reference to Etherpad here in the forums off-handedly suggests doing it as a custom app, but offers no guidance.
  • I stalled out on doing it myself with a custom app (Node.js) because the installation instructions require sudo for the pnpm dependency

Thank you for your help

  • sean replied to this.

    Is this like the Google Wave product launched in 2009/2010 ?

    • sean replied to this.

      enfascination here are the steps to install and run Etherpad:

      1. Create a new Node.js app and make a note of the app's assigned port (visible in the app list).
      2. Add the app to a website.
      3. Log in to SSH as your app's shell user.
      4. Install pnpm and Etherpad by running the following commands, replacing "name_of_app" with your app name:

        source scl_source enable nodejs20
        cd ~/apps/name_of_app
        npm install pnpm
        export PATH=$PWD/node_modules/.bin:$PATH
        git clone -b master https://github.com/ether/etherpad-lite.git
        cd etherpad-lite
        pnpm i
        pnpm run build:etherpad
      1. Edit the app's start script so it looks like the following, again replacing "name_of_app" with your app name. Also replace "NNNNN" with your app's assigned port:

        #!/bin/bash
        
        APPNAME=name_of_app
        PORT=NNNNN
        
        # set node version via scl
        source scl_source enable nodejs20
        NODE="$( which node )"
        PNPM="$HOME/apps/$APPNAME/node_modules/.bin/pnpm"
        
        # set your project info here
        PROJECT="etherpad-lite"
        STARTCMD="$PNPM run prod"
        
        APPDIR=$HOME/apps/$APPNAME
        LOGDIR=$HOME/logs/apps/$APPNAME
        TMPDIR=$APPDIR/tmp
        PROJECTDIR=$APPDIR/$PROJECT
        PIDFILE=$TMPDIR/node.pid
        
        mkdir -p $APPDIR/tmp
        
        if [ -e "$PIDFILE" ] && (pgrep -F $PIDFILE &> /dev/null); then
          echo "$APPNAME already running."
          exit 99
        fi
        
        /usr/sbin/daemonize -E PORT=$PORT -c $PROJECTDIR -a -e $LOGDIR/error.log -o $LOGDIR/console.log -p $PIDFILE $STARTCMD
        
        echo "Started $APPNAME."
      1. Restart the app:

        ~/apps/name_of_app/stop
        ~/apps/name_of_app/start

      At this point EtherPad should be up and running on the site you created in step 2.

      anjanesh Is this like the Google Wave product launched in 2009/2010 ?

      They are/were both collaborative editors but that's pretty much where the similarity ends. EtherPad actually predates Wave by around 6 months.

      Mastodon