ce0f57c738c42143a4ac2d24d5e98378f852750d
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%