Outils pour utilisateurs

Outils du site


software:applications:openproject:installation-serveur

OpenProject : Installation serveur

Environnement

Test sur système virtualisé

Virtualisation QEMU/KVM
Architecture AMD/Intel x86_64
Système d'exploitation Debian GNU/Linux 12 (bookworm)
Noyau Linux 6.1.0-54-amd64
Openproject version 17.9.2 via APT
Date 10/2026

Procédure

Installation des prérequis pour utiliser APT via HTTPS :

apt install -y apt-transport-https ca-certificates curl gpg

Importer la clé signant les paquets du projet Open Project :

curl -fsSL "https://packages.openproject.com/srv/deb/opf/openproject/gpg-key.gpg" -o /usr/share/keyrings/openproject.gpg

Ajouter la source des paquets Open Project :

curl -fsSL "https://packages.openproject.com/srv/opf/openproject/stable/17/installer/debian/12.list" -o /etc/apt/sources.list.d/openproject.list

Mise à jour de la liste des paquets et installation de l'application :

apt update && apt install -y openproject

Lancer l'assistant de configuration de l'application :

openproject reconfigure
Invoquer la commande openproject reconfigure lance un assistant de configuration interactif et produit un fichier /etc/openproject/installer.dat. Ce fichier sera relu dans un second temps par la commande complètement automatisée openproject configure chargée d'appliquer la configuration.

Une fois l'assistant terminé, invoquer la commande :

openproject configure

Dans notre cas, la configuration automatique est interrompue avec le message suivant :

...
[openproject] ./bin/postinstall
INCOMPATIBLE DATABASE ENCODING DETECTED

Your database encoding is SQL_ASCII, which is incompatible with ICU
collation used in OpenProject v15.

Please check the instructions on how to change database encoding:
https://www.openproject.org/docs/installation-and-operations/misc/changing-database-encoding/

This check can be skipped by setting environment variable OPENPROJECT_SKIP_DB_ENCODING_CHECK=true

Lister les bases existantes via l'utilisateur postgres :

runuser -u postgres -- psql -c '\l'
    Name     |    Owner    | Encoding  | Locale Provider | Collate | Ctype | Locale | ICU Rules |   Access privileges
-------------+-------------+-----------+-----------------+---------+-------+--------+-----------+-----------------------
 openproject | openproject | SQL_ASCII | libc            | C       | C     |        |           |

Créer une sauvegarde openproject :

# Depuis le compte root
runuser -u openproject -- openproject run backup

La sauvegarde retourne sur la sortie standard la liste des fichiers produits notamment le dump de la base PostgreSQL de la forme /var/db/openproject/backup/postgresql-dump-[timestamp].pgdump

Vérifier la présence et le contenu du dump produit.

Créer une nouvelle base avec un nom différent utilisant l'encodage unicode :

export OLD_DB=$(openproject config:get DATABASE_URL)
psql "$OLD_DB" -c 'CREATE DATABASE "openproject-unicode" WITH OWNER = openproject TEMPLATE = template0 ENCODING = UNICODE'

Vérifier que la nouvelle base existe :

runuser -u postgres -- psql -c '\l'
                                                       List of databases
        Name         |    Owner    | Encoding  | Locale Provider | Collate | Ctype | Locale | ICU Rules |   Access privileges   
---------------------+-------------+-----------+-----------------+---------+-------+--------+-----------+-----------------------
 openproject         | openproject | SQL_ASCII | libc            | C       | C     |        |           | 
 openproject-unicode | openproject | UTF8      | libc            | C       | C     |        |           | 

On restore le dump dans la nouvelle base puis on met à jour les informations de connexion pour pointer sur la nouvelle base :

export NEW_DB=$OLD_DB-unicode
 
pg_restore -d $NEW_DB /var/db/openproject/backup/postgresql-dump-xxxxxxx.pgdump
 
openproject config:set DATABASE_URL=$NEW_DB
unset OLD_DB
unset NEW_DB

On peut maintenant relancer la configuration :

openproject configure

Lorsque la configuration se termine normalement, les derniers messages retournés concernent la création des liens symbolique pour les unités systemd :

Exporting I18n.js locales
=> Done in 2.06s
Created symlink /etc/systemd/system/multi-user.target.wants/openproject.service -> /etc/systemd/system/openproject.service.
Created symlink /etc/systemd/system/openproject.service.wants/openproject-web.service -> /etc/systemd/system/openproject-web.service.
Scaling up...
Created symlink /etc/systemd/system/openproject-web.service.wants/openproject-web-1.service -> /etc/systemd/system/openproject-web-1.service.
--> done.
Created symlink /etc/systemd/system/openproject.service.wants/openproject-worker.service -> /etc/systemd/system/openproject-worker.service.
Scaling up...
Created symlink /etc/systemd/system/openproject-worker.service.wants/openproject-worker-1.service -> /etc/systemd/system/openproject-worker-1.service.
--> done.

Vérifier l'état du service :

systemctl status openproject.service

L'application est à présent fonctionnelle, on y accède via le navigateur web. Pour s'authentifier utiliser le compte admin et le mot de passe par défaut “admin”

Références

software/applications/openproject/installation-serveur.txt · Dernière modification : 2026/10/19 08:13 de yoann