150 lines
4.9 KiB
YAML
Executable File
150 lines
4.9 KiB
YAML
Executable File
version: '3.8'
|
|
|
|
services:
|
|
# PostgreSQL Database
|
|
db:
|
|
image: docker.io/postgres:15-alpine
|
|
container_name: baserow-postgres
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: baserow
|
|
POSTGRES_USER: baserow
|
|
POSTGRES_PASSWORD: ${DATABASE_PASSWORD:-changeme_secure_postgres_password}
|
|
volumes:
|
|
- /mnt/flash1/podman/base/data/postgres:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U baserow"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
networks:
|
|
- baserow-network
|
|
|
|
# Redis Cache
|
|
redis:
|
|
image: docker.io/redis:7-alpine
|
|
container_name: baserow-redis
|
|
restart: unless-stopped
|
|
command: redis-server --requirepass ${REDIS_PASSWORD:-changeme_secure_redis_password}
|
|
volumes:
|
|
- /mnt/flash1/podman/base/data/redis:/data
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "--no-auth-warning", "-a", "${REDIS_PASSWORD:-changeme_secure_redis_password}", "ping"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
networks:
|
|
- baserow-network
|
|
|
|
# Baserow Application (All-in-One)
|
|
baserow:
|
|
image: docker.io/baserow/baserow:latest
|
|
container_name: baserow
|
|
restart: unless-stopped
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
ports:
|
|
- "8079:80" # HTTP
|
|
environment:
|
|
# Database Configuration
|
|
DATABASE_HOST: db
|
|
DATABASE_NAME: baserow
|
|
DATABASE_USER: baserow
|
|
DATABASE_PASSWORD: ${DATABASE_PASSWORD:-changeme_secure_postgres_password}
|
|
DATABASE_PORT: 5432
|
|
|
|
# Redis Configuration
|
|
REDIS_HOST: redis
|
|
REDIS_PASSWORD: ${REDIS_PASSWORD:-changeme_secure_redis_password}
|
|
REDIS_PORT: 6379
|
|
REDIS_PROTOCOL: redis
|
|
|
|
# Baserow Configuration
|
|
BASEROW_PUBLIC_URL: ${BASEROW_PUBLIC_URL:-http://localhost}
|
|
SECRET_KEY: ${SECRET_KEY:-changeme_secret_key_minimum_50_characters_long}
|
|
|
|
# # Email Configuration (optional - for invitations and notifications)
|
|
# EMAIL_SMTP: ${EMAIL_SMTP:-False}
|
|
# EMAIL_SMTP_HOST: ${EMAIL_SMTP_HOST:-}
|
|
# EMAIL_SMTP_PORT: ${EMAIL_SMTP_PORT:-587}
|
|
# EMAIL_SMTP_USER: ${EMAIL_SMTP_USER:-}
|
|
# EMAIL_SMTP_PASSWORD: ${EMAIL_SMTP_PASSWORD:-}
|
|
# EMAIL_SMTP_USE_TLS: ${EMAIL_SMTP_USE_TLS:-True}
|
|
# FROM_EMAIL: ${FROM_EMAIL:-noreply@baserow.io}
|
|
|
|
# File Upload Configuration
|
|
# Use S3-compatible storage (optional - MinIO, AWS S3, etc.)
|
|
# AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:-}
|
|
# AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY:-}
|
|
# AWS_STORAGE_BUCKET_NAME: ${AWS_STORAGE_BUCKET_NAME:-baserow}
|
|
# AWS_S3_REGION_NAME: ${AWS_S3_REGION_NAME:-us-east-1}
|
|
# AWS_S3_ENDPOINT_URL: ${AWS_S3_ENDPOINT_URL:-} # For MinIO: http://minio:9000
|
|
|
|
# Advanced Configuration
|
|
BASEROW_AMOUNT_OF_WORKERS: ${BASEROW_AMOUNT_OF_WORKERS:-1}
|
|
BASEROW_CELERY_BEAT_DEBUG_LEVEL: ${BASEROW_CELERY_BEAT_DEBUG_LEVEL:-INFO}
|
|
BASEROW_BACKEND_DEBUG: ${BASEROW_BACKEND_DEBUG:-False}
|
|
|
|
# Feature Flags
|
|
BASEROW_ENABLE_SECURE_PROXY_SSL_HEADER: ${BASEROW_ENABLE_SECURE_PROXY_SSL_HEADER:-False}
|
|
BASEROW_TRIGGER_SYNC_TEMPLATES_AFTER_MIGRATION: ${BASEROW_TRIGGER_SYNC_TEMPLATES_AFTER_MIGRATION:-True}
|
|
|
|
# Webhooks and API
|
|
BASEROW_WEBHOOKS_MAX_CONSECUTIVE_TRIGGER_FAILURES: ${BASEROW_WEBHOOKS_MAX_CONSECUTIVE_TRIGGER_FAILURES:-8}
|
|
BASEROW_WEBHOOKS_MAX_RETRIES_PER_CALL: ${BASEROW_WEBHOOKS_MAX_RETRIES_PER_CALL:-8}
|
|
BASEROW_WEBHOOKS_REQUEST_TIMEOUT_SECONDS: ${BASEROW_WEBHOOKS_REQUEST_TIMEOUT_SECONDS:-5}
|
|
|
|
# Performance Tuning
|
|
BASEROW_MAX_ROW_REPORT_ERROR_COUNT: ${BASEROW_MAX_ROW_REPORT_ERROR_COUNT:-30}
|
|
BASEROW_INITIAL_TABLE_DATA_LIMIT: ${BASEROW_INITIAL_TABLE_DATA_LIMIT:-}
|
|
|
|
volumes:
|
|
- /mnt/flash1/podman/base/data/baserow:/baserow/data
|
|
networks:
|
|
- baserow-network
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost/api/health/"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
# MinIO S3-compatible storage (optional but recommended for production)
|
|
# Uncomment this section if you want to use MinIO for file storage
|
|
# minio:
|
|
# image: minio/minio:latest
|
|
# container_name: baserow-minio
|
|
# restart: unless-stopped
|
|
# command: server /data --console-address ":9001"
|
|
# environment:
|
|
# MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin}
|
|
# MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-changeme_minio_password}
|
|
# volumes:
|
|
# - minio_data:/data
|
|
# ports:
|
|
# - "9000:9000" # S3 API
|
|
# - "9001:9001" # MinIO Console
|
|
# healthcheck:
|
|
# test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
|
|
# interval: 30s
|
|
# timeout: 20s
|
|
# retries: 3
|
|
# networks:
|
|
# - baserow-network
|
|
|
|
volumes:
|
|
postgres_data:
|
|
driver: local
|
|
redis_data:
|
|
driver: local
|
|
baserow_data:
|
|
driver: local
|
|
# minio_data:
|
|
# driver: local
|
|
|
|
networks:
|
|
baserow-network:
|
|
driver: bridge
|