Elke Docker

Deze template stelt u in staat om zowel GPU-versnelde Docker containers, zoals ComfyUI, als containers zonder GPU-ondersteuning, zoals n8n, te implementeren. Deze flexibiliteit maakt een breed scala aan toepassingen mogelijk, van AI-beeldgeneratie tot geautomatiseerde workflows, allemaal binnen een enkele, beheersbare omgeving. Configureer en voer uw gewenste Docker containers moeiteloos uit, gebruikmakend van de kracht en het gemak van deze veelzijdige template.

Hoewel u er de voorkeur aan kan geven om Docker-configuraties direct te beheren, raden we aan om onze “Any Docker”-template te gebruiken. voor de eerste installatieHet configureren van Docker met GPU-ondersteuning kan complex zijn, en deze template biedt een gestroomlijnde basis voor het bouwen en implementeren van uw containers.

🚨 Belangrijke overweging voor meerdere Docker-containers!

Om een correcte werking te garanderen bij het uitvoeren van meerdere Docker containers op uw GPU server, is het essentieel om elke container een unieke naam en data directory toe te wijzen. Gebruik bijvoorbeeld, in plaats van “my_docker_container”, een naam als “my_comfyui_container” en stel de data directory in op een uniek pad zoals /home/trooperai/docker_comfyui_dataDeze eenvoudige stap zorgt ervoor dat er meerdere Docker-containers zonder conflicten kunnen worden uitgevoerd.


Voorbeeld 1: vLLM OpenAI Compatibele LLM Server via HF

Dit voorbeeld legt uit stap voor stap hoe een uit te voeren vLLM OpenAI-compatibele API met behulp van Trooper.AI any-docker template.
Het is geschreven om begrijpelijk te zijn, zelfs met minimale kennis van Docker of AI.

Deze setup gebruikt Qwen/Qwen3-4B, wat ondersteund en uitvoerbaar op alle Trooper.AI GPU servers.

Wat deze setup doet

  • Start een vLLM-server in Docker
  • Laadt het model Qwen/Qwen3-4B van Hugging Face
  • Stelt bloot aan OpenAI-compatibele HTTP API
  • Werkt op moderne NVIDIA-stuurprogramma's (CUDA 13 / 580+)

Waarom deze configuratie nodig is

Op nieuwere NVIDIA-stuurprogramma's kunnen oudere vLLM Docker-images crashen met CUDA-fouten tijdens het opstarten.
Om dit te voorkomen, gebruikt de any-docker template:

  • Gebruikt de vLLM nachtelijke image
  • Dwingt Docker om de host NVIDIA-stuurprogramma's

U hoeft deze logica niet aan te passen — gebruik gewoon de configuratie hieronder.

Sjabloonvariabelen

Zie hier een screenshot over hoe te configureren en hieronder de volledige tekst om te kopiëren en te plakken.

Config vLLM Any Docker 1/2
Config vLLM Any Docker 1/2

Config vLLM Any Docker 2/2
Config vLLM Any Docker 2/2

Variabele Waarde Wat het betekent
app_args --model Qwen/Qwen3-4B Definieert welk model vLLM moet laden.
container_name my_vllm_api Naam van de Docker container.
docker_reprotag vllm/vllm-openai:nightly vLLM-image met fixes voor moderne NVIDIA-drivers.
docker_port 8000 Interne poort gebruikt door vLLM.
gpus all Maakt alle GPU's beschikbaar voor Docker.
host_network YES Stelt de API direct bloot op het hostnetwerk.
keep_alive NO Normale container levenscyclus (aanbevolen).
local_data_dir /home/trooperai/.cache/huggingface Model cache-directory op de host.
docker_data_dir /root/.cache/huggingface Model cache directory in de container.
start_args -e LD_LIBRARY_PATH=/usr/local/nvidia/lib64:/usr/local/nvidia/lib:/usr/lib/x86_64-linux-gnu --ipc=host --env HF_TOKEN=… Vereiste correctie voor CUDA + gedeeld geheugen.

Belangrijke opmerking over LD_LIBRARY_PATH

Deze instelling is verplicht op CUDA 13-systemen.
Zonder deze instelling kan vLLM mogelijk niet starten door incompatibiliteit met de NVIDIA-stuurprogramma's.

Verwijder het niet.

Hoe te controleren of het werkt

Example response
Voorbeeldantwoord

Voer het volgende commando uit:

bash
curl https://XXXXXXXX.apps01.trooper.ai/v1/models

Als u dit ziet Qwen/Qwen3-4B in het antwoord, de server draait correct.

Voorbeeldgebruik met curl

bash
curl https://XXXXXXXX.apps01.trooper.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer dummy-key" \
  -d '{
    "model": "Qwen/Qwen3-4B",
    "messages": [
      { "role": "user", "content": "What is Trooper.AI?" }
    ]
  }'

Voorbeeld gebruik met Node.js

Eenvoudige aanvraag

js
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "dummy-key",
  baseURL: "https://XXXXXXXX.apps01.trooper.ai/v1",
});

const result = await client.chat.completions.create({
  model: "Qwen/Qwen3-4B",
  messages: [{ role: "user", content: "What is Trooper.AI?" }],
});

console.log(result.choices[0].message.content);

Node.js Concurrent Load Test (16 parallelle verzoeken)

Dit voorbeeld verzendt 16 gelijktijdige verzoeken naar de API en drukt een eenvoudige doorvoersamenvatting af.

js
import OpenAI from "openai";
import crypto from "crypto";

const client = new OpenAI({
  apiKey: "dummy-key",
  baseURL: "https://XXXXXXXX.apps01.trooper.ai/v1",
});

const CONCURRENCY = 16;

function randomPrompt() {
  return `Explain this random concept in one sentence: ${crypto.randomUUID()}`;
}

const startTime = Date.now();

const requests = Array.from({ length: CONCURRENCY }, () =>
  client.chat.completions.create({
    model: "Qwen/Qwen3-4B",
    messages: [{ role: "user", content: randomPrompt() }],
  })
);

const responses = await Promise.all(requests);

const endTime = Date.now();
const durationSeconds = (endTime - startTime) / 1000;

let totalTokens = 0;
for (const r of responses) {
  totalTokens += r.usage.total_tokens;
}

const tokensPerSecond = (totalTokens / durationSeconds).toFixed(2);

console.log(
  `${tokensPerSecond} token/s of total ${totalTokens} tokens in ${durationSeconds.toFixed(
    2
  )} seconds on ${CONCURRENCY} concurrent connections`
);

Deze test is nuttig voor:

  • gelijktijdigheid verifiëren
  • doorvoersnelheid schatten
  • snelle prestatie-integriteitstests

Hoe krijg ik ondersteuning voor de vLLM GPU Server?

Neem bij eventuele problemen met vLLM contact op met de support, we hebben veel ervaring met het gebruik van vLLM: Contacten

Raadpleeg onze Benchmark Sectie om uw vLLM installatie te vergelijken met onze prestatie tests, waarbij de nadruk ligt op multi-concurrentie resultaten.

Bonus over vLLM Authenticatie: Hoe een Api Key in te stellen en te gebruiken

vLLM draait een OpenAI-compatibele APImaar vereist standaard geen echte API-sleutel.

U heeft twee opties:

Optie 1: Gebruik een neppe sleutel (standaard, het gemakkelijkst)

Als authenticatie is niet afgedwongen, kunt u gebruiken elke string als de API-sleutel.

curl

bash
-H "Authorization: Bearer dummy-key"

Node.js

js
apiKey: "dummy-key"

Dit is voldoende voor de meeste interne, privé- of beveiligde netwerkimplementaties.

Optie 2: Stel een echte API-sleutel in (aanbevolen voor openbare eindpunten)

U kunt een API-sleutel afdwingen door deze in te stellen als een omgevingsvariabele bij het starten van de container.

In de any-docker template (start_args):

tekst
--env OPENAI_API_KEY=your-secret-key

vLLM vereist dan deze sleutel vereisen bij elke aanvraag.

Voorbeeld curl-verzoek:

bash
curl https://your-endpoint/v1/models \
  -H "Authorization: Bearer your-secret-key"

Voorbeeld Node.js:

js
const client = new OpenAI({
  apiKey: "your-secret-key",
  baseURL: "https://your-endpoint/v1",
});

Hoe de sleutel te roteren of te wijzigen

  • Bijwerken OPENAI_API_KEY in de template
  • Klik op “sjabloon bijwerken”
  • Oude sleutels werken onmiddellijk niet meer

Samenvatting

  • Geen sleutel nodig → gebruik dummy-key
  • Openbaar eindpunt → instellen OPENAI_API_KEY
  • De sleutel is nooit automatisch gegenereerd; je definieert het

Dit houdt authenticatie eenvoudig en expliciet.


Voorbeeld 2: Qdrant uitvoeren op een GPU-server

Qdrant is een hoogprestatie vector database die similarity search, semantische zoekopdrachten en embeddings op schaal ondersteunt.
Wanneer Qdrant wordt ingezet op een GPU-gestuurde Trooper.AI server, kan deze miljoenen vectoren extreem snel indexeren en doorzoeken – perfect voor RAG-systemen, LLM-geheugen, personalisatie-engines en aanbevelingssystemen.

De volgende handleiding laat zien hoe Qdrant via Docker uit te voeren, hoe het eruit ziet in het dashboard en hoe je het correct kunt bevragen Node.js.

De Qdrant Docker Container uitvoeren

Je kunt eenvoudig de officiële qdrant/qdrant Docker container met de instellingen hieronder.
Deze screenshots tonen een typische configuratie die gebruikt wordt op Trooper.AI GPU servers, inclusief:

  • Blootgestelde REST API-poort
  • Dashboardtoegang
  • Gegevenspersistentie
  • Optionele GPU-versnelling (indien ingeschakeld in uw omgeving)

qdrant config settings for docker 1/2
Qdrant configuratie-instellingen voor Docker 1/2

qdrant config settings for docker 2/2
qdrant configuratie-instellingen voor docker 2/2

Zodra het is gestart, heeft u direct toegang tot zowel de Qdrant Dashboard en de REST API.

Qdrant Dashboard Voorbeeld

Het dashboard stelt u in staat om collecties, vectoren, payloads en indexen te inspecteren.
Een typische dashboard-instelling ziet er als volgt uit:

Quadrant dashboard
Qdrant dashboard

Vanaf hier kunt u:

  • Collecties maken
  • Vectoren toevoegen
  • Voer voorbeeldzoekopdrachten uit
  • Inspecteer metadata
  • Prestaties monitoren

Qdrant bevragen vanuit Node.js

Hieronder vindt u werkend en gecorrigeerd Node.js voorbeeld met de Qdrant REST API.

Belangrijke correcties ten opzichte van het originele voorbeeld:

  • Qdrant vereist het aanroepen van een endpoint zoals:
    /collections/<collection_name>/points/search
  • vector moet een matrix, niet (a, b, c)
  • Moderne Node.js heeft native fetch, dus geen behoefte aan node-fetch

NODEJS VOORBEELD

javascript
// Qdrant Vector Search Example – fully compatible with Qdrant 1.x and 2.x

async function queryQdrant() {
  // Replace "my_collection" with your actual collection name
  const url = 'https://AUTOMATIC-SECURE-URL.trooper.ai/collections/my_collection/points/search';

  const payload = {
    vector: [0.1, 0.2, 0.3, 0.4],  // Must be an array
    limit: 5
  };

  try {
    const response = await fetch(url, {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify(payload)
    });

    if (!response.ok) {
      throw new Error(`Qdrant request failed with status: ${response.status}`);
    }

    const data = await response.json();
    console.log('Qdrant Response:', data);
    return data;

  } catch (error) {
    console.error('Error querying Qdrant:', error);
    return null;
  }
}

queryQdrant();

Geldige Qdrant Zoek Payload

Qdrant verwacht een JSON body zoals dit:

json
{
  "vector": [0.1, 0.2, 0.3, 0.4],
  "limit": 5
}

Waar:

  • vector → je embedding
  • limiet → maximaal aantal geretourneerde resultaten

U kunt ook geavanceerde filters toevoegen indien nodig:

json
{
  "vector": [...],
  "limit": 5,
  "filter": {
    "must": [
      { "key": "category", "match": { "value": "news" } }
    ]
  }
}

Opmerkingen voor Trooper.AI Gebruikers

  • Vervang AUTOMATIC-SECURE-URL.trooper.ai met uw toegewezen beveiligde eindpunt
  • Zorg ervoor dat uw collectie bestaat voordat u de query uitvoert

Voorbeeld: N8N uitvoeren met Any Docker

In dit voorbeeld configureren we Any Docker met uw configuratie voor N8N en persistente dataopslag, zodat herstarts mogelijk zijn met intacte data. Deze configuratie omvat geen webhooks. Als u webhooks nodig heeft, ga dan naar de speciale vooraf geconfigureerde template: n8n

Deze handleiding is uitsluitend bedoeld ter verduidelijking. U kunt elke Docker-container starten die u wilt.

Bekijk de screenshots van de configuratie hieronder:

N8N any docker setup 1/4
N8N elke docker setup 1/4

N8N any docker setup 2/4
N8N elke docker setup 2/4

N8N any docker setup 3/4
N8N elke docker setup 3/4

N8N any docker setup 4/4 - result
N8N elke docker setup 4/4 - resultaat

Het Docker Commando ‘Under The Hood’

Deze template automatiseert de volledige setup van een GPU-geactiveerde Docker container, inclusief de installatie van alle benodigde Ubuntu pakketten en afhankelijkheden voor NVIDIA GPU ondersteuning. Dit vereenvoudigt het proces, met name voor gebruikers die gewend zijn aan Docker deployments voor webservers, welke vaak een complexere configuratie vereisen.

Het volgende docker run De command wordt automatisch gegenereerd door de template om uw gekozen GPU-container te lanceren. Het omvat alle vereiste instellingen voor optimale prestaties en compatibiliteit met uw Trooper.AI server.

Deze opdracht dient als een illustratief voorbeeld om ontwikkelaars inzicht te geven in de onderliggende processen:

bash
docker run -d \
  --name ${CONTAINER_NAME} \
  --restart always \
  --gpus ${GPUS} \
  --add-host=host.docker.internal:host-gateway \
  -p ${PUBLIC_PORT}:${DOCKER_PORT} \
  -v ${LOCAL_DATA_DIR}:/home/node/.n8n \
  -e N8N_SECURE_COOKIE=false \
  -e N8N_RUNNERS_ENABLED=true \
  -e N8N_HOST=${N8N_HOST} \
  -e WEBHOOK_URL=${WEBHOOK_URL} \
  docker.n8n.io/n8nio/n8n \
  tail -f /dev/null

Gebruik dit commando niet handmatig als u geen Docker-expert bent! Vertrouw gewoon op de template.

Wat maakt N8N mogelijk op de private GPU-server?

n8n ontgrendelt het potentieel om complexe workflows rechtstreeks op uw Trooper.AI GPU-server uit te voeren. Dit betekent dat u taken kunt automatiseren met betrekking tot beeld-/videoverwerking, data-analyse, LLM-interacties en meer – waarbij u gebruikmaakt van de kracht van de GPU voor versnelde prestaties.

Concreet kunt u workflows uitvoeren voor:

  • Afbeelding/Video Manipulatie: Automatiseer het wijzigen van de grootte, watermerken, objectdetectie en andere visuele taken.
  • Gegevensverwerking: Data extraheren, transformeren en laden vanuit verschillende bronnen.
  • LLM-integratie: Maak verbinding met en communiceer met Large Language Models voor taken zoals tekstgeneratie, vertaling en sentimentanalyse.
  • Webautomatisering: Automatiseer taken over verschillende websites en API's.
  • Aangepaste workflows: Bouw en implementeer elk geautomatiseerd proces afgestemd op uw behoeften.

Houd er rekening mee dat u AI-tools zoals ComfyUI en Ollama moet installeren om ze te integreren in uw N8N-workflows op de server lokaal. U heeft ook voldoende GPU VRAM nodig om alle modellen van stroom te voorzien. Geef die GPU's niet aan de docker die N8N uitvoert.

Wat is Docker in relatie tot een GPU-server?

Op een Trooper.AI GPU-server stelt Docker u in staat om applicaties met hun afhankelijkheden te verpakken in gestandaardiseerde eenheden die containers worden genoemd. Dit is bijzonder krachtig voor GPU-versnelde workloads, omdat het consistentie over verschillende omgevingen waarborgt en de implementatie vereenvoudigt. In plaats van afhankelijkheden rechtstreeks op het hostbesturingssysteem te installeren, bevatten Docker-containers alles wat een applicatie nodig heeft om te draaien – inclusief bibliotheken, systeemtools, runtime en instellingen.

Voor GPU-toepassingen maakt Docker het mogelijk om de GPU-bronnen van de server efficiënt te benutten. Door gebruik te maken van de NVIDIA Container Toolkit, kunnen containers toegang krijgen tot de GPU's van de host, waardoor versnelde berekeningen mogelijk worden voor taken zoals machine learning, deep learning inference en data-analyse. Deze isolatie verbetert ook de beveiliging en het resourcebeheer, waardoor meerdere applicaties de GPU kunnen delen zonder elkaar te verstoren. Het implementeren en schalen van GPU-gebaseerde applicaties wordt aanzienlijk eenvoudiger met Docker op een Trooper.AI server.

Meer Docker om te draaien

U kunt eenvoudig meerdere Docker containers uitvoeren en hulp vragen via: Contacten