package module
Version: v0.0.0-...-53e1334 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Jan 6, 2021 License: MIT Imports: 7 Imported by: 54



gonfig is a lightweight Golang package for intergrating both JSON configs and enviornment variables into one config object.


First define a configuration structure:

type Configuration struct {
	Port              int
	Connection_String string

Then fill in our JSON file:

	"Port": 8080

We do not define Connection_String in the JSON as we would prefer to define that through an enviornment variable.

Best practices of configuration file

using Docker:

$ docker run [...] -e Connection_String="..." [...]

To make this simple for developers we can use gonfig to easily fill in our struct.

$ go get github.com/tkanos/gonfig
import "github.com/tkanos/gonfig"

configuration := Configuration{}
err := gonfig.GetConf("pathtomyjonfile.json", &configuration)
if err != nil {

Now we can use the configuration as if it was coming from one source.

// pseudo code
if configuration.Port == 8080 {
	return true
if configuration.Connection_String != nil {
	return true
using different environment variables name

If your env variable has a different name than the json one, you can just define an env attribute

type Configuration struct {
	Port              int  `env:"MYAPP_PORT"`
	Connection_String string

When should gonfig be used?

If you have a limited number of enviornment configuration variables, it's probably better to set the struct values yourself.

configuration.Connection_String = os.Getenv("Connection_String")

gonfig makes it easier to combine JSON and enviornment variables into one struct automatically.


You can find a sample of the use of Gonfig project HERE




This section is empty.


This section is empty.


func GetConf

func GetConf(filename string, configuration interface{}) (err error)

GetConf aggregates all the JSON and enviornment variable values and puts them into the passed interface.


This section is empty.

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL