a new start

This commit is contained in:
2025-10-25 13:52:01 +02:00
commit a371a33682
10 changed files with 380 additions and 0 deletions

49
core/compose.yaml Normal file
View File

@@ -0,0 +1,49 @@
services:
# PostgreSQL - Central Database
postgres:
image: ${CORE_POSTGRES_IMAGE:-postgres:16-alpine}
container_name: ${CORE_COMPOSE_PROJECT_NAME}_postgres
restart: unless-stopped
environment:
TZ: ${TIMEZONE:-Europe/Amsterdam}
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
# Performance tuning
POSTGRES_MAX_CONNECTIONS: ${CORE_POSTGRES_MAX_CONNECTIONS:-100}
POSTGRES_SHARED_BUFFERS: ${CORE_POSTGRES_SHARED_BUFFERS:-256MB}
volumes:
- postgres_data:/var/lib/postgresql/data
- ./postgres/init:/docker-entrypoint-initdb.d:ro
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER}"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
networks:
- compose_network
redis:
image: ${CORE_REDIS_IMAGE:-redis:7-alpine}
container_name: ${CORE_COMPOSE_PROJECT_NAME}_redis
restart: unless-stopped
environment:
TZ: ${TIMEZONE:-Europe/Amsterdam}
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "--raw", "incr", "ping"]
interval: 30s
timeout: 10s
retries: 3
start_period: 20s
networks:
- compose_network
volumes:
postgres_data:
name: ${CORE_COMPOSE_PROJECT_NAME}_postgres_data
redis_data:
name: ${CORE_COMPOSE_PROJECT_NAME}_redis_data

View File

@@ -0,0 +1,38 @@
#!/bin/bash
set -e
# PostgreSQL initialization script for compose core stack
# This script runs on first database initialization
# Creates all databases required by compose.sh stacks
echo "Starting compose database initialization..."
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
-- Create databases for compose services
-- Main application database
SELECT 'CREATE DATABASE directus'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'directus')\gexec
-- n8n workflow database
SELECT 'CREATE DATABASE umami'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'umami')\gexec
-- Grant privileges to all databases
GRANT ALL PRIVILEGES ON DATABASE directus TO $POSTGRES_USER;
GRANT ALL PRIVILEGES ON DATABASE umami TO $POSTGRES_USER;
-- Log success
SELECT 'Compose databases initialized:' AS status;
SELECT datname FROM pg_database
WHERE datname IN ('directus', 'umami')
ORDER BY datname;
EOSQL
echo ""
echo "✓ PostgreSQL initialization completed"
echo "✓ All compose databases created successfully"
echo ""
echo "Databases available:"
echo " • directus - Sexy application database"
echo " • umami - Tracking database"
echo ""