Naar de inhoud
🖥️ On-premise-implementatie

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 3480 aangeboden 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-smi werkend, 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 pull of docker pull online.

# 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 ps en ingebouwde healthchecks.
  • Applicatielogboeken : docker compose logs -f app (Laravel); gestructureerde logboeken in storage/logs.
  • Wachtrijen : monitoring van workers queue, queue-ai, queue-media via Redis.
  • GPU : nvidia-smi -l 5 voor 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