Adding comprehensive comments
This commit is contained in:
@@ -1,58 +1,94 @@
|
||||
# OpenGist with MariaDB Configuration
|
||||
services:
|
||||
# MariaDB Database Service
|
||||
opengist_db:
|
||||
# Basic container configuration
|
||||
container_name: opengist_db
|
||||
image: docker.io/library/mariadb:11.8.2
|
||||
restart: unless-stopped
|
||||
|
||||
# Database performance tuning
|
||||
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed
|
||||
|
||||
# Database credentials
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||
- MYSQL_USER=${MYSQL_USER}
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
||||
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} # Root password
|
||||
- MYSQL_USER=${MYSQL_USER} # Application username
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD} # Application password
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE} # Database name
|
||||
|
||||
# Persistent storage configuration
|
||||
volumes:
|
||||
- ${APPDATA_PATH}/opengist/db:/var/lib/mysql
|
||||
- ${APPDATA_PATH}/opengist/db:/var/lib/mysql # Database files
|
||||
|
||||
# Network configuration
|
||||
ports:
|
||||
- ${DB_PORT}:3306
|
||||
- ${DB_PORT}:3306 # MariaDB port
|
||||
networks:
|
||||
- backend
|
||||
- backend # Connects to backend network
|
||||
|
||||
# Health monitoring
|
||||
healthcheck:
|
||||
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 10s
|
||||
interval: 10s # Check frequency
|
||||
timeout: 5s # Timeout duration
|
||||
retries: 3 # Retry attempts
|
||||
start_period: 10s # Initial delay
|
||||
|
||||
# OpenGist Application Service
|
||||
opengist_server:
|
||||
# Basic container configuration
|
||||
container_name: opengist_server
|
||||
image: ghcr.io/thomiceli/opengist:1.10.0
|
||||
restart: unless-stopped
|
||||
|
||||
# Service dependencies
|
||||
depends_on:
|
||||
opengist_db:
|
||||
condition: service_healthy
|
||||
condition: service_healthy # Wait for healthy database
|
||||
|
||||
# Runtime configuration
|
||||
environment:
|
||||
- UID=${UID}
|
||||
- GID=${GID}
|
||||
- OG_DB_URI=mysql://${MYSQL_USER}:${MYSQL_PASSWORD}@opengist_db:3306/${MYSQL_DATABASE}
|
||||
- OG_EXTERNAL_URL=${OG_EXTERNAL_URL}
|
||||
- OG_SECRET_KEY=${OG_SECRET_KEY}
|
||||
- OG_HTTP_GIT_ENABLED=${OG_HTTP_GIT_ENABLED}
|
||||
- OG_SSH_GIT_ENABLED=${OG_SSH_GIT_ENABLED}
|
||||
- OG_GITEA_CLIENT_KEY=${OG_GITEA_CLIENT_KEY}
|
||||
- OG_GITEA_SECRET=${OG_GITEA_SECRET}
|
||||
- OG_GITEA_URL=${OG_GITEA_URL}
|
||||
- OG_GITEA_NAME=${OG_GITEA_NAME}
|
||||
- OG_CUSTOM_STATIC_LINK_0_NAME=${OG_CUSTOM_STATIC_LINK_0_NAME}
|
||||
- OG_CUSTOM_STATIC_LINK_0_PATH=${OG_CUSTOM_STATIC_LINK_0_PATH}
|
||||
# User and group IDs for file permissions
|
||||
- UID=${UID} # User ID for file permissions
|
||||
- GID=${GID} # Group ID for file permissions
|
||||
|
||||
# Database connection
|
||||
- OG_DB_URI=mysql://${MYSQL_USER}:${MYSQL_PASSWORD}@opengist_db:3306/${MYSQL_DATABASE} # MariaDB connection string
|
||||
|
||||
# Application settings
|
||||
- OG_EXTERNAL_URL=${OG_EXTERNAL_URL} # Public URL for OpenGist
|
||||
- OG_SECRET_KEY=${OG_SECRET_KEY} # Encryption key for sessions
|
||||
|
||||
# Git protocol configuration
|
||||
- OG_HTTP_GIT_ENABLED=${OG_HTTP_GIT_ENABLED} # Enable HTTP Git access
|
||||
- OG_SSH_GIT_ENABLED=${OG_SSH_GIT_ENABLED} # Enable SSH Git access
|
||||
|
||||
# Gitea integration
|
||||
- OG_GITEA_CLIENT_KEY=${OG_GITEA_CLIENT_KEY} # OAuth client key
|
||||
- OG_GITEA_SECRET=${OG_GITEA_SECRET} # OAuth secret
|
||||
- OG_GITEA_URL=${OG_GITEA_URL} # Gitea instance URL
|
||||
- OG_GITEA_NAME=${OG_GITEA_NAME} # Gitea application name
|
||||
|
||||
# Customization
|
||||
- OG_CUSTOM_STATIC_LINK_0_NAME=${OG_CUSTOM_STATIC_LINK_0_NAME} # Custom link name
|
||||
- OG_CUSTOM_STATIC_LINK_0_PATH=${OG_CUSTOM_STATIC_LINK_0_PATH} # Custom link path
|
||||
|
||||
# Persistent storage configuration
|
||||
volumes:
|
||||
- ${APPDATA_PATH}/opengist/data:/opengist
|
||||
|
||||
# Network configuration
|
||||
ports:
|
||||
- ${SERVER_PORT}:6157
|
||||
- ${SERVER_PORT}:6157 # Web interface port
|
||||
- 2222:2222 # SSH port for Git operations
|
||||
networks:
|
||||
- frontend
|
||||
- backend
|
||||
- frontend # Connects to frontend network
|
||||
- backend # Connects to backend network
|
||||
|
||||
# External network definitions
|
||||
networks:
|
||||
frontend:
|
||||
external: true
|
||||
external: true # Uses pre-existing network
|
||||
backend:
|
||||
external: true
|
||||
external: true # Uses pre-existing network
|
||||
|
Reference in New Issue
Block a user