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