This is a sample project that aims to learn and practice a Go language based web service backend. The key technologies used are summarised below.
- Golang 1.18
- PostgreSQL 12 (docker)
- Entity Relationship Diagrams tool: dbdiagram.io
- Schema migration: Golang Migrate
- Golang PostgreSQL driver: lib/pq
- SQL query to Golang compiler: sqlc
- Docker Desktop
- Viper (Beware of upcoming v2)
Every time a pull request is merged into master, Github workflow will create a docker image and push into AWS ECR.
- AWS RDS, ECR, Secret Manager, IAM, EKS
- AWS CLI
- Github workflow, action, and repository secret
- jq (comman-line JSON processor)
- k8s
- k9s terminal based UI to interact with k8s clusters.
- cert-manager TLS certificate agent for k8s
- letsencrypt Certificate Authority
- aws cli login to ecr command:
aws ecr get-login-password | docker login --username AWS --password-stdin 796755891642.dkr.ecr.ap-southeast-2.amazonaws.com