An inventory for your pets! PetInvent allows you to track your pets. Many animal species and breeds are available to choose from.
This project is a full stack web application that uses DevOps best practices - including containerization, micro-services, Infrastructure as Code (IaC), CI/CD pipelines, GitOps, Kubernetes and more.
Live Demo: petbuddy.party
A local clean install using Docker and docker compose can be easily achieved using the clean-install.sh
shell script.
Advanced users can deploy manually using Docker and docker compose, or using Kubernetes and Helm with the charts and shell scripts under the Kubernetes
folder.
Is your favorite animal missing? Found any bugs? You are welcome to open issues, pull requests or forks.
- Back-end Language: Python
- Back-end Framework: Flask
- Front-end Languages: HTML, CSS & JavaScript
- Front-end Framework: Bootstrap v5
- Database: SQL - PostgreSQL, MySQL, MariaDB or SQLite
- Scripting Languages: Bash & POSIX Shell Command Language
- Container Engine: Docker & containerd
- Container Image Format: OCI Image Format, built using Dockerfile
- Container Image Registry: GitHub Packages - GitHub Container Registry 1
- Deployment: Docker Compose 2
- Kubernetes Engine: Google Kubernetes Engine (GKE) 3
- Kubernetes Packaging: Helm
-
CI/CD: Github Actions
-
Cloud Provider: Google Cloud Platform (GCP)
Kubernetes Stack 6
- Application: PetInvent
- Database: PostgreSQL HA packaged by Bitnami
- Secret Management: Sealed Secrets
- Ingress Controller: Ingress NGINX Controller
- TLS Certificate: cert-manager & Let's Encrypt
- Authoritative DNS: ExternalDNS & Cloudflare DNS
- Domain Registrar: Cloudflare Registrar
Footnotes
-
See container image here: ghcr.io/roib20/petinvent ↩
-
Used for testing and local deployments (see
Installation
instructions above). ↩ -
Used for cloud deployments ↩
-
See repo: Terraform - Provision a GKE Cluster with Cloudflare Ingress and ArgoCD ↩
-
See repo: petinvent-gitops ↩
-
Deployed using the Pipeline above. ↩