Loomio installieren: Unterschied zwischen den Versionen
Tim00 (Diskussion | Beiträge) |
KKeine Bearbeitungszusammenfassung |
||
(11 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{Textkasten|gelb| | {{Textkasten|gelb|Für Managed Server|Ein funktionierender Loomio-Server erfordert mehrere laufende Server-Dienste. Für den Betrieb ist ein Managed Server sinnvoll.}} | ||
== Über == | == Über == | ||
https://www.loomio. | Loomio (https://www.loomio.com/) ist laut Wikipedia eine freie Software, geeignet um Gruppen im kollaborativen Entscheidungsfindungsprozess zu unterstützen. | ||
Ein kurzes 2 Minuten Video auf Englisch beschreibt es ganz gut: What is Loomio? https://www.youtube.com/embed/Zlzuqsunpxc | |||
Es ist in Ruby on Rails geschrieben. | |||
Die von den Entwicklern empfohlene Installation von Loomio funktioniert mit Docker. Die Konzepte von Docker passen aber nicht zu Hostsharing. | |||
Daher wird hier mit supervisor gearbeitet. | |||
Weitere Links und Hinweise zur Entstehung dieser Anleitung siehe auf der [[Diskussion:Loomio_installieren|Diskussionsseite]]. | |||
== Vorbereitungen == | == 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-loomio" | |||
# Eine Domain mit ''xyz00-loomio'' als Domain-Administrator, zum Beispiel "loomio.example.org" | |||
# Einen Postgresql-User ''xyz00_loomio'' mit Passwort ''meinPasswort'' | |||
# Eine Postgresql-Datenbank ''xyz00_loomio'' mit Datenbank-Owner ''xyz00_loomio'' | |||
{{Textkasten|gelb|PostgreSQL Extensions|Die PostgreSQL-Datenbank braucht die [https://github.com/loomio/loomio/blob/master/db/schema.rb#L15 folgenden Extensions]: citext, hstore, pg_stat_statements, pgcrypto und plpgsql. | |||
Diese müssen vom Hostsharing-Support installiert werden. Dazu einfach eine E-Mail an die service@ Adresse schreiben. }} | |||
=== Installation von Ruby === | === Installation von Ruby === | ||
Loomio benötigt eine geeignete Version der Programmiersprache Ruby: | |||
Die Version ist in https://github.com/loomio/loomio/blob/master/.ruby-version zu finden. | Die Version ist in https://github.com/loomio/loomio/blob/master/.ruby-version zu finden. | ||
<syntaxhighlight lang=shell> | |||
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv | |||
touch ~/.profile | |||
chmod u+x ~/.profile | |||
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile | |||
echo 'eval "$(rbenv init -)"' >> ~/.profile | |||
source ~/.profile | |||
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build | |||
rbenv install 2.7.3 | |||
rbenv rehash | |||
rbenv global 2.7.3 | |||
</syntaxhighlight> | |||
Als Test bitte aufrufen: ''ruby -v'' | Als Test bitte aufrufen: ''ruby -v'' | ||
Zeile 39: | Zeile 52: | ||
=== Installation von Node === | === Installation von Node === | ||
Loomio benötigt eine geeignete Version von Node: | |||
Die Version ist in https://github.com/loomio/loomio/blob/master/Dockerfile#L28 zu finden. | |||
<syntaxhighlight lang=shell> | |||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash | |||
export NVM_DIR="$HOME/.nvm" | |||
source $NVM_DIR/nvm.sh | |||
nvm install 14.0.0 | |||
nvm alias default 14.0.0 | |||
</syntaxhighlight> | |||
== Installation == | == Installation == | ||
=== Installation der Anwendung === | === Installation der Anwendung === | ||
Wir benutzen nicht die [https://github.com/loomio/loomio/releases neueste Version von Loomio], | |||
sondern die aktuelle Version aus dem stable Branch, genau wie die Docker Container. | |||
Momentan ist das Version Loomio 2.7.5, siehe auf [https://github.com/loomio/loomio/blob/stable/lib/version.rb Github]. | |||
<syntaxhighlight lang=shell> | |||
source ~/.profile | |||
export NVM_DIR="$HOME/.nvm" | |||
source $NVM_DIR/nvm.sh | |||
git clone https://github.com/loomio/loomio.git | |||
cd loomio | |||
xyz00-loomio@h20:~/loomio$ git checkout --track remotes/origin/stable | |||
xyz00-loomio@h20:~/loomio$ gem update --system | |||
xyz00-loomio@h20:~/loomio$ bundle install | |||
xyz00-loomio@h20:~/loomio$ cd vue && npm install && npm run build && cd .. | |||
</syntaxhighlight> | |||
=== Konfiguration von Loomio === | === Konfiguration von Loomio === | ||
Zeile 63: | Zeile 87: | ||
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'' | ||
<syntaxhighlight lang=shell> | |||
cd ~/loomio | |||
xyz00-loomio@h20:~/loomio$ cp config/database.example.yml config/database.yml | |||
</syntaxhighlight> | |||
In der neuen Datei ''database.yml'' wird die mit HSAdmin angelegte PostgreSQL-Datenbank eingetragen: | In der neuen Datei ''database.yml'' wird die mit HSAdmin angelegte PostgreSQL-Datenbank eingetragen: | ||
<syntaxhighlight lang=yaml line> | |||
production: | |||
adapter: postgresql | |||
encoding: unicode | |||
host: localhost | |||
database: xyz00_loomio (wie oben angegeben) | |||
pool: 10 | |||
username: xyz00_dbuser (wie oben angegeben) | |||
password: meinPasswort (wie oben angegeben) | |||
</syntaxhighlight> | |||
Bearbeite die Datei ''config/environments/production.rb'' und ergänze am Ende, vor dem ''end'': | |||
<syntaxhighlight lang=ruby line> | |||
config.force_ssl = false | |||
config.action_mailer.default_url_options = { :host => 'loomio.example.org' } | |||
config.action_mailer.raise_delivery_errors = true | |||
config.action_mailer.perform_deliveries = true | |||
config.action_mailer.delivery_method = :smtp | |||
config.action_mailer.logger = ActiveSupport::Logger.new("/home/pacs/xyz00/users/loomio/supervisor/log/mailer.log") | |||
config.action_mailer.logger.level = ActiveSupport::Logger::Severity::INFO | |||
config.action_mailer.smtp_settings = { | |||
:domain => 'example.org', | |||
:authentication => nil, | |||
:address => 'localhost', | |||
:port => 25, | |||
:openssl_verify_mode => :none, | |||
:enable_starttls_auto => false | |||
} | |||
</syntaxhighlight> | |||
=== Einen geheimen Schlüssel erzeugen === | === Einen geheimen Schlüssel erzeugen === | ||
<syntaxhighlight lang=shell> | |||
cd ~/loomio | |||
xyz00-loomio@h20:~/loomio$ EDITOR=vim ./script/rails credentials:edit | |||
</syntaxhighlight> | |||
Den Editor vim mit Speichern verlassen: <code>Esc</code> Taste drücken, dann eingeben: <code>:wq</code> und Enter drücken | Den Editor vim mit Speichern verlassen: <code>Esc</code> Taste drücken, dann eingeben: <code>:wq</code> und Enter drücken | ||
<syntaxhighlight lang=shell> | |||
xyz00-loomio@h20:~/loomio$ export RAILS_ENV="production" | |||
xyz00-loomio@h20:~/loomio$ echo "export SECRET_KEY_BASE=$(rake secret)" >> ~/.profile | |||
</syntaxhighlight> | |||
=== Initialisieren der Datenbank === | |||
<syntaxhighlight lang=shell> | |||
cd ~/loomio | |||
xyz00-loomio@h20:~/loomio$ export RAILS_ENV="production" | |||
xyz00-loomio@h20:~/loomio$ source ~/.profile | |||
xyz00-loomio@h20:~/loomio$ rake db:schema:load | |||
xyz00-loomio@h20:~/loomio$ rake db:migrate | |||
</syntaxhighlight> | |||
=== Redis Service konfigurieren === | |||
<syntaxhighlight lang=shell> | |||
cd | |||
mkdir -p redis/etc redis/lib redis/log redis/run | |||
</syntaxhighlight> | |||
Anlegen einer Datei ''/home/pacs/xyz00/users/loomio/redis/etc/redis.conf'' mit folgendem Inhalt: | |||
<syntaxhighlight lang=ini line> | |||
daemonize no | |||
pidfile /home/pacs/xyz00/users/loomio/redis/run/redis-server.pid | |||
port 6379 | |||
tcp-backlog 128 | |||
bind 127.0.0.1 | |||
timeout 300 | |||
loglevel notice | |||
logfile /home/pacs/xyz00/users/loomio/redis/log/redis.log | |||
databases 16 | |||
save 900 1 | |||
save 300 10 | |||
save 60 10000 | |||
slave-serve-stale-data yes | |||
appendonly no | |||
dbfilename dump.rdb | |||
dir /home/pacs/xyz00/users/loomio/redis/lib | |||
</syntaxhighlight> | |||
=== Supervisor konfigurieren === | |||
Zum Start aller notwendigen Dienste wird in dieser Anleitung supervisor benutzt. | |||
<syntaxhighlight lang=shell> | |||
mkdir -p ~/supervisor/log ~/supervisor/run ~/supervisor/etc | |||
</syntaxhighlight> | |||
Hier ein Beispiel für die Datei ~/supervisor/etc/supervisord.conf | |||
<syntaxhighlight lang=ini line> | |||
[supervisord] | |||
logfile=/home/pacs/xyz00/users/loomio/supervisor/log/supervisord.log | |||
logfile_maxbytes=50MB | |||
logfile_backups=10 | |||
loglevel=error | |||
pidfile=/home/pacs/xyz00/users/loomio/supervisor/run/supervisord.pid | |||
minfds=1024 | |||
minprocs=200 | |||
childlogdir=/home/pacs/xyz00/users/loomio/supervisor/log/ | |||
[unix_http_server] | |||
file=/home/pacs/xyz00/users/loomio/supervisor/run/supervisord.sock | |||
[rpcinterface:supervisor] | |||
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface | |||
[supervisorctl] | |||
serverurl=unix:///home/pacs/xyz00/users/loomio/supervisor/run/supervisord.sock | |||
[program:redis] | |||
command=/usr/bin/redis-server /home/pacs/xyz00/users/loomio/redis/etc/redis.conf | |||
stderr_logfile = /home/pacs/xyz00/users/loomio/supervisor/log/redis-stderr.log | |||
stdout_logfile = /home/pacs/xyz00/users/loomio/supervisor/log/redis-stdout.log | |||
[program:loomio-web] | |||
directory=/home/pacs/xyz00/users/loomio/loomio | |||
environment=RAILS_ENV="production",NOTIFICATIONS_EMAIL_ADDRESS="no-reply@example.org" | |||
command=/home/pacs/xyz00/users/loomio/.rbenv/shims/bundle exec puma -C config/puma.rb -b tcp://127.0.0.1:3000 | |||
stderr_logfile = /home/pacs/xyz00/users/loomio/supervisor/log/loomio-web-stderr.log | |||
stdout_logfile = /home/pacs/xyz00/users/loomio/supervisor/log/loomio-web-stdout.log | |||
[program:loomio-sidekiq] | |||
directory=/home/pacs/xyz00/users/loomio/loomio | |||
environment=RAILS_ENV="production",NOTIFICATIONS_EMAIL_ADDRESS="no-reply@example.org" | |||
command=/home/pacs/xyz00/users/loomio/.rbenv/shims/bundle exec sidekiq | |||
stderr_logfile = /home/pacs/xyz00/users/loomio/supervisor/log/loomio-sidekiq-stderr.log | |||
stdout_logfile = /home/pacs/xyz00/users/loomio/supervisor/log/loomio-sidekiq-stdout.log | |||
</syntaxhighlight> | |||
Die folgenden Skripte können zum Starten und zum Neustarten der Dienste verwendet werden: | |||
''~/start.sh'' | |||
<syntaxhighlight lang=shell line> | |||
#!/bin/bash | |||
export RAILS_ENV="production" | |||
source ~/.profile | |||
cd ~/loomio | |||
/usr/bin/supervisord -c $HOME/supervisor/etc/supervisord.conf | |||
</syntaxhighlight> | |||
''~/restart.sh'' | |||
<syntaxhighlight lang=shell line> | |||
#!/bin/bash | |||
if [ -f $HOME/supervisor/run/supervisord.pid ] | |||
then | |||
/bin/kill $( cat $HOME/supervisor/run/supervisord.pid ) | |||
fi | |||
sleep 3 | |||
~/start.sh | |||
</syntaxhighlight> | |||
=== Cronjobs === | |||
''Cron'' wird genutzt, um nach dem Server reboot ''supervisord'' zu starten, und um regelmäßige Aufgaben von Loomio auszuführen. | |||
Einrichten der crontab mit ''crontab -e'' | |||
<syntaxhighlight lang=shell line> | |||
HOME=/home/pacs/xyz00/users/loomio | |||
MAILTO=admin@example.org | |||
RAILS_ENV=production | |||
NOTIFICATIONS_EMAIL_ADDRESS="no-reply@example.org" | |||
NUM_DAYS=31 | |||
@reboot /usr/bin/supervisord -c /home/pacs/xyz00/users/loomio/supervisor/etc/supervisord.conf | |||
55 * * * * cd /home/pacs/xyz00/users/loomio/loomio && /home/pacs/xyz00/users/loomio/.rbenv/shims/bundle exec rake loomio:hourly_tasks | |||
</syntaxhighlight> | |||
=== Log Dateien === | |||
Zum Debuggen können folgende Log Dateien hilfreich sein: | |||
* ~/supervisor/log/loomio-web-stdout.log | |||
* ~/supervisor/log/loomio-web-stderr.log | |||
* ~/supervisor/log/loomio-sidekiq-stdout.log | |||
* ~/supervisor/log/loomio-sidekiq-stderr.log | |||
* ~/supervisor/log/mailer.log | |||
* ~/supervisor/log/redis-stdout.log | |||
* ~/supervisor/log/redis-stderr.log | |||
=== Einrichten des Apache === | |||
Die originale .htaccess Datei zuerst löschen: | |||
<syntaxhighlight lang=shell> | |||
rm ~/doms/loomio.example.org/htdocs-ssl/.htaccess | |||
</syntaxhighlight> | |||
Neue Datei ''~/doms/loomio.example.org/htdocs-ssl/.htaccess'' | |||
<syntaxhighlight lang=apache line> | |||
DirectoryIndex disabled | |||
RewriteEngine on | |||
RewriteBase / | |||
RewriteRule ^(.*) http://localhost:3000/$1 [proxy,last] | |||
</syntaxhighlight> | |||
---- | |||
[[Kategorie:HSDoku]] | |||
[[Kategorie:Installationsanleitungen]] | |||
[[Kategorie:Software]] | |||
[[Kategorie:RubyOnRails]] |
Aktuelle Version vom 1. Juli 2024, 12:31 Uhr
Für Managed Server
Ein funktionierender Loomio-Server erfordert mehrere laufende Server-Dienste. Für den Betrieb ist ein Managed Server sinnvoll.
Über
Loomio (https://www.loomio.com/) ist laut Wikipedia eine freie Software, geeignet um Gruppen im kollaborativen Entscheidungsfindungsprozess zu unterstützen.
Ein kurzes 2 Minuten Video auf Englisch beschreibt es ganz gut: What is Loomio? https://www.youtube.com/embed/Zlzuqsunpxc
Es ist in Ruby on Rails geschrieben.
Die von den Entwicklern empfohlene Installation von Loomio funktioniert mit Docker. Die Konzepte von Docker passen aber nicht zu Hostsharing. Daher wird hier mit supervisor gearbeitet.
Weitere Links und Hinweise zur Entstehung dieser Anleitung siehe auf der Diskussionsseite.
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-loomio"
- Eine Domain mit xyz00-loomio als Domain-Administrator, zum Beispiel "loomio.example.org"
- Einen Postgresql-User xyz00_loomio mit Passwort meinPasswort
- Eine Postgresql-Datenbank xyz00_loomio mit Datenbank-Owner xyz00_loomio
PostgreSQL Extensions
Die PostgreSQL-Datenbank braucht die folgenden Extensions: citext, hstore, pg_stat_statements, pgcrypto und plpgsql. Diese müssen vom Hostsharing-Support installiert werden. Dazu einfach eine E-Mail an die service@ Adresse schreiben.
Installation von Ruby
Loomio benötigt eine geeignete Version der Programmiersprache Ruby:
Die Version ist in https://github.com/loomio/loomio/blob/master/.ruby-version zu finden.
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
touch ~/.profile
chmod u+x ~/.profile
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile
echo 'eval "$(rbenv init -)"' >> ~/.profile
source ~/.profile
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
rbenv install 2.7.3
rbenv rehash
rbenv global 2.7.3
Als Test bitte aufrufen: ruby -v
Die Anzeige sollte etwa das Folgende enthalten: ruby 2.7.3pXYZ (....) [x86_64-linux]
Installation von Node
Loomio benötigt eine geeignete Version von Node:
Die Version ist in https://github.com/loomio/loomio/blob/master/Dockerfile#L28 zu finden.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
export NVM_DIR="$HOME/.nvm"
source $NVM_DIR/nvm.sh
nvm install 14.0.0
nvm alias default 14.0.0
Installation
Installation der Anwendung
Wir benutzen nicht die neueste Version von Loomio, sondern die aktuelle Version aus dem stable Branch, genau wie die Docker Container. Momentan ist das Version Loomio 2.7.5, siehe auf Github.
source ~/.profile
export NVM_DIR="$HOME/.nvm"
source $NVM_DIR/nvm.sh
git clone https://github.com/loomio/loomio.git
cd loomio
xyz00-loomio@h20:~/loomio$ git checkout --track remotes/origin/stable
xyz00-loomio@h20:~/loomio$ gem update --system
xyz00-loomio@h20:~/loomio$ bundle install
xyz00-loomio@h20:~/loomio$ cd vue && npm install && npm run build && cd ..
Konfiguration von Loomio
Erstelle eine Konfiguration für den Datenbank-Zugriff in der Datei config/database.yml
cd ~/loomio
xyz00-loomio@h20:~/loomio$ cp config/database.example.yml 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_loomio (wie oben angegeben)
pool: 10
username: xyz00_dbuser (wie oben angegeben)
password: meinPasswort (wie oben angegeben)
Bearbeite die Datei config/environments/production.rb und ergänze am Ende, vor dem end:
config.force_ssl = false
config.action_mailer.default_url_options = { :host => 'loomio.example.org' }
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.logger = ActiveSupport::Logger.new("/home/pacs/xyz00/users/loomio/supervisor/log/mailer.log")
config.action_mailer.logger.level = ActiveSupport::Logger::Severity::INFO
config.action_mailer.smtp_settings = {
:domain => 'example.org',
:authentication => nil,
:address => 'localhost',
:port => 25,
:openssl_verify_mode => :none,
:enable_starttls_auto => false
}
Einen geheimen Schlüssel erzeugen
cd ~/loomio
xyz00-loomio@h20:~/loomio$ EDITOR=vim ./script/rails credentials:edit
Den Editor vim mit Speichern verlassen: Esc
Taste drücken, dann eingeben: :wq
und Enter drücken
xyz00-loomio@h20:~/loomio$ export RAILS_ENV="production"
xyz00-loomio@h20:~/loomio$ echo "export SECRET_KEY_BASE=$(rake secret)" >> ~/.profile
Initialisieren der Datenbank
cd ~/loomio
xyz00-loomio@h20:~/loomio$ export RAILS_ENV="production"
xyz00-loomio@h20:~/loomio$ source ~/.profile
xyz00-loomio@h20:~/loomio$ rake db:schema:load
xyz00-loomio@h20:~/loomio$ rake db:migrate
Redis Service konfigurieren
cd
mkdir -p redis/etc redis/lib redis/log redis/run
Anlegen einer Datei /home/pacs/xyz00/users/loomio/redis/etc/redis.conf mit folgendem Inhalt:
daemonize no
pidfile /home/pacs/xyz00/users/loomio/redis/run/redis-server.pid
port 6379
tcp-backlog 128
bind 127.0.0.1
timeout 300
loglevel notice
logfile /home/pacs/xyz00/users/loomio/redis/log/redis.log
databases 16
save 900 1
save 300 10
save 60 10000
slave-serve-stale-data yes
appendonly no
dbfilename dump.rdb
dir /home/pacs/xyz00/users/loomio/redis/lib
Supervisor konfigurieren
Zum Start aller notwendigen Dienste wird in dieser Anleitung supervisor benutzt.
mkdir -p ~/supervisor/log ~/supervisor/run ~/supervisor/etc
Hier ein Beispiel für die Datei ~/supervisor/etc/supervisord.conf
[supervisord]
logfile=/home/pacs/xyz00/users/loomio/supervisor/log/supervisord.log
logfile_maxbytes=50MB
logfile_backups=10
loglevel=error
pidfile=/home/pacs/xyz00/users/loomio/supervisor/run/supervisord.pid
minfds=1024
minprocs=200
childlogdir=/home/pacs/xyz00/users/loomio/supervisor/log/
[unix_http_server]
file=/home/pacs/xyz00/users/loomio/supervisor/run/supervisord.sock
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///home/pacs/xyz00/users/loomio/supervisor/run/supervisord.sock
[program:redis]
command=/usr/bin/redis-server /home/pacs/xyz00/users/loomio/redis/etc/redis.conf
stderr_logfile = /home/pacs/xyz00/users/loomio/supervisor/log/redis-stderr.log
stdout_logfile = /home/pacs/xyz00/users/loomio/supervisor/log/redis-stdout.log
[program:loomio-web]
directory=/home/pacs/xyz00/users/loomio/loomio
environment=RAILS_ENV="production",NOTIFICATIONS_EMAIL_ADDRESS="no-reply@example.org"
command=/home/pacs/xyz00/users/loomio/.rbenv/shims/bundle exec puma -C config/puma.rb -b tcp://127.0.0.1:3000
stderr_logfile = /home/pacs/xyz00/users/loomio/supervisor/log/loomio-web-stderr.log
stdout_logfile = /home/pacs/xyz00/users/loomio/supervisor/log/loomio-web-stdout.log
[program:loomio-sidekiq]
directory=/home/pacs/xyz00/users/loomio/loomio
environment=RAILS_ENV="production",NOTIFICATIONS_EMAIL_ADDRESS="no-reply@example.org"
command=/home/pacs/xyz00/users/loomio/.rbenv/shims/bundle exec sidekiq
stderr_logfile = /home/pacs/xyz00/users/loomio/supervisor/log/loomio-sidekiq-stderr.log
stdout_logfile = /home/pacs/xyz00/users/loomio/supervisor/log/loomio-sidekiq-stdout.log
Die folgenden Skripte können zum Starten und zum Neustarten der Dienste verwendet werden:
~/start.sh
#!/bin/bash
export RAILS_ENV="production"
source ~/.profile
cd ~/loomio
/usr/bin/supervisord -c $HOME/supervisor/etc/supervisord.conf
~/restart.sh
#!/bin/bash
if [ -f $HOME/supervisor/run/supervisord.pid ]
then
/bin/kill $( cat $HOME/supervisor/run/supervisord.pid )
fi
sleep 3
~/start.sh
Cronjobs
Cron wird genutzt, um nach dem Server reboot supervisord zu starten, und um regelmäßige Aufgaben von Loomio auszuführen.
Einrichten der crontab mit crontab -e
HOME=/home/pacs/xyz00/users/loomio
MAILTO=admin@example.org
RAILS_ENV=production
NOTIFICATIONS_EMAIL_ADDRESS="no-reply@example.org"
NUM_DAYS=31
@reboot /usr/bin/supervisord -c /home/pacs/xyz00/users/loomio/supervisor/etc/supervisord.conf
55 * * * * cd /home/pacs/xyz00/users/loomio/loomio && /home/pacs/xyz00/users/loomio/.rbenv/shims/bundle exec rake loomio:hourly_tasks
Log Dateien
Zum Debuggen können folgende Log Dateien hilfreich sein:
- ~/supervisor/log/loomio-web-stdout.log
- ~/supervisor/log/loomio-web-stderr.log
- ~/supervisor/log/loomio-sidekiq-stdout.log
- ~/supervisor/log/loomio-sidekiq-stderr.log
- ~/supervisor/log/mailer.log
- ~/supervisor/log/redis-stdout.log
- ~/supervisor/log/redis-stderr.log
Einrichten des Apache
Die originale .htaccess Datei zuerst löschen:
rm ~/doms/loomio.example.org/htdocs-ssl/.htaccess
Neue Datei ~/doms/loomio.example.org/htdocs-ssl/.htaccess
DirectoryIndex disabled
RewriteEngine on
RewriteBase /
RewriteRule ^(.*) http://localhost:3000/$1 [proxy,last]