Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 39 additions & 5 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,21 +1,55 @@
# PostgreSQL Configuration
# =============================
# Development Environment
# =============================
# PostgreSQL (development)
POSTGRES_USER=temporal
POSTGRES_PASSWORD=temporal
POSTGRES_DB=temporal
POSTGRES_PORT=5432
POSTGRES_DB_N8N=n8n
POSTGRES_USER_N8N=n8n
POSTGRES_PASSWORD_N8N=n8n_password
POSTGRES_DB_TEMPORAL=temporal
POSTGRES_USER_TEMPORAL=temporal
POSTGRES_PASSWORD_TEMPORAL=temporal

# n8n Configuration
# n8n (development)
N8N_WEBHOOK_URL=http://localhost:5678/
N8N_ENCRYPTION_KEY=a_random_string_for_encryption
N8N_PORT=5678

# OpenSearch Configuration
# OpenSearch (development)
DISABLE_SECURITY_PLUGIN=true
OPENSEARCH_PORT=9200

# Temporal Configuration
# Temporal (development)
TEMPORAL_PORT=7233
TEMPORAL_UI_PORT=8080

# GitHub MCP Server configuration
# GitHub MCP Server (development)
GITHUB_PERSONAL_ACCESS_TOKEN=github_access_token

# =============================
# Production Environment
# =============================
# n8n (production)
N8N_WEBHOOK_URL=
N8N_ENCRYPTION_KEY=
N8N_HOST=
POSTGRES_HOST=
POSTGRES_PORT=5432
POSTGRES_DB_N8N=
POSTGRES_USER_N8N=
POSTGRES_PASSWORD_N8N=
Comment thread
anatolyshipitz marked this conversation as resolved.

# opensearch (production)
OPENSEARCH_PORT=9200

# temporal (production)
TEMPORAL_PORT=7233

# temporal-ui (production)
TEMPORAL_UI_PORT=8080
POSTGRES_DB_TEMPORAL=
POSTGRES_USER_TEMPORAL=
POSTGRES_PASSWORD_TEMPORAL=
22 changes: 11 additions & 11 deletions docker-compose.prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,16 @@ services:
- WEBHOOK_URL=${N8N_WEBHOOK_URL:?N8N_WEBHOOK_URL is required}
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY:?N8N_ENCRYPTION_KEY is required}
- N8N_HOST=n8n.speedandfunction.com
- DB_POSTGRESDB_HOST=${POSTGRES_HOST:?POSTGRES_HOST is required}
- DB_POSTGRESDB_PORT=${POSTGRES_PORT:-5432}
- DB_POSTGRESDB_DATABASE=${POSTGRES_DB_N8N:?POSTGRES_DB_N8N is required}
- DB_POSTGRESDB_USER=${POSTGRES_USER_N8N:?POSTGRES_USER_N8N is required}
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD_N8N:?POSTGRES_PASSWORD_N8N is required}
Comment thread
anatolyshipitz marked this conversation as resolved.
opensearch:
environment:
- OPENSEARCH_PORT=${OPENSEARCH_PORT:?OPENSEARCH_PORT is required}

postgresql:
environment:
- POSTGRES_USER=${POSTGRES_USER:?POSTGRES_USER is required}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required}
- POSTGRES_DB=${POSTGRES_DB:?POSTGRES_DB is required}
postgresql: !reset null

temporal:
environment:
Expand All @@ -21,6 +22,11 @@ services:
temporal-ui:
environment:
- TEMPORAL_UI_PORT=${TEMPORAL_UI_PORT:?TEMPORAL_UI_PORT is required}
- POSTGRES_SEEDS=${POSTGRES_HOST:?POSTGRES_HOST is required}
- DB_PORT=${POSTGRES_PORT:-5432}
- DBNAME=${POSTGRES_DB_TEMPORAL:?POSTGRES_DB_TEMPORAL is required}
- POSTGRES_USER=${POSTGRES_USER_TEMPORAL:?POSTGRES_USER_TEMPORAL is required}
- POSTGRES_PWD=${POSTGRES_PASSWORD_TEMPORAL:?POSTGRES_PASSWORD_TEMPORAL is required}
Comment thread
anatolyshipitz marked this conversation as resolved.

volumes:
n8n_data:
Expand All @@ -35,9 +41,3 @@ volumes:
type: none
o: bind
device: /data/opensearch
postgresql-data:
driver: local
driver_opts:
type: none
o: bind
device: /data/postgresql
48 changes: 31 additions & 17 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ services:
restart: unless-stopped
ports:
- "${N8N_PORT:-5678}:5678"
depends_on:
postgresql:
condition: service_healthy
environment:
- WEBHOOK_URL=${N8N_WEBHOOK_URL:-http://localhost:5678/}
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY:-a_random_string_for_encryption}
Expand All @@ -18,6 +21,14 @@ services:
- N8N_METRICS=true
- N8N_HEALTH_CHECK_ENDPOINT=true
- N8N_EXPRESS_TRUST_PROXY=true
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgresql
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=${POSTGRES_DB_N8N:-n8n}
- DB_POSTGRESDB_USER=${POSTGRES_USER_N8N:-n8n}
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD_N8N:-n8n_password}
- N8N_LOG_LEVEL=debug
- N8N_LOG_OUTPUT=console
volumes:
- n8n_data:/home/node/.n8n
networks:
Expand Down Expand Up @@ -60,18 +71,23 @@ services:
image: postgres:14
restart: unless-stopped
environment:
POSTGRES_USER: ${POSTGRES_USER:-temporal}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-temporal}
POSTGRES_DB: ${POSTGRES_DB:-temporal}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
POSTGRES_DB_N8N: ${POSTGRES_DB_N8N:-n8n}
POSTGRES_USER_N8N: ${POSTGRES_USER_N8N:-n8n}
POSTGRES_PASSWORD_N8N: ${POSTGRES_PASSWORD_N8N:-n8n_password}
POSTGRES_DB_TEMPORAL: ${POSTGRES_DB_TEMPORAL:-temporal}
POSTGRES_USER_TEMPORAL: ${POSTGRES_USER_TEMPORAL:-temporal}
POSTGRES_PASSWORD_TEMPORAL: ${POSTGRES_PASSWORD_TEMPORAL:-temporal}
ports:
- ${POSTGRES_PORT:-5432}:5432
volumes:
- postgresql-data:/var/lib/postgresql/data
- ./scripts/init-db.sh:/docker-entrypoint-initdb.d/init-db.sh
networks:
- app-network
user: postgres
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-temporal}"]
test: ["CMD-SHELL", "psql -U ${POSTGRES_USER_N8N:-n8n} -d postgres -tAc \"SELECT 1 FROM pg_database WHERE datname='${POSTGRES_DB_N8N:-n8n}'\" | grep -q 1 && psql -U ${POSTGRES_USER_TEMPORAL:-temporal} -d postgres -tAc \"SELECT 1 FROM pg_database WHERE datname='${POSTGRES_DB_TEMPORAL:-temporal}'\" | grep -q 1"]
interval: 5s
timeout: 5s
retries: 5
Expand All @@ -92,19 +108,17 @@ services:
opensearch:
condition: service_healthy
environment:
- TEMPORAL_PORT=${TEMPORAL_PORT:-7233}
- DB_PORT=${POSTGRES_PORT:-5432}
- POSTGRES_USER=${POSTGRES_USER:-temporal}
- POSTGRES_PWD=${POSTGRES_PASSWORD:-temporal}
- ES_SEEDS=opensearch
- ES_VERSION=v7
- DB=postgresql
- DB_PORT=${POSTGRES_PORT}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PWD=${POSTGRES_PASSWORD}
- POSTGRES_SEEDS=postgresql
- ENABLE_ES=true
- HOST=temporal
TEMPORAL_PORT: ${TEMPORAL_PORT:-7233}
POSTGRES_SEEDS: postgresql
DB_PORT: ${POSTGRES_PORT:-5432}
DBNAME: ${POSTGRES_DB_TEMPORAL:-temporal}
POSTGRES_USER: ${POSTGRES_USER_TEMPORAL:-temporal}
POSTGRES_PWD: ${POSTGRES_PASSWORD_TEMPORAL:-temporal}
ES_SEEDS: opensearch
ES_VERSION: v7
DB: postgresql
ENABLE_ES: "true"
HOST: temporal
ports:
Comment thread
anatolyshipitz marked this conversation as resolved.
- "${TEMPORAL_PORT:-7233}:7233"
networks:
Expand Down
12 changes: 12 additions & 0 deletions scripts/init-db.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/bash
set -e

psql -v ON_ERROR_STOP=1 --username "postgres" <<-EOSQL
CREATE USER "$POSTGRES_USER_N8N" WITH ENCRYPTED PASSWORD '$POSTGRES_PASSWORD_N8N';
CREATE DATABASE "$POSTGRES_DB_N8N" OWNER "$POSTGRES_USER_N8N";
GRANT ALL PRIVILEGES ON DATABASE "$POSTGRES_DB_N8N" TO "$POSTGRES_USER_N8N";

CREATE USER "$POSTGRES_USER_TEMPORAL" WITH ENCRYPTED PASSWORD '$POSTGRES_PASSWORD_TEMPORAL';
CREATE DATABASE "$POSTGRES_DB_TEMPORAL" OWNER "$POSTGRES_USER_TEMPORAL";
GRANT ALL PRIVILEGES ON DATABASE "$POSTGRES_DB_TEMPORAL" TO "$POSTGRES_USER_TEMPORAL";
EOSQL