Skip to content

Commit

Permalink
Refactor: Remove .env.example and generate env file from config durin…
Browse files Browse the repository at this point in the history
…g deployment
  • Loading branch information
Luisotee committed Jan 22, 2025
1 parent 5977a87 commit ff86fea
Show file tree
Hide file tree
Showing 5 changed files with 88 additions and 122 deletions.
97 changes: 0 additions & 97 deletions deploy/trigger-stack/.env.example

This file was deleted.

8 changes: 8 additions & 0 deletions deploy/trigger-stack/deploy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/bash

# Generate fresh env file from config
bun run export-config.ts > .env

sleep 2
# Run docker compose with generated env file
docker compose --env-file .env up -d
48 changes: 24 additions & 24 deletions deploy/trigger-stack/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
x-webapp-env: &webapp-env
LOGIN_ORIGIN: &trigger-url ${TRIGGER_PROTOCOL:-http}://${TRIGGER_DOMAIN:-localhost:3040}
LOGIN_ORIGIN: &trigger-url ${TRIGGER_PROTOCOL}://${TRIGGER_DOMAIN}
APP_ORIGIN: *trigger-url
DEV_OTEL_EXPORTER_OTLP_ENDPOINT: &trigger-otel ${TRIGGER_PROTOCOL:-http}://${TRIGGER_DOMAIN:-localhost:3040}/otel
DEV_OTEL_EXPORTER_OTLP_ENDPOINT: &trigger-otel ${TRIGGER_PROTOCOL}://${TRIGGER_DOMAIN}/otel
ELECTRIC_ORIGIN: http://electric:3000

x-worker-env: &worker-env
PLATFORM_HOST: webapp
PLATFORM_WS_PORT: 3030
PLATFORM_HOST: webapp
PLATFORM_WS_PORT: ${REMIX_APP_PORT}
SECURE_CONNECTION: "false"
OTEL_EXPORTER_OTLP_ENDPOINT: *trigger-otel

Expand All @@ -19,52 +19,52 @@ networks:

services:
webapp:
image: ghcr.io/triggerdotdev/trigger.dev:${TRIGGER_IMAGE_TAG:-v3}
image: ghcr.io/triggerdotdev/trigger.dev:${TRIGGER_IMAGE_TAG}
container_name: trigger-webapp
restart: ${RESTART_POLICY:-unless-stopped}
restart: ${RESTART_POLICY}
env_file:
- .env
environment:
<<: *webapp-env
ports:
- ${WEBAPP_PUBLISH_IP:-127.0.0.1}:${PORT}:3030
- ${DOCKER_PUBLISH_IP}:${PORT}:${REMIX_APP_PORT}
depends_on:
- postgres
- redis
networks:
- webapp

postgres:
image: postgres:${POSTGRES_IMAGE_TAG:-16}
image: postgres:${POSTGRES_IMAGE_TAG}
container_name: trigger-postgres
restart: ${RESTART_POLICY:-unless-stopped}
restart: ${RESTART_POLICY}
volumes:
- postgres-data:/var/lib/postgresql/data/
env_file:
- .env
networks:
- webapp
ports:
- ${DOCKER_PUBLISH_IP:-127.0.0.1}:5433:5432
- ${DOCKER_PUBLISH_IP}:${POSTGRES_PORT}:5432
command:
- -c
- wal_level=logical

redis:
image: redis:${REDIS_IMAGE_TAG:-7}
image: redis:${REDIS_IMAGE_TAG}
container_name: trigger-redis
restart: ${RESTART_POLICY:-unless-stopped}
restart: ${RESTART_POLICY}
volumes:
- redis-data:/data
networks:
- webapp
ports:
- ${DOCKER_PUBLISH_IP:-127.0.0.1}:6389:6379
- ${DOCKER_PUBLISH_IP}:${REDIS_PORT}:6379

docker-provider:
image: ghcr.io/triggerdotdev/provider/docker:${TRIGGER_IMAGE_TAG:-v3}
image: ghcr.io/triggerdotdev/provider/docker:${TRIGGER_IMAGE_TAG}
container_name: trigger-docker-provider
restart: ${RESTART_POLICY:-unless-stopped}
restart: ${RESTART_POLICY}
volumes:
- /var/run/docker.sock:/var/run/docker.sock
user: root
Expand All @@ -73,17 +73,17 @@ services:
depends_on:
- webapp
ports:
- ${DOCKER_PUBLISH_IP:-127.0.0.1}:9021:9020
- ${DOCKER_PUBLISH_IP}:${HTTP_SERVER_PORT}:${HTTP_SERVER_PORT}
env_file:
- .env
environment:
<<: *worker-env
PLATFORM_SECRET: $PROVIDER_SECRET
PLATFORM_SECRET: ${PROVIDER_SECRET}

coordinator:
image: ghcr.io/triggerdotdev/coordinator:${TRIGGER_IMAGE_TAG:-v3}
image: ghcr.io/triggerdotdev/coordinator:${TRIGGER_IMAGE_TAG}
container_name: trigger-coordinator
restart: ${RESTART_POLICY:-unless-stopped}
restart: ${RESTART_POLICY}
volumes:
- /var/run/docker.sock:/var/run/docker.sock
user: root
Expand All @@ -92,22 +92,22 @@ services:
depends_on:
- webapp
ports:
- ${DOCKER_PUBLISH_IP:-127.0.0.1}:9020:9020
- ${DOCKER_PUBLISH_IP}:${COORDINATOR_PORT}:${COORDINATOR_PORT}
env_file:
- .env
environment:
<<: *worker-env
PLATFORM_SECRET: $COORDINATOR_SECRET
PLATFORM_SECRET: ${COORDINATOR_SECRET}

electric:
image: electricsql/electric:${ELECTRIC_IMAGE_TAG:-latest}
image: electricsql/electric:${ELECTRIC_IMAGE_TAG}
container_name: trigger-electric
restart: ${RESTART_POLICY:-unless-stopped}
restart: ${RESTART_POLICY}
environment:
DATABASE_URL: ${DATABASE_URL}?sslmode=disable
networks:
- webapp
depends_on:
- postgres
ports:
- ${DOCKER_PUBLISH_IP:-127.0.0.1}:3061:3000
- ${DOCKER_PUBLISH_IP}:3061:3000
55 changes: 55 additions & 0 deletions deploy/trigger-stack/export-config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
//@ts-ignore
import { config } from "@eda/config";

const envVars = {
// Core settings
PORT: config.ports.trigger,
REMIX_APP_PORT: config.ports.remix,
NODE_ENV: "production",
RUNTIME_PLATFORM: "docker-compose",
V3_ENABLED: config.services.trigger.v3_enabled,

// Database settings
POSTGRES_USER: config.databases.trigger_postgres.user,
POSTGRES_PASSWORD: config.databases.trigger_postgres.password,
POSTGRES_DB: config.databases.trigger_postgres.database,
DATABASE_HOST: "postgres:5432",
DATABASE_URL: `postgresql://${config.databases.trigger_postgres.user}:${config.databases.trigger_postgres.password}@postgres:5432/${config.databases.trigger_postgres.database}`,
DIRECT_URL: `postgresql://${config.databases.trigger_postgres.user}:${config.databases.trigger_postgres.password}@postgres:5432/${config.databases.trigger_postgres.database}`, // Add this line

// Add database ports
POSTGRES_PORT: config.ports.db.postgres,
REDIS_PORT: config.ports.db.redis,

// Redis settings
REDIS_HOST: "redis",
REDIS_TLS_DISABLED: config.databases.redis.tls_disabled,

// Auth settings
MAGIC_LINK_SECRET: config.services.trigger.auth.magic_link_secret,
SESSION_SECRET: config.services.trigger.auth.session_secret,
ENCRYPTION_KEY: config.services.trigger.auth.encryption_key,
PROVIDER_SECRET: config.services.trigger.auth.provider_secret,
COORDINATOR_SECRET: config.services.trigger.auth.coordinator_secret,

// Hardcoded values (not in config)
INTERNAL_OTEL_TRACE_DISABLED: "1",
INTERNAL_OTEL_TRACE_LOGGING_ENABLED: "0",
RESTART_POLICY: "unless-stopped",
TRIGGER_IMAGE_TAG: "v3",
POSTGRES_IMAGE_TAG: "16",
REDIS_IMAGE_TAG: "7",
ELECTRIC_IMAGE_TAG: "latest",
DOCKER_PUBLISH_IP: "127.0.0.1",
TRIGGER_PROTOCOL: "http",
TRIGGER_DOMAIN: `localhost:${config.ports.trigger}`,

// Worker settings
HTTP_SERVER_PORT: config.services.trigger.deployment.worker.http_port,
COORDINATOR_HOST: config.services.trigger.deployment.worker.coordinator_host,
COORDINATOR_PORT: config.services.trigger.deployment.worker.coordinator_port,
};

for (const [key, value] of Object.entries(envVars)) {
console.log(`${key}=${value}`);
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"dev:docs": "turbo dev --filter=@eda/docs",
"build:landingpage": "turbo build --filter=@eda/landingpage",
"clean:workspaces": "turbo clean",
"deploy:trigger": "docker compose -f deploy/trigger-stack/docker-compose.yml up -d",
"deploy:trigger": "cd deploy/trigger-stack && chmod +x deploy.sh && ./deploy.sh",
"deploy:langtrace": "docker compose -f deploy/langtrace-stack/docker-compose.yml up -d",
"deploy:neo4j": "docker compose -f deploy/neo4j-stack/docker-compose.yml up -d",
"status": "bun status",
Expand Down

0 comments on commit ff86fea

Please sign in to comment.