Skip to content
Switch branches/tags
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


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





No releases published


No packages published