SOFTIC Academy

Installation de Softic.GED sur Windows Server (IIS, hors ligne)

تم التحديث في 6‏‏/11‏‏/2026

هذا المحتوى غير متوفر بعد باللغة العربية؛ يُعرض باللغة Français.

1. Architecture cible

Composant Machine Port Service
Softic.GED.App (GED + Elsa Server + API + MCP) Serveur applicatif 443 IIS, pool SofticGED-App
Softic.GED.Studio (designer) Serveur applicatif 443 IIS, pool SofticGED-Studio
SQL Server Serveur BDD 1433 base SofticGED (schéma ged + tables Elsa)
Apache Solr 9 Serveur applicatif ou dédié 8983 service SofticGED-Solr (NSSM)
Ollama Machine GPU (RTX 3080) 11434 service ou tâche planifiée
Blobs Partage ou disque local — D:\SofticGED\blobs (sauvegardé par SofticPRT)

2. Préparer le dossier hors ligne

Voir deploy/README-DEPLOY.txt pour la liste des binaires à télécharger sur un poste connecté.

Publication de l'application :

dotnet publish src\Softic.GED.App    -c Release -r win-x64 --self-contained false -o deploy\offline\publish\App
dotnet publish src\Softic.GED.Studio -c Release -r win-x64 --self-contained false -o deploy\offline\publish\Studio

Modèles Ollama : sur le poste connecté, ollama pull bge-m3 et ollama pull qwen2.5:7b-instruct, puis copier %USERPROFILE%\.ollama\models dans offline\models.

3. Exécuter les scripts (PowerShell administrateur)

Set-ExecutionPolicy Bypass -Scope Process
cd D:\deploy
.\install-prereqs.ps1     -OfflineDir D:\offline -DataRoot D:\SofticGED
.\install-solr.ps1        -OfflineDir D:\offline -SolrHome D:\SofticGED\solr -JavaHome "C:\Program Files\Java\jdk-17"
.\create-solr-core.ps1    -SolrUrl http://localhost:8983/solr -Core softic_ged -SchemaFile D:\deploy\schema-fields.json
.\install-ollama.ps1      -OfflineDir D:\offline
.\copy-tessdata.ps1       -OfflineDir D:\offline -DataRoot D:\SofticGED
.\install-iis.ps1         -OfflineDir D:\offline -SiteRoot D:\SofticGED\www -AppHost ged.softic.local -StudioHost ged-studio.softic.local -CertThumbprint <empreinte>

Tous les scripts sont en ASCII pur (compatibles PowerShell 5.1 et 7).

4. Base de données

  1. Créer la base SofticGED et donner db_owner au compte du pool SofticGED-App (ou utiliser un compte SQL dédié dans la chaîne de connexion).
  2. Au premier démarrage, l'App applique les migrations EF Core (ged.*) et Elsa crée ses propres tables.
  3. Générer la migration initiale avant la publication si ce n'est pas fait : dotnet ef migrations add Initial -p src/Softic.GED.Data -s src/Softic.GED.App -o Migrations

5. Configuration (appsettings.json de l'App)

Clé Rôle
ConnectionStrings:Ged SQL Server
Auth:Mode Windows en production
Auth:RoleGroups groupe AD → rôle (Admin, Validateurs, DAF, …) ; les rôles sont utilisés dans les activités (role:DAF) et les règles d'accès
Storage:RootPath dossier des blobs ; EncryptionKeyBase64 = clé AES-256 (32 octets base64) pour chiffrer au repos
Solr:* URL, core, dimension des vecteurs
AI:ChatProvider / AI:EmbeddingProvider Ollama (local) ou AzureOpenAI
AI:Ocr:TessDataPath dossier des .traineddata
Pipeline:Workers parallélisme du traitement (2 sur une RTX 3080 10 Go avec qwen2.5:7b)
Workflows:SigningKey, AdminApiKey, AllowedOrigins sécurité Elsa ; AllowedOrigins doit contenir l'URL du Studio
Studio:Url URL affichée dans la page Workflows
Notifications:* SMTP et correspondance rôle → liste de diffusion

Studio : Backend:Url = https://ged.softic.local/elsa/api. Connexion initiale admin / password (fournisseur admin d'Elsa) : changez-le dès la mise en service (voir la doc Elsa Identity, ou remplacez UseAdminUserProvider par un fournisseur d'utilisateurs).

6. Polices hors ligne (optionnel)

Le thème utilise Inter et IBM Plex Mono si elles sont disponibles, sinon Segoe UI / Consolas. Pour les servir localement : placer les .woff2 dans wwwroot/fonts et ajouter dans app.css :

@font-face { font-family: "Inter"; src: url("../fonts/Inter-Variable.woff2") format("woff2"); font-weight: 100 900; font-display: swap; }
@font-face { font-family: "IBM Plex Mono"; src: url("../fonts/IBMPlexMono-Regular.woff2") format("woff2"); font-display: swap; }

7. Figer les versions NuGet

Après le premier dotnet restore sur un poste connecté :

dotnet list src\Softic.GED.App package --include-transitive:$false

Reporter les versions résolues dans Directory.Packages.props à la place des 8.* / 3.* / 9.*, puis alimenter un flux NuGet local (nuget.config → dossier offline\nuget) avec dotnet nuget push ou une copie du cache %USERPROFILE%\.nuget\packages.

8. Vérifications après installation

  • https://ged.softic.local/ : page d'accueil (authentification Windows automatique).
  • Déposer un PDF dans Documents : la colonne Traitement passe à ✓ ; la fiche affiche le résumé IA.
  • https://ged.softic.local/api/search?q=facture : JSON de résultats.
  • https://ged-studio.softic.local/ : designer ; créer un workflow Document déposé → Attendre validation → Changer l'état, le publier, déposer un document : la tâche apparaît dans Validations.
  • Solr : http://localhost:8983/solr/#/softic_ged/query ; Ollama : http://127.0.0.1:11434/api/tags.

9. Exemple de workflow « Facture »

[Document déposé (type=FACTURE)]
        │
        ▼
[Lire le document] ──► Amount
        │
        ▼
   <Amount > 10000 ?>
     oui │        │ non
        ▼        ▼
[Attendre validation   [Attendre validation
  role:DAF]              role:Comptabilite]
   Approuvé│Rejeté        Approuvé│Rejeté
        ▼                  ▼
[Changer l'état = Validated]  [Changer l'état = Rejected] → [Notifier user:{{ CreatedBy }}]
        ▼
[Déplacer vers /Comptabilite/Factures/{{ "now" | date: "%Y" }}]
        ▼
[Appliquer rétention 10 ans]

Les expressions Liquid/JavaScript/C# d'Elsa sont utilisables dans chaque champ (ex. {{ Variables.DocumentId }}).