NoKube is a project that explores how to simplify application deployment on Kubernetes for developers without deep DevOps expertise.
The idea is simple: you provide your GitHub code, describe your architecture (frontend, backend, database...), and the platform automatically handles the build, deployment on a Kubernetes cluster, and monitoring.
I noticed that deploying an application on Kubernetes typically requires:
- ✗ A good understanding of Kubernetes (pods, deployments, services, ingress...)
- ✗ Manual cluster management
- ✗ Writing numerous YAML configuration files
- ✗ Setting up CI/CD pipelines
- ✗ Managing Docker registries
- ✗ Infrastructure monitoring and maintenance
I wanted to create a solution where you only need to:
- ✓ Provide a GitHub link
- ✓ Describe your application architecture
- ✓ Fill out a simple form
- ✓ Click "Deploy"
Everything else is handled automatically by the platform.
- Secure Authentication - Complete user management system with JWT
- Automatic Build - Docker images are built via GitHub Actions (no local build)
- Kubernetes Deployment - Automatic creation of K8s resources (Deployments, Services, Ingress)
- Monitoring - Track the status of deployed applications
- Automatic Routing - Each application receives a URL via Ingress Controller (wildcard DNS)
- Multi-service Architecture - Support for projects with multiple components (frontend + backend + database)
I designed NoKube with a microservices architecture to ensure modularity and scalability:
SCHEMA TO ADD
- Responsive web user interface
- Forms to define application architecture
- Deployment tracking dashboard
- Project and service management
- Single entry point for all APIs
- Intelligent routing to microservices
- Security and authentication management
- Load balancing
- User management (registration, login, logout)
- JWT authentication
- Permission and role management
- Resource access security
- Project creation and management
- Service organization per project (frontend, backend, database...)
- Complete CRUD on projects and their configurations
- Deployment history
- Build process coordination
- GitHub Actions triggering
- Automatic Dockerfile generation
- Build status tracking
- Registry image management
- Automatic deployment on Kubernetes
- Creation of K8s resources (Deployments, Services, Ingress)
- Application status monitoring
- Log and metrics management
- Automatic scaling
NoKube can be deployed on any Kubernetes cluster.
- A working Kubernetes cluster (kind, minikube, EKS, GKE, AKS, etc.)
kubectlconfigured to access your cluster- Docker installed to build images
git clone https://github.com/Amzhm/Nokube.git
cd NokubeEach microservice must be built as a Docker image:
# Auth Service
cd backend/auth-service
docker build -t nokube/auth-service:latest .
# Project Service
cd ../project-service
docker build -t nokube/project-service:latest .
# Build Service
cd ../build-service
docker build -t nokube/build-service:latest .
# Monitor Service
cd ../monitor-service
docker build -t nokube/monitor-service:latest .
# Gateway Service
cd ../gateway-service
docker build -t nokube/gateway-service:latest .
# Frontend
cd ../../frontend
docker build -t nokube/frontend:latest .Kubernetes manifests are located in the /k8s folder:
# Apply all manifests
kubectl apply -f k8s/
# Or apply service by service
kubectl apply -f k8s/auth-service/
kubectl apply -f k8s/project-service/
kubectl apply -f k8s/build-service/
kubectl apply -f k8s/monitor-service/
kubectl apply -f k8s/gateway-service/
kubectl apply -f k8s/frontend/
kubectl apply -f k8s/ingress/# Check that all pods are running
kubectl get pods
# Check services
kubectl get services
# Check ingress
kubectl get ingressConfigure the necessary environment variables in the Kubernetes manifests:
- PostgreSQL database connection
- JWT secrets for authentication
- Kubernetes cluster configuration for the Monitor Service
NoKube uses GitHub Actions to build Docker images. You need to:
-
Create a GitHub repository to store your Dockerfiles and trigger builds
-
Enable GitHub Container Registry (GHCR)
-
Configure GitHub Secrets: To create a Personal Access Token (PAT)
-
Update Kubernetes manifests
- Registration/Login → Account creation
- Create a project → Name your project
- Define architecture → Add required services (e.g., React frontend + FastAPI backend + PostgreSQL)
- Configure each service:
- GitHub code link
- Language and framework
- Listening port
- Build/execution commands
- Deploy → Platform launches build via GitHub Actions then deploys on K8s
- Access application → Automatic URL generated via Ingress (e.g.,
my-project.nokube.fr) - Monitor → Status tracking via Monitor Service
- FastAPI - Modern and high-performance Python framework
- PostgreSQL - Relational database
- JWT - Secure authentication
- GitHub Actions - Automated CI/CD
- Docker - Containerization
- Kubernetes - Container orchestration
- Ingress Controller - HTTP/HTTPS traffic management
- kind (development) - Local Kubernetes cluster
- AWS/Cloud (production) - Scalable cloud infrastructure
- Wildcard DNS - Automatic application routing
This project could be useful for:
- Developers who want to focus on code rather than infrastructure
- Students who want to deploy their projects without DevOps expertise
- Rapid prototyping to test ideas without complex configuration
- Learning microservices architecture and Kubernetes
This project implements:
- Microservices architecture with inter-service communication
- Containerization and Kubernetes orchestration
- CI/CD with GitHub Actions
- REST API with FastAPI (Python)
- JWT authentication and security
- Database management PostgreSQL
- Infrastructure as Code (Kubernetes manifests)
- Ingress Controller and HTTP/HTTPS routing management
NoKube - Personal project exploring cloud-native architectures