6b10a7da427003e9cbd9f98d625949eb33078841
Some checks failed
Build and Push to Harbor / build-and-push (push) Has been cancelled
Add CORS headers to static assets location block. In nginx, add_header in a location block replaces all parent add_header directives, so the CORS headers need to be repeated in the location block that handles .wasm and .js files. This fixes the issue where threaded WASM files couldn't load because they didn't have the required Cross-Origin headers. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Neon Vortex - Docker & Kubernetes Deployment
This repository contains the Neon Vortex web application with Docker and Kubernetes deployment configurations.
Directory Structure
.
├── htlm/ # Application files
│ ├── Neon Vortex.html # Main application
│ ├── Neon Vortex.js # JavaScript bundle
│ ├── Neon Vortex.wasm # WebAssembly binary
│ ├── Dockerfile # Multi-arch Docker configuration
│ ├── nginx.conf # Nginx server configuration
│ └── ... # Other assets
├── neon-vortex-chart/ # Helm chart
│ ├── Chart.yaml
│ ├── values.yaml
│ └── templates/
└── build-and-push.sh # Build script for multi-arch images
Prerequisites
- Docker with BuildKit enabled
- Access to Harbor registry at
images.caffeinetux.com - kubectl configured for your k3s cluster
- Helm 3.x installed
Building and Pushing the Docker Image
The application supports multiple architectures: linux/amd64, linux/arm64, and linux/arm/v7.
Build and Push
# Build and push with 'latest' tag
./build-and-push.sh
# Build and push with custom tag
./build-and-push.sh v1.0.0
Manual Build (without script)
# Create buildx builder (first time only)
docker buildx create --name multiarch-builder --use
docker buildx inspect --bootstrap
# Build and push
cd htlm
docker buildx build \
--platform linux/amd64,linux/arm64,linux/arm/v7 \
--tag images.caffeinetux.com/apps/neon-vortex:latest \
--push \
.
Deploying to Kubernetes
Quick Deploy
# Install with default values
helm install neon-vortex ./neon-vortex-chart
# Install in specific namespace
helm install neon-vortex ./neon-vortex-chart -n neon-vortex --create-namespace
Custom Configuration
Create a custom-values.yaml file:
# Example custom values
replicaCount: 3
image:
tag: "v1.0.0"
service:
type: NodePort
nodePort: 30080
ingress:
enabled: true
className: "nginx"
hosts:
- host: neon-vortex.example.com
paths:
- path: /
pathType: Prefix
tls:
- secretName: neon-vortex-tls
hosts:
- neon-vortex.example.com
resources:
limits:
cpu: 500m
memory: 256Mi
requests:
cpu: 200m
memory: 128Mi
Deploy with custom values:
helm install neon-vortex ./neon-vortex-chart -f custom-values.yaml
Harbor Authentication
If your Harbor registry requires authentication, create a secret:
kubectl create secret docker-registry harbor-registry-secret \
--docker-server=images.caffeinetux.com \
--docker-username=YOUR_USERNAME \
--docker-password=YOUR_PASSWORD \
--docker-email=YOUR_EMAIL
Then update values.yaml:
imagePullSecrets:
- name: harbor-registry-secret
Accessing the Application
ClusterIP (default)
# Port forward to local machine
kubectl port-forward svc/neon-vortex 8080:80
# Access at http://localhost:8080
NodePort
# Get the NodePort
kubectl get svc neon-vortex
# Access at http://<NODE_IP>:<NODE_PORT>
Ingress
Access at the configured hostname (e.g., http://neon-vortex.example.com)
Helm Chart Configuration
Key Values
| Parameter | Description | Default |
|---|---|---|
replicaCount |
Number of replicas | 2 |
image.registry |
Harbor registry URL | images.caffeinetux.com |
image.repository |
Image repository path | apps/neon-vortex |
image.tag |
Image tag | latest |
service.type |
Service type | ClusterIP |
service.port |
Service port | 80 |
service.targetPort |
Container port | 8080 |
ingress.enabled |
Enable ingress | false |
autoscaling.enabled |
Enable HPA | false |
resources.limits.cpu |
CPU limit | 200m |
resources.limits.memory |
Memory limit | 128Mi |
Security Features
- Non-root user (nginx:101)
- Read-only root filesystem option
- Security context with dropped capabilities
- Pod security context
- Resource limits
Upgrading
# Upgrade to new version
helm upgrade neon-vortex ./neon-vortex-chart
# Upgrade with new image tag
helm upgrade neon-vortex ./neon-vortex-chart --set image.tag=v1.0.1
Uninstalling
# Uninstall the release
helm uninstall neon-vortex
# Uninstall from specific namespace
helm uninstall neon-vortex -n neon-vortex
Troubleshooting
Check pod status
kubectl get pods -l app.kubernetes.io/name=neon-vortex
View logs
kubectl logs -l app.kubernetes.io/name=neon-vortex
Describe pod
kubectl describe pod -l app.kubernetes.io/name=neon-vortex
Test connectivity
kubectl run -it --rm debug --image=alpine --restart=Never -- sh
# Inside the pod:
wget -O- http://neon-vortex
Application Features
- Static web application served via nginx
- WebAssembly support
- Service worker for offline capability
- Gzip compression
- Proper MIME types for all assets
- Security headers (X-Frame-Options, CSP, etc.)
- Health checks
License
Configure according to your application's license.
Description
Languages
PLSQL
90.2%
JavaScript
5.6%
HTML
2.3%
Dockerfile
0.8%
Smarty
0.6%
Other
0.5%