Micro Starter Kit
Microservices starter kit for Golang, aims to be developer friendly.
Build Status
Quality
Overview

What you get
Getting Started
Prerequisite
Refer prerequisites docs
Initial Setup
Also Refer scaffolding docs
clone the repo
git clone https://github.com/xmlking/micro-starter-kit ~/Developer/Work/go/micro-starter-kit
# pull dependencies (when every time `go.mod` changed)
go mod download
Run
Database
By default this project use embedded sqlite3
database. if you want to use postgreSQL,
start postgres via
docker-compose
command provided belowuncommend
postgres
import statement and commentsqlite
inplugin.go
start micro server with
--configFile=config.dev.postgres.yaml
flagi.e.,
go run srv/account/main.go srv/account/plugin.go --configFile=config.dev.postgres.yaml
# to start postgres in foreground
docker-compose up postgres
# to stop postgres
docker-compose down
# if needed, remove `postgres_data` volume to recreate database next time, when you start.
docker system prune --volumes
Services
Node:
--server_address=localhost:5501x --broker_address=localhost:5502x
required only when you are behind VPN a.k.aWork From Home
# dev mode
make run-account
# or
make run-account ARGS="--server_address=localhost:55011 --broker_address=localhost:55021"
# or
go run srv/account/main.go srv/account/plugin.go \
--configDir deploy/bases/account-srv/config \
--server_address=localhost:55011 --broker_address=localhost:55021
make run-greeter
# or
make run-emailer ARGS="--server_address=localhost:55012 --broker_address=localhost:55022"
make run-emailer
# or
make run-emailer ARGS="--server_address=localhost:55013 --broker_address=localhost:55023"
# integration tests for config module via CMD
make run TARGET=demo TYPE=cmd
go run cmd/demo/main.go --help
go run cmd/demo/main.go --database_host=1.1.1.1 --database_port=7777
export APP_ENV=production
go run cmd/demo/main.go
Test
Refer testing docs
GitOps
Make
Refer makefile docs
Docker
Refer docker docs
Release
Refer releasing docs
Deploy
make docker DOCKER_REGISTRY=docker.pkg.github.com DOCKER_CONTEXT_PATH=xmlking/micro-starter-kit
docker rmi $(docker images -f "dangling=true" -q)
# make kustomize OVERLAY=e2e NS=default VERSION=v0.1.0-440-g6c7fb7a
make kustomize
kubectl apply -f build/kubernetes.yaml
POD_NAME=$(kubectl get pods -lapp.kubernetes.io/name=account-srv -o jsonpath='{.items[0].metadata.name}')
kubectl logs -f -c srv $POD_NAME
kubectl delete -f build/kubernetes.yaml
Reference
Project Docs
External Docs
examples - example usage code for micro
microhq - a place for prebuilt microservices
explorer - which aggregates micro based open source projects
micro-plugins extensible micro plugins
Last updated
Was this helpful?