When you can't find a conf file by your Golang code

That happens because Go search for a config file at the root of your project. This solution works if the file is in some other directory.

workingdir, err := os.Getwd()
if err != nil {
    log.Fatalf("can't get pwd: %s", err)
}

and then

viper.AddConfigPath(workingdir + "/")
viper.SetConfigName("app")
viper.SetConfigType("env")

or just

viper.SetConfigFile(workingdir + "/app.env")