Skip to content

Commit 2e43044

Browse files
committed
refactor(config): Simplify environment configuration and standardize variable naming
1 parent 966d751 commit 2e43044

1 file changed

Lines changed: 45 additions & 66 deletions

File tree

.env.example

Lines changed: 45 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,32 @@
1+
# Environment: debug, local, pytest, staging, production
2+
ENVIRONMENT=local
3+
14
APP_VERSION=latest
2-
RELOAD=True
3-
USERS_SECRET="changethis"
5+
USERS_SECRET=changethis
6+
7+
LOG_FILE_PATH=logs/app.log
48
# Domain
5-
# This would be set to the production domain with an env var on deployment
9+
# This would be set to the production services with an env var on deployment
610
# used by Traefik to transmit traffic and aqcuire TLS certificates
7-
DOMAIN=localhost
11+
TRAEFIK_DOMAIN=localhost
812
# To test the local Traefik config
913
# DOMAIN=localhost.myapp.com
1014
APP_HOST=0.0.0.0
11-
HOST_FILESYSTEM=/
12-
DOCKER_SOCK=/var/run/docker.sock
13-
# Used by the backend to generate links in emails to the frontend
14-
FRONTEND_HOST=http://localhost:5173
15+
TRAEFIK_HOST_FILESYSTEM=/
16+
TRAEFIK_DOCKER_SOCK=/var/run/docker.sock
1517
# In staging and production, set this env var to the frontend host, e.g.
1618
# FRONTEND_HOST=https://dashboard.example.com
1719
API_BASE_PATH=/api
18-
# Environment: local, pytest, staging, production
19-
ENVIRONMENT=local
20-
21-
PROJECT_NAME="FastAPI Feature-rich Template"
22-
STACK_NAME=fastapi-project
2320

21+
TRAEFIK_STACK_NAME=myapp
22+
TRAEFIK_SWAGER_STATIC_DIR=api
2423
# Backend
2524
API_CONTAINER_HOST=app-api
2625
API_TASKIQ_CONTAINER_HOST=api-taskiq
27-
BACKEND_CORS_ORIGINS="http://localhost,http://localhost:5173,https://localhost,https://localhost:5173,http://localhost.tiangolo.com"
2826
SECRET_KEY=changethis
29-
FIRST_SUPERUSER=admin@example.com
30-
FIRST_SUPERUSER_PASSWORD=changethis
3127

3228
# Uvicorn
33-
UVICORN_HOST=127.0.0.1
29+
UVICORN_HOST=0.0.0.0
3430
UVICORN_PORT=8000
3531
UVICORN_WORKERS_COUNT=1
3632
UVICORN_RELOAD=True
@@ -49,7 +45,7 @@ DB_CONTAINER_HOST=app-db
4945
DB_PORT=5432
5046
DB_NAME=app
5147
DB_USER=postgres
52-
DB_PASSWORD=changethis
48+
DB_PASS=changethis
5349
DB_DATAPATH=/var/lib/postgresql/data/pgdata
5450
DB_ECHO=False
5551

@@ -64,11 +60,11 @@ CONNECTION_POOL_RECYCLE=1800
6460

6561
# Redis
6662
REDIS_CONTAINER_HOST=app-redis
67-
REDIS_USER=redis
63+
#REDIS_USER=redis
6864
REDIS_PORT=6379
6965
REDIS_DATABASE=redis
70-
REDIS_PASS=changethis
71-
REDIS_MASTER_PASSWORD=changethis
66+
REDIS_PASS=nil
67+
REDIS_MASTER_PASSWORD=nil
7268

7369
# RabbitMQ
7470
RABBITMQ_CONTAINER_HOST=app-rmq
@@ -84,46 +80,45 @@ KAFKA_CONTAINER_HOST=app-kafka
8480
KAFKA_CFG_NODE_ID=0
8581
KAFKA_CFG_PROCESS_ROLES=controller,broker
8682
KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094
87-
KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092,EXTERNAL://localhost:9094
83+
KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092,EXTERNAL://localhost:9094
8884
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT
89-
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@app-kafka:9093
85+
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@${KAFKA_CONTAINER_HOST}:9093
9086
KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
9187
KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
9288
KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR=1
9389
KAFKA_CFG_HEALTHCHECK_PORT=9092
9490
KAFKA_PORT=9092
95-
KAFKA_HOST=kafka
96-
KAFKA_ADDR=${KAFKA_HOST}:${KAFKA_PORT}
91+
KAFKA_ADDR=["${KAFKA_CONTAINER_HOST}:${KAFKA_PORT}"]
9792

9893
# Sentry
9994
SENTRY_DSN=
10095
SENTRY_ALLOW_BEACON_REPORTS=False
10196
SENTRY_TRACES_SAMPLE_RATE=1.0
10297
SENTRY_PROFILES_SAMPLE_RATE=0.1
10398

104-
# OpenTelemetry Collector
105-
OTEL_COLLECTOR_HOST=otel-collector
106-
OTEL_COLLECTOR_PORT_GRPC=4317
107-
OTEL_COLLECTOR_PORT_HTTP=4318
108-
OTEL_COLLECTOR_CONFIG=./src/otel-collector/otelcol-config.yml
109-
OTEL_COLLECTOR_CONFIG_EXTRAS=./src/otel-collector/otelcol-config-extras.yml
110-
OTEL_EXPORTER_OTLP_ENDPOINT=http://${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_GRPC}
111-
PUBLIC_OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:8080/otlp-http/v1/traces
112-
# OpenTelemetry Resource Definitions
113-
OTEL_RESOURCE_ATTRIBUTES=service.namespace=opentelemetry-demo,service.version=${IMAGE_VERSION}
114-
# Metrics Temporality
115-
OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=cumulative
116-
117-
# ********************
118-
# Telemetry Components
119-
# ********************
120-
# Grafana
121-
GRAFANA_PORT=3000
122-
GRAFANA_HOST=grafana
123-
124-
# Jaeger
125-
JAEGER_PORT=16686
126-
JAEGER_HOST=jaeger
99+
## OpenTelemetry Collector
100+
#OTEL_COLLECTOR_HOST=otel-collector
101+
#OTEL_COLLECTOR_PORT_GRPC=4317
102+
#OTEL_COLLECTOR_PORT_HTTP=4318
103+
#OTEL_COLLECTOR_CONFIG=./src/otel-collector/otelcol-config.yml
104+
#OTEL_COLLECTOR_CONFIG_EXTRAS=./src/otel-collector/otelcol-config-extras.yml
105+
#OTEL_EXPORTER_OTLP_ENDPOINT=http://${OTEL_COLLECTOR_HOST}:${OTEL_COLLECTOR_PORT_GRPC}
106+
#PUBLIC_OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:8080/otlp-http/v1/traces
107+
## OpenTelemetry Resource Definitions
108+
#OTEL_RESOURCE_ATTRIBUTES=service.namespace=opentelemetry-demo,service.version=${IMAGE_VERSION}
109+
## Metrics Temporality
110+
#OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=cumulative
111+
#
112+
## ********************
113+
## Telemetry Components
114+
## ********************
115+
## Grafana
116+
#GRAFANA_PORT=3000
117+
#GRAFANA_HOST=grafana
118+
#
119+
## Jaeger
120+
#JAEGER_PORT=16686
121+
#JAEGER_HOST=jaeger
127122

128123
# Prometheus
129124
PROMETHEUS_PORT=9090
@@ -135,29 +130,13 @@ DOCKER_IMAGE_BACKEND=backend
135130
DOCKER_IMAGE_FRONTEND=frontend
136131

137132
# CORE SETTINGS
138-
BACKEND_CORS_ORIGINS=["http://localhost:3000", "https://myfrontendapp.com"]
139-
ALLOWED_HOSTS=["localhost", "127.0.0.1"]
140-
APP_LOG_DIR=logs # This path will be declareted in the docker-compose.yml file
141-
APP_LOG_FILE_PATH=${APP_LOG_DIR}/app.log
142-
143-
# POSTGRESQL DATABASE
144-
POSTGRES_SERVER=db
145-
POSTGRES_USER=postgres
146-
POSTGRES_PASSWORD=postgres
147-
POSTGRES_PORT=5432
148-
POSTGRES_DB=app-db
149-
150-
# PGADMIN
151-
PGADMIN_DEFAULT_EMAIL=admin@mail.com
152-
PGADMIN_DEFAULT_PASSWORD=admin
133+
CORS_ORIGINS=["http://localhost:3000", "https://myfrontendapp.com", "http://localhost", "http://localhost:5173", "https://localhost", "https://localhost:5173", "http://localhost.tiangolo.com"]
134+
ALLOWED_HOSTS=["localhost", "127.0.0.1", "api.localhost"]
153135

154136
# PROJECT SETTINGS
155137
BASE_API_PATH=customer-system
156138
API_VERSION=1.0.0
157-
PROJECT_NAME="Customer System"
158139
PROJECT_DESCRIPTION="Customer API - System Layer"
159140
PROJECT_VERSION=1.0.0
160141
CONTACT_NAME="John Doe"
161142
CONTACT_EMAIL="john.doe@email.com"
162-
163-
WORKERS_COUNT=1

0 commit comments

Comments
 (0)