-
Notifications
You must be signed in to change notification settings - Fork 40
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
113 lines (99 loc) · 4.54 KB
/
docker-compose.yml
File metadata and controls
113 lines (99 loc) · 4.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# =============================================================================
# Raytha CMS - Docker Compose Configuration
# =============================================================================
# Quick Start:
# 1. Copy .env.example to .env and configure as needed
# 2. Run: docker-compose --env-file .env up
# 3. Open: http://localhost:5001
#
# For all configuration options, see .env.example
# =============================================================================
services:
# ---------------------------------------------------------------------------
# Raytha Application
# ---------------------------------------------------------------------------
app:
build: .
image: raytha
container_name: raytha-app
restart: unless-stopped
ports:
- "5001:8080"
volumes:
- raytha_user_uploads:/app/user-uploads
environment:
# Database (required)
- ConnectionStrings__DefaultConnection=${ConnectionStrings__DefaultConnection:-Host=db;Port=5432;Username=postgres;Password=changeme;Database=raytha}
# Environment mode (Development disables HTTPS enforcement)
- ASPNETCORE_ENVIRONMENT=${ASPNETCORE_ENVIRONMENT:-Development}
# Auto-apply database migrations on startup
- APPLY_PENDING_MIGRATIONS=${APPLY_PENDING_MIGRATIONS:-true}
# Path base (optional - for running at a subpath like /mywebsite)
- PATHBASE=${PATHBASE:-}
# SMTP settings (optional - for email functionality)
- SMTP_HOST=${SMTP_HOST:-}
- SMTP_PORT=${SMTP_PORT:-}
- SMTP_USERNAME=${SMTP_USERNAME:-}
- SMTP_PASSWORD=${SMTP_PASSWORD:-}
- SMTP_FROM_NAME=${SMTP_FROM_NAME:-}
- SMTP_FROM_ADDRESS=${SMTP_FROM_ADDRESS:-}
# File storage settings
- FILE_STORAGE_PROVIDER=${FILE_STORAGE_PROVIDER:-Local}
- FILE_STORAGE_MAX_FILE_SIZE=${FILE_STORAGE_MAX_FILE_SIZE:-20000000}
- FILE_STORAGE_MAX_TOTAL_DISK_SPACE=${FILE_STORAGE_MAX_TOTAL_DISK_SPACE:-1000000000}
- FILE_STORAGE_ALLOWED_MIMETYPES=${FILE_STORAGE_ALLOWED_MIMETYPES:-text/*,image/*,video/*,audio/*,application/pdf}
- FILE_STORAGE_USE_DIRECT_UPLOAD_TO_CLOUD=${FILE_STORAGE_USE_DIRECT_UPLOAD_TO_CLOUD:-true}
- FILE_STORAGE_LOCAL_DIRECTORY=${FILE_STORAGE_LOCAL_DIRECTORY:-user-uploads}
# Azure Blob storage (if FILE_STORAGE_PROVIDER=AzureBlob)
- FILE_STORAGE_AZUREBLOB_CONNECTION_STRING=${FILE_STORAGE_AZUREBLOB_CONNECTION_STRING:-}
- FILE_STORAGE_AZUREBLOB_CONTAINER=${FILE_STORAGE_AZUREBLOB_CONTAINER:-}
- FILE_STORAGE_AZUREBLOB_CUSTOM_DOMAIN=${FILE_STORAGE_AZUREBLOB_CUSTOM_DOMAIN:-}
# S3 storage (if FILE_STORAGE_PROVIDER=S3)
- FILE_STORAGE_S3_ACCESS_KEY=${FILE_STORAGE_S3_ACCESS_KEY:-}
- FILE_STORAGE_S3_SECRET_KEY=${FILE_STORAGE_S3_SECRET_KEY:-}
- FILE_STORAGE_S3_BUCKET=${FILE_STORAGE_S3_BUCKET:-}
- FILE_STORAGE_S3_SERVICE_URL=${FILE_STORAGE_S3_SERVICE_URL:-}
- FILE_STORAGE_S3_REGION=${FILE_STORAGE_S3_REGION:-us-east-1}
# Database and worker limits
- DATABASE_MAX_SIZE=${DATABASE_MAX_SIZE:-1000000000}
- NUM_BACKGROUND_WORKERS=${NUM_BACKGROUND_WORKERS:-4}
# Raytha Functions
- RAYTHA_FUNCTIONS_MAX_ACTIVE=${RAYTHA_FUNCTIONS_MAX_ACTIVE:-5}
- RAYTHA_FUNCTIONS_TIMEOUT=${RAYTHA_FUNCTIONS_TIMEOUT:-10000}
- RAYTHA_FUNCTIONS_QUEUE_TIMEOUT=${RAYTHA_FUNCTIONS_QUEUE_TIMEOUT:-10000}
# Security settings
- ENFORCE_HTTPS=${ENFORCE_HTTPS:-true}
- ALLOW_INTERNAL_URL_IMPORTS=${ALLOW_INTERNAL_URL_IMPORTS:-false}
# Maintenance mode (optional - redirects all traffic)
- REDIRECT_WEBSITE=${REDIRECT_WEBSITE:-}
depends_on:
db:
condition: service_healthy
# ---------------------------------------------------------------------------
# PostgreSQL Database
# ---------------------------------------------------------------------------
db:
image: postgres:17
container_name: raytha-db
restart: unless-stopped
ports:
- "5433:5432"
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: changeme
POSTGRES_DB: raytha
volumes:
- raytha_pg_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 5
# =============================================================================
# Volumes
# =============================================================================
volumes:
raytha_pg_data:
name: raytha_pg_data
raytha_user_uploads:
name: raytha_user_uploads