Files
templates/blueprints/colanode/docker-compose.yml
Mert Doğruca abc24825f0 [Colanode] Wrong env names (#204)
* Update docker-compose.yml

* Update docker-compose.yml
2025-07-05 00:48:54 -06:00

134 lines
4.9 KiB
YAML

services:
postgres:
image: pgvector/pgvector:pg17
restart: always
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
volumes:
- postgres_data:/var/lib/postgresql/data
valkey:
image: valkey/valkey:8.1
restart: always
command: ["valkey-server", "--requirepass", "${VALKEY_PASSWORD}"]
volumes:
- valkey_data:/data
minio:
image: minio/minio:RELEASE.2025-04-08T15-41-24Z
restart: always
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
MINIO_BROWSER: "on"
MINIO_DOMAIN: minio
MINIO_ADDRESS: ":9000"
MINIO_CONSOLE_ADDRESS: ":9001"
volumes:
- minio_data:/data
entrypoint: sh
command: -c 'mkdir -p /data/colanode-avatars /data/colanode-files && minio server /data --address ":9000" --console-address ":9001"'
server:
image: ghcr.io/colanode/server:latest
restart: always
depends_on:
- postgres
- valkey
- minio
environment:
# ---------------------------------------------------------------
# General Node/Server Config
# ---------------------------------------------------------------
NODE_ENV: production
PORT: 3000
# The server requires a name and avatar URL which will be displayed in the desktop app login screen.
SERVER_NAME: ${SERVER_NAME}
SERVER_AVATAR: ${SERVER_AVATAR}
# Possible values for SERVER_MODE: 'standalone', 'cluster'
SERVER_MODE: "standalone"
# ---------------------------------------------------------------
# Account Configuration
# ---------------------------------------------------------------
# Possible values for ACCOUNT_VERIFICATION_TYPE: 'automatic', 'manual', 'email'
ACCOUNT_VERIFICATION_TYPE: "automatic"
ACCOUNT_OTP_TIMEOUT: "600" # in seconds
ACCOUNT_ALLOW_GOOGLE_LOGIN: "false"
# ---------------------------------------------------------------
# User Configuration
# ---------------------------------------------------------------
USER_STORAGE_LIMIT: "10737418240" # 10 GB
USER_MAX_FILE_SIZE: "104857600" # 100 MB
# ---------------------------------------------------------------
# PostgreSQL Configuration
# ---------------------------------------------------------------
# The server expects a PostgreSQL database with the pgvector extension installed.
POSTGRES_URL: "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}"
# Optional variables for SSL connection to the database
# POSTGRES_SSL_REJECT_UNAUTHORIZED: 'false'
# POSTGRES_SSL_CA: ''
# POSTGRES_SSL_KEY: ''
# POSTGRES_SSL_CERT: ''
# ---------------------------------------------------------------
# Redis Configuration
# ---------------------------------------------------------------
REDIS_URL: "redis://:${VALKEY_PASSWORD}@valkey:6379/0"
REDIS_DB: "0"
# Optional variables:
REDIS_JOBS_QUEUE_NAME: "jobs"
REDIS_JOBS_QUEUE_PREFIX: "colanode"
REDIS_EVENTS_CHANNEL: "events"
# ---------------------------------------------------------------
# S3 Configuration for Avatars
# ---------------------------------------------------------------
S3_AVATARS_ENDPOINT: "http://minio:9000"
S3_AVATARS_ACCESS_KEY: ${MINIO_ROOT_USER}
S3_AVATARS_SECRET_KEY: ${MINIO_ROOT_PASSWORD}
S3_AVATARS_BUCKET_NAME: "colanode-avatars"
S3_AVATARS_REGION: "us-east-1"
S3_AVATARS_FORCE_PATH_STYLE: "true"
# ---------------------------------------------------------------
# S3 Configuration for Files
# ---------------------------------------------------------------
STORAGE_S3_ENDPOINT: "http://minio:9000"
STORAGE_S3_ACCESS_KEY: ${MINIO_ROOT_USER}
STORAGE_S3_SECRET_KEY: ${MINIO_ROOT_PASSWORD}
STORAGE_S3_BUCKET: "colanode-files"
STORAGE_S3_REGION: "us-east-1"
STORAGE_S3_FORCE_PATH_STYLE: "true"
# ---------------------------------------------------------------
# SMTP configuration
# ---------------------------------------------------------------
SMTP_ENABLED: ${SMTP_ENABLED}
SMTP_HOST: ${SMTP_HOST}
SMTP_PORT: ${SMTP_PORT}
SMTP_USER: ${SMTP_USER}
SMTP_PASSWORD: ${SMTP_PASSWORD}
SMTP_EMAIL_FROM: ${SMTP_EMAIL_FROM}
SMTP_EMAIL_FROM_NAME: ${SMTP_EMAIL_FROM_NAME}
# ---------------------------------------------------------------
# AI Configuration
# ---------------------------------------------------------------
# The AI integration is in experimental mode yet and we don't
# recommend using it.
# ---------------------------------------------------------------
AI_ENABLED: "false"
# ---------------------------------------------------------------
volumes:
postgres_data:
valkey_data:
minio_data: