ORKA CS. Représenter avant de piloter

Parcours ORKA · Déploiement

Déployer une plateforme ORKA

De la machine virtuelle Debian fraîchement installée à une plateforme ORKA complète, accessible sur votre réseau local et prête à accueillir vos utilisateurs.

Temps estimé 1 h 30 à 2 h
Niveau Intermédiaire
Système Debian 13
Architecture VM sur réseau local

Votre objectif

Ce que vous allez construire

Nous allons partir d’une VM Debian presque vide et ajouter chaque composant dans l’ordre où ORKA en a besoin.

01 Debian Système à jour
02 MariaDB Données ORKA
03 PHP-FPM Moteur Symfony
04 NGINX Point d’entrée Web
05 ORKA Plateforme accessible
Temps10 min
ObjectifDimensionner la VM
ImpactAucun

Étape 1

Préparer la machine virtuelle

Le parcours commence après l’installation de Debian. Votre hyperviseur peut être VMware, Proxmox, Hyper-V, Nutanix ou toute autre solution capable d’héberger une VM Linux.

Une VM dédiée, pourquoi ?

ORKA dispose ainsi de ses propres ressources, de son propre système et de règles réseau clairement identifiables. Les sauvegardes, mises à jour et opérations de maintenance deviennent également plus simples à maîtriser.

Configuration recommandée

Processeur2 à 4 vCPU
Mémoire8 Go RAM
Stockage80 Go SSD
Réseau1 interface VLAN serveur
SystèmeDebian 13 minimal
Nom conseilléorka01.exemple.lan
À adapter à votre contexte

Les besoins réels dépendent du nombre d’utilisateurs, du volume de documents et de votre politique de rétention. Commencez simplement, puis mesurez avant d’augmenter les ressources.

Informations à réunir avant de commencer

Temps5 min
ObjectifComprendre les briques
ImpactAucun

Étape 2

Comprendre ce que vous allez installer

ORKA n’est pas un programme isolé. La plateforme repose sur plusieurs composants, chacun ayant une responsabilité précise.

Utilisateurs du réseau local Navigateurs Web
↓ HTTPS
Point d’entrée NGINX Reçoit les connexions, sert le frontend et transmet les requêtes PHP.
↓ FastCGI
Moteur applicatif PHP-FPM + Symfony Exécute la logique métier et l’API d’ORKA.
↓ SQL local
Stockage structuré MariaDB Conserve les utilisateurs, incidents, risques, audits et référentiels.
MariaDB ne sera pas exposée sur le réseau

NGINX est le seul service applicatif visible par les utilisateurs. PHP-FPM et MariaDB restent accessibles uniquement depuis la VM.

À retenir

Le navigateur parle à NGINX. NGINX transmet les traitements dynamiques à PHP-FPM. Symfony interroge MariaDB. Chaque brique reste à sa place.

Temps5 min
ObjectifOuvrir une session SSH
ImpactConnexion distante

Étape 3

Se connecter à Debian

Depuis votre poste d’administration, ouvrez un terminal puis connectez-vous avec l’utilisateur créé pendant l’installation de Debian.

Poste d’administration
ssh Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.

Résultat attendu

Session ouverte
Linux orka01 6.x-amd64
administrateur@orka01:~$
Ne poursuivez pas en root

Utilisez un compte nominatif membre du groupe sudo. Vous conserverez ainsi une meilleure traçabilité des opérations d’administration.

Temps10 min
ObjectifMettre Debian à jour
ImpactPaquets système

Étape 4

Préparer le système

Une installation fraîche peut déjà contenir des paquets devenus obsolètes depuis la publication de l’image ISO. La première opération consiste donc à mettre le système à jour.

Mise à jour Debian
sudo apt update
sudo apt full-upgrade -y
sudo apt autoremove --purge -y

Installer les outils de base

Outils d’administration
sudo apt install -y \
  curl \
  wget \
  git \
  unzip \
  nano \
  ca-certificates \
  gnupg \
  lsb-release \
  acl \
  ufw

Configurer le nom de la machine

Nom d’hôte
sudo hostnamectl set-hostname orka01
hostnamectl
Un nom DNS interne est fortement recommandé

Demandez par exemple la création de orka.exemple.lan pointant vers l’adresse IP de la VM. Vos utilisateurs n’auront pas à mémoriser une adresse IP.

Ce que vous venez de faire

Debian est à jour, les outils nécessaires sont présents et la VM possède un nom clairement identifiable sur votre infrastructure.

Temps10 min
ObjectifLimiter les accès réseau
ImpactFlux entrants

Étape 5

Configurer le pare-feu de la VM

Le pare-feu applique une règle simple : refuser par défaut les connexions entrantes, puis autoriser uniquement les services nécessaires.

22/TCP SSH Depuis le VLAN d’administration uniquement
80/TCP HTTP Redirection vers HTTPS ou accès initial
443/TCP HTTPS Accès des utilisateurs à ORKA
3306/TCP MariaDB Non exposé sur le réseau
Autorisez SSH avant d’activer UFW

Une mauvaise règle pourrait interrompre votre session distante. Adaptez 192.168.10.0/24 au véritable sous-réseau d’administration.

Règles UFW
sudo ufw default deny incoming
sudo ufw default allow outgoing

sudo ufw allow from 192.168.10.0/24 to any port 22 proto tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

sudo ufw enable

Vérification

État du pare-feu
sudo ufw status verbose

Ouvrez ensuite une seconde session SSH avant de fermer la première. Vous confirmez ainsi que la règle d’administration fonctionne réellement.

Temps15 min
ObjectifPréparer les données ORKA
ImpactService de base de données

Étape 6

Installer et sécuriser MariaDB

MariaDB est le coffre-fort structuré d’ORKA

Les risques, incidents, audits, applications et paramètres sont enregistrés dans la base. L’application utilisera un compte SQL dédié, limité à la seule base ORKA.

Installation MariaDB
sudo apt install -y mariadb-server mariadb-client
sudo systemctl enable --now mariadb
sudo systemctl status mariadb --no-pager

Sécuriser l’installation

Assistant de sécurisation
sudo mariadb-secure-installation

Retenez les choix suivants :

Utilisateurs anonymesSupprimer
Connexion root distanteInterdire
Base de testSupprimer
PrivilègesRecharger

Créer la base et l’utilisateur ORKA

Remplacez le mot de passe d’exemple

Utilisez un secret long, aléatoire et conservé dans votre coffre-fort de mots de passe.

Console MariaDB
sudo mariadb
SQL Création de la base ORKA
CREATE DATABASE orka
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_unicode_ci;

CREATE USER 'orka_user'@'localhost'
  IDENTIFIED BY 'REMPLACEZ_PAR_UN_SECRET_LONG';

GRANT ALL PRIVILEGES ON orka.*
  TO 'orka_user'@'localhost';

FLUSH PRIVILEGES;
EXIT;

Vérifier que MariaDB reste locale

Ports en écoute
sudo ss -lntp | grep 3306

Le service doit écouter sur 127.0.0.1:3306 ou ne pas exposer 0.0.0.0:3306.

Ce que vous venez de faire

MariaDB est démarrée, sécurisée et prête à recevoir uniquement les données d’ORKA avec un compte applicatif dédié.

Temps10 min
ObjectifInstaller le moteur PHP
ImpactExécution de Symfony

Étape 7

Installer PHP-FPM

NGINX ne sait pas exécuter PHP

NGINX reçoit la requête puis la confie à PHP-FPM. PHP-FPM exécute Symfony, produit une réponse et la retourne à NGINX, qui la transmet au navigateur.

Navigateur
NGINX
PHP-FPM
Symfony
Réponse
Installation PHP 8.4
sudo apt install -y \
  php8.4 \
  php8.4-cli \
  php8.4-fpm \
  php8.4-mysql \
  php8.4-curl \
  php8.4-xml \
  php8.4-mbstring \
  php8.4-intl \
  php8.4-bcmath \
  php8.4-zip \
  php8.4-gd \
  php8.4-ldap \
  php8.4-opcache

Configurer les limites utiles à ORKA

Fichier php.ini de PHP-FPM
sudo nano /etc/php/8.4/fpm/php.ini
PHP /etc/php/8.4/fpm/php.ini
memory_limit = 256M
upload_max_filesize = 50M
post_max_size = 50M
max_execution_time = 120
date.timezone = Europe/Paris
Redémarrage et vérification
sudo systemctl restart php8.4-fpm
sudo systemctl enable php8.4-fpm
php -v
sudo systemctl status php8.4-fpm --no-pager
Deux configurations PHP coexistent

Le fichier /etc/php/8.4/fpm/php.ini concerne le site Web. Le fichier /etc/php/8.4/cli/php.ini concerne les commandes lancées depuis le terminal.

Temps5 min
ObjectifInstaller les dépendances PHP
ImpactOutil système

Étape 8

Installer Composer

Composer télécharge les bibliothèques PHP déclarées par ORKA. Symfony s’appuie sur ces composants pour fonctionner.

Installation Composer
cd /tmp
curl -sS https://getcomposer.org/installer -o composer-setup.php
sudo php8.4 composer-setup.php \
  --install-dir=/usr/local/bin \
  --filename=composer
rm composer-setup.php
En environnement sensible

Vérifiez la signature de l’installateur avec le condensat publié par Composer avant son exécution. Cette vérification pourra également être intégrée à votre procédure d’industrialisation.

Vérification
composer --version
Temps10 min
ObjectifConstruire le frontend
ImpactOutil de compilation

Étape 9

Installer Node.js

Node.js ne fait pas tourner ORKA en production

Il sert principalement à transformer le code Vue.js en fichiers statiques optimisés. Une fois le frontend construit, NGINX sert directement ces fichiers.

Installation Node.js 22
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs

node -v
npm -v
Archive ORKA déjà compilée ?

Si votre paquet de distribution contient déjà le dossier frontend/dist, Node.js n’est pas indispensable à l’exécution. Il reste néanmoins utile pour reconstruire le frontend lors de certaines mises à jour.

Temps10 min
ObjectifInstaller le point d’entrée Web
ImpactPorts 80 et 443

Étape 10

Installer NGINX

NGINX est l’accueil de votre plateforme. Il reçoit les utilisateurs, sert l’interface Vue.js et transmet les requêtes applicatives à PHP-FPM.

Utilisateur « Je souhaite ouvrir ORKA »
Accueil NGINX Oriente chaque demande vers le bon composant
Service interne ORKA Traite la demande
Installation NGINX
sudo apt install -y nginx
sudo systemctl enable --now nginx
sudo nginx -t
sudo systemctl status nginx --no-pager

À ce stade, l’adresse IP de la VM doit afficher la page d’accueil par défaut de NGINX. Ce test confirme que le serveur Web écoute correctement.

Temps20 min
ObjectifInstaller l’application
ImpactFichiers ORKA

Étape 11

Déployer ORKA

Créer le répertoire de la plateforme

Arborescence ORKA
sudo mkdir -p /var/www/orka
sudo chown -R "$USER":www-data /var/www/orka
sudo chmod 2755 /var/www/orka

Copier puis décompresser l’archive

Déploiement de l’archive
sudo cp ~/orka-v1.zip /var/www/orka/
cd /var/www/orka
unzip orka-v1.zip
rm orka-v1.zip
Arborescence /var/www/orka
/var/www/orka
├── backend
│   ├── bin
│   ├── config
│   ├── public
│   ├── src
│   └── var
└── frontend
    ├── src
    └── dist

Installer le backend Symfony

Backend ORKA
cd /var/www/orka/backend

APP_ENV=prod composer install \
  --no-dev \
  --optimize-autoloader \
  --no-interaction

Construire le frontend

Frontend Vue.js
cd /var/www/orka/frontend
cp .env.production.example .env.production
nano .env.production

npm ci
npm run build
Utilisez npm ci lorsque le fichier package-lock.json est fourni

Cette commande installe exactement les versions de dépendances validées lors de la construction de la version ORKA.

Appliquer des permissions maîtrisées

Propriétaire et permissions
sudo chown -R "$USER":www-data /var/www/orka

sudo find /var/www/orka -type d -exec chmod 2755 {} \;
sudo find /var/www/orka -type f -exec chmod 0644 {} \;

sudo mkdir -p /var/www/orka/backend/var
sudo chown -R www-data:www-data /var/www/orka/backend/var
sudo find /var/www/orka/backend/var -type d -exec chmod 2770 {} \;
sudo find /var/www/orka/backend/var -type f -exec chmod 0660 {} \;
Répertoire des documents téléversés

Si votre version d’ORKA utilise un répertoire distinct pour les documents, appliquez-lui également un propriétaire www-data et des permissions d’écriture limitées au service Web.

Temps15 min
ObjectifRelier NGINX à ORKA
ImpactVirtualHost

Étape 12

Publier ORKA avec NGINX

La configuration suivante sert le frontend Vue.js et transmet les routes /api et /install au contrôleur Symfony.

Nouveau site NGINX
sudo nano /etc/nginx/sites-available/orka.conf
NGINX /etc/nginx/sites-available/orka.conf
server {
    listen 80;
    listen [::]:80;

    server_name orka.exemple.lan;

    root /var/www/orka/frontend/dist;
    index index.html;

    client_max_body_size 50M;

    access_log /var/log/nginx/orka_access.log;
    error_log  /var/log/nginx/orka_error.log;

    # Interface Vue.js
    location / {
        try_files $uri $uri/ /index.html;
    }

    # API Symfony
    location ^~ /api {
        try_files "" @orka_backend;
    }

    # Assistant d’installation ORKA
    location ^~ /install {
        try_files "" @orka_backend;
    }

    # Fichiers publics éventuellement servis par Symfony
    location ^~ /uploads {
        alias /var/www/orka/backend/public/uploads;
        try_files $uri @orka_backend;
    }

    # Contrôleur frontal Symfony
    location @orka_backend {
        include fastcgi_params;

        fastcgi_pass unix:/run/php/php8.4-fpm.sock;

        fastcgi_param SCRIPT_FILENAME /var/www/orka/backend/public/index.php;
        fastcgi_param DOCUMENT_ROOT /var/www/orka/backend/public;
        fastcgi_param SCRIPT_NAME /index.php;
        fastcgi_param REQUEST_URI $request_uri;
        fastcgi_param HTTPS $https if_not_empty;
    }

    # Aucun fichier PHP ne doit être exécuté directement
    location ~ \.php$ {
        return 404;
    }

    # Protection des fichiers cachés, sauf ACME
    location ~ /\.(?!well-known).* {
        deny all;
    }
}
Adaptez les routes à votre version d’ORKA

Si le paquet fourni utilise d’autres chemins publics, ajoutez-les explicitement avant le bloc location /. N’exposez jamais l’intégralité du dossier backend.

Activer le site

Activation du VirtualHost
sudo ln -s /etc/nginx/sites-available/orka.conf \
  /etc/nginx/sites-enabled/orka.conf

sudo rm -f /etc/nginx/sites-enabled/default

sudo nginx -t
sudo systemctl reload nginx

Résultat attendu

Test NGINX
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Ce que vous venez de faire

NGINX connaît maintenant ORKA. Il sert l’interface Web, transmet les appels applicatifs à PHP-FPM et conserve des journaux séparés.

Temps10 à 20 min
ObjectifChiffrer les connexions
ImpactHTTPS

Étape 13

Activer HTTPS sur le réseau local

Même sur un VLAN interne, HTTPS protège les identifiants, les sessions et les données échangées entre les navigateurs et ORKA.

Option recommandée en entreprise Autorité de certification interne

Votre PKI délivre un certificat pour orka.exemple.lan. Les postes du domaine lui font déjà confiance.

Nom de domaine public Let’s Encrypt

Possible avec un domaine maîtrisé et une validation HTTP ou DNS adaptée à votre architecture.

Laboratoire uniquement Certificat autosigné

Utile pour tester, mais il provoque un avertissement tant que l’autorité n’est pas déployée sur les postes.

Installer un certificat fourni par votre PKI

Répertoire TLS
sudo install -d -m 0750 -o root -g www-data /etc/nginx/tls/orka

sudo install -m 0644 orka.exemple.lan.crt \
  /etc/nginx/tls/orka/orka.crt

sudo install -m 0640 orka.exemple.lan.key \
  /etc/nginx/tls/orka/orka.key

Configurer la redirection HTTP vers HTTPS

NGINX Structure TLS du site ORKA
server {
    listen 80;
    listen [::]:80;
    server_name orka.exemple.lan;

    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name orka.exemple.lan;

    ssl_certificate     /etc/nginx/tls/orka/orka.crt;
    ssl_certificate_key /etc/nginx/tls/orka/orka.key;

    # Reprendre ici les blocs root, location et logs
    # de la configuration ORKA précédente.
}
Validation TLS
sudo nginx -t
sudo systemctl reload nginx

curl -Ik https://orka.exemple.lan
Let’s Encrypt sur une plateforme interne

La validation HTTP nécessite généralement que le serveur soit joignable depuis Internet. La validation DNS peut éviter cette exposition, mais demande un domaine public et la maîtrise de sa zone DNS.

TempsOptionnel
ObjectifIntégrer l’architecture du client
ImpactFlux interserveurs

Étape 14

Et si votre entreprise possède déjà un reverse proxy ?

Certaines organisations centralisent toutes les publications Web sur un équipement dédié : NGINX, HAProxy, Apache, F5, FortiWeb, Traefik ou une passerelle applicative. Dans ce cas, la VM ORKA reste sur son VLAN et le frontal d’entreprise lui transmet les connexions.

Utilisateurs Réseau interne
→ HTTPS
Frontal d’entreprise Reverse proxy
→ HTTPS ou HTTP filtré
VLAN serveur VM ORKA
Qui termine le certificat ?

Le TLS peut être terminé sur le reverse proxy central, puis réémis vers ORKA. Pour une défense en profondeur, conservez également HTTPS entre le frontal et la VM.

Exemple de frontal NGINX externe

NGINX Reverse proxy central
server {
    listen 443 ssl;
    server_name orka.exemple.fr;

    ssl_certificate     /etc/nginx/tls/orka/fullchain.pem;
    ssl_certificate_key /etc/nginx/tls/orka/privkey.pem;

    location / {
        proxy_pass https://192.168.20.40;

        proxy_http_version 1.1;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_connect_timeout 10s;
        proxy_read_timeout 120s;
    }
}
Le pare-feu doit alors être plus restrictif

Autorisez le port 443 de la VM ORKA uniquement depuis l’adresse du reverse proxy central, tout en conservant SSH depuis le VLAN d’administration.

Exemple UFW avec frontal central
sudo ufw delete allow 443/tcp
sudo ufw allow from 192.168.20.10 to any port 443 proto tcp
sudo ufw status numbered

Le client reste libre de choisir son architecture. ORKA fonctionne directement sur le réseau local ou derrière le dispositif de publication déjà en place.

Temps10 min
ObjectifValider toute la chaîne
ImpactContrôles uniquement

Étape 15

Vérifier la plateforme

Une installation n’est terminée que lorsque chaque composant a été contrôlé indépendamment, puis dans son fonctionnement global.

Contrôler les services

État global
sudo systemctl is-active nginx
sudo systemctl is-active php8.4-fpm
sudo systemctl is-active mariadb

sudo nginx -t
sudo ufw status verbose
sudo ss -lntp

Consulter les journaux

Logs utiles
sudo tail -n 100 /var/log/nginx/orka_error.log
sudo journalctl -u php8.4-fpm -n 100 --no-pager
sudo journalctl -u mariadb -n 100 --no-pager
sudo tail -n 100 /var/www/orka/backend/var/log/prod.log

Terminer avec l’assistant ORKA

https://orka.exemple.lan/install
ORKA

Assistant d’installation

Configurez la connexion SQL, créez le premier administrateur et finalisez l’installation de la plateforme.

Après la finalisation

Vérifiez la présence du verrou d’installation et assurez-vous que l’assistant ne peut plus être relancé sans action volontaire de l’administrateur.

Parcours terminé

Votre plateforme ORKA est prête

Vous êtes parti d’une VM Debian presque vide. Vous disposez maintenant d’une plateforme Web complète, cloisonnée et accessible à vos utilisateurs.

Ce que vous avez appris

01

Comprendre le rôle de Debian, NGINX, PHP-FPM, Symfony et MariaDB.

02

Limiter les flux réseau grâce au pare-feu local.

03

Déployer une application Vue.js et Symfony sur une VM Linux.

04

Publier ORKA directement sur un VLAN ou derrière un reverse proxy.

05

Chiffrer les échanges avec un certificat adapté à votre organisation.

06

Vérifier chaque service et retrouver les journaux utiles au diagnostic.

Vous n’avez pas seulement installé ORKA. Vous avez compris comment construire une plateforme Linux moderne et vous savez désormais où intervenir pour l’exploiter.

Poursuivre

Les prochains parcours