etherpad FreeBSD

etherpad works very well on FreeBSD. Installing it is pretty straight forward and you can mostly follow "generic" Linux Howtos, but there are some differences, listed here.

update 20.08.2011: added basic rc.d script

update 2010-10-2:

  • make sure you install scala 2.7.7, scala 2.8.0 won't work

  • you don't have to change the EXPORT and cp commands any more, just get redhogs etherpad version from github git clone http://github.com/redhog/pad.git which has some nice additions anyway

/update

Some etherpad Linux Howtos:

install:

  • JDK, I use java/jdk16
  • lang/scala
  • mysql, I use databases/mysql51-server
  • databases/mysql-connector-java
  • shells/bash
  • devel/mercurial

since some of the scripts use #!/bin/shell I do ln -s /usr/local/bin/bash /bin/bash ` otherwise you can just grep through the source later and replace all #!/bin/bash with #!/usr/local/bin/bash

make sure that CP_CMD="/bin/cp -R -n" in etherpad/trunk/infrastructure/bin/compilecache.sh i.e. by replacing Darwin with FreeBSD in line 18 or just change line 17.

the exports are:

export JAVA_HOME="/usr/local/diablo-jdk1.6.0"
export SCALA_HOME="/usr/local/share/scala-2.7.7"
export JAVA="$JAVA_HOME/bin/java"
export SCALA="$SCALA_HOME/bin/scala"
export PATH="$JAVA_HOME/bin:$SCALA_HOME/bin:/usr/local/mysql/bin:$PATH"
export MYSQL_CONNECTOR_JAR="/usr/local/share/java/classes/mysql-connector-java.jar"

you might consider to add an etherpad user.

for reaching etherpad through port 80 I use apache's mod_proxy. The configurations I found didn't work for me, this did:

ServerName yourdomain.tld
ServerSignature Off

ErrorLog /var/log/apache2/yourdomain.tld/error.log
LogLevel warn
CustomLog /var/log/apache2/yourdomain.tld/access.log combined

ProxyRequests Off

  Order deny,allow
  Allow from all

ProxyPass / http://localhost:9000/
ProxyPassReverse / http://localhost:9000/
ProxyPreserveHost on

don't forget to load mod_proxy and mod_proxy_http

LoadModule proxy_module libexec/apache2/mod_proxy.so
LoadModule proxy_http_module libexec/apache2/mod_proxy_http.so

if you are using apache2 and don't have mod_proxy installed, just make it again with WITH_PROXY_MODULES=yes

cd /usr/ports/www/apache20
make WITH_PROXY_MODULES=yes
make deinstall
make reinstall

Here is a very basic rc.d script (can only start etherpad). You have to change the path to your etherpad installation.

!/bin/sh
#

# PROVIDE: etherpad
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following line to /etc/rc.conf to enable etherpad:
#
# etherpad_enable="YES"
#

. /etc/rc.subr

name="etherpad"
rcvar=${name}_enable

start_cmd="${name}_start"
#stop_cmd="${name}_stop"

load_rc_config $name

etherpad_user="etherpad"
procname="java"

pidfile=/var/run/etherpad/etherpad.pid
daemon_args=" -c -f /path/to/etherpad/bin/run.sh"
etherpad_start()
{
    su -l ${etherpad_user} -c "/usr/sbin/daemon ${daemon_args}"
}

run_rc_command "$1"