From f915044bc349a56559379c6b5af3e6d0c60dd7c0 Mon Sep 17 00:00:00 2001 From: Jim Martens Date: Tue, 26 Dec 2017 13:16:53 +0100 Subject: [PATCH] Added post about OpenProject 7 installation Signed-off-by: Jim Martens --- ...017-12-26-openproject7-uberspace6.markdown | 202 ++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 _posts/2017-12-26-openproject7-uberspace6.markdown diff --git a/_posts/2017-12-26-openproject7-uberspace6.markdown b/_posts/2017-12-26-openproject7-uberspace6.markdown new file mode 100644 index 0000000..7bed017 --- /dev/null +++ b/_posts/2017-12-26-openproject7-uberspace6.markdown @@ -0,0 +1,202 @@ +--- +layout: post +title: "OpenProject 7 auf Uberspace 6 zum Laufen bekommen" +date: 2017-12-26 18:00:00 +0200 +categories: blog +--- + +OpenProject ist ein sehr gutes Projektmanagement-Tool, welches gleich mehrere +Anforderungen erfüllt: + +- online und damit von allen im Team jederzeit abrufbar +- Unterstützung für beliebig viele Nutzer\*innen +- kostenlos +- funktioniert ohne Rootrechte + +Im [Uberspace-Wiki][0] gibt es einen Abschnitt "Coole Sachen", wo auch eine +[Anleitung für Open Project 6][1] verlinkt ist. Ich versuchte dieser zu folgen, +stieß aber an einigen Stellen auf Probleme. Daher folgt hier nun eine Anleitung, +die für die aktuelle Version 6 von Uberspace funktioniert. Uberspace 7 konnte ich +nicht nutzen, da dort Ruby noch nicht zur Verfügung steht. + +[0]: https://wiki.uberspace.de +[1]: https://gist.github.com/tessi/466308e59e117d9fb34e + +## Abhängigkeiten installieren + +1. Zunächst erstellt ihr eine ``.gemrc`` mit folgendem Inhalt: ``gem: --user-install --no-rdoc --no-ri``. + Damit sagt ihr Ruby, dass die Gems in dem User Directory installiert werden sollen. +2. Erstellt unter ``~/etc/`` eine Datei ``rubyversion`` mit dem Inhalt: ``RUBYVERSION=2.4.1``. + Mit dieser Datei legt ihr die zu nutzende Rubyversion auf 2.4.1 fest. Eine neuere Version + gibt es zum aktuellen Zeitpunkt auf Uberspace 6 nicht. +3. Fügt in eurer ``.bash_profile`` am Ende folgendes hinzu: ``export PATH=/package/host/localhost/nodejs-9/bin:$PATH`` + Damit wird die NodeJS Version auf 9 gesetzt. Standardmäßig wird noch eine sehr + alte Version verwendet. Um die Änderungen zu laden, benutzt ``source .bash_profile``. +4. Überprüft die Einstellungen mit ``ruby --version``, was 2.4.1 ergeben sollte. + +Das war es. Keine weiteren Schritte sind zu diesem Zeitpunkt nötig. + +## OpenProject installieren + +Führt folgende Anweisungen aus, wobei jede Zeile einzeln in das Terminal eingegeben +werden sollte. Wenn ihr gleich gewisse Standardplugins dabei haben wollt, dann nehmt +im Folgenden die auskommentierte Zeile und kommentiert die erste ``git clone``-Zeile aus. + +```bash +mkdir apps; cd apps +git clone https://github.com/opf/openproject.git --branch stable/7 --depth 1 +# git clone https://github.com/opf/openproject-ce.git --branch stable/7 --depth 1 openproject +cd openproject +git checkout stable +gem install bundler +# bearbeite die Gemfile-Datei und setze am Anfang bei der Rubyversion 2.4.1 ein +bundle install --deployment --without postgres sqlite development test therubyracer docker +npm install +``` + +## OpenProject konfigurieren + +Als nächstes müssen wir OpenProject konfigurieren. Dafür erstellen wir zunächst +die Datenbankkonfiguration und bearbeiten sie im Anschluss: + +```bash +# wir befinden uns weiterhin in ~/apps/openproject +cp config/database.yml.example config/database.yml +``` + +Die Zugangsdaten für MySQL finden sich in der ``.my.cnf``-Datei im Homeverzeichnis. +Diese müssen jetzt eingetragen werden. + +```yaml +# config/database.yml +# ... +production: + adapter: mysql2 + database: + host: localhost + username: + password: + encoding: utf8 +# ... +development: + adapter: mysql2 + database: _development + host: localhost + username: + password: + encoding: utf8 +# ... +test: + adapter: mysql2 + database: _test + host: localhost + username: + password: + encoding: utf8 +# ... +``` +OpenProject benötigt einen offenen Port. Dieser muss erst einmal geöffnet werden. + +```bash +uberspace-add-port -p tcp --firewall +# dieser Befehl wird als Antwort verraten, welcher Port geöffnet wurde +# diesen Port bitte merken +``` + +Als nächstes bearbeiten wir die ``config/configuration.yml`` bzw. erstellen sie, +wenn es sie noch nicht gibt. + +```yaml +production: + email_delivery_method: "smtp" + smtp_address: "@.uberspace.de" + smtp_port: 587 + smtp_authentication: :login + smtp_domain: '.uberspace.de' + smtp_user_name: '' + smtp_password: '' + host_name: 'localhost:' # unklar, ob benötigt; im Zweifel übernehmen + protocol: https +rails_cache_store: :memcache +``` + +## Installation von OpenProject finalisieren + +Wenn eine andere Sprache als Englisch benötigt wird, dann die auskommentierte +Zeile für den seed verwenden und die Locale angeben. + +```bash +# wir befinden uns in ~/apps/openproject +RAILS_ENV="production" ./bin/rake db:create +RAILS_ENV="production" ./bin/rake db:migrate +RAILS_ENV="production" ./bin/rake db:seed +# RAILS_ENV="production" LOCALE=en ./bin/rake db:seed +RAILS_ENV="production" ./bin/rake assets:precompile +``` + +Damit OpenProject vernünftig laufen kann, wird ein Secret Token verwendet. +Dieses generieren wir im nächsten Schritt. + +```bash +echo "export SECRET_KEY_BASE=$(./bin/rake secret)" >> ~/.bash_profile +source ~/.bash_profile +``` + +## OpenProject starten + +Schließlich müssen wir noch OpenProject als Daemon einrichten. Falls dies ein +ganz frischer Uberspace ist (empfohlen), müssen wir diese Möglichkeit +erst noch einrichten. + +```bash +test -d ~/service || uberspace-setup-svscan +# create openproject-web +cat <<__EOF__ > ~/bin/openproject-web +#!/bin/sh +# This is needed to find gems installed with --user-install +export HOME=$HOME +# Get into the project directory and start the Rails server +cd \$HOME/apps/openproject +exec bundle exec unicorn --port --env production +__EOF__ +chmod +x ~/bin/openproject-web +uberspace-setup-service openproject-web ~/bin/openproject-web +# create openproject-worker +cat <<__EOF__ > ~/bin/openproject-worker +#!/bin/sh +# This is needed to find gems installed with --user-install +export HOME=$HOME +# we're faster and use the right database in production +export RAILS_ENV=production +# Get into the project directory and start the Rails server +cd \$HOME/apps/openproject +exec bundle exec rake jobs:work +__EOF__ +chmod +x ~/bin/openproject-worker +uberspace-setup-service openproject-worker ~/bin/openproject-worker +``` + +Ganz zum Schluss muss dem Apache Server noch gesagt werden, dass auf den +geöffneten Port umgeleitet werden soll. + +```bash +cat > ~/html/.htaccess <<__EOF__ +RewriteEngine On +RewriteCond %{HTTPS} !=on +RewriteCond %{ENV:HTTPS} !=on +RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] + +RewriteRule (.*) http://localhost:/$1 [P] +__EOF__ +``` + +## OpenProject aufrufen + +Die Installation ist zu diesem Zeitpunkt soweit fertig. Als nächstes muss die +Website aufgerufen werden. Die Zugangsdaten des standardmäßig erstellten Nutzers +sind beim ersten Mal ``admin`` als Username und ``admin`` als Passwort. + +Mit diesen Schritten sollte die Installation funktionieren. damit HTTPS funktioniert, +lese bitte die entsprechenden Seiten im [Uberspace-Wiki][2]. + +[2]: https://wiki.uberspace.de/webserver:https \ No newline at end of file