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
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 GoCondor's environment variables in the .env
file
#######################################
###### App ######
#######################################
APP_NAME=GoCondor
APP_ENV=local # local | testing | production
App_HTTP_HOST=localhost
App_HTTP_PORT=80
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
#######################################
###### JWT ######
#######################################
JWT_SECRET=dkfTgonmgaAdlgkw
JWT_LIFESPAN_MINUTES=10080 # 7 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=Asia/Dubai
#_____ 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!)