Handleiding voor on-premise-implementatie
TranscribIA kan zelfstandig via Docker in uw eigen infrastructuur worden geïnstalleerd: zonder cloudafhankelijkheid of uitgaande gegevens. Deze handleiding is voor IT-teams die installatie en beheer uitvoeren en beschrijft de doelarchitectuur, vereisten, installatiestappen, configuratie en dagelijks onderhoud.
Technisch document · Uitgegeven door AMBASSADIA SARL · Versie v1.0 · Laatst bijgewerkt:
Vereisten afgestemd op het volume. Onderstaande waarden (CPU, RAM, GPU-VRAM, opslag) zijn richtwaarden voor een representatieve implementatie. Exacte vereisten hangen af van uw audiovolume, gelijktijdige gebruikers, gekozen AI-modellen en bewaartermijn. Vul de on-premisevragenlijst in voor een capaciteitsadvies op maat.
1. Doelarchitectuur
TranscribIA on-premise gebruikt een zelfstandige Docker Compose -stack die applicatiediensten en databases op één host aanstuurt (of verdeeld volgens uw infrastructuur). Rekenintensieve transcriptie wordt uitgevoerd op een externe GPU-server die daarvoor is bestemd.
nginx — reverse proxy en TLS-afhandeling app — Laravel 12-backend (PHP-FPM) queue — worker voor standaardtaken en exports queue-ai — worker voor AI-generatie queue-media — worker voor mediaverwerking scheduler — taakplanner (Laravel-cron) reverb — WebSocket-server voor realtimegegevens frontend — statische React-build (aangeboden door nginx) postgres:16 — relationele database redis:7 — cache, wachtrijen en sessies De GPU-transcriptieserver (motoren WhisperX en pyannote, CUDA-uitvoering) is een afzonderlijk onderdeel dat met de stack is verbonden. Afhankelijk van uw netwerktopologie kan dit op de GPU-host of op een aparte server draaien.
2. Hardwarevereisten
Applicatieserver
- CPU — minimaal 8 vCPU, 16+ aanbevolen (x86_64).
- RAM — minimaal 16 GB, 32 GB aanbevolen.
- Opslag — minimaal 100 GB SSD (systeem, images en gegevens). Benodigde capaciteit hangt af van audiovolume en bewaartermijn; lokale opslag, NFS en S3-compatibele opslag worden ondersteund.
- Netwerk — toegang via het klantintranet; HTTP-poort
3480aangeboden door nginx (of opnieuw geconfigureerd).
Transcriptieserver — GPU
Transcriptie en diarisatie draaien op een grafische accelerator. Twee hardwaregroepen worden ondersteund:
Aanbevolen — NVIDIA CUDA
- GPU : minimaal aanbevolen: NVIDIA RTX 4090 (24 GB VRAM), of een gelijkwaardig datacentermodel (RTX 6000 Ada, L40S, A5000).
- VRAM : minimaal 24 GB voor WhisperX en pyannote in productie.
- Software : NVIDIA-driver en CUDA 12.x en NVIDIA Container Toolkit geïnstalleerd.
- Controle :
nvidia-smiwerkend, GPU zichtbaar vanuit Docker.
Alternatief — Apple Silicon
- Chips : Apple Silicon (M2/M3/M4, bij voorkeur Ultra) voor beperkte volumes.
- Gedeeld geheugen : minimaal 32 GB, 64 GB+ aanbevolen afhankelijk van de modellen.
- Runtime : native Metal/MPS-versnelling (geen CUDA nodig).
- Gebruik : kleine/middelgrote implementaties of secundaire locaties.
3. Softwarevereisten
- Docker Engine 24+ en Docker Compose v2 (plug-in
docker compose). - Besturingssysteem : Linux aanbevolen in productie (Ubuntu 22.04/24.04 LTS, Debian 12, RHEL 9). Windows en macOS worden ondersteund voor evaluatie.
- Git voor het ophalen van de repository en updates.
- GNU Make (de doelen
make install,make up… worden meegeleverd). - NVIDIA Container Toolkit op de GPU-host (bij CUDA-transcriptie).
4. Installatiestappen
De repository bevat een Makefile
en een .env.example. De standaardprocedure omvat enkele opdrachten:
# 1. Repository ophalen
git clone <repo-transcribia> transcribia cd transcribia # 2. Préparer le fichier d'environnement cp .env.example .env # → renseigner DB_PASSWORD, REDIS_PASSWORD, clés IA… # 3. Installation complète # (build images + dépendances Composer/NPM + migrations + seed) make install # ── ou, étape par étape ────────────────────── docker compose build docker compose up -d docker compose exec app php artisan key:generate docker compose exec app php artisan migrate docker compose exec app php artisan db:seed
# Applicatie bereikbaar op http://localhost:3480
Handige doelen: make up,
make down,
make restart,
make logs,
make migrate,
make seed.
5. Configuratie (.env)
De volgende variabelen sturen database, cache en AI-motoren aan. Bij 100% on-premisewordt de lokale LLM ingeschakeld en blijft de cloudsleutel leeg:
# ── Base de données PostgreSQL ────────────── DB_DATABASE=transcribia DB_USERNAME=transcribia DB_PASSWORD=<mot-de-passe-fort> # ── Redis (cache + queues + sessions) ──────── REDIS_PASSWORD=<mot-de-passe-fort> # ── Moteurs IA ─────────────────────────────── ALLOW_LOCAL_LLM=true LLM_BASE_URL=http://llm-local:8000/v1 # serveur LLM local OPENROUTER_API_KEY= # vide en full on-premise
ALLOW_LOCAL_LLM schakelt generatie (samenvattingen, besluiten enz.) naar uw lokale endpoint, opgegeven via LLM_BASE_URL. Zolang OPENROUTER_API_KEY leeg blijft, gaan geen AI-aanroepen buiten uw infrastructuur.
6. Air-gapmodus (offline)
Voor omgevingen zonder internettoegang werkt TranscribIA volledig offline met drie voorzorgsmaatregelen:
- Vooraf gedownloade modellen : WhisperX- en pyannote-modellen (en eventuele lokale LLM's) worden via een verbonden werkstation van Hugging Face gedownload en naar de doelserver overgebracht.
- Lokaal beschikbare Docker-images : images worden uit een archief geladen (
docker load) in plaats van uit een openbaar register opgehaald. - Handmatige updates : nieuwe versies worden via pakkettoverdracht toegepast, zonder
git pullofdocker pullonline.
# Offlinemodus afdwingen (modellen al lokaal gecachet)
export HF_HUB_OFFLINE=1 # Hugging Face : pas d'accès réseau export TRANSFORMERS_OFFLINE=1
7. Eerste start en controle
Elke dienst in de docker-compose.yml
biedt een healthcheck. Controle na de start:
docker compose ps # tous les services "healthy" docker compose exec app php artisan migrate:status curl -fsS http://localhost:3480/ # page d'accueil (HTTP 200) docker compose logs -f app # journaux applicatifs
Een dienst die de status healthy
niet bereikt, wijst meestal op een ontbrekende omgevingsvariabele (DB / Redis) of een niet-gedetecteerde GPU op de transcriptieserver.
8. Updates en onderhoud
# Récupérer la nouvelle version git pull # Reconstruire + migrer make install # Redémarrer proprement docker compose up -d
- Back-ups : plan regelmatige PostgreSQL-dumps en back-ups van het volume
storage/(audiobestanden, exports), bij voorkeur extern. - Logrotatie : beheerd door Docker (
json-file, 10 MB × 3 bestanden per dienst). - Patches : beveiligingsupdates worden geleverd door AMBASSADIA SARL en via dezelfde procedure toegepast.
9. Monitoring
- Containerstatus :
docker compose psen ingebouwde healthchecks. - Applicatielogboeken :
docker compose logs -f app(Laravel); gestructureerde logboeken instorage/logs. - Wachtrijen : monitoring van workers queue, queue-ai, queue-media via Redis.
- GPU :
nvidia-smi -l 5voor de belasting en VRAM van de transcriptieserver. - Meetgegevens : op verzoek export naar uw bestaande monitoring (Prometheus/Grafana enz.).
10. Verantwoordelijkheden — klant en Transcribia
Indicatieve verdeling van beheerverantwoordelijkheden bij on-premise-implementatie:
Bij de klant (IT-afdeling en teams)
- Hardware-infrastructuur: server, GPU, opslag en netwerk
- Besturingssysteem en Docker-installatie
- Netwerk, firewall, TLS-afhandeling en certificaten
- Back-ups, herstelplan en bedrijfscontinuïteit
- Updates van besturingssysteem en systeemonderdelen
- Toegangsbeheer, SSO en beheerdersaccounts
- Eerstelijnsmonitoring en escalatie
Bij Transcribia (AMBASSADIA SARL)
- Applicatielevering: Docker-images en broncode
- Implementatie- en beheerdocumentatie
- Ondersteuning bij installatie en eerste ingebruikname
- Begeleide versie-upgrades en migraties
- Beveiligingspatches en productverbeteringen
- Configuratie van AI-motoren (WhisperX, pyannote, LLM)
- Technische ondersteuning en incidentdiagnose
De precieze rolverdeling en SLA's worden vastgelegd in de ondersteuningsovereenkomst en on-premiseverwerkersovereenkomst. Deze handleiding vervangt die contractdocumenten niet.
Uw implementatie dimensioneren
Exacte vereisten hangen af van uw volume en beperkingen. Vul de on-premisevragenlijst in voor capaciteitsadvies en een passende offerte.
De on-premisevragenlijst invullen