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 |
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
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”