From 3133c5bb4401afdf048efd0fded194d962041d32 Mon Sep 17 00:00:00 2001 From: Nico Date: Mon, 30 Mar 2026 22:24:13 +0200 Subject: [PATCH] Add dev profile + deploy script --- docker-compose.yml | 13 +++++++++ k8s/loop42-web.yaml | 69 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 k8s/loop42-web.yaml diff --git a/docker-compose.yml b/docker-compose.yml index c7f78d7..d22093e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,18 @@ services: + # Production-equivalent: nginx serving Vite build web: build: . ports: - "8080:80" + + # Dev: Vite HMR with live reload + dev: + image: node:20-alpine + working_dir: /app + volumes: + - .:/app + - /app/node_modules + ports: + - "5173:5173" + command: sh -c "npm install && npm run dev -- --host" + profiles: ["dev"] diff --git a/k8s/loop42-web.yaml b/k8s/loop42-web.yaml new file mode 100644 index 0000000..90de52b --- /dev/null +++ b/k8s/loop42-web.yaml @@ -0,0 +1,69 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: loop42-web + namespace: default +spec: + replicas: 1 + selector: + matchLabels: + app: loop42-web + template: + metadata: + labels: + app: loop42-web + spec: + containers: + - name: loop42-web + image: docker.io/library/loop42-web:latest + imagePullPolicy: Never + ports: + - containerPort: 80 +--- +apiVersion: v1 +kind: Service +metadata: + name: loop42-web + namespace: default +spec: + selector: + app: loop42-web + ports: + - port: 80 + targetPort: 80 +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: loop42-web + namespace: default + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod +spec: + ingressClassName: traefik + tls: + - hosts: + - loop42.de + - www.loop42.de + secretName: loop42-de-tls + rules: + - host: loop42.de + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: loop42-web + port: + number: 80 + - host: www.loop42.de + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: loop42-web + port: + number: 80