Kurze Zusammenfassung wie man sich Mueslis BeeHive auf uberspace.de einrichtet.

Feedback zum howto bitte an beehive (A) schlierf. info

https://github.com/muesli/beehive

Um Mueslis BeeHive auf uberspace laufen zu lassen muss man:

  1. Go einrichten und beehive von GitHub holen
  2. einen freien Port auf dem Server finden
  3. einen Apache Proxy konfigurieren und
  4. webseitenaufrufe absichern
  5. Einen Service erstellen, damit das ganze auch läuft wenn man nicht eingeloggt ist

1) GO Einrichten:

mkdir -p ~/src/go
export GOPATH=~/src/go
export PATH=$PATH:~/src/go/bin
echo "export GOPATH=~/src/go/" >> ~/.bash_profile
echo "export PATH=$PATH:~/src/go/bin" >> ~/.bash_profile
go get github.com/muesli/beehive

2) Freien Port auf dem Server finden Einfach einen port aussuchen zwischen 61000 und 65000

Prüfen ob der Port auch wirklich frei ist:

netstat -tulpen | grep PORTNUMMER

Also z.B.

netstat -tulpen | grep 64166

Gibt der befehl nichts zurück ist der Port frei. Sonst einfach eine andere Portnummer ausprobieren.

Für die Scripte legen wir zwei variable an. Die werden nur in dieser Session zur installation benötigt und müssen nicht in die .rc

Für den Port den wir verwenden wollen und gleich eines für die Domain für später (bitte durch deine domain ersetzen (z.B. http://hansdampf.fomalhaut.uberspace.de):

export BEEHIVE_PORT=64166
export BEEHIVE_URL=http://my.domain.tld

APACHE proxy einrichten, damit der beehive von aussen erreichbar ist aber mit passwort geschützt wird. (HTTP_BASIC_AUTH)

Wenn man noch keine .htuser Datei hat, wird sie neu erzeugt

htpasswd -mc /var/www/virtual/$USER/.htuser USERNAME

sonst das c weglassen, damit der neue user nur hinzugefügt wird.

htpasswd -m /var/www/virtual/$USER/.htuser USERNAME

Dann wird die .htaccess datei angelegt:

cat <<__EOF__ > /var/www/virtual/$USER/html/.htaccess
AuthType Basic
AuthName "Hive"
AuthUserFile /var/www/virtual/$USER/.htuser
Require valid-user

RewriteEngine On
RewriteRule (.*) http://localhost:$BEEHIVE_PORT/$1 [P]
__EOF__

Achtung: Hier muss das http://localhost stehen bleiben

Testen kann man das ganze in dem man in das Verzeichnis wechselt

cd $GOPATH/src/github.com/muesli/beehive

und

beehive -bind :$BEEHIVE_PORT -canonicalurl "$BEEHIVE_URL"

startet.

Den Service einrichten kann man mit

uberspace-setup-svscan

Dadurch wird ein service Verzeichnis im home Verzeichnis erstellt, dass man für eigene Services nutzen kann.

Zunächst erstellen wir uns ein Verzeichnis für unsere service Scripte.

mkdir ~/run_beehive

Dann legen wir das Startscript für den Service an:

cat <<__EOF__ > ~/run_beehive/run
#!/bin/sh
# These environment variables are sometimes needed by the running daemons
export USER=$USER
export HOME=$HOME
export GOPATH=~/src/go
export PATH=\$PATH:~/src/go/bin

# Include the user-specific profile
. \$HOME/.bash_profile

cd \$GOPATH/src/github.com/muesli/beehive

exec beehive -bind :$BEEHIVE_PORT -canonicalurl "$BEEHIVE_URL:80"
__EOF__

Die Datei muss noch ausführbar gemacht werden:

chmod +x ~/run-beehive/run

und für die Logs noch ein Script anlegen:

mkdir ~/run-beehive/log
cat <<__EOF__ > ~/run-beehive/log/run
#!/bin/sh
exec multilog t ./main
__EOF__

Und ausführbar machen:

chmod +x ~/run-beehive/log/run

Dann den Link ins Service Verzeichnis anlegen,

ln -s ~/run-beehive ~/service/beehive

Danach lässt sich der Service mit svc verwalten.

Start: svc -u ~/service/beehive
Restart: svc -du ~/service/beehive
Stop: svc -d ~/service/beehive