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¶
- Docker (v20.10+)
- Docker Compose (v2.0+)
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 |
|---|---|
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, brugadmin@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.