mborne/docker-devbox
Provides stacks to setup a container-based development environment with Docker or Kubernetes for some of them.
Motivation
This is my playground to learn and illustrate how to deploy application with docker compose and helm.
Getting started
- Install docker compose plugin
- Create devbox’s network :
docker network create devbox
- Try some stacks, for example :
- Install kubectl and helm
- Configure kubectl to use a DEV instance (see kind/README.md - quickstart.sh)
Stacks
Load balancer and reverse proxy
- traefik : A reverse proxy including configuration discovery mechanism.
- nginx-ingress-controller : A common alternative to Traefik (K8S only).
- whoami : An helloworld app to test traefik or nginx-ingress-controller.
- cert-manager : An helper to generate TLS certificates from various issuers including LetsEncrypt (K8S only)
Container UI
- kubernetes-dashboard : Web-based UI for Kubernetes.
- portainer : Web-based UI for Kubernetes, Docker, Swarm and Nomad.
LLM
- ollama : Ollama API to use locally open LLM models.
- open-webui : Web-based UI (ChatGPT-like) for Ollama.
CI/CD pipeline
- ArgoCD : GitOps continuous delivery tool for Kubernetes.
- Jenkins : Open source automation server with hundred of plugins (ansible, jmeter,…).
Data pipeline orchestration
See also www.zenml.io - Orchestration Showdown: Dagster vs Prefect vs Airflow
- prefect (docker only for now)
Authentication
See also dex and oauth2-proxy
- Keycloak : Open Source Identity and Access Management providing OIDC and SAML implementation (K8S not implemented)
Storage
- MinIO : Object storage with an S3 compatible API.
- Longhorn : Distributed block storage for K8S providing
ReadWriteMany
volumes (K8S only) - restic-server : Rest Server to push restic backups over HTTPS (warning : incomplete and not well documented)
- nfs-subdir-external-provisioner : Provides
ReadWriteMany
volumes using existing NFS server.- nfs-demo : Illustrates the use of a “nfs” storage class providing
ReadWriteMany
support. - nfs-server : NFS server to test nfs-subdir-external-provisioner.
- nfs-demo : Illustrates the use of a “nfs” storage class providing
Database
- PostGIS : PostgreSQL with the spatial extension PostGIS.
- Redis
- CloudBeaver : Web-based UI for SQL databases (docker only)
Logging and monitoring
Option 1 :
- Grafana : Grafana with Loki and Prometheus datasources and dashboards preconfigured.
- Prometheus : Grafana/Prometheus for system and monitoring.
- Loki : Grafana/Loki to store logs with Grafana/Promtail to ship logs.
- x509-certificate-exporter : Prometheus exportor to monitor TLS certicates (K8S only)
Option 2 (variant of the famous ELK stack) :
- OpenSearch : OpenSearch and OpenSearch Dashboards (fork from ElasticSearch and Kibana by AWS).
- fluent : fluent-bit sending containers and systemd logs to OpenSearch.
Security
- kyverno : kyverno with kyverno-policies and Policy Reporter (metrics & UI).
- trivy : trivy-operator from Aqua Security (K8S only)
- SonarQube : Centralisation of Code Quality and Code Security metrics.
GeoSpatial services
- GeoServer : Open source server for sharing geospatial data with OGC compliant protocols (WMS, WMTS, WFS) (docker only)
Mailing
- Mailpit : Email & SMTP testing tool with API for developers (docker only)
- MailHog : SMTP testing server providing with an API to retrieve emails (no )
- mailer : SMTP relay based on namshi/smtp image to send emails using a google account (docker only)