Um die Projektmanagementsoftware Redmine auf einem Uberspace zu installieren, gibt es unter wiki.uberspace.de eine Anleitung für Redmine 3.3 mit Ruby 2.3.
Um die neueste Version von Redmine, 3.4 zu nutzen, das inzwischen auf mit Ruby 2.4. kompatibel ist zu nutzen, müssen ein paar Änderungen vorgenommen werden.
Hier die Anleitung von Uberspace CC-BY-NC-SA mit den entsprechenden Ergänzungen. Diese basiert auch auf der Anleitung von redmine.org.
Installation
Zuerst holen wir uns die aktuelle, stabile Redmine-Version von GitHub:
[mueller@server ~]$ git clone https://github.com/redmine/redmine -b 3.4-stable
Da Redmine 3.3 nicht mit Ruby 2.4 kompatibel ist, muss die Ruby-Version auf 2.3 eingestellt werden:
Redmine 3.4 ist kompatibel mit Ruby 2.4, also stellen wir Ruby 2.4 ein.
[mueller@server ~]$ echo "RUBYVERSION=2.4" > ~/etc/rubyversion
Umgebung
[mueller@server ~]$ cat >> $HOME/.bash_profile <<__EOF__ export RAILS_SERVE_STATIC_FILES=true export RAILS_ENV=production __EOF__ [mueller@server ~]$ source $HOME/.bash_profile
Datenbank erstellen
Wir empfehlen dir, eine separate Datenbank für Redmine zu verwenden. Diese kannst du dir leicht selbst anlegen – hier im Beispiel verwenden wir deinen Usernamen und hängen _redmine
hintendran (für den User mueller
heißt die Datenbank dann also mueller_redmine
):
[mueller@server ~]$ mysql -e "CREATE DATABASE ${USER}_redmine CHARACTER SET utf8"
Als nächstes konfigurierst du diese Datenbank für Redmine.
Dieser Schritt unterscheidet sich von der Uberspace-Anleitung. Statt nur die production-Datenbank zu konfigurieren, definieren wir auch die development-Datenbank mit identischen Werten.
[mueller@server ~]$ cd redmine [mueller@server redmine]$ cat > config/database.yml <<__EOF__ production: adapter: mysql2 database: ${USER}_redmine host: localhost username: $USER password: $(my_print_defaults client | grep -- --password | awk -F = '{ print $2 }') encoding: utf8 production: adapter: mysql2 database: ${USER}_redmine host: localhost username: $USER password: $(my_print_defaults client | grep -- --password | awk -F = '{ print $2 }') encoding: utf8 __EOF__
Wenn die development-Datenbank nicht definiert wird, kommt es zu einem Fehler beim späteren Befehl bundle exec rake db:migrate.
Das Passwort füllen wir so mit etwas Shell-Magie automatisch aus.
Achtung: Bei dieser Datei ist die Einrückung aller Zeilen bis auf production:
syntaktisch wichtig, ohne klappt es nicht.
Gems
Installiere nun die benötigten Gems. Gems sind Komponenten, die gepackt und versioniert wurden, um sie in Projekten wie Redmine einzubauen. Wir fügen Unicorn hinzu, das wir später noch benötigen und installieren alles auf einmal.
Achtung! Sollte Dein Account schon länger als Juli 2015 besteht, fehlen ihm noch nötige Konfigurationsdateien damit bundle nicht versucht gems global zu installieren, was an mangelnden Berechtigungen scheitern würde. Die Lösung ist das Überschreiben verschiedener Konfigurationsdateien (nur für ältere Uberspaces verwenden):
$ mkdir $HOME/.bundle $ cp /etc/skel/.bundle/config $HOME/.bundle/config $ cp /etc/skel/.gemrc $HOME/
Dann funktionieren auch im Anschluss die regulären Befehle:
[mueller@server redmine]$ echo "gem 'unicorn'" > Gemfile.local [mueller@server redmine]$ bundle install --without development test postgresql sqlite
Token
Wie jede Rails-Anwendung benötigt auch Redmine ein geheimes Token, mit dem Daten in User-Sessions verschlüsselt werden, um diese sicherer zu machen:
[mueller@server redmine]$ bundle exec rake generate_secret_token
Datenbank füllen
Nun erstelle die Tabellen in der Datenbank mittels des Migrations-Scripts:
[mueller@server redmine]$ bundle exec rake db:migrate
… und befülle die Datenbank:
[mueller@server redmine]$ bundle exec rake redmine:load_default_data
An dieser Stelle wirst du nach der Sprache gefragt, die dein Redmine sprechen soll. Wenn du Deutsch haben möchtest, dann gib de
ein.
Achtung! Wenn folgender Fehler hier auftritt, muss die Datenbankkonfiguration geändert werden, siehe oben Datenbank erstellen:
rake aborted!
ActiveRecord::AdapterNotSpecified: ‚development‘ database is not configured. Available: [„production“]
Zum Versenden von Mails stellen wir Redmine auf Sendmail ein:
[mueller@server ~]$ cat > $HOME/redmine/config/configuration.yml <<__EOF__ production: email_delivery: delivery_method: :sendmail __EOF__
Service
Nun starten wir Redmine als Service. Dazu müssen wir zunächst einen freien Port raussuchen …
[mueller@server ~]$ REDMINE_PORT=$(( $RANDOM % 4535 + 61000)); netstat -tulpen | grep $REDMINE_PORT && echo "versuch's nochmal" [mueller@server ~]$ test -d $HOME/service || uberspace-setup-svscan [mueller@server ~]$ uberspace-setup-service redmine bundle exec unicorn_rails --port $REDMINE_PORT [mueller@server ~]$ sed -i -e 's/exec/cd $HOME\/redmine\/\nexec/' $HOME/service/redmine/run [mueller@server ~]$ svc -u $HOME/service/redmine
Solltest du einmal den Dienst neu starten müssen, dann geht das so:
[mueller@server ~]$ svc -du $HOME/service/redmine
Proxy
[mueller@server ~]$ cat > $HOME/html/.htaccess <<__EOF__ RewriteEngine On RewriteCond %{HTTPS} !=on RewriteCond %{ENV:HTTPS} !=on RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] RewriteRule (.*) http://localhost:${REDMINE_PORT}/\$1 [P] __EOF__
Login
Besuche nun deine Redmine-Installation im Browser und logge dich ein. Benutzername und Passwort lauten beide ‚admin‘.
https://[user].[host].uberspace.de
Als erstes solltest du natürlich /das Passwort ändern. Dazu wirst du beim ersten Login direkt aufgefordert.
Fertig!
Damit bist du nun fertig. Viel Spaß mit Redmine!
PS: Kleiner Hinweis am Rande. Die Anleitung funktioniert auch mit älteren Redmine-Versionen, unter Verwendung der entsprechenden Ruby-Version. Welche das ist, siehe hier: redmine.org/projects/redmine/wiki/RedmineInstall/history