Environment Variables | Goffee
Description: Environment variables are values accessible globally within the app

Skip to main content

# Environment Variables

Environment variables are values accessible globally within the app

### Setting environment variables​

you can set these variables to the environment either with an external tool or via the "env" file. If goffee is running in develop mode (live reloading) use `.env-dev` file, if is running in production modeuse `.env` file.

### Accessing the environment variables​

Environment variables can be accessed with Golang's syntax below:

    os.Getenv("ENV-VARIALBE-KEY")

### Disabling the .env file​

Sometimes you might want to set environment variables with an external tool instead of using the `.env` file, to avoid overriding you can disable injecting the `.env` file variables by setting the config var `UseDotEnvFile` in `config/dotenvfile.go` to `false`

Here is an example of Goffee's environment variables in the `.env` file

    #######################################
    ######            App            ######
    #######################################
    APP_NAME=Goffee
    APP_ENV=local  # local | testing | production
    App_HTTP_HOST=localhost
    App_HTTP_PORT=8080
    App_USE_HTTPS=false
    App_USE_LETSENCRYPT=false
    APP_LETSENCRYPT_EMAIL=mail@example.com
    App_HTTPS_HOSTS=example.com, www.example.com
    App_REDIRECT_HTTP_TO_HTTPS=false
    App_CERT_FILE_PATH=tls/server.crt
    App_KEY_FILE_PATH=tls/server.key

    #######################################
    ######         TEMPLATES         ######
    #######################################
    TEMPLATE_ENABLE=true

    #######################################
    ######            JWT            ######
    #######################################
    JWT_SECRET=dkfTnezmgaAdlgkw
    JWT_LIFESPAN_MINUTES=4320 # expires after 3 days

    #######################################
    ######            DATABASE       ######
    #######################################
    DB_DRIVER=mysql  # mysql | postgres | sqlite
    #_____ MYSQL _____#
    MYSQL_HOST=localhost
    MYSQL_DB_NAME=db_test
    MYSQL_PORT=3306
    MYSQL_USERNAME=root
    MYSQL_PASSWORD=root
    MYSQL_CHARSET=utf8mb4

    #_____ postgres _____#
    POSTGRES_HOST=localhost
    POSTGRES_USER=user
    POSTGRES_PASSWORD=secret
    POSTGRES_DB_NAME=db_test
    POSTGRES_PORT=5432
    POSTGRES_SSL_MODE=disable
    POSTGRES_TIMEZONE=America/Argentina/Buenos_Aires

    #_____ SQLITE _____#
    SQLITE_DB_PATH=storage/sqlite/db.sqlite

    #######################################
    ######            CACHE          ######
    #######################################
    CACHE_DRIVER=redis
    REDIS_HOST=localhost
    REDIS_PORT=6379
    REDIS_PASSWORD=
    REDIS_DB=0

    #######################################
    ######           Emails          ######
    #######################################
    EMAILS_DRIVER=smtp # smtp | sparkpost | sendgrid | mailgun
    #_____ SMTP _____#
    SMTP_HOST=localhost
    SMTP_PORT=25
    SMTP_USERNAME=
    SMTP_PASSWORD=
    SMTP_TLS_SKIP_VERIFY_HOST=true # (set true for development only!)

    #_____ sparkpost _____#
    SPARKPOST_BASE_URL=https://api.sparkpost.com
    SPARKPOST_API_VERSION=1
    SPARKPOST_API_KEY=sparkpost-api-key-here # the api key

    #_____ sendgrid _____#
    SENDGRID_HOST=https://api.sendgrid.com
    SENDGRID_ENDPOINT=/v3/mail/send
    SENDGRID_API_KEY=sendgrid-api-key-here # the api key

    #_____ mailgun _____#
    MAILGUN_DOMAIN=your-domain.com # your domain
    MAILGUN_API_KEY=mailgun-api-key-here # the api key
    MAILGUN_TLS_SKIP_VERIFY_HOST=true # (set true for development only!)