System Requirements
Node.js Version 20.0.0 or higher
npm Version 10 or higher (comes with Node.js)
kubectl Latest stable version (optional for demo mode)
Development Installation
For local development and testing:
Clone the repository
git clone https://github.com/corapoid/orphelix.git
cd orphelix/app
Install dependencies
This installs all required packages including Next.js, React, Material-UI, and Kubernetes client libraries.
Start development server
The server starts with Turbopack for fast hot-reload development.
Development mode includes hot-reload, detailed error messages, and source maps for debugging.
Production Installation
For production deployment:
Clone and install
git clone https://github.com/corapoid/orphelix.git
cd orphelix/app
npm install
Build the application
This creates an optimized production build in the .next directory.
Start production server
The server runs on port 3000 by default.
Environment Configuration
Create a .env.local file for production settings:
# Optional: Custom port
PORT = 3000
# Optional: GitHub OAuth (for YAML editor)
GITHUB_CLIENT_ID = your_github_oauth_app_client_id
GITHUB_CLIENT_SECRET = your_github_oauth_app_client_secret
NEXTAUTH_SECRET = your_random_secret_here
NEXTAUTH_URL = http://localhost:3000
# Optional: GitHub App (recommended over OAuth)
GITHUB_APP_ID = your_github_app_id
GITHUB_APP_PRIVATE_KEY = your_github_app_private_key
GITHUB_APP_CLIENT_ID = your_github_app_client_id
GITHUB_APP_CLIENT_SECRET = your_github_app_client_secret
# Optional: OpenAI (for AI-powered file matching)
OPENAI_API_KEY = your_openai_api_key
Docker Installation
Run Orphelix in a container:
Using Docker
# Build image
docker build -t orphelix .
# Run container
docker run -p 3000:3000 \
-v ~/.kube:/root/.kube:ro \
orphelix
Using Docker Compose
Create docker-compose.yml:
version : '3.8'
services :
orphelix :
build : .
ports :
- "3000:3000"
volumes :
- ~/.kube:/root/.kube:ro
environment :
- NODE_ENV=production
Then run:
The -v ~/.kube:/root/.kube:ro volume mount gives the container read-only access to your kubeconfig. Only use this if you understand the security implications.
Kubernetes Deployment
Deploy Orphelix to your Kubernetes cluster:
Create Deployment
apiVersion : apps/v1
kind : Deployment
metadata :
name : orphelix
namespace : kube-system
spec :
replicas : 1
selector :
matchLabels :
app : orphelix
template :
metadata :
labels :
app : orphelix
spec :
serviceAccountName : orphelix
containers :
- name : orphelix
image : orphelix:latest
ports :
- containerPort : 3000
env :
- name : NODE_ENV
value : "production"
Create Service
apiVersion : v1
kind : Service
metadata :
name : orphelix
namespace : kube-system
spec :
selector :
app : orphelix
ports :
- port : 80
targetPort : 3000
type : LoadBalancer
Create ServiceAccount & RBAC
apiVersion : v1
kind : ServiceAccount
metadata :
name : orphelix
namespace : kube-system
---
apiVersion : rbac.authorization.k8s.io/v1
kind : ClusterRole
metadata :
name : orphelix
rules :
- apiGroups : [ "" ]
resources : [ "pods" , "nodes" , "configmaps" , "secrets" , "events" , "namespaces" ]
verbs : [ "get" , "list" , "watch" ]
- apiGroups : [ "apps" ]
resources : [ "deployments" ]
verbs : [ "get" , "list" , "watch" ]
- apiGroups : [ "autoscaling" ]
resources : [ "horizontalpodautoscalers" ]
verbs : [ "get" , "list" , "watch" ]
---
apiVersion : rbac.authorization.k8s.io/v1
kind : ClusterRoleBinding
metadata :
name : orphelix
roleRef :
apiGroup : rbac.authorization.k8s.io
kind : ClusterRole
name : orphelix
subjects :
- kind : ServiceAccount
name : orphelix
namespace : kube-system
Apply all manifests:
kubectl apply -f orphelix-deployment.yaml
Verification
After installation, verify everything works:
Check the application loads
Verify demo mode
You should see the “DEMO MODE” badge in the header and sample data on the dashboard
Test cluster connection (optional)
Click “DEMO MODE” → Select a kubectl context → Click “Test Connection”
Troubleshooting
If port 3000 is occupied:
Delete node_modules and reinstall: rm -rf node_modules package-lock.json
npm install
Verify your kubeconfig: kubectl cluster-info
kubectl get nodes
Clear Next.js cache: rm -rf .next
npm run build
Next Steps