Bel outils de gestion de projet en ruby avec du node !
à partir de cette page.
Créer l’utilisateur openproject :
sudo groupadd openproject sudo useradd --create-home --gid openproject openproject sudo passwd openproject #(enter desired password) chsh -s /bin/bash openproject usermod -G sudo -a openproject
Installer les composants nécessaires :
sudo apt-get update -y sudo apt-get install -y zlib1g-dev build-essential \ libssl-dev libreadline-dev \ libyaml-dev libgdbm-dev \ libncurses5-dev automake \ imagemagick libmagickcore-dev libmagickwand-dev \ libtool bison libffi-dev git curl \ libxml2 libxml2-dev libxslt1-dev \ libssl1.0-dev mysql-server memcached \ default-libmysqlclient-dev mysql-server
Créer la base de données pour openproject
mysql -uroot -p
mysql> CREATE DATABASE openproject CHARACTER SET utf8; mysql> CREATE USER 'openproject'@'localhost' IDENTIFIED BY 'my_password'; mysql> GRANT ALL PRIVILEGES ON openproject.* TO 'openproject'@'localhost'; mysql> FLUSH PRIVILEGES; mysql> QUIT
Récupérer ruby et node pour le compte openproject.
su openproject --login git clone https://github.com/sstephenson/rbenv.git ~/.rbenv 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.4.1 rbenv rehash rbenv global 2.4.1 git clone https://github.com/OiNutter/nodenv.git ~/.nodenv echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.profile echo 'eval "$(nodenv init -)"' >> ~/.profile source ~/.profile git clone git://github.com/OiNutter/node-build.git ~/.nodenv/plugins/node-build nodenv install 6.11.3 nodenv rehash nodenv global 6.11.3
Récupérer OpenProject
cd ~ git clone https://github.com/opf/openproject-ce.git --branch stable/7 --depth 1 cd openproject-ce gem install bundler bundle install --deployment --without postgres sqlite development test therubyracer docker npm install # for raspberry pi or other if phantomjs does not install git clone https://github.com/piksel/phantomjs-raspberrypi.git chmod +x phantomjs-raspberrypi/bin/phantomjs cp phantomjs-raspberrypi/bin/phantomjs /home/openproject/.nodenv/shims/ npm install phantomjs npm install # for raspberry pi
Copier
cp config/database.yml.example config/database.yml
puis renseigner les informations pour la connexion à la base de donnée dans le ficher /home/openproject/openproject-ce/config/database.yml
production: adapter: mysql2 database: openproject host: localhost username: openproject password: my_password encoding: utf8 development: adapter: mysql2 database: openproject host: localhost username: openproject password: my_password encoding: utf8
Copier
cp config/configuration.yml.example config/configuration.yml
puis renseigner les informations pour la configuration dans le fichier /home/openproject/openproject-ce/config/configuration.yml
:
cp config/configuration.yml.example config/configuration.yml
production: #main level email_delivery_method: :smtp #settings for the production environment smtp_address: smtp.gmail.com smtp_port: 587 smtp_domain: smtp.gmail.com smtp_user_name: ***@gmail.com smtp_password: **** smtp_enable_starttls_auto: true smtp_authentication: plain [...] rails_cache_store: :memcache
Lancer le site en production
cd ~/openproject-ce RAILS_ENV="production" ./bin/rake db:create RAILS_ENV="production" ./bin/rake db:migrate RAILS_ENV="production" ./bin/rake db:seed RAILS_ENV="production" ./bin/rake assets:precompile
Le tester.
RAILS_ENV="production" npm run webpack-watch & RAILS_ENV="production" ./bin/rails server
Remplir la clé.
echo "export SECRET_KEY_BASE=$(./bin/rake secret)" >> ~/.profile source ~/.profile
Faire le lien avec apache2
sudo apt-get install -y apache2 libcurl4-gnutls-dev \ apache2-dev libapr1-dev \ libaprutil1-dev chmod o+x "/home/openproject" su openproject --login cd ~/openproject-ce gem install passenger passenger-install-apache2-module
Editer le fichier /etc/apache2/mods-available/passenger.load
LoadModule passenger_module /home/openproject/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/passenger-5.1.8/buildout/apache2/mod_passenger.so
Editer le fichier /etc/apache2/mods-available/passenger.conf
<IfModule mod_passenger.c> PassengerRoot /home/openproject/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/passenger-5.1.8 PassengerDefaultRuby /home/openproject/.rbenv/versions/2.3.0/bin/ruby </IfModule>
[root@openproject] a2enmod passenger
Editer le fichier /etc/apache2/sites-available/openproject.conf
SetEnv EXECJS_RUNTIME Disabled <VirtualHost *:80> ServerName yourdomain.com # !!! Be sure to point DocumentRoot to 'public'! DocumentRoot /home/openproject/openproject-ce/public <Directory /home/openproject/openproject-ce/public> # This relaxes Apache security settings. AllowOverride all # MultiViews must be turned off. Options -MultiViews # Uncomment this if you're on Apache >= 2.4: Require all granted </Directory> # Request browser to cache assets <Location /assets/> # ExpiresActive On ExpiresDefault "access plus 1 year" </Location> </VirtualHost>
Désactiver le site par défaut et activer openproject :
[root@host] a2dissite 000-default [root@host] a2ensite openproject
Installer le cron
su --login openproject crontab -e
et ajouter la ligne
*/10 * * * * cd /home/openproject/openproject-ce; /home/openproject/.rbenv/versions/2.4.1/bin/rake jobs:workoff
pour qu’il se lance toute les 10 minutes
Et pour l’avoir sur localhost/openproject
- editer le fichier
/etc/apache2/sites-available/openproject.conf
:
SetEnv EXECJS_RUNTIME Disabled <VirtualHost *:80> ServerName yourdomain.com # !!! Be sure to point DocumentRoot to 'public'! <Directory /home/openproject/openproject-ce/public> # This relaxes Apache security settings. AllowOverride all # MultiViews must be turned off. Options -MultiViews # Uncomment this if you're on Apache >= 2.4: Require all granted </Directory> # Request browser to cache assets <Location /assets/> # ExpiresActive On ExpiresDefault "access plus 1 year" </Location> # These have been added: Alias /openproject /home/openproject/openproject-ce/public <Location /openproject> PassengerBaseURI /openproject PassengerAppRoot /home/openproject/openproject-ce </Location> <Directory /home/openproject/openproject-ce/public> Allow from all Options -MultiViews # Uncomment this if you're on Apache >= 2.4: #Require all granted </Directory> </VirtualHost>
- editer le fichier
/home/openproject/openproject-ce/config/configuration.yml
:
[...] rails_relative_url_root: "/openproject" [...]
- relancer la précompilation des assets avec le nouvel url
RAILS_ENV="production" ./bin/rake assets:precompile
- relancer le serveur apache
sudo systemctl reload apache2
Pour l’installer en tant que service sous windows, utiliser ‘thin’
gem install thin gem install thin_service