OpenProject

Ruby on Rails Gestion de projet ⏱ 15 min Intermédiaire Plan : Pro Vérifié 2026-05-23

À quoi ça sert

OpenProject est une suite de gestion de projet open source, alternative complète à Jira et Asana. Elle couvre l'agile (scrum, kanban), le waterfall (diagrammes de Gantt), le suivi du temps (timesheets, EVM), et la documentation projet (wiki, forums).

Cette fiche déploie OpenProject Community Edition avec un processus web (Rails), un worker en arrière-plan (Good Job pour les tâches asynchrones), un Memcached dédié et une base PostgreSQL.

Ce que vous obtenez

  • Tableaux agile (scrum, kanban) avec backlog, burndown et velocity charts
  • Diagrammes de Gantt interactifs, dépendances entre tâches, jalons
  • Timesheets, suivi des budgets, Earned Value Management
  • Wiki par projet, forums, gestion de documents, calendrier
  • API REST v3 complète (Basic Auth par jeton apikey:...)
  • Modules optionnels : BIM (modèles 3D / IFC), Nextcloud, GitLab, OneDrive
  • Authentification SAML, OpenID Connect, LDAP, 2FA TOTP/WebAuthn

Pré-requis

Compte di2amp actif. Plan minimal : Pro. Addons utilisés : Postgres (obligatoire). Mémoire recommandée : 2 Gio pour le web, 1 Gio pour le worker.

Si vous n'avez pas encore créé de compte, suivez le guide de démarrage avant cette page.

001 Déploiement manuel via CLI

OpenProject utilise les variables PostgreSQL standard (PGHOST, PGPORT, PGDATABASE, PGUSER, PGPASSWORD) et non un DATABASE_URL consolidé.

01 Créer l'app et le Postgres

$ paas apps:create mon-pm && paas addons:create postgres-standard --app mon-pm

Plan Postgres recommandé : standard (OpenProject seede environ une centaine de tables au démarrage).

02 Cloner le template

$ git clone https://git.di2amp.com/templates/openproject.git && cd openproject

Le template contient un paas.toml avec trois processus (web, worker, seeder) et un initContainer qui attend que Postgres soit prêt.

03 Configurer les processus

[[processes]]
name = "web"
command = "bundle exec rails server"
memory = "2Gi"
port = 8080

[[processes]]
name = "worker"
command = "bundle exec good_job start --max-threads=4"
memory = "1Gi"

[[processes]]
name = "seeder"
type = "release"
command = "bundle exec rake db:seed"

Le worker doit utiliser --max-threads=4 avec 1 Gio de mémoire pour éviter les OOM (sinon Good Job se fait tuer en boucle, code de sortie 137).

04 Pousser et seeder

$ git push paas main

Le job seeder tourne automatiquement comme processus de release. Il crée le compte admin / admin (à changer immédiatement) et quatre projets de démo.

002 Authentification API

L'API REST v3 utilise une clé API par utilisateur, transmise en Basic Auth avec l'identifiant fixe apikey :

curl -u "apikey:<votre_clef>" \
  https://mon-pm.runtime.di2amp.com/api/v3/users/me

La clé est générée dans Mon compte → Jetons d'accès → Clé API. Tous les endpoints REST v3 supportent ce mode (projects, work_packages, time_entries, etc.).

Aller plus loin

Agents IA recommandés

  • DBA pour surveiller les requêtes lentes sur les grosses tables work_packages
  • FinOps pour suivre la consommation mémoire du worker (sensible aux jobs longs)
  • SRE pour ajuster les ressources web/worker à la charge réelle

Addons utiles à ajouter ensuite

  • S3 — Stockage durable des pièces jointes et exports PDF
  • SSO — Authentification OpenID Connect pour vos équipes

Prêt à déployer
OpenProject ?

Suite complète de gestion de projet. Postgres inclus, 2 Gio mémoire web recommandés.