Configuration

GoApp is configured using environment variables. This approach is aligned with Twelve-Factor App principles, making the application portable and easy to manage across different environments (local, staging, production).

All configuration loading is handled in the internal/configs package.

General Application Settings

Environment Variable Description Default
ENV Sets the application environment. Affects things like access logging. Options: local, test, staging, production. local
APP_NAME The name of the application, used in logging and observability (APM). ""
APP_VERSION The version of the application, used in logging and observability (APM). ""

HTTP Server Configuration

Environment Variable Description Default Value from Code
TEMPLATES_BASEPATH The absolute file path to the directory containing HTML templates. ""

Note: While host and port are configurable in the http.Config struct, they are currently hardcoded in configs.go to port 8080.

PostgreSQL Database Configuration

These variables are essential for connecting to the PostgreSQL database.

Environment Variable Description Example
POSTGRES_HOST The hostname of the database server. localhost or postgres (in Docker)
POSTGRES_PORT The port the database is running on. 5432
POSTGRES_STORENAME The name of the database to connect to. goapp
POSTGRES_USERNAME The username for authentication. gauser
POSTGRES_PASSWORD The password for authentication. gauserpassword

Example Configuration (.env file)

For local development, you can create a file named .env and use a tool like source to load the variables into your shell.

# Application Environment
export ENV=local
export APP_NAME=goapp
export APP_VERSION=v1.0.0

# Database Configuration
export POSTGRES_HOST=localhost
export POSTGRES_PORT=5432
export POSTGRES_STORENAME=goapp
export POSTGRES_USERNAME=gauser
export POSTGRES_PASSWORD=gauserpassword

# HTTP Server Configuration
# Use ${PWD} to ensure the path is absolute from your project root
export TEMPLATES_BASEPATH=${PWD}/cmd/server/http/web/templates