• Stars
    star
    205
  • Rank 191,264 (Top 4 %)
  • Language
    Go
  • License
    MIT License
  • Created over 5 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Cloud Native GoLang Microservices - gRPC, GraphQL

micro-starter-kit

Microservices starter kit for Golang, aims to be developer friendly.

GoDoc Go Renovate dependency Status MIT license

Build Status

Build Status

Quality

Go Report Card Total alerts codecov Language grade: Go fuzzit

Overview

Image of Deployment

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 below
  • uncommend postgres import statement and comment sqlite in plugin.go
  • start micro server with --configFile=config.dev.postgres.yaml flag
    i.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.a Work 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

  1. prerequisites
  2. scaffolding
  3. makefile
  4. testing
  5. docker
  6. gitops
  7. Protobuf Style Guide
  8. Google Protobuf Style Guide

External Docs

  1. Go-Micro Getting Started
  2. examples - example usage code for micro
  3. microhq - a place for prebuilt microservices
  4. explorer - which aggregates micro based open source projects
  5. micro-plugins extensible micro plugins
  6. step-by-step-guide-micro
  7. micro-in-cn
  8. Platform Web
  9. grpc template
  10. Simple API backed by PostgresQL, Golang and gRPC

More Repositories

1

ngx-starter-kit

πŸ…°οΈ Angular πŸš€ NestJS πŸ’ Starter Kit
TypeScript
585
star
2

nifi-examples

Apache NiFi example flows
JavaScript
195
star
3

macbooksetup

MacOS setup for Developers and SREs
Shell
59
star
4

koa-router-decorators

koa router ES7 decorators
TypeScript
52
star
5

micro-apps

Microservices in Post-Kubernetes Era. A polyglot monorepo
Kotlin
51
star
6

grpc-starter-kit

TypeScript
49
star
7

spectacular

Sweet & Powerful SvelteKit Project Template https://spectacular-console.vercel.app/ https://spectacular-docs.vercel.app/ https://spectacular-web.vercel.app/
Svelte
45
star
8

microservices-observability

πŸŽ‰ Microservices Observability - Log Aggregation, Distributed Tracking, Metrics
Kotlin
41
star
9

cdc-kafka-hadoop

MySQL to NoSQL real time dataflow
Java
18
star
10

go-workspace

Experimenting with golang 1.18 workspaces, fuzzing and generics
Go
16
star
11

angular-webstorm-project-setup

Here you can find step by step instructions on how to setup pro level development environment for developing Front-end applications using AngularJS Framework
15
star
12

nifi-scripting

NiFi Dynamic Script Executors
Groovy
15
star
13

reactive-apps

🐎 Reactive Apps with Spring 5
Kotlin
14
star
14

ml-experiments

machine learning playground
Java
12
star
15

nifi-websocket

Apache NiFi WebSocket Listener
Java
10
star
16

Angular-AdminLTE

Rewrite of popular AdminLTE in AngularJS
CSS
10
star
17

cloud-native-apps

12 factor cloud native apps
CSS
9
star
18

yeti

https://xmlking.gitbook.io/yeti/v/develop/
TypeScript
9
star
19

nxp

@nrwl nx-plugins
TypeScript
7
star
20

node-iot-healthcare

node.js lib for fitness and health tracking devices.
JavaScript
6
star
21

angular-elements-in-angular-shell

angular elements in nx workspace
TypeScript
4
star
22

connect4

Connect 4️⃣Game
TypeScript
4
star
23

rest-api-docs

Grails REST API with swagger style API docs
Groovy
4
star
24

hub

TypeScript
4
star
25

toolkit

gRPC, CloudEvents toolkit
Go
4
star
26

reactive-grails-workshop

Reactive Grails 3.2, Angular, JSON Web Token JWT, RxGORM, RxJava, MongoDB
Groovy
4
star
27

Resilience

Yet Another Application Resilience Framework
CSS
4
star
28

grails-batch-rest

Grails Spring Batch, CORS, REST API, WebSockets, Spring Security Core/LDAP Demo
Groovy
4
star
29

logger

meta logger for golang
Go
3
star
30

nodeui

πŸ‘„ Command Line UI components for Node.js
TypeScript
3
star
31

micro-apps-deprecated

Microservices for Post-Kubernetes Era. A polyglot monorepo
Kotlin
3
star
32

spa-starter-kit

Single Page Application (SPA) Starter project build with Angular2, Angular CLI
TypeScript
3
star
33

hrm

Web-Bluetooth Demo: Heart Rate Service
JavaScript
2
star
34

trust-broker

Multi Identity Provider - OAuth, JSON Web Token, Facebook, Google
JavaScript
2
star
35

react-native-mobile-starter-kit

Mobile Starter Kit - React Native, Redux, Native Base, CodePush and TypeScript
TypeScript
2
star
36

entity-demo

TypeScript
2
star
37

configor

Moved to https://github.com/xmlking/toolkit/tree/develop/configurator
Go
2
star
38

kendo-requireJS-bootstrap

AMD-aware kendoUI seed project with Twitter Bootstrap and Themes
JavaScript
2
star
39

AppBazaar

App Bazaar
Groovy
2
star
40

dapp-experiments

Goodwill driven through monetary incentives πŸ‘
TypeScript
1
star
41

MicrosoftBand

Swift wrapper API for Microsoft Band SDK.
Objective-C
1
star
42

ko-demo

basic go project using ko for deployment , KIND as Kubernetes runtime
Makefile
1
star
43

grails-angular-jwt

grails-angular-jwt
CSS
1
star
44

gulp-ng-recipes

A Collection of Gulp Recipes.
TypeScript
1
star
45

spring-graphql

Kotlin
1
star
46

WearableHub

TypeScript
1
star
47

nativescript-ngx-microsoftband

πŸ“¦ Microsoft Band Plugin for NativeScript with Angular
TypeScript
1
star
48

identity

Cloud identity management system
1
star
49

broker

Go
1
star
50

cdc-images

CDC Docker Images
Shell
1
star
51

micro

Makefile
1
star
52

blockchain

TypeScript
1
star
53

svelte-starter-kit

SvelteKit Starter Template Moved to: https://github.com/xmlking/spectacular
Svelte
1
star
54

vertx-stalgia

vertx-stalgia is a Nodestalgia/Logstalgia port with Vert.X, Grails, Canvas and WebSockets.
JavaScript
1
star
55

grails-angular-microservices

bunch of Grails 3 microservices used as backends for Angular SPA front-end
Groovy
1
star
56

spark-playground

Apache Spark Experiments
Kotlin
1
star
57

node-dash-button-webtask

Amazon dash button actions with Auth0's webtasks
JavaScript
1
star
58

sveltekit-turbo

JavaScript
1
star
59

spark-demo

spark kotlin demo
Kotlin
1
star
60

fitness-tracking

Fitness Tracker
Swift
1
star
61

ai-experiments

LLM mistral
Python
1
star