Mueslis BeeHive auf Uberspace.de verwenden
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:
- Go einrichten und beehive von GitHub holen
- einen freien Port auf dem Server finden
- einen Apache Proxy konfigurieren und
- webseitenaufrufe absichern
- 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