Gå til indholdet

Installation og opsætning

Denne guide leder dig gennem installation af Turbo EA med Docker, konfiguration af miljøet, indlæsning af demodata og start af valgfrie tjenester som AI-forslag og MCP-serveren.

Forudsætninger

Cirka 2 GB ledig diskplads, et par minutters båndbredde til det første billede-pull og portene 8920 (HTTP) samt valgfrit 9443 (HTTPS) fri på værten.

Trin 1: Hent konfigurationen

Du har brug for docker-compose.yml og en konfigureret .env-fil i en arbejdsmappe. Den nemmeste måde er at klone repositoriet:

git clone https://github.com/vincentmakes/turbo-ea.git
cd turbo-ea
cp .env.example .env

Åbn .env og angiv de to påkrævede værdier:

# PostgreSQL credentials (used by the embedded database container).
# Choose a strong password — it persists in the bundled volume.
POSTGRES_PASSWORD=choose-a-strong-password

# JWT signing key. Generate one with:
#   python3 -c "import secrets; print(secrets.token_urlsafe(64))"
SECRET_KEY=your-generated-secret

Alt andet i .env.example har fornuftige standardværdier.

Note

Backenden nægter at starte med eksemplets standard-SECRET_KEY uden for udvikling. Generér en rigtig en, før du går videre.

Trin 2: Pull og start

Den medfølgende stak (Postgres + backend + frontend + edge nginx) kører fra forudbyggede multi-arch billeder på GHCR — ingen lokal build kræves:

docker compose pull
docker compose up -d

Åbn http://localhost:8920 og registrér den første bruger. Den første bruger, der registrerer sig, forfremmes automatisk til Admin.

For at ændre værtsporten skal du angive HOST_PORT i .env (standard 8920). Direkte HTTPS-terminering er dækket i Trin 5.

Trin 3: Indlæs demodata (valgfrit)

Turbo EA kan starte tom (kun den indbyggede metamodel) eller med datasættet NexaTech Industries-demo, som er ideelt til evaluering, træning og udforskning af funktioner. Det indeholder produktlogoer på applikationer og IT-komponenter, tre publicerede webportaler (et applikationskatalog, en leveranceportefølje og proceshuset), et publiceret diagram, grupperede og markerede diagrammer samt et kapabilitetskort, der starter på makroniveau.

Angiv seed-flaget i .env før den første opstart:

SEED_DEMO=true

Kør derefter docker compose up -d (hvis du allerede er startet, se "Nulstil og re-seed" nedenfor).

Seed-flag

Variabel Standard Beskrivelse
SEED_DEMO false Indlæs hele NexaTech Industries-datasættet, inklusive BPM- og PPM-data
SEED_BPM false Indlæs kun BPM-demoprocesser (delmængde af SEED_DEMO)
SEED_PPM false Indlæs kun PPM-projektdata (delmængde af SEED_DEMO)
RESET_DB false Slet alle tabeller og genopret fra bunden ved opstart

SEED_DEMO=true inkluderer allerede BPM- og PPM-data — du behøver ikke angive delmængde-flagene separat.

Demodata indlæses kun én gang

Hver seeder kører én gang pr. installation og registrerer det. Sletter du demoindhold — et eksempeldiagram, en demoundersøgelse — er det permanent: det kommer ikke tilbage ved næste genstart, heller ikke selvom SEED_DEMO=true stadig er sat. Nulstil databasen for at få demodatasættet tilbage (se Nulstil og genindlæs nedenfor).

Demoadministratorkonto

Når demodata indlæses, oprettes en standardadministratorkonto:

Felt Værdi
E-mail admin@turboea.demo
Adgangskode TurboEA!2025
Rolle Admin

Warning

Demoadministratoren bruger kendte, offentlige legitimationsoplysninger. Skift adgangskoden — eller opret din egen administratorkonto og deaktivér denne — for ethvert miljø ud over lokal evaluering.

Hvad demoen indeholder

Cirka 150 kort på tværs af alle fire arkitekturlag, plus relationer, tags, kommentarer, opgaver, BPM-diagrammer, PPM-data, EA Decision Records og et Statement of Architecture Work:

  • Core EA — Organisationer, ~20 forretningskompetencer, forretningskontekster, ~15 applikationer, ~20 it-komponenter, grænseflader, dataobjekter, platforme, mål, 6 initiativer, 5 taggrupper, 60+ relationer.
  • BPM — ~30 forretningsprocesser i et 4-niveaus hierarki med BPMN 2.0-diagrammer, element-til-kort-kæder og procesvurderinger.
  • PPM — Statusrapporter, Work Breakdown Structures, ~60 opgaver, budget- og omkostningslinjer og et risikoregister på tværs af de 6 demo-initiativer.
  • EA Delivery — Architecture Decision Records og Statements of Architecture Work.

Nulstil og re-seed

For at slette databasen og starte forfra:

RESET_DB=true
SEED_DEMO=true

Genstart stakken, og fjern derefter RESET_DB=true fra .env — hvis det forbliver indstillet, nulstilles databasen ved hver genstart:

docker compose up -d
# Verify the new data is there, then edit .env to remove RESET_DB

Trin 4: Valgfrie tjenester (Compose-profiler)

Begge tilføjelser er opt-in via Docker Compose-profiler og kører sideløbende med kernestakken uden at forstyrre den.

AI-beskrivelsesforslag

Generér kortbeskrivelser med en lokal LLM (medfølgende Ollama) eller en kommerciel udbyder. Den medfølgende Ollama-container er den nemmeste vej for selv-hostede opsætninger.

Tilføj til .env:

AI_PROVIDER_URL=http://ollama:11434
AI_MODEL=gemma3:4b
AI_AUTO_CONFIGURE=true

Start med ai-profilen:

docker compose --profile ai up -d

Modellen downloades automatisk ved første opstart (et par minutter, afhængigt af din forbindelse). Se AI-funktioner for den fulde konfigurationsreference, inklusive hvordan du bruger OpenAI / Gemini / Claude / DeepSeek i stedet for den medfølgende Ollama.

MCP-server

MCP-serveren lader AI-værktøjer — Claude Desktop, Cursor, GitHub Copilot og andre — forespørge dine EA-data via Model Context Protocol med RBAC pr. bruger. Den er skrivebeskyttet.

docker compose --profile mcp up -d

Se MCP-integration for OAuth-opsætning og værktøjsdetaljer.

Begge på én gang

docker compose --profile ai --profile mcp up -d

Trin 5: Direkte HTTPS (valgfrit)

Den medfølgende edge nginx kan selv terminere TLS — nyttigt, hvis du ikke har en ekstern reverse proxy. Tilføj til .env:

TURBO_EA_TLS_ENABLED=true
TLS_CERTS_DIR=./certs
TURBO_EA_TLS_CERT_FILE=cert.pem
TURBO_EA_TLS_KEY_FILE=key.pem
HOST_PORT=80
TLS_HOST_PORT=443

Placér cert.pem og key.pem i ./certs/ (mappen monteres skrivebeskyttet i nginx-containeren). Image'et udleder server_name og det forwardede skema fra TURBO_EA_PUBLIC_URL, serverer både HTTP og HTTPS og omdirigerer HTTP til HTTPS automatisk.

For opsætninger bag en eksisterende reverse proxy (Caddy, Traefik, Cloudflare Tunnel), lad TURBO_EA_TLS_ENABLED=false stå, og lad proxyen håndtere TLS.

Netværkseksponering

Turbo EA rummer et kort over hele dit IT-landskab (applikationer, leverandører, omkostninger og risici), så kør det som en intern applikation. Det har ikke brug for indgående adgang fra internettet, og dets valgfrie udgående kald (Udvidelsesbutikken, det daglige tjek for en nyere version, en AI-udbyder) går ud via din normale udgående forbindelse.

  • Hold det væk fra det åbne internet. Udgiv det på dit private netværk eller bag en intern load balancer eller ingress i stedet for på en offentlig adresse.
  • Giv kun godkendte virksomhedsenheder adgang. Tilgå det via din VPN eller en zero trust-adgangsgateway (for eksempel Cloudflare Access foran en Cloudflare Tunnel, Microsoft Entra Private Access eller Zscaler Private Access), og kræv en administreret, kompatibel enhed i din identitetsudbyders politik for betinget adgang.
  • Behold single sign-on. Netværksbegrænsninger supplerer SSO og roller; de erstatter dem ikke.

Nogle funktioner findes netop for at nå personer uden for den grænse: et publiceret diagram, der er indlejret på et eksternt websted, en offentlig webportal og en AI-assistent, der forbinder til MCP-serveren fra sin leverandørs cloud. Hver af dem kræver en vej til Turbo EA, så slå dem bevidst til: hold dem på det interne netværk, hvor du kan, og eksponér ellers kun det, de har brug for.

De fleste cloud-eksempler i Kubernetes og cloud og alle skabeloner i Administrerede containertjenester udgiver et offentligt endpoint, så en første udrulning kan nås. Begge sider forklarer, hvordan du gør det privat før produktion.

Tillad indlejring af diagrammer (valgfrit)

Et udgivet diagram kan indlejres på et andet websted — en Confluence-side, en intranetportal — men kun hvis du navngiver det websted først. Som standard må intet eksternt websted overhovedet placere Turbo EA i en ramme.

TURBO_EA_EMBED_ALLOWED_ORIGINS=https://dinvirksomhed.atlassian.net

Adskil flere oprindelser med komma. Genstart stakken, for at ændringen træder i kraft.

Dette gælder kun siderne med udgivne diagrammer. Selve applikationen — inklusive diagrameditoren — kan under alle omstændigheder ikke indlejres, og udgivne links virker fortsat, når de åbnes direkte, også uden denne indstilling.

Fastlås en version

docker compose pull defaulter til :latest. For at fastlåse til en specifik udgivelse i produktion skal du angive TURBO_EA_TAG:

TURBO_EA_TAG=1.0.0 docker compose up -d

Udgivne versioner tagges :<full-version>, :<major>.<minor>, :<major> og :latest. Publiceringsarbejdsprocessen ekskluderer prerelease-tags (-rc.N) fra :latest og de korte :X.Y / :X-tags. Se Udgivelser for det fulde tag-træ og pre-release-kanalpolitikken.

Brug en eksisterende PostgreSQL

Hvis du allerede kører en administreret eller delt PostgreSQL-instans, så peg backenden på den og spring den medfølgende db-tjeneste over.

Kører du på Kubernetes?

Helm-chartet installerer Turbo EA på EKS, AKS, GKE eller enhver anden klynge mod netop sådan en ekstern PostgreSQL; samme side gennemgår hver cloud. Uden en klynge dækker siden Administrerede containertjenester Azure Container Apps, Cloud Run og ECS Fargate.

Opret databasen og brugeren på din eksisterende server:

CREATE USER turboea WITH PASSWORD 'your-password';
CREATE DATABASE turboea OWNER turboea;

Tilsidesæt forbindelsesvariablerne i .env:

POSTGRES_HOST=your-postgres-host
POSTGRES_PORT=5432
POSTGRES_DB=turboea
POSTGRES_USER=turboea
POSTGRES_PASSWORD=your-password

Start derefter som sædvanligt: docker compose up -d. Den medfølgende db-tjeneste er stadig defineret i docker-compose.yml; du kan enten lade den køre tomt eller stoppe den eksplicit.

Forbindelsesbudget

Backend'en kører som én enkelt proces og åbner op til DB_POOL_SIZE + DB_MAX_OVERFLOW forbindelser — 30 som standard. Den medfølgende db-tjeneste tillader 100, så standardværdierne giver aldrig problemer der. En hostet instans på et billigt abonnement begrænser ofte databasen til langt under 30, og PostgreSQL svarer så:

too many connections for database "turboea"

Kontrollér dine grænser, før du skifter:

SELECT datname, datconnlimit FROM pg_database WHERE datname = 'turboea';
SELECT rolname, rolconnlimit FROM pg_roles    WHERE rolname = 'turboea';
SHOW max_connections;

-1 i datconnlimit eller rolconnlimit betyder «ingen specifik grænse»; alt under 30 kræver enten en hævet grænse eller en mindre pool:

DB_POOL_SIZE=8
DB_MAX_OVERFLOW=2
DB_POOL_TIMEOUT=30

En mindre pool betyder færre samtidigt betjente forespørgsler, ikke tabte forespørgsler: når poolen er fuld, venter en forespørgsel op til DB_POOL_TIMEOUT sekunder på en ledig forbindelse. Efterlad et par forbindelser til backup og dine egne psql-sessioner.

Verificering af images

Fra 1.0.0 og fremefter er hvert udgivne image signeret med cosign keyless OIDC og leveres med en buildkit-genereret SPDX SBOM. Se Supply Chain for verifikationskommandoen, og hvordan du henter SBOM'en fra registreringsdatabasen.

Udvikling fra kildekode

Hvis du vil bygge stakken fra kildekode (ved at ændre backend- eller frontend-kode), så brug dev compose-overstyringen:

docker compose -f docker-compose.yml -f dev/docker-compose.dev.yml up -d --build

Eller bekvemmelighedstarget:

make up-dev

Den fulde udviklerguide — branch-navngivning, lint- og testkommandoer, pre-commit-tjek — findes i CONTRIBUTING.md.

Hurtig reference

Scenarie Kommando
Førstegangsstart (tomme data) docker compose pull && docker compose up -d
Førstegangsstart med demodata Angiv SEED_DEMO=true i .env, derefter det samme
Tilføj AI-forslag Tilføj AI-variabler, derefter docker compose --profile ai up -d
Tilføj MCP-server docker compose --profile mcp up -d
Fastlås en version TURBO_EA_TAG=1.0.0 docker compose up -d
Nulstil og re-seed RESET_DB=true + SEED_DEMO=true, genstart, fjern derefter RESET_DB
Brug ekstern Postgres Tilsidesæt POSTGRES_*-variabler i .env, derefter docker compose up -d
Byg fra kildekode make up-dev

Næste trin

  • Åbn http://localhost:8920 (eller din konfigurerede HOST_PORT) og log på. Hvis du indlæste demodata, brug admin@turboea.demo / TurboEA!2025. Ellers registrér — den første bruger forfremmes automatisk til Admin.
  • Udforsk Dashboardet for et overblik over dit EA-landskab.
  • Tilpas korttyper og felter — metamodellen er fuldt datadrevet, ingen kodeændringer nødvendige.
  • Til produktionsudrulninger skal du gennemgå Kompatibilitetspolitik og Supply Chain.