Skip to content


Repository files navigation


Contributions Welcome Go project version Go Report Card

Microservice Template for JustGo (

Skeleton project for jump-starting a Go-powered microservice development with Docker, code hot-reloading and Go best-practices.

The only requirement for running this project is a properly set-up Docker environment and (optionally) GNU make. You can also run commands in the Makefile manually (they are simple), if you don't have make.

ATTENTION: this setup assumes that the code is always executed inside a Docker container and is not meant for running code on the host machine directly.

To learn more:


  1. Get code with justgo (preferred) or by checking this repo out, locally.

  2. Build project and start inside a container:

    > make
  3. Check logs to verify things are running properly:

    > make logs

    If you see Starting microservice on internal port as the last entry in the log things should be A-OK. However, the port indicated there is internal to the Docker container and not a port you can test the service at. You need to run make ps to detect the external port (see below).

  4. Find the port the server attached to by running:

    > make ps

    which will have an output that looks something like

      Name                   Command               State            Ports
    ms-demo-golang      reflex -c reflex.conf      Up>3737/tcp

    Whatever you see instead of is the host/port that your microservice started at. Type it in your browser or Postman or another HTTP client of your choice to verify that the service is responding.


# run:
> make [start]

# stop:
> make stop

# follow logs:
> make logs

# show container status:
> make ps

# jump into the Docker container
> make shell

# To add a dependency, just modify go.mod
# and hot reloader will do the rest! THAT EASY

# NOTE: `build-release` and `run-release` require that the project is 
# version-controlled in git and that there's at least one commit.

# build a release (production-appropriate) Docker image "from scratch":
> make build-release

# Run the release build:
> make run-release


Contributions are always welcome, no matter how large or small. Substantial feature requests should be proposed as an RFC. Before contributing, please read the code of conduct.

See Contributing.




A nifty template for a containerized microservice in go




Code of conduct





No releases published


No packages published