Migrate the Nuxt 3 + Vue 3 SSR frontend application for basicstack.org to our self-hosted Forgejo instance. This repository will serve as the source for all future development and deployment of the basicstack.org website. The application includes: - Nuxt 3 + Vue 3 SSR setup - Directus CMS integration - Tailwind CSS styling - Kubernetes deployment manifests - Docker containerization Co-Authored-By: Paperclip <noreply@paperclip.ing> |
||
|---|---|---|
| .. | ||
| 00-namespace.yaml | ||
| 10-configmap.yaml | ||
| 20-deployment.yaml | ||
| 30-ingress.yaml | ||
| README.md | ||
BasicStack Web — Kubernetes Deployment
Prerequisites
- Docker + buildx
- kubectl with access to the basicstack cluster
- Container registry (e.g., GitHub Container Registry, Docker Hub)
Build & Push Image
export REGISTRY=ghcr.io/basicstack # or your registry
export TAG=$(git rev-parse --short HEAD)
# Build multi-arch or single-arch
docker build -t $REGISTRY/basicstack-web:$TAG -f ../Dockerfile ..
# Push
docker push $REGISTRY/basicstack-web:$TAG
Update Deployment Image
Edit 20-deployment.yaml and set the image:
image: ghcr.io/basicstack/basicstack-web:abc1234
Or use kubectl set image:
kubectl set image deployment/basicstack-web basicstack-web=$REGISTRY/basicstack-web:$TAG \
-n basicstack-web
Apply Manifests
# Initial deploy
kubectl apply -f k8s/00-namespace.yaml
kubectl apply -f k8s/10-configmap.yaml
kubectl apply -f k8s/20-deployment.yaml
kubectl apply -f k8s/30-ingress.yaml
# Wait for rollout
kubectl rollout status deployment/basicstack-web -n basicstack-web
Verify
# Check pods
kubectl get pods -n basicstack-web
# Check ingress
kubectl get ingress -n basicstack-web
# Test endpoint
curl -I https://basicstack.org
TLS
cert-manager automatically provisions a TLS certificate for basicstack.org and www.basicstack.org using the letsencrypt-prod ClusterIssuer. The certificate is stored in the basicstack-org-tls secret.
DNS for basicstack.org must point to the cluster's ingress IP before cert-manager can complete the ACME challenge.
Environment Variables
| Variable | Default | Description |
|---|---|---|
DIRECTUS_URL |
https://directus.basicstack.de |
Directus CMS endpoint |
SITE_URL |
https://basicstack.org |
Public site URL (for sitemap) |
NODE_ENV |
production |
Node environment |
Change these in 10-configmap.yaml.