From eec229c997b934b95435fcd66f63a7ee3af84fc8 Mon Sep 17 00:00:00 2001 From: Oliver Braun Date: Thu, 23 Oct 2025 20:35:34 +0200 Subject: [PATCH] chore: devcontainer --- .devcontainer/README.md | 66 +++++++++++++++++++++++++++++++++ .devcontainer/devcontainer.json | 66 +++++++++++++++++++++++++++++++++ 2 files changed, 132 insertions(+) create mode 100644 .devcontainer/README.md create mode 100644 .devcontainer/devcontainer.json diff --git a/.devcontainer/README.md b/.devcontainer/README.md new file mode 100644 index 0000000..fee94f3 --- /dev/null +++ b/.devcontainer/README.md @@ -0,0 +1,66 @@ +# DevContainer Setup für Peak Client + +Dieser DevContainer bietet eine vollständige Entwicklungsumgebung für das SvelteKit-Projekt. + +## Features + +- **Node.js**: LTS Version mit allen erforderlichen Build-Tools +- **VS Code Extensions**: + - Svelte Language Support + - ESLint & Prettier + - Tailwind CSS IntelliSense + - GraphQL Support + - Playwright Test Runner + - Vitest Explorer + +- **Git Integration**: + - SSH-Keys vom Host gemountet (read-only) + - Git-Konfiguration vom Host gemountet (read-only) + +- **Server-Verbindung**: + - GRAPHQL_SERVER und PDF_SERVER nutzen `host.docker.internal:50051` + - Zugriff auf Services, die auf dem Host-Port 50051 laufen + +## Verwendung + +1. Öffnen Sie VS Code +2. Installieren Sie die Extension "Dev Containers" (ms-vscode-remote.remote-containers) +3. Öffnen Sie die Command Palette (Cmd+Shift+P) +4. Wählen Sie "Dev Containers: Reopen in Container" + +## Verfügbare Ports + +- **5173**: SvelteKit Development Server (automatische Benachrichtigung) +- **4173**: SvelteKit Preview Server + +## Umgebungsvariablen + +Die folgenden Umgebungsvariablen werden automatisch im Container gesetzt: + +- `GRAPHQL_SERVER=http://host.docker.internal:50051/query` +- `PDF_SERVER=http://host.docker.internal:50051/pdfs` + +Andere Umgebungsvariablen sollten in der `.env` Datei im Projekt-Root definiert werden. + +## Post-Create Command + +Nach dem Erstellen des Containers werden automatisch ausgeführt: + +- `npm install` - Installation aller Dependencies +- `npx playwright install --with-deps` - Installation von Playwright und Browser-Dependencies + +## Entwicklungsbefehle + +Nach dem Start des DevContainers können Sie folgende Befehle nutzen: + +```bash +npm run dev # Startet den Dev-Server +npm run build # Baut das Projekt +npm run preview # Startet den Preview-Server +npm run check # TypeScript & Svelte Check +npm run lint # ESLint & Prettier Check +npm run format # Code formatieren +npm run test # Unit & E2E Tests +npm run test:unit # Nur Unit Tests +npm run test:e2e # Nur E2E Tests +``` diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..ebbde32 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,66 @@ +{ + "name": "plexams.go", + "image": "mcr.microsoft.com/devcontainers/typescript-node:1-22-bookworm", + "features": { + "ghcr.io/devcontainers/features/git:1": {}, + "ghcr.io/devcontainers/features/node:1": { + "nodeGypDependencies": true, + "version": "lts" + } + }, + "customizations": { + "vscode": { + "extensions": [ + "svelte.svelte-vscode", + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode", + "bradlc.vscode-tailwindcss", + "vitest.explorer", + "GraphQL.vscode-graphql", + "GraphQL.vscode-graphql-syntax", + "pflannery.vscode-versionlens", + "mhutchie.git-graph" + ], + "settings": { + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "prettier.documentSelectors": [ + "**/*.svelte" + ], + "svelte.enable-ts-plugin": true, + "[svelte]": { + "editor.defaultFormatter": "svelte.svelte-vscode" + }, + "typescript.tsdk": "node_modules/typescript/lib", + "eslint.validate": [ + "javascript", + "typescript", + "svelte" + ] + } + } + }, + "mounts": [ + "source=${localEnv:HOME}/.ssh,target=/home/node/.ssh,type=bind,readonly", + "source=${localEnv:HOME}/.gitconfig,target=/home/node/.gitconfig,type=bind,readonly" + ], + "forwardPorts": [ + 5173, + 4173 + ], + "portsAttributes": { + "5173": { + "label": "SvelteKit Dev Server", + "onAutoForward": "notify" + }, + "4173": { + "label": "SvelteKit Preview", + "onAutoForward": "silent" + } + }, + "postCreateCommand": "bash -c 'source /usr/local/share/nvm/nvm.sh && npm install'", + "remoteUser": "node", + "runArgs": [ + "--network=host" + ] +} \ No newline at end of file