OpenProject installieren: Unterschied zwischen den Versionen
Tim00 (Diskussion | Beiträge) K (fix typo) |
|||
(49 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
OpenProject ist eine umfangreiche Projektmanagement-Software. Die Software ist multiprojektfähig; für jedes Projekt stehen folgende Werkzeuge zur Verfügung: | == Allgemein == | ||
OpenProject ist eine umfangreiche Projektmanagement-Software. Die Software ist multiprojektfähig; für jedes Projekt stehen unter anderem folgende Werkzeuge zur Verfügung: | |||
* Wiki | * Wiki | ||
* Vorgangsverfolgung (Ticketsystem, Issue Tracker) | * Vorgangsverfolgung (Ticketsystem, Issue Tracker) | ||
Zeile 5: | Zeile 6: | ||
* Dokument- und Dateiverwaltung | * 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 11 erstellt. | |||
== Ansible Skript == | |||
Alternativ zur manuellen Installation, die in diesem Wiki Artikel beschrieben wird, gibt es ein | |||
Ansible Skript, das die Installationsschritte für OpenProject automatisiert durchführt. | |||
Die Quellen für das Ansible Skript können hier eingesehen werden: https://codeberg.org/tpokorra/hs.ansible/src/branch/main/playbooks/openproject | |||
== Vorbereitungen == | == Vorbereitungen == | ||
Mit Hilfe von HSAdmin | === Service-User, Domain und Datenbank === | ||
Mit Hilfe von HSAdmin werden angelegt: | |||
# Ein User als Service-User mit ''/bin/bash'' als Shell, zum Beispiel Beispiel: ''xyz00-project" | # Ein User als Service-User mit ''/bin/bash'' als Shell, zum Beispiel Beispiel: ''xyz00-project" | ||
# Eine Domain mit ''xyz00-project'' als Domain-Administrator, zum Beispiel "prj.example.com" | # Eine Domain mit ''xyz00-project'' als Domain-Administrator, zum Beispiel "prj.example.com" | ||
Zeile 16: | Zeile 27: | ||
# Eine Postgresql-Datenbank ''xyz00_prjdb'' mit Datenbank-Owner ''xyz00_dbuser'' | # Eine Postgresql-Datenbank ''xyz00_prjdb'' mit Datenbank-Owner ''xyz00_dbuser'' | ||
=== Vorbereitung des Webspace === | |||
=== Installation | 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 gewünschte Version kann hier abgelesen werden: https://github.com/opf/openproject/blob/stable/11/.ruby-version | |||
Die Installation-Anleitung für OpenProject schlägt für die Installation ''rbenv'' vor. | 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:~/doms/projekt.example.com$ cd | ||
xyz00-project@h20:~$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv | xyz00-project@h20:~$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv | ||
xyz00-project@h20:~$ touch .profile | 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 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile | ||
xyz00-project@h20:~$ echo 'eval "$(rbenv init -)"' >> ~/.profile | xyz00-project@h20:~$ echo 'eval "$(rbenv init -)"' >> ~/.profile | ||
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. | xyz00-project@h20:~$ rbenv install 2.7.4 | ||
xyz00-project@h20:~$ rbenv rehash | xyz00-project@h20:~$ rbenv rehash | ||
xyz00-project@h20:~$ rbenv global 2. | xyz00-project@h20:~$ rbenv global 2.7.4 | ||
Als Test bitte aufrufen: ''ruby - | Als Test bitte aufrufen: ''ruby -v'' | ||
Die Anzeige sollte etwa das Folgende enthalten: | Die Anzeige sollte etwa das Folgende enthalten: | ||
ruby 2. | ruby 2.7.4pXYZ (....) [x86_64-linux] | ||
=== Installation | === Installation von Node === | ||
Die Installation-Anleitung für OpenProject schlägt für die Installation | 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:~$ git clone https://github.com/OiNutter/nodenv.git ~/.nodenv | ||
Zeile 50: | Zeile 69: | ||
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 | xyz00-project@h20:~$ nodenv install 12.18.4 | ||
xyz00-project@h20:~$ nodenv rehash | xyz00-project@h20:~$ nodenv rehash | ||
xyz00-project@h20:~$ nodenv global | xyz00-project@h20:~$ nodenv global 12.18.4 | ||
Ein Test mit ''node --version'' solte anzeigen: | Ein Test mit ''node --version'' solte anzeigen: v12.18.4 | ||
== | == Installation und Konfiguration == | ||
=== Installation | === Installation von OpenProject === | ||
Wir installieren die OpenProject Community Edition. siehe https://github.com/opf/openproject | Wir installieren die OpenProject Community Edition. siehe https://github.com/opf/openproject | ||
xyz00-project@h20:~$ git clone https://github.com/opf/openproject | xyz00-project@h20:~$ git clone https://github.com/opf/openproject.git --branch stable/11 --depth 1 | ||
xyz00-project@h20:~$ cd ~/openproject | xyz00-project@h20:~$ cd ~/openproject | ||
xyz00-project@h20:~$ gem update --system | xyz00-project@h20:~$ gem update --system | ||
xyz00-project@h20:~$ gem install bundler | xyz00-project@h20:~$ gem install bundler | ||
xyz00-project@h20:~$ bundle | 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 | xyz00-project@h20:~$ npm install | ||
=== | === Konfiguration von OpenProject === | ||
Erstelle eine Konfiguration für den Datenbank-Zugriff in der Datei ''config/database.yml'' | Erstelle eine Konfiguration für den Datenbank-Zugriff in der Datei ''config/database.yml'' | ||
xyz00-project@h20:~$ cd ~/openproject | xyz00-project@h20:~$ cd ~/openproject | ||
xyz00-project@h20:~/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: | production: | ||
Zeile 83: | Zeile 105: | ||
host: localhost | host: localhost | ||
database: xyz00_prjdb (wie oben angegeben) | database: xyz00_prjdb (wie oben angegeben) | ||
pool: | pool: 10 | ||
username: xyz00_dbuser (wie oben angegeben) | username: xyz00_dbuser (wie oben angegeben) | ||
password: meinPasswort (wie oben angegeben) | password: meinPasswort (wie oben angegeben) | ||
xyz00-project@h20:~$ cd ~/openproject | Die Einträge für ''development'' und ''test'' können gelöscht werden. | ||
xyz00-project@h20:~/openproject | |||
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: | default: | ||
Zeile 96: | Zeile 124: | ||
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. | |||
Es muss außerdem vermieden werden, dass beim Hochladen von Dateien in /tmp geschrieben wird. Dazu wird das Verzeichnis $HOME/var/tmp angelegt, und die Datei <code>openproject/config/initializers/tmpdir.rb</code> mit folgendem Inhalt erstellt: | |||
<pre> | |||
class Dir | |||
def self.tmpdir | |||
"/home/pacs/xyz00/users/project/var/tmp/" | |||
end | |||
end | |||
</pre> | |||
=== Einen geheimen Schlüssel erzeugen === | |||
xyz00-project@h20:~$ cd ~/openproject | |||
xyz00-project@h20:~/openproject$ EDITOR=cat ./bin/rails credentials:edit | |||
=== 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/rails db:prepare | |||
xyz00-project@h20:~/openproject$ ./bin/rake assets:precompile | |||
=== Anlegen des Administrators === | |||
Es kann eine Demo Installation installiert werden: | |||
xyz00-project@h20:~$ cd ~/openproject | |||
xyz00-project@h20:~/openproject$ export RAILS_ENV="production" | |||
xyz00-project@h20:~/openproject$ source ~/.profile | |||
xyz00-project@h20:~/openproject$ LOCALE=en ./bin/rake db:seed | |||
Damit wird ein Beispiel-Projekt angelegt, das man wieder löschen kann. | |||
Wichtig ist aber, dass der Benutzer <code>admin</code> mit dem Passwort <code>admin</code> angelegt wird. Das Passwort muss bei der ersten Anmeldung geändert werden. | |||
=== 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 .htaccess | |||
SetEnv OPENPROJECT_STORAGE_TMP__PATH /home/pacs/xyz00/users/project/var/tmp/ | |||
SetEnv TMPDIR /home/pacs/xyz00/users/project/var/tmp/ | |||
PassengerRuby /home/pacs/xyz00/users/project/.rbenv/shims/ruby | |||
== Aufsetzen des Cronjobs für Hintergrundprozesse == | |||
Es werden Benachrichtigungs-E-Mails im Hintergrund verschickt. Dazu muss ein Prozess im Hintergrund gestartet werden. Um Probleme zu vermeiden, dass source nicht zur Verfügung steht, kann der Aufruf in einer eigenen Skriptdatei geschehen, die zwingend mit Bash ausgeführt wird, wo source verfügbar ist. | |||
Datei ''/home/pacs/xyz00/users/project/emailjob.sh'': | |||
#!/bin/bash | |||
source ~/.profile | |||
cd ~/openproject | |||
RAILS_ENV="production" ./bin/rake jobs:workoff | |||
Datei ''/home/pacs/xyz00/users/project/jobrestart.sh'': | |||
#!/bin/bash | |||
source ~/.profile | |||
cd ~/openproject | |||
RAILS_ENV="production" ./bin/delayed_job restart | |||
Nun können die cronjobs eingerichtet werden: | |||
xyz00-project@h20:~$ crontab -e | |||
Nun öffnet sich die Crontab Datei im voreingestellten Editor. Hier muss folgende Zeile eingefügt werden: | |||
*/2 * * * * /home/pacs/xyz00/users/project/emailjob.sh | |||
Damit wird der Hintergrundprozess alle 2 Minuten gestartet. | |||
Es gibt noch einen Hintergrundjob, den ich einmal in der Stunde neu starte: | |||
22 * * * * /home/pacs/xyz00/users/project/jobrestart.sh | |||
== Upgrade durchführen == | |||
Die gewünschte Ruby Version kann hier abgelesen werden: https://github.com/opf/openproject/blob/stable/11/.ruby-version | |||
Für das Upgrade von OpenProject 11.2.4 auf 11.3.4, musste eine neue Version von Ruby installiert werden: | |||
xyz00-project@h20:~$ cd ~/openproject | |||
xyz00-project@h20:~/openproject$ source ~/.profile | |||
xyz00-project@h20:~/openproject$ git -C $HOME/.rbenv/plugins/ruby-build pull | |||
xyz00-project@h20:~/openproject$ rbenv install 2.7.4 | |||
xyz00-project@h20:~/openproject$ rbenv rehash | |||
xyz00-project@h20:~/openproject$ rbenv global 2.7.4 | |||
xyz00-project@h20:~/openproject$ source ~/.profile | |||
xyz00-project@h20:~/openproject$ rm -Rf $HOME/.rbenv/versions/2.7.3/ # alte Version kann gelöscht werden | |||
Weil das Git Repository bei der Erstinstallation nur einen Branch enthielt, muss nun das Repository vollständig geladen werden: | |||
xyz00-project@h20:~$ cd openproject | |||
xyz00-project@h20:~/openproject$ source ~/.profile | |||
xyz00-project@h20:~/openproject$ git config remote.origin.fetch +refs/heads/*:refs/remotes/origin/* | |||
xyz00-project@h20:~/openproject$ git fetch --unshallow | |||
xyz00-project@h20:~/openproject$ git checkout --track remotes/origin/stable/11 | |||
Generell müssen diese Schritte durchgeführt werden: | |||
= | xyz00-project@h20:~$ cd openproject | ||
xyz00-project@h20:~/openproject$ source ~/.profile | |||
xyz00-project@h20:~/openproject$ git fetch | |||
xyz00-project@h20:~/openproject$ git pull | |||
xyz00-project@h20:~/openproject$ gem update --system | |||
xyz00-project@h20:~/openproject$ bundle install | |||
xyz00-project@h20:~/openproject$ npm install | |||
xyz00-project@h20:~/openproject$ export RAILS_ENV="production" | |||
xyz00-project@h20:~/openproject$ ./bin/rake db:migrate | |||
xyz00-project@h20:~/openproject$ ./bin/rake assets:precompile | |||
xyz00-project@h20:~/openproject$ touch ~/doms/prj.example.com/app-ssl/tmp/restart.txt | |||
== Referenzen == | |||
* [https://docs.openproject.org/installation-and-operations/installation/manual/ Anleitung für die manuelle Installation] | |||
* [https://codeberg.org/tpokorra/hs.ansible/src/branch/main/playbooks/openproject Ansible Playbook für Hostsharing] | |||
---- | ---- | ||
[[Kategorie:HSDoku]] | [[Kategorie:HSDoku]] | ||
[[Kategorie:Installationsanleitungen]] | [[Kategorie:Installationsanleitungen]] | ||
[[Kategorie:Ansible Playbook]] | |||
[[Kategorie:Software]] | [[Kategorie:Software]] | ||
[[Kategorie:RubyOnRails]] | |||
[[Kategorie:Passenger]] | [[Kategorie:Passenger]] | ||
[[Kategorie:Projektmanagement]] | |||
[[Kategorie:Projektverwaltung]] | [[Kategorie:Projektverwaltung]] |
Aktuelle Version vom 20. Mai 2023, 14:28 Uhr
Allgemein
OpenProject ist eine umfangreiche Projektmanagement-Software. Die Software ist multiprojektfähig; für jedes Projekt stehen unter anderem 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 11 erstellt.
Ansible Skript
Alternativ zur manuellen Installation, die in diesem Wiki Artikel beschrieben wird, gibt es ein Ansible Skript, das die Installationsschritte für OpenProject automatisiert durchführt.
Die Quellen für das Ansible Skript können hier eingesehen werden: https://codeberg.org/tpokorra/hs.ansible/src/branch/main/playbooks/openproject
Vorbereitungen
Service-User, Domain und Datenbank
Mit Hilfe von HSAdmin werden angelegt:
- Ein User als Service-User mit /bin/bash als Shell, zum Beispiel Beispiel: xyz00-project"
- Eine Domain mit xyz00-project als Domain-Administrator, zum Beispiel "prj.example.com"
- Einen Postgresql-User xyz00_dbuser mit Passwort meinPasswort
- 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 gewünschte Version kann hier abgelesen werden: https://github.com/opf/openproject/blob/stable/11/.ruby-version
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.7.4 xyz00-project@h20:~$ rbenv rehash xyz00-project@h20:~$ rbenv global 2.7.4
Als Test bitte aufrufen: ruby -v
Die Anzeige sollte etwa das Folgende enthalten: ruby 2.7.4pXYZ (....) [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/11 --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.
Es muss außerdem vermieden werden, dass beim Hochladen von Dateien in /tmp geschrieben wird. Dazu wird das Verzeichnis $HOME/var/tmp angelegt, und die Datei openproject/config/initializers/tmpdir.rb
mit folgendem Inhalt erstellt:
class Dir def self.tmpdir "/home/pacs/xyz00/users/project/var/tmp/" end end
Einen geheimen Schlüssel erzeugen
xyz00-project@h20:~$ cd ~/openproject xyz00-project@h20:~/openproject$ EDITOR=cat ./bin/rails credentials:edit
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/rails db:prepare xyz00-project@h20:~/openproject$ ./bin/rake assets:precompile
Anlegen des Administrators
Es kann eine Demo Installation installiert werden:
xyz00-project@h20:~$ cd ~/openproject xyz00-project@h20:~/openproject$ export RAILS_ENV="production" xyz00-project@h20:~/openproject$ source ~/.profile xyz00-project@h20:~/openproject$ LOCALE=en ./bin/rake db:seed
Damit wird ein Beispiel-Projekt angelegt, das man wieder löschen kann.
Wichtig ist aber, dass der Benutzer admin
mit dem Passwort admin
angelegt wird. Das Passwort muss bei der ersten Anmeldung geändert werden.
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 .htaccess
SetEnv OPENPROJECT_STORAGE_TMP__PATH /home/pacs/xyz00/users/project/var/tmp/ SetEnv TMPDIR /home/pacs/xyz00/users/project/var/tmp/ PassengerRuby /home/pacs/xyz00/users/project/.rbenv/shims/ruby
Aufsetzen des Cronjobs für Hintergrundprozesse
Es werden Benachrichtigungs-E-Mails im Hintergrund verschickt. Dazu muss ein Prozess im Hintergrund gestartet werden. Um Probleme zu vermeiden, dass source nicht zur Verfügung steht, kann der Aufruf in einer eigenen Skriptdatei geschehen, die zwingend mit Bash ausgeführt wird, wo source verfügbar ist.
Datei /home/pacs/xyz00/users/project/emailjob.sh:
#!/bin/bash source ~/.profile cd ~/openproject RAILS_ENV="production" ./bin/rake jobs:workoff
Datei /home/pacs/xyz00/users/project/jobrestart.sh:
#!/bin/bash source ~/.profile cd ~/openproject RAILS_ENV="production" ./bin/delayed_job restart
Nun können die cronjobs eingerichtet werden:
xyz00-project@h20:~$ crontab -e
Nun öffnet sich die Crontab Datei im voreingestellten Editor. Hier muss folgende Zeile eingefügt werden:
*/2 * * * * /home/pacs/xyz00/users/project/emailjob.sh
Damit wird der Hintergrundprozess alle 2 Minuten gestartet.
Es gibt noch einen Hintergrundjob, den ich einmal in der Stunde neu starte:
22 * * * * /home/pacs/xyz00/users/project/jobrestart.sh
Upgrade durchführen
Die gewünschte Ruby Version kann hier abgelesen werden: https://github.com/opf/openproject/blob/stable/11/.ruby-version
Für das Upgrade von OpenProject 11.2.4 auf 11.3.4, musste eine neue Version von Ruby installiert werden:
xyz00-project@h20:~$ cd ~/openproject xyz00-project@h20:~/openproject$ source ~/.profile xyz00-project@h20:~/openproject$ git -C $HOME/.rbenv/plugins/ruby-build pull xyz00-project@h20:~/openproject$ rbenv install 2.7.4 xyz00-project@h20:~/openproject$ rbenv rehash xyz00-project@h20:~/openproject$ rbenv global 2.7.4 xyz00-project@h20:~/openproject$ source ~/.profile xyz00-project@h20:~/openproject$ rm -Rf $HOME/.rbenv/versions/2.7.3/ # alte Version kann gelöscht werden
Weil das Git Repository bei der Erstinstallation nur einen Branch enthielt, muss nun das Repository vollständig geladen werden:
xyz00-project@h20:~$ cd openproject xyz00-project@h20:~/openproject$ source ~/.profile xyz00-project@h20:~/openproject$ git config remote.origin.fetch +refs/heads/*:refs/remotes/origin/* xyz00-project@h20:~/openproject$ git fetch --unshallow xyz00-project@h20:~/openproject$ git checkout --track remotes/origin/stable/11
Generell müssen diese Schritte durchgeführt werden:
xyz00-project@h20:~$ cd openproject xyz00-project@h20:~/openproject$ source ~/.profile xyz00-project@h20:~/openproject$ git fetch xyz00-project@h20:~/openproject$ git pull xyz00-project@h20:~/openproject$ gem update --system xyz00-project@h20:~/openproject$ bundle install xyz00-project@h20:~/openproject$ npm install xyz00-project@h20:~/openproject$ export RAILS_ENV="production" xyz00-project@h20:~/openproject$ ./bin/rake db:migrate xyz00-project@h20:~/openproject$ ./bin/rake assets:precompile xyz00-project@h20:~/openproject$ touch ~/doms/prj.example.com/app-ssl/tmp/restart.txt