Table des matières
Installation de Decidim sur un serveur Ubuntu 22.04
Ces instructions devraient fonctionner sur n'importe quelle installation propre d'Ubuntu 22.04. Mais je promets rien! J'ai essayé de lister chaque difficultés que j'ai rencontré dans ce parcours du combattant donc j'espère que cela sera exhaustif.
Des bases saines
Tout d'abord, mettons notre système à jour :
sudo apt update sudo apt upgrade sudo apt autoremove
Maintenant, configurez le bon fuseau horaire pour votre serveur :
sudo dpkg-reconfigure tzdata
Ensuite, installons quelques paquets nécessaires :
sudo apt install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev
Installons ruby, en utilisant la méthode rbenv.
git clone https://github.com/rbenv/rbenv.git ~/.rbenv echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc source ~/.bashrc
Puis installons ruby-build pour simplifier l'utilisation de différente version de Ruby :
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Nous allons utiliser la version 3.1.1 pour Decidim 0.28, exécutez ces commandes :
rbenv install 3.1.1 rbenv global 3.1.1
Ensuite, nous devons configurer Gem, le gestionnaire de paquets pour Ruby, après quoi nous serons prêts à installer Decidim.
Pour configurer Gem, exécutez
echo "gem : --no-document" > ~/.gemrc gem install bundler
Bien, maintenant que nous avons la configuration de base du serveur en place, la prochaine étape est d'installer Decidim.
Installation de Decidim
Decidim utilise Postgresql comme base de données SQL, nous allons donc l'installer. Vous devez quand même installer le paquet libpq-dev afin d'exécuter le générateur Decidim (au cas où vous installeriez Postgresl sur un autre serveur). :
sudo apt install -y postgresql libpq-dev
Nous avons également besoin d'imageMagick:
sudo apt install -y imagemagick libicu-dev
Et aussi de NodeJS en version 18 pour Decidim 0.28, pour me faciliter l'installation de la version voulue j'ai utilisé Nodemanager
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash source ~/.bashrc nvm install 18
Pour finir on installe Yarn (version 1 ou +, dans les dépôts d'Ubuntu 22.04 c'est une version 0.9x donc on passe par npm)
npm install --global yarn yarn --version
On passe enfin à Decidim. Installez la gem Decidim (c'est long, c'est normal ) :
gem install decidim
Maintenant, lancez le générateur pour créer notre application :
decidim decidim-app
A ce stade, nous avons créé un nouveau dossier dans ~/decidim-app avec notre code. Nous devons maintenant configurer la base de données.
Pour ce faire, nous devons d'abord créer l'utilisateur et le mot de passe dans la base de données :
sudo -u postgres psql -c "CREATE USER decidim_app WITH SUPERUSER CREATEDB NOCREATEROLE PASSWORD 'TonbeaumotDEpasse'"
Choisissez un bon mot de passe comme je l'ai fait
Une fois l'utilisateur créé, il est temps de configurer Decidim pour qu'il utilise ces informations d'identification.
Parce que nous ne voulons pas stocker directement ces données sensibles dans le code lui-même, nous allons utiliser un fichier YAML supplémentaire qui stockera tous les secrets en un seul endroit. Si, à l'avenir, nous voulons créer un dépôt Git avec notre application, nous exclurons ce fichier du contrôle de version.
Afin de traduire ce fichier dans le système de configuration de Decidim, nous allons inclure la gemme Ruby “figaro” dans notre application pour s'en occuper.
Tout d'abord, allons dans le dossier de Decidim :
cd ~/decidim-app
Ensuite, éditons le fichier Gemfile :
nano Gemfile
Nous allons modifier ce fichier pour ajouter une section “production” avec nos gemmes supplémentaires, nous ajoutons cette ligne avant la première déclaration de groupe :
gem "figaro"
Et nous allons créer une autre section de groupe avec les paramètres de production qui installera également quelques gemmes supplémentaires nécessaires plus tard.
Ajoutez à la fin du fichier Gemfile :
group :production do gem "passenger" gem 'delayed_job_active_record' (enregistrement actif des travaux retardés) gem "daemons" fin
L'ensemble du fichier Gemfile devrait ressembler à ceci :
'# frozen_string_literal : true
source “https://rubygems.org”
ruby RUBY_VERSION
gem “decidim”, “0.21.0”
# gem “decidim-consultations”, “0.21.0”
# gem “decidim-initiatives”, “0.21.0”
gem “bootsnap”, “~> 1.4”
gem “puma”, “~> 4.3”
gem “uglifier”, “~> 4.1”
gem “faker”, “~> 1.9”
gem “figaro”
groupe :development, :test faire
gem “byebug”, “~> 11.0”, plate-forme : :mri
gem “decidim-dev”, “0.21.0”
end
groupe :development do
gem “letter_opener_web”, “~> 1.3”
gem “listen”, “~> 3.1”
gem “spring”, “~> 2.0”
gem “spring-watcher-listen”, “~> 2.0”
gem “web-console”, “~> 3.5”
fin
groupe :production do
gem “passenger”
gem “delayed_job_active_record” (enregistrement des tâches actives retardées)
gem “daemons”
fin'
Après cela, nous devons mettre à jour notre application pour inclure les gemmes supplémentaires, exécutez la commande suivante (dans le dossier de l'application) :
bundle install
Maintenant, il est temps de créer le fichier de configuration avec nos valeurs personnalisées. Nous avons déjà les identifiants de la base de données (nous avons créé l'utilisateur auparavant) et nous avons besoin d'une chaîne aléatoire qui sera utilisée par Decidim pour crypter les cookies et d'autres éléments de sécurité.
Générons une chaîne aléatoire en exécutant la commande rake secret dans le dossier de l'application :
cd ~/decidim-app rake secret e2418a1987378e36f18740d25f0360a18099a5caa5d04700ea3336d9fdefadc5362dc885a7a15f671e81f7d77bc98fa4d8abfd048f829a78d7ffd33cd8b4b287
Copiez la chaîne générée et créez un nouveau fichier de configuration :
nano ~/decidim-app/config/application.yml
Collez à l'intérieur ce contenu :
DATABASE_URL : postgres://decidim_app:Password1@localhost/decidim_prod SECRET_KEY_BASE: e2418a1987378e36f18740d25f0360a18099a5caa5d04700ea3336d9fdefadc5362dc885a7a15f671e81f7d77bc98fa4d8abfd048f829a78d7ffd33cd8b4b287
Maintenant, par sécurité, incluez ce fichier dans le fichier .gitignore, au cas où vous voudriez utiliser GIT pour gérer votre application.
Exécutez simplement
echo "/config/application.yml" >> ~/decidim-app/.gitignore
Notes : J'ai nommé ma base de données decidim_prod, changez cette valeur pour ce que vous voulez pour votre application decidim. Attention, la ligne avec le mot clé SECRET_KEY_BASE n'est qu'une ligne et vous DEVEZ mettre votre propre secret généré (celui généré avec la commande rake secret) 👉 Passer pro (optionnel) : Il est maintenant temps d'initialiser votre installation en tant que dépôt GIT. Cela permettra de garder une trace de vos changements et de les revenir si quelque chose ne va pas. C'est optionnel, il vous suffit d'exécuter : cd ~/decidim-app git init . git commit -m “Initial commit. Généré avec Decidim 0.X https://decidim.org” tt
