Files
ahp dc1b9e9cc0 feat(deploy): add Helm chart for k3s and production Kubernetes
Include values profiles, secrets handling, TLS hooks, HPA/PDB, and in-cluster data services.
2026-10-07 19:40:26 +03:30

63 lines
1.6 KiB
Markdown

# Pargar deploy
Full deployment guide and production checklist: **[`docs/deployment.md`](../docs/deployment.md)**
Security & secrets: [`docs/security.md`](../docs/security.md) · Ops / backup: [`docs/operations.md`](../docs/operations.md)
Edge: **Traefik v3.7** (Compose needs Traefik ≥3.6.1 on Docker Engine 29+).
## Layout
```text
deploy/
compose/
compose.yaml # shared app + data + Traefik labels
compose.dev.yaml # laptop TLS default, DB ports on 127.0.0.1
compose.prod.yaml # Let's Encrypt, no host DB ports
traefik/dynamic/ # middlewares
helm/pargar/ # chart + values-k3s / values-prod
scripts/
compose-dev.sh compose-prod.sh k3s-load-images.sh helm-k3s.sh backup.sh
```
## Compose — development
```bash
cp .env.example .env
./scripts/compose-dev.sh up -d --build
```
- App: https://localhost
- Traefik dashboard: http://127.0.0.1:8088
## Compose — production
```bash
cp .env.prod.example .env.prod
./scripts/compose-prod.sh up -d --build
```
## k3s + Helm
```bash
./scripts/k3s-load-images.sh
./scripts/helm-k3s.sh
curl -k https://pargar.local/api/health
```
```bash
kubectl -n pargar get secret pargar-app -o jsonpath='{.data.admin-password}' | base64 -d; echo
```
Values: `values.yaml` · `values-k3s.yaml` · `values-prod.yaml`
Lint: `helm lint ./deploy/helm/pargar -f ./deploy/helm/pargar/values-k3s.yaml`
## Routing
| Path | Service |
|------|---------|
| `/api/*`, `/media/*` | backend |
| `/api/certificates/*`, `/c/*` | backend + noindex |
| else | frontend |
WS: `/api/ws` via Traefik.