OpenProject installieren: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
K (Typo)
(Mehrere Anpassungen und Korrekturen)
Zeile 41: Zeile 41:
     xyz00-project@h20:~$ source ~/.profile
     xyz00-project@h20:~$ source ~/.profile
     xyz00-project@h20:~$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
     xyz00-project@h20:~$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
     xyz00-project@h20:~$ rbenv install 2.6.5
     xyz00-project@h20:~$ rbenv install 2.6.6
     xyz00-project@h20:~$ rbenv rehash
     xyz00-project@h20:~$ rbenv rehash
     xyz00-project@h20:~$ rbenv global 2.6.5
     xyz00-project@h20:~$ rbenv global 2.6.6


Als Test bitte aufrufen: ''ruby -v''
Als Test bitte aufrufen: ''ruby -v''


Die Anzeige sollte etwa das Folgende enthalten:
Die Anzeige sollte etwa das Folgende enthalten:
ruby 2.6.5pXYZ (....) [x86_64-linux]
ruby 2.6.6pXYZ (....) [x86_64-linux]


=== Installation von Node ===
=== Installation von Node ===
Zeile 59: Zeile 59:
     xyz00-project@h20:~$ source ~/.profile
     xyz00-project@h20:~$ source ~/.profile
     xyz00-project@h20:~$ git clone git://github.com/OiNutter/node-build.git ~/.nodenv/plugins/node-build
     xyz00-project@h20:~$ git clone git://github.com/OiNutter/node-build.git ~/.nodenv/plugins/node-build
     xyz00-project@h20:~$ nodenv install 12.11.1
     xyz00-project@h20:~$ nodenv install 12.18.4
     xyz00-project@h20:~$ nodenv rehash
     xyz00-project@h20:~$ nodenv rehash
     xyz00-project@h20:~$ nodenv global 12.11.1
     xyz00-project@h20:~$ nodenv global 12.18.4


Ein Test mit ''node --version'' solte anzeigen: v12.11.1
Ein Test mit ''node --version'' solte anzeigen: v12.18.4


== Installation und Konfiguration ==
== Installation und Konfiguration ==
Zeile 76: Zeile 76:
     xyz00-project@h20:~$ gem install bundler
     xyz00-project@h20:~$ gem install bundler
     xyz00-project@h20:~$ bundle update --bundler
     xyz00-project@h20:~$ bundle update --bundler
     xyz00-project@h20:~$ bundle install --deployment --without mysql2 sqlite development test therubyracer docker
     xyz00-project@h20:~$ bundle config set deployment 'true'
    xyz00-project@h20:~$ bundle config set without 'mysql2 sqlite development test therubyracer docker'
    xyz00-project@h20:~$ bundle install
     xyz00-project@h20:~$ npm install
     xyz00-project@h20:~$ npm install


Zeile 86: Zeile 88:
     xyz00-project@h20:~/openproject$ cp config/database.yml.example config/database.yml
     xyz00-project@h20:~/openproject$ cp config/database.yml.example config/database.yml


In der neuen Datei ''database.yml'' wir die mit HSAdmin angelegte PostgreSQL-Datenbank eingetragen:
In der neuen Datei ''database.yml'' wird die mit HSAdmin angelegte PostgreSQL-Datenbank eingetragen:


     production:
     production:
Zeile 99: Zeile 101:
Die Einträge für ''development'' und ''test'' können gelöscht werden.
Die Einträge für ''development'' und ''test'' können gelöscht werden.


Dann wir die Datei ''configuration.yml'' angelegt:
Dann wird die Datei ''configuration.yml'' angelegt:


     xyz00-project@h20:~$ cd ~/openproject
     xyz00-project@h20:~$ cd ~/openproject
Zeile 112: Zeile 114:
       smtp_port: 25
       smtp_port: 25
       smtp_domain: example.com
       smtp_domain: example.com
      #smtp_authentication: :login
      #smtp_user_name: "openproject@example.net"
      #smtp_password: "my_openproject_password"
Die Zeilen mit smtp_authentication, smtp_user_name und smtp_password können auskommentiert werden, sie werden in unserem Setup nicht benötigt.
=== Einen geheimen Schlüssel erzeugen ===
    xyz00-project@h20:~$ cd ~/openproject
    xyz00-project@h20:~/openproject$ EDITOR=vim ./bin/rails credentials:edit
Den Editor vim mit Speichern verlassen: <code>Esc</code> Taste drücken, dann eingeben: <code>:wq</code> und Enter drücken
    xyz00-project@h20:~/openproject$ export RAILS_ENV="production"
    xyz00-project@h20:~/openproject$ echo "export SECRET_KEY_BASE=$(./bin/rake secret)" >> ~/.profile


=== Initialisiere Datenbank und erzeuge Web-Ressourcen ===
=== Initialisiere Datenbank und erzeuge Web-Ressourcen ===
Zeile 117: Zeile 134:
     xyz00-project@h20:~$ cd ~/openproject
     xyz00-project@h20:~$ cd ~/openproject
     xyz00-project@h20:~/openproject$ export RAILS_ENV="production"
     xyz00-project@h20:~/openproject$ export RAILS_ENV="production"
    xyz00-project@h20:~/openproject$ echo "export SECRET_KEY_BASE=$(./bin/rake secret)" >> ~/.profile
     xyz00-project@h20:~/openproject$ source ~/.profile
     xyz00-project@h20:~/openproject$ source ~/.profile
     xyz00-project@h20:~/openproject$ ./bin/rake db:migrate
     xyz00-project@h20:~/openproject$ ./bin/rake db:migrate
     xyz00-project@h20:~/openproject$ LOCALE=de ./bin/rake db:seed
     xyz00-project@h20:~/openproject$ LOCALE=en ./bin/rake db:seed
     xyz00-project@h20:~/openproject$ ./bin/rake assets:precompile
     xyz00-project@h20:~/openproject$ ./bin/rake assets:precompile
=== Einen geheimen Schlüssel erzeugen ===
    xyz00-project@h20:~/openproject$ echo "export SECRET_KEY_BASE=$(./bin/rake secret)" >> ~/.profile


=== Konfiguration in Passenger ===
=== Konfiguration in Passenger ===
Zeile 132: Zeile 144:
     xyz00-project@h20:~/doms/prj.example.com$ rm -rf app-ssl htdocs-ssl
     xyz00-project@h20:~/doms/prj.example.com$ rm -rf app-ssl htdocs-ssl
     xyz00-project@h20:~/doms/prj.example.com$ ln -s $HOME/openproject app-ssl
     xyz00-project@h20:~/doms/prj.example.com$ ln -s $HOME/openproject app-ssl
     xyz00-project@h20:~/doms/prj.example.com$ ln -s $HOME/openproject/public htdocs-ssl
     xyz00-project@h20:~/doms/prj.example.com$ ln -s $HOME/openproject/public htdocs-ssl


Weiterhin muss in einer .htaccess-Datei in diesem verzeichnis die richtige Umgebung gesetzt sein:
Weiterhin muss in einer .htaccess-Datei in diesem Verzeichnis die richtige Umgebung gesetzt sein:


    xyz00-project@h20:~/doms/prj.example.com$ cat $HOME/.profile | grep SECRET_KEY_BASE
    export SECRET_KEY_BASE=fbce9f26d70c5cd...
     xyz00-project@h20:~/doms/prj.example.com$ cat .htaccess
     xyz00-project@h20:~/doms/prj.example.com$ cat .htaccess
     SetEnv SECRET_KEY_BASE fbce9f26d70c5cd...  
     SetEnv SECRET_KEY_BASE fbce9f26d70c5cd...
     PassengerRuby /home/pacs/fos00/users/project/.rbenv/shims/ruby
     PassengerRuby /home/pacs/xyz00/users/project/.rbenv/shims/ruby
 
Der Schlüssel SECRET_KEY_BASE wurde im vorherigen Schritt in die Datei $HOME/.profile geschrieben.
 
== Aufsetzen des Cronjobs für Hintergrundprozesse ==
 
Es werden Benachrichtigungs-E-Mails im Hintergrund verschickt. Dazu muss ein Prozess im Hintergrund gestartet werden.
 
    xyz00-project@h20:~$ crontab -e
 
Nun öffnet sich die Crontab Datei im voreingestellten Editor. Hier muss folgende Zeile eingefügt werden:


Der Schlüssel SECRET_KEY_BASE wurde im verherigen Schritt in die Datei $HOME/.profile geschrieben.
    */2 * * * * cd /home/pacs/xyz00/users/project/openproject; source ~/.profile; RAILS_ENV="production" ./bin/rake jobs:workoff


Für das Aufsetzen des Cronjobs für Hintergrundprozesse siehe die folgende Anleitung des Projekts.
Damit wird der Hintergrundprozess alle 2 Minuten gestartet.


== Referenzen ==
== Referenzen ==

Version vom 1. Oktober 2020, 04:56 Uhr

OpenProject ist eine umfangreiche Projektmanagement-Software. Die Software ist multiprojektfähig; für jedes Projekt stehen folgende Werkzeuge zur Verfügung:

  • Wiki
  • Vorgangsverfolgung (Ticketsystem, Issue Tracker)
  • Zeiterfassung
  • Dokument- und Dateiverwaltung

Diese Anleitung beschreibt, wie man OpenProject auf der Managed Hosting Plattform von Hostsharing installieren kann. OpenProject lässt sich in jedem Managed Webspace betreiben.

Die Anleitung wurde für OpenProject Version 10 erstellt.

Vorbereitungen

Service-User, Domain und Datenbank

Mit Hilfe von HSAdmin werden angelegt:

  1. Ein User als Service-User mit /bin/bash als Shell, zum Beispiel Beispiel: xyz00-project"
  2. Eine Domain mit xyz00-project als Domain-Administrator, zum Beispiel "prj.example.com"
  3. Einen Postgresql-User xyz00_dbuser mit Passwort meinPasswort
  4. Eine Postgresql-Datenbank xyz00_prjdb mit Datenbank-Owner xyz00_dbuser

Vorbereitung des Webspace

Die "leichtgewichtige" Subdomain "www" wird gelöscht. Ebenso die .htaccess-Datei mit der Weiterleitung dorthin.

   xyz00@h20 $ sudo -u xyz00-project -i
   xyz00-project@h20:~$ cd ~/doms/projekt.example.com/
   xyz00-project@h20:~/doms/projekt.example.com$ rm -rf subs/www/ subs-ssl/www/ htdocs-ssl/.htaccess 

Installation von Ruby

Weiterhin benötigt OpenProject eine geeignete Version der Programmiersprache Ruby:

Die Installation-Anleitung für OpenProject schlägt für die Installation rbenv vor.

   xyz00-project@h20:~/doms/projekt.example.com$ cd
   xyz00-project@h20:~$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
   xyz00-project@h20:~$ touch .profile
   xyz00-project@h20:~$ chmod u+x .profile
   xyz00-project@h20:~$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile
   xyz00-project@h20:~$ echo 'eval "$(rbenv init -)"' >> ~/.profile
   xyz00-project@h20:~$ source ~/.profile
   xyz00-project@h20:~$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
   xyz00-project@h20:~$ rbenv install 2.6.6
   xyz00-project@h20:~$ rbenv rehash
   xyz00-project@h20:~$ rbenv global 2.6.6

Als Test bitte aufrufen: ruby -v

Die Anzeige sollte etwa das Folgende enthalten: ruby 2.6.6pXYZ (....) [x86_64-linux]

Installation von Node

Die Installation-Anleitung für OpenProject schlägt für die Installation nodenv vor.

   xyz00-project@h20:~$ git clone https://github.com/OiNutter/nodenv.git ~/.nodenv
   xyz00-project@h20:~$ echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.profile
   xyz00-project@h20:~$ echo 'eval "$(nodenv init -)"' >> ~/.profile
   xyz00-project@h20:~$ source ~/.profile
   xyz00-project@h20:~$ git clone git://github.com/OiNutter/node-build.git ~/.nodenv/plugins/node-build
   xyz00-project@h20:~$ nodenv install 12.18.4
   xyz00-project@h20:~$ nodenv rehash
   xyz00-project@h20:~$ nodenv global 12.18.4

Ein Test mit node --version solte anzeigen: v12.18.4

Installation und Konfiguration

Installation von OpenProject

Wir installieren die OpenProject Community Edition. siehe https://github.com/opf/openproject

   xyz00-project@h20:~$ git clone https://github.com/opf/openproject.git --branch stable/10 --depth 1
   xyz00-project@h20:~$ cd ~/openproject
   xyz00-project@h20:~$ gem update --system
   xyz00-project@h20:~$ gem install bundler
   xyz00-project@h20:~$ bundle update --bundler
   xyz00-project@h20:~$ bundle config set deployment 'true'
   xyz00-project@h20:~$ bundle config set without 'mysql2 sqlite development test therubyracer docker'
   xyz00-project@h20:~$ bundle install
   xyz00-project@h20:~$ npm install

Konfiguration von OpenProject

Erstelle eine Konfiguration für den Datenbank-Zugriff in der Datei config/database.yml

   xyz00-project@h20:~$ cd ~/openproject
   xyz00-project@h20:~/openproject$ cp config/database.yml.example config/database.yml

In der neuen Datei database.yml wird die mit HSAdmin angelegte PostgreSQL-Datenbank eingetragen:

   production:
     adapter: postgresql
     encoding: unicode
     host: localhost
     database: xyz00_prjdb (wie oben angegeben)
     pool: 10
     username: xyz00_dbuser (wie oben angegeben)
     password: meinPasswort (wie oben angegeben)

Die Einträge für development und test können gelöscht werden.

Dann wird die Datei configuration.yml angelegt:

   xyz00-project@h20:~$ cd ~/openproject
   xyz00-project@h20:~/openproject$ cp config/configuration.yml.example config/configuration.yml

Dort erfolgen die Einstellungen für ausgehende E-Mails:

   default:
     log_level: info
     email_delivery_method: :smtp
     smtp_address: localhost
     smtp_port: 25
     smtp_domain: example.com
     #smtp_authentication: :login
     #smtp_user_name: "openproject@example.net"
     #smtp_password: "my_openproject_password"

Die Zeilen mit smtp_authentication, smtp_user_name und smtp_password können auskommentiert werden, sie werden in unserem Setup nicht benötigt.

Einen geheimen Schlüssel erzeugen

   xyz00-project@h20:~$ cd ~/openproject
   xyz00-project@h20:~/openproject$ EDITOR=vim ./bin/rails credentials:edit

Den Editor vim mit Speichern verlassen: Esc Taste drücken, dann eingeben: :wq und Enter drücken

   xyz00-project@h20:~/openproject$ export RAILS_ENV="production"
   xyz00-project@h20:~/openproject$ echo "export SECRET_KEY_BASE=$(./bin/rake secret)" >> ~/.profile

Initialisiere Datenbank und erzeuge Web-Ressourcen

   xyz00-project@h20:~$ cd ~/openproject
   xyz00-project@h20:~/openproject$ export RAILS_ENV="production"
   xyz00-project@h20:~/openproject$ source ~/.profile
   xyz00-project@h20:~/openproject$ ./bin/rake db:migrate
   xyz00-project@h20:~/openproject$ LOCALE=en ./bin/rake db:seed
   xyz00-project@h20:~/openproject$ ./bin/rake assets:precompile

Konfiguration in Passenger

   xyz00-project@h20:~$ cd ~/doms/prj.example.com
   xyz00-project@h20:~/doms/prj.example.com$ rm -rf app-ssl htdocs-ssl
   xyz00-project@h20:~/doms/prj.example.com$ ln -s $HOME/openproject app-ssl
   xyz00-project@h20:~/doms/prj.example.com$ ln -s $HOME/openproject/public htdocs-ssl

Weiterhin muss in einer .htaccess-Datei in diesem Verzeichnis die richtige Umgebung gesetzt sein:

   xyz00-project@h20:~/doms/prj.example.com$ cat $HOME/.profile | grep SECRET_KEY_BASE
   export SECRET_KEY_BASE=fbce9f26d70c5cd...
   xyz00-project@h20:~/doms/prj.example.com$ cat .htaccess
   SetEnv SECRET_KEY_BASE fbce9f26d70c5cd...
   PassengerRuby /home/pacs/xyz00/users/project/.rbenv/shims/ruby

Der Schlüssel SECRET_KEY_BASE wurde im vorherigen Schritt in die Datei $HOME/.profile geschrieben.

Aufsetzen des Cronjobs für Hintergrundprozesse

Es werden Benachrichtigungs-E-Mails im Hintergrund verschickt. Dazu muss ein Prozess im Hintergrund gestartet werden.

   xyz00-project@h20:~$ crontab -e

Nun öffnet sich die Crontab Datei im voreingestellten Editor. Hier muss folgende Zeile eingefügt werden:

   */2 * * * * cd /home/pacs/xyz00/users/project/openproject; source ~/.profile; RAILS_ENV="production" ./bin/rake jobs:workoff

Damit wird der Hintergrundprozess alle 2 Minuten gestartet.

Referenzen