š Kubernetes and GitOps management platform with integrated monitoring, PASETO authentication, and single binary deployment.
A comprehensive web-based platform for managing Kubernetes clusters and GitOps workflows. Provides real-time cluster monitoring, automated deployments, and integrated observability with a single binary deployment model.
denshimon/
āāā backend/ # Go REST API server
ā āāā cmd/server/ # Main application entry
ā āāā internal/ # Business logic
ā ā āāā api/ # HTTP handlers
ā ā āāā auth/ # Authentication service
ā ā āāā database/ # SQLite operations
ā ā āāā gitops/ # GitOps management
ā ā āāā k8s/ # Kubernetes client
ā ā āāā metrics/ # Monitoring service
ā āāā pkg/config/ # Configuration
āāā frontend/ # React SPA
ā āāā src/
ā ā āāā components/ # UI components
ā ā āāā stores/ # State management
ā ā āāā types/ # TypeScript definitions
ā āāā dist/ # Build output (embedded in Go)
āāā docker-compose.yml # Development setup
āāā Dockerfile # Production image
āāā build.sh # Local build script
# Pod Operations
GET /api/k8s/pods # List all pods (virtualized tables)
DELETE /api/k8s/pods/{name} # Delete specific pod
POST /api/k8s/pods/{name}/restart # Restart pod
GET /api/k8s/pods/{name}/logs # Stream logs
# Deployment Control
GET /api/k8s/deployments # List deployments
PATCH /api/k8s/deployments/{name}/scale # Scale replicas
# Cluster Monitoring
GET /api/k8s/nodes # List nodes with metrics
GET /api/k8s/health # Cluster health check
GET /ws # WebSocket for real-time updates
# Repository Management
GET /api/gitea/repositories # List repositories
GET /api/gitea/repositories/{owner}/{repo} # Get repository details
GET /api/gitea/repositories/{owner}/{repo}/commits # List commits
GET /api/gitea/repositories/{owner}/{repo}/branches # List branches
GET /api/gitea/repositories/{owner}/{repo}/pulls # List pull requests
GET /api/gitea/repositories/{owner}/{repo}/releases # List releases
GET /api/gitea/repositories/{owner}/{repo}/actions/runs # List workflow runs
# Deployment Operations
POST /api/gitea/repositories/{owner}/{repo}/deploy # Trigger deployment
POST /api/gitea/webhook # Webhook receiver (no auth)
# Resource Metrics
GET /api/metrics/cluster # Cluster-wide usage
GET /api/metrics/nodes # Per-node metrics
GET /api/metrics/pods # Pod resource usage
GET /api/metrics/history # Historical trends
# Authentication
POST /api/auth/login # Login with credentials
GET /api/auth/me # Get current user
POST /api/auth/logout # Logout
Perfect for teams using GitHub Actions ā Gitea Registry ā Kubernetes:
graph LR
A[GitHub Repo] --> B[GitHub Actions]
B --> C[Gitea Registry]
C --> D[Denshimon]
D --> E[Kubernetes Cluster]
B -.->|Build & Push| C
D -.->|Deploy & Manage| E
Workflow:
Manage dev/staging/prod environments from single interface:
Daily cluster operations and troubleshooting:
Empower developers with safe cluster access:
Centralized management of infrastructure as code:
Username: admin Password: password # Full access
Username: operator Password: password # Limited admin
Username: viewer Password: password # Read-only
# Run with Docker
docker run -d \
-p 8080:8080 \
-v denshimon-data:/app/data \
-v ~/.kube:/home/denshimon/.kube:ro \
--name denshimon \
denshimon:latest
# Deploy with persistent volume
kubectl apply -f k8s-deployment.yaml
# Access via port-forward
kubectl port-forward svc/denshimon 8080:80
# Clone repository
git clone https://github.com/archellir/denshimon.git
cd denshimon
# Install dependencies
cd backend && go mod tidy
cd ../frontend && pnpm install
# Development mode (2 terminals for hot reload)
# Terminal 1: Backend API
cd backend && DATABASE_PATH=./test-app.db go run cmd/server/main.go
# Terminal 2: Frontend with hot reload
cd frontend && pnpm run dev
# Access at http://localhost:5173
# Login: admin / password
# Production build (single binary)
cd frontend && pnpm run build && cp -r dist/* ../backend/cmd/server/spa/
cd ../backend && DATABASE_PATH=./test-app.db go run cmd/server/main.go
# Core Configuration
PORT=8080 # Server port
DATABASE_PATH=/app/data/denshimon.db # SQLite database
PASETO_SECRET_KEY=your-32-byte-key # Auth signing key
TOKEN_DURATION=24h # Token expiration
LOG_LEVEL=info # Logging level
ENVIRONMENT=production # Runtime environment
# Gitea Integration (Optional)
GITEA_URL=https://gitea.example.com # Gitea server URL
GITEA_TOKEN=your-api-token # Gitea API token
GITEA_WEBHOOK_SECRET=webhook-secret # Optional webhook verification
# Mount kubeconfig for cluster access
-v ~/.kube:/home/denshimon/.kube:ro
# Or use in-cluster service account
# Automatically detected when running in K8s pod
git checkout -b feature/amazing-feature
)git commit -m 'Add amazing feature'
)git push origin feature/amazing-feature
)This project is licensed under the MIT License - see the LICENSE file for details.
Made with ā¤ļø for the Kubernetes community
A modern, secure, and intuitive way to manage your Kubernetes infrastructure with GitOps workflows.