A cloud-native Internal Developer Platform (IDP) built in Golang to provide self-service APIs for platform engineering workflows.
This platform aims to simplify and standardize developer operations such as:
- Container repository provisioning
- Source code repository provisioning
- Code quality project setup
- CI/CD integrations
- Kubernetes onboarding
- Platform automation
The project follows production-grade Golang architecture and cloud-native engineering practices.
The platform is designed with the following goals:
- Production-grade API architecture
- Clean separation of layers
- RESTful API design
- Config-driven behavior
- Cloud-native compatibility
- Kubernetes readiness
- Extensible provider integrations
- Strong observability foundation
- Platform engineering best practices
- Liveness endpoint
- Readiness endpoint
- Create container repositories
- Swagger/OpenAPI documentation
- Structured logging middleware
- Error handling middleware
- Golang
- Chi Router
- Swagger / OpenAPI
- Viper Configuration
- Docker
- Kubernetes
internal-development-platform/
├── cmd/
├── configs/
├── docs/
├── internal/
│ ├── config/
│ ├── domain/
│ ├── errors/
│ ├── handler/
│ ├── middleware/
│ ├── response/
│ ├── routes/
│ └── service/
├── go.mod
├── go.sum
└── README.md
| Method | Endpoint | Description |
|---|---|---|
| GET | /health/live |
Liveness probe |
| GET | /health/ready |
Readiness probe |
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/container-repositories |
Create container repository |
Swagger UI is available at:
http://localhost:8080/swagger/index.html
Generated Swagger files are available inside:
docs/
git clone https://github.com/kupher-tools/internal-development-platform.git
cd internal-development-platformgo mod downloadgo run cmd/main.goApplication starts on:
http://localhost:8080
Install Swagger CLI:
go install github.com/swaggo/swag/cmd/swag@latestGenerate docs:
swag init -g cmd/main.goThe application uses:
- YAML configuration
- Environment variable overrides
- Typed configuration structs
Example config:
server:
port: "8080"
scm:
baseurl: "https://gitlab.example.com"The application includes request logging middleware for:
- Request path
- HTTP method
- Status code
- Request duration
- Success/failure visibility
Planned platform capabilities:
- Source repository provisioning
- SonarQube project creation
- CI/CD pipeline bootstrap
- Namespace provisioning
- GitOps integration
- RBAC automation
- OpenTelemetry integration
- Async operations API
- Multi-provider support
- Platform templates
The platform follows resource-oriented API design.
Example:
/api/v1/container-repositories
/api/v1/source-repositories
/api/v1/code-quality-projects
The APIs abstract underlying platform tools and expose platform capabilities instead of vendor-specific operations.
The platform is designed for Kubernetes-native deployments and supports:
- Liveness probes
- Readiness probes
- Environment variable configuration
- Secret-based credentials
- Stateless service design
- Clean architecture
- Dependency injection
- Structured error handling
- Middleware-driven observability
- Provider abstraction
- Cloud-native patterns
- Extensible platform design
This project is intended for learning, experimentation, and platform engineering exploration.