Skip to content

Repository files navigation

Practical Docker Tools

Kubernetes is hard--or is it? This repo is a collection of multi-platform images and container resource definitions for managing a software-dev organization using Kubernetes. These tools make it easy. Contents:

DirectoryDescription
ansiblebuild your own Kubernetes cluster
imagesimages which are published to Docker Hub
k8skubernetes resources and helm charts
lib/buildbuild makefile and tools
servicesnon-clustered docker-compose services
sslPKI certificate tools (deprecated by k8s)

Find images at docker hub/instantlinux or ghcr.io/instantlinux. Each image is scanned by trivy to ensure they contain no known CVE vulnerabilities before promotion to ghcr.io and Docker Hub.

Find a lot more details about the Kubernetes bare-metal installer in k8s/README.

Kubernetes capabilities

The cluster-deployment tools here include helm charts and ansible playbooks to spin up bare-metal or VM master/worker nodes, and a Makefile to add several additional features.

  • Direct-attached SSD local storage pools
  • Non-default namespace with its own service account (full permissions within namespace, limited read-only in kube-system namespaces)
  • Keycloak for OpenID / OAuth2 user authentication / authorization
  • Vaultwarden, a self-hosted Bitwarden-compatible password manager
  • Helm4
  • Mozilla sops with encryption (to keep credentials in local git repo)
  • Encryption for internal etcd
  • MFA using Authelia and Google Authenticator
  • Calico or flannel networking
  • ingress-nginx
  • Local-volume sync
  • Garage object storage
  • Pod security policies
  • Automatic certificate issuing/renewal with Letsencrypt
  • Grafana with prometheus-based alerting

Resource definitions

Developer infrastructure

ServiceVersionNotes
gitea**git repo
admin-gitsync git repo across cluster
gitea**self-hosted git repo with many github features
jira**ticket tracking
mariadb-galeraautomatic cluster setup
nexus**binary repo with docker registry
synapse**self-hosted team chat
wordpress**

Networking and support

ServiceVersionNotes
apache**web server, with webdav example
authelia**single-signon multi-factor auth
data-syncpoor-man's SAN for persistent storage
ddclientDynamic DNS client
ez-ipupdateDynamic DNS client
fluent-bit**central logging for Kubernetes
garage**S3-compatible object storage
grafana**monitoring dashboard with prometheus-based alerting
guacamole**authenticated remote-desktop server
haproxy-keepalivedload balancer
headscale**tailscale-compatible VPN control-plane
mysqldumpper-database alternative to xtrabackup
nagiosNagios Core v4 for monitoring
nagiosqlNagiosQL for configuring Nagios Core v4
node-local-dns**caching resolver for reliable pod DNS
nut-upsdNetwork UPS Tools
openldapOpenLDAP authentication server
proftpdFTP server
radicale**CalDAV / CardDAV for mobile calendar/contacts sync
restic**backups
rsyslogdlogger in a 13MB image
sambafile server
samba-dcActive-Directory compatible domain controller
secondshotrsnapshot-based backups
splunk**the free version
vaultwarden**BitWarden-compatible self-hosted backend
virt-manager**GUI and CLI for QEMU/KVM virtual machines

Email

ServiceVersionNotes
blacklista local rbldnsd for spam control
dovecotimapd server
postfixcompact general-purpose image in 11MB
postfix-pythonpostfix with spam-control scripts
snappymail**webmail, forked from rainloop imapd-client server
spamassassinspam control daemon

Entertainment

ServiceVersionNotes
daviteparty-invites manager like eVite
immich**immich self-hosted photo/video manager
mythtv-backendMythTV backend
OwnTone**iTunes server (formerly forked-daapd)
weewxWeather station software (Davis VantagePro2 etc.)

Credits

Thank you to the following contributors!

Contributing

If you want to make improvements to this software, see CONTRIBUTING.

Contents created 2017-26 under Apache 2.0 License by Rich Braun.

About

Docker tools for developer productivity & entertainment

Resources

Contributing

Stars

327 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages