Compare commits
14 Commits
0ce4723d79
...
9bc9facc7d
Author | SHA1 | Date | |
---|---|---|---|
|
9bc9facc7d | ||
49129a60b7 | |||
5bcb057d44 | |||
60edd88542 | |||
a1be0f3ae7 | |||
cfd78c5a00 | |||
d283ac7f05 | |||
3e3bf65459 | |||
c86d5d13aa | |||
3e219530e8 | |||
add41c8ee4 | |||
0af06e7078 | |||
685f5788df | |||
1fd2481b1d |
@@ -1,36 +0,0 @@
|
|||||||
# MinIO Object Storage Service Configuration
|
|
||||||
services:
|
|
||||||
minio:
|
|
||||||
# Basic container configuration
|
|
||||||
container_name: minio
|
|
||||||
image: docker.io/minio/minio:RELEASE.2025-04-22T22-12-26Z
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
# Runtime command and user permissions
|
|
||||||
command: server --console-address ":9001" /data
|
|
||||||
user: ${PUID}:${PGID}
|
|
||||||
|
|
||||||
# Environment variables for authentication and configuration
|
|
||||||
environment:
|
|
||||||
- MINIO_ROOT_USER=${MINIO_ROOT_USER} # Admin username
|
|
||||||
- MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD} # Admin password
|
|
||||||
- MINIO_SERVER_URL=${MINIO_SERVER_URL} # Server endpoint
|
|
||||||
- MINIO_BROWSER_REDIRECT_URL=${MINIO_BROWSER_REDIRECT_URL} # Console URL
|
|
||||||
|
|
||||||
# Persistent data storage
|
|
||||||
volumes:
|
|
||||||
- ${APPDATA_PATH}/minio/data:/data # Maps host directory to container
|
|
||||||
|
|
||||||
# Network ports (API:9000, Console:9001)
|
|
||||||
ports:
|
|
||||||
- ${API_PORT}:9000 # MinIO API port
|
|
||||||
- ${CONSOLE_PORT}:9001 # MinIO Console port
|
|
||||||
|
|
||||||
# Network configuration
|
|
||||||
networks:
|
|
||||||
- frontend # Connects to frontend network
|
|
||||||
|
|
||||||
# External network definition
|
|
||||||
networks:
|
|
||||||
frontend:
|
|
||||||
external: true # Uses pre-existing network
|
|
@@ -9,12 +9,3 @@ services:
|
|||||||
# Network port configuration
|
# Network port configuration
|
||||||
ports:
|
ports:
|
||||||
- ${PORT}:8080 # Maps host port to Adminer web interface
|
- ${PORT}:8080 # Maps host port to Adminer web interface
|
||||||
|
|
||||||
# Network configuration
|
|
||||||
networks:
|
|
||||||
- backend # Connects to backend network
|
|
||||||
|
|
||||||
# External network definition
|
|
||||||
networks:
|
|
||||||
backend:
|
|
||||||
external: true # Uses pre-existing backend network
|
|
||||||
|
@@ -1,19 +1,30 @@
|
|||||||
|
# Caddy with Cloudflare DDNS and CrowdSec Security
|
||||||
services:
|
services:
|
||||||
|
# CrowdSec - Security automation service that protects from attacks
|
||||||
crowdsec:
|
crowdsec:
|
||||||
image: ghcr.io/crowdsecurity/crowdsec:v1.6.10
|
|
||||||
container_name: crowdsec
|
container_name: crowdsec
|
||||||
|
image: ghcr.io/crowdsecurity/crowdsec:v1.6.10 # Official CrowdSec image
|
||||||
|
restart: unless-stopped # Auto-restart unless explicitly stopped
|
||||||
|
|
||||||
|
# Environment configuration
|
||||||
environment:
|
environment:
|
||||||
- BOUNCER_KEY_CADDY=${CROWDSEC_API_KEY}
|
- BOUNCER_KEY_CADDY=${CROWDSEC_API_KEY} # API key for Caddy integration
|
||||||
- GID=${GID}
|
- GID=${GID} # Group ID for file permissions
|
||||||
- COLLECTIONS=${COLLECTIONS}
|
- COLLECTIONS=${COLLECTIONS} # Security collections to enable
|
||||||
|
|
||||||
|
# Persistent storage volumes
|
||||||
volumes:
|
volumes:
|
||||||
- ${APPDATA_PATH}/caddy/crowdsec-acquis.d:/etc/crowdsec/acquis.d
|
- ${APPDATA_PATH}/caddy/crowdsec-acquis.d:/etc/crowdsec/acquis.d # Log parsers
|
||||||
- ${APPDATA_PATH}/caddy/crowdsec-db:/var/lib/crowdsec/data/
|
- ${APPDATA_PATH}/caddy/crowdsec-db:/var/lib/crowdsec/data/ # Security database
|
||||||
- ${APPDATA_PATH}/caddy/crowdsec-config:/etc/crowdsec/
|
- ${APPDATA_PATH}/caddy/crowdsec-config:/etc/crowdsec/ # Configuration files
|
||||||
- ${APPDATA_PATH}/caddy/caddy-logs:/var/log/caddy:ro
|
- ${APPDATA_PATH}/caddy/caddy-logs:/var/log/caddy:ro # Read-only log access
|
||||||
|
|
||||||
|
# Networks
|
||||||
networks:
|
networks:
|
||||||
- frontend
|
proxy:
|
||||||
restart: unless-stopped
|
ipv4_address: 172.30.0.3
|
||||||
|
|
||||||
|
# Health check configuration
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD-SHELL", "wget --spider --quiet --tries=1 --timeout=5 http://localhost:8080/health > /dev/null 2>&1 || exit 1"]
|
test: ["CMD-SHELL", "wget --spider --quiet --tries=1 --timeout=5 http://localhost:8080/health > /dev/null 2>&1 || exit 1"]
|
||||||
interval: 30s
|
interval: 30s
|
||||||
@@ -21,31 +32,50 @@ services:
|
|||||||
retries: 3
|
retries: 3
|
||||||
start_period: 30s
|
start_period: 30s
|
||||||
|
|
||||||
|
# Caddy web server with Cloudflare DDNS integration
|
||||||
caddy:
|
caddy:
|
||||||
image: docker.io/ryuupendragon/caddy-cloudflare-ddns-crowdsec:2.10.0
|
|
||||||
container_name: caddy
|
container_name: caddy
|
||||||
|
image: docker.io/ryuupendragon/caddy-cloudflare-ddns-crowdsec:2.10.0 # Custom Caddy image with Cloudflare, DDNS and CrowdSec plugins
|
||||||
|
restart: unless-stopped # Auto-restart on failure
|
||||||
|
|
||||||
|
# Service dependencies
|
||||||
depends_on:
|
depends_on:
|
||||||
crowdsec:
|
crowdsec:
|
||||||
condition: service_healthy
|
condition: service_healthy # Requires working CrowdSec before starting
|
||||||
|
|
||||||
|
# Required network capabilities
|
||||||
cap_add:
|
cap_add:
|
||||||
- NET_ADMIN
|
- NET_ADMIN # Needed for network-level operations
|
||||||
|
|
||||||
|
# Environment configuration
|
||||||
environment:
|
environment:
|
||||||
- CLOUDFLARE_API_TOKEN=${CLOUDFLARE_API_TOKEN}
|
- CLOUDFLARE_API_TOKEN=${CLOUDFLARE_API_TOKEN} # Cloudflare API token for DNS updates
|
||||||
- CROWDSEC_API_KEY=${CROWDSEC_API_KEY}
|
- CROWDSEC_API_KEY=${CROWDSEC_API_KEY} # Security key for CrowdSec integration
|
||||||
|
|
||||||
|
# Persistent storage volumes
|
||||||
volumes:
|
volumes:
|
||||||
- ${APPDATA_PATH}/caddy/caddy-file:/etc/caddy
|
- ${APPDATA_PATH}/caddy/caddy-file:/etc/caddy # Caddyfile configuration
|
||||||
- ${APPDATA_PATH}/caddy/caddy-config:/config
|
- ${APPDATA_PATH}/caddy/caddy-config:/config # Automatic HTTPS certificates
|
||||||
- ${APPDATA_PATH}/caddy/caddy-data:/data
|
- ${APPDATA_PATH}/caddy/caddy-data:/data # Site data and assets
|
||||||
- ${APPDATA_PATH}/caddy/caddy-logs:/logs
|
- ${APPDATA_PATH}/caddy/caddy-logs:/logs # Access logs
|
||||||
- ${APPDATA_PATH}/caddy/caddy-srv:/srv
|
- ${APPDATA_PATH}/caddy/caddy-srv:/srv # Served content
|
||||||
|
|
||||||
|
# Network ports
|
||||||
ports:
|
ports:
|
||||||
- ${HTTP_PORT}:80
|
- ${HTTP_PORT}:80 # HTTP traffic
|
||||||
- ${HTTPS_PORT}:443
|
- ${HTTPS_PORT}:443 # HTTPS traffic
|
||||||
- ${HTTPS_PORT}:443/udp
|
- ${HTTPS_PORT}:443/udp # QUIC/HTTP3 support
|
||||||
|
|
||||||
|
# Networks
|
||||||
networks:
|
networks:
|
||||||
- frontend
|
proxy:
|
||||||
restart: unless-stopped
|
ipv4_address: 172.30.0.2
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
frontend:
|
proxy:
|
||||||
external: true
|
name: proxy
|
||||||
|
driver: bridge
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 172.30.0.0/16
|
||||||
|
gateway: 172.30.0.1
|
||||||
|
@@ -1,19 +1,30 @@
|
|||||||
|
# Caddy with CrowdSec Security
|
||||||
services:
|
services:
|
||||||
|
# CrowdSec - Security automation service that protects from attacks
|
||||||
crowdsec:
|
crowdsec:
|
||||||
image: ghcr.io/crowdsecurity/crowdsec:v1.6.10
|
|
||||||
container_name: crowdsec
|
container_name: crowdsec
|
||||||
|
image: ghcr.io/crowdsecurity/crowdsec:v1.6.10 # Official CrowdSec image
|
||||||
|
restart: unless-stopped # Auto-restart unless explicitly stopped
|
||||||
|
|
||||||
|
# Environment configuration
|
||||||
environment:
|
environment:
|
||||||
- BOUNCER_KEY_CADDY=${CROWDSEC_API_KEY}
|
- BOUNCER_KEY_CADDY=${CROWDSEC_API_KEY} # API key for Caddy integration
|
||||||
- GID=${GID}
|
- GID=${GID} # Group ID for file permissions
|
||||||
- COLLECTIONS=${COLLECTIONS}
|
- COLLECTIONS=${COLLECTIONS} # Security collections to enable
|
||||||
|
|
||||||
|
# Persistent storage volumes
|
||||||
volumes:
|
volumes:
|
||||||
- ${APPDATA_PATH}/caddy/crowdsec-acquis.d:/etc/crowdsec/acquis.d
|
- ${APPDATA_PATH}/caddy/crowdsec-acquis.d:/etc/crowdsec/acquis.d # Log parsers
|
||||||
- ${APPDATA_PATH}/caddy/crowdsec-db:/var/lib/crowdsec/data/
|
- ${APPDATA_PATH}/caddy/crowdsec-db:/var/lib/crowdsec/data/ # Security database
|
||||||
- ${APPDATA_PATH}/caddy/crowdsec-config:/etc/crowdsec/
|
- ${APPDATA_PATH}/caddy/crowdsec-config:/etc/crowdsec/ # Configuration files
|
||||||
- ${APPDATA_PATH}/caddy/caddy-logs:/var/log/caddy:ro
|
- ${APPDATA_PATH}/caddy/caddy-logs:/var/log/caddy:ro # Read-only log access
|
||||||
|
|
||||||
|
# Networks
|
||||||
networks:
|
networks:
|
||||||
- frontend
|
proxy:
|
||||||
restart: unless-stopped
|
ipv4_address: 172.30.0.3
|
||||||
|
|
||||||
|
# Health check configuration
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD-SHELL", "wget --spider --quiet --tries=1 --timeout=5 http://localhost:8080/health > /dev/null 2>&1 || exit 1"]
|
test: ["CMD-SHELL", "wget --spider --quiet --tries=1 --timeout=5 http://localhost:8080/health > /dev/null 2>&1 || exit 1"]
|
||||||
interval: 30s
|
interval: 30s
|
||||||
@@ -21,30 +32,49 @@ services:
|
|||||||
retries: 3
|
retries: 3
|
||||||
start_period: 30s
|
start_period: 30s
|
||||||
|
|
||||||
|
# Caddy web server with CrowdSec security
|
||||||
caddy:
|
caddy:
|
||||||
image: docker.io/ryuupendragon/caddy-crowdsec:2.10.0
|
|
||||||
container_name: caddy
|
container_name: caddy
|
||||||
|
image: docker.io/ryuupendragon/caddy-crowdsec:2.10.0 # Custom Caddy image with CrowdSec plugins
|
||||||
|
restart: unless-stopped # Auto-restart on failure
|
||||||
|
|
||||||
|
# Service dependencies
|
||||||
depends_on:
|
depends_on:
|
||||||
crowdsec:
|
crowdsec:
|
||||||
condition: service_healthy
|
condition: service_healthy # Requires working CrowdSec before starting
|
||||||
|
|
||||||
|
# Required network capabilities
|
||||||
cap_add:
|
cap_add:
|
||||||
- NET_ADMIN
|
- NET_ADMIN # Needed for network-level operations
|
||||||
|
|
||||||
|
# Environment configuration
|
||||||
environment:
|
environment:
|
||||||
- CROWDSEC_API_KEY=${CROWDSEC_API_KEY}
|
- CROWDSEC_API_KEY=${CROWDSEC_API_KEY} # Security key for CrowdSec integration
|
||||||
|
|
||||||
|
# Persistent storage volumes
|
||||||
volumes:
|
volumes:
|
||||||
- ${APPDATA_PATH}/caddy/caddy-file:/etc/caddy
|
- ${APPDATA_PATH}/caddy/caddy-file:/etc/caddy # Caddyfile configuration
|
||||||
- ${APPDATA_PATH}/caddy/caddy-config:/config
|
- ${APPDATA_PATH}/caddy/caddy-config:/config # Automatic HTTPS certificates
|
||||||
- ${APPDATA_PATH}/caddy/caddy-data:/data
|
- ${APPDATA_PATH}/caddy/caddy-data:/data # Site data and assets
|
||||||
- ${APPDATA_PATH}/caddy/caddy-logs:/logs
|
- ${APPDATA_PATH}/caddy/caddy-logs:/logs # Access logs
|
||||||
- ${APPDATA_PATH}/caddy/caddy-srv:/srv
|
- ${APPDATA_PATH}/caddy/caddy-srv:/srv # Served content
|
||||||
|
|
||||||
|
# Network ports
|
||||||
ports:
|
ports:
|
||||||
- ${HTTP_PORT}:80
|
- ${HTTP_PORT}:80 # HTTP traffic
|
||||||
- ${HTTPS_PORT}:443
|
- ${HTTPS_PORT}:443 # HTTPS traffic
|
||||||
- ${HTTPS_PORT}:443/udp
|
- ${HTTPS_PORT}:443/udp # QUIC/HTTP3 support
|
||||||
|
|
||||||
|
# Networks
|
||||||
networks:
|
networks:
|
||||||
- frontend
|
proxy:
|
||||||
restart: unless-stopped
|
ipv4_address: 172.30.0.2
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
frontend:
|
proxy:
|
||||||
external: true
|
name: proxy
|
||||||
|
driver: bridge
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 172.30.0.0/16
|
||||||
|
gateway: 172.30.0.1
|
||||||
|
@@ -17,12 +17,3 @@ services:
|
|||||||
# Network port configuration
|
# Network port configuration
|
||||||
ports:
|
ports:
|
||||||
- ${SERVER_PORT}:3000 # Maps host port to Forgejo web interface
|
- ${SERVER_PORT}:3000 # Maps host port to Forgejo web interface
|
||||||
|
|
||||||
# Network configuration
|
|
||||||
networks:
|
|
||||||
- frontend # Connects to frontend network
|
|
||||||
|
|
||||||
# External network definition
|
|
||||||
networks:
|
|
||||||
frontend:
|
|
||||||
external: true # Uses pre-existing frontend network
|
|
||||||
|
@@ -23,10 +23,6 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- ${PORT}:4321 # Maps host port to container
|
- ${PORT}:4321 # Maps host port to container
|
||||||
|
|
||||||
# Network configuration
|
|
||||||
networks:
|
|
||||||
- internal # Connects to internal network
|
|
||||||
|
|
||||||
# Health check configuration
|
# Health check configuration
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "wget", "--no-verbose", "--tries=3", "--spider", "http://localhost:4321/api/health"]
|
test: ["CMD", "wget", "--no-verbose", "--tries=3", "--spider", "http://localhost:4321/api/health"]
|
||||||
@@ -34,8 +30,3 @@ services:
|
|||||||
timeout: 10s # Check timeout
|
timeout: 10s # Check timeout
|
||||||
retries: 5 # Allowed retries
|
retries: 5 # Allowed retries
|
||||||
start_period: 15s # Initial delay before checks
|
start_period: 15s # Initial delay before checks
|
||||||
|
|
||||||
# External network definition
|
|
||||||
networks:
|
|
||||||
internal:
|
|
||||||
external: true # Uses pre-existing internal network
|
|
||||||
|
@@ -25,10 +25,6 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- ${DB_PORT}:3306 # Maps host port to MariaDB
|
- ${DB_PORT}:3306 # Maps host port to MariaDB
|
||||||
|
|
||||||
# Network configuration
|
|
||||||
networks:
|
|
||||||
- backend # Connects to backend network
|
|
||||||
|
|
||||||
# Health check configuration
|
# Health check configuration
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
||||||
@@ -71,15 +67,3 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- ${SERVER_PORT}:3000
|
- ${SERVER_PORT}:3000
|
||||||
- ${SSH_PORT}:22
|
- ${SSH_PORT}:22
|
||||||
|
|
||||||
# Network configuration
|
|
||||||
networks:
|
|
||||||
- frontend # Connects to frontend network
|
|
||||||
- backend # Connects to backend network
|
|
||||||
|
|
||||||
# Internal network definition
|
|
||||||
networks:
|
|
||||||
frontend:
|
|
||||||
external: true # Uses pre-existing frontend network
|
|
||||||
backend:
|
|
||||||
external: true # Uses pre-existing backend network
|
|
||||||
|
@@ -21,10 +21,6 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- ${DB_PORT}:5432 # Maps host port to PostgreSQL
|
- ${DB_PORT}:5432 # Maps host port to PostgreSQL
|
||||||
|
|
||||||
# Network configuration
|
|
||||||
networks:
|
|
||||||
- backend # Connects to backend network
|
|
||||||
|
|
||||||
# Health check configuration
|
# Health check configuration
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD-SHELL", "pg_isready -d ${POSTGRES_DB} -U ${POSTGRES_USER}"]
|
test: ["CMD-SHELL", "pg_isready -d ${POSTGRES_DB} -U ${POSTGRES_USER}"]
|
||||||
@@ -65,15 +61,3 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- ${SERVER_PORT}:3000 # Maps host port to Gitea web interface
|
- ${SERVER_PORT}:3000 # Maps host port to Gitea web interface
|
||||||
- ${SSH_PORT}:22 # Maps host port to Gitea SSH
|
- ${SSH_PORT}:22 # Maps host port to Gitea SSH
|
||||||
|
|
||||||
# Network configuration
|
|
||||||
networks:
|
|
||||||
- frontend # Connects to frontend network
|
|
||||||
- backend # Connects to backend network
|
|
||||||
|
|
||||||
# External network definition
|
|
||||||
networks:
|
|
||||||
frontend:
|
|
||||||
external: true # Uses pre-existing frontend network
|
|
||||||
backend:
|
|
||||||
external: true # Uses pre-existing backend network
|
|
||||||
|
@@ -18,12 +18,3 @@ services:
|
|||||||
# Network port configuration
|
# Network port configuration
|
||||||
ports:
|
ports:
|
||||||
- ${PORT}:80 # Maps host port to Gotify web interface
|
- ${PORT}:80 # Maps host port to Gotify web interface
|
||||||
|
|
||||||
# Network configuration
|
|
||||||
networks:
|
|
||||||
- frontend # Connects to frontend network
|
|
||||||
|
|
||||||
# External network definition
|
|
||||||
networks:
|
|
||||||
frontend:
|
|
||||||
external: true # Uses pre-existing frontend network
|
|
||||||
|
@@ -50,12 +50,3 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- ${PORT}:8000 # Web interface port
|
- ${PORT}:8000 # Web interface port
|
||||||
- ${SMTP_PORT}:2525 # SMTP port for email
|
- ${SMTP_PORT}:2525 # SMTP port for email
|
||||||
|
|
||||||
# Network configuration
|
|
||||||
networks:
|
|
||||||
- frontend # Connects to frontend network
|
|
||||||
|
|
||||||
# External network configuration
|
|
||||||
networks:
|
|
||||||
frontend:
|
|
||||||
external: true # Uses pre-existing frontend network
|
|
||||||
|
@@ -3,23 +3,13 @@ services:
|
|||||||
homeassistant:
|
homeassistant:
|
||||||
# Basic container configuration
|
# Basic container configuration
|
||||||
container_name: homeassistant
|
container_name: homeassistant
|
||||||
image: docker.io/homeassistant/home-assistant:2025.7.1
|
image: docker.io/homeassistant/home-assistant:2025.7.2 # Official Home Assistant image
|
||||||
restart: unless-stopped
|
restart: unless-stopped # Auto-restart on failure
|
||||||
|
|
||||||
|
# Network configuration (host mode for full local network access)
|
||||||
|
network_mode: host # Required for discovering local devices and integrations
|
||||||
|
|
||||||
# Persistent storage and system configuration
|
# Persistent storage and system configuration
|
||||||
volumes:
|
volumes:
|
||||||
- ${APPDATA_PATH}/homeassistant/config:/config # Configuration files
|
- ${APPDATA_PATH}/homeassistant/config:/config # Configuration files
|
||||||
- /etc/localtime:/etc/localtime:ro # Sync host timezone
|
- /etc/localtime:/etc/localtime:ro # Sync host timezone for proper logging
|
||||||
|
|
||||||
# Network port configuration
|
|
||||||
ports:
|
|
||||||
- ${PORT}:8123 # Web interface port
|
|
||||||
|
|
||||||
# Network configuration
|
|
||||||
networks:
|
|
||||||
- frontend # Connects to frontend network
|
|
||||||
|
|
||||||
# External network definition
|
|
||||||
networks:
|
|
||||||
frontend:
|
|
||||||
external: true # Uses pre-existing frontend network
|
|
||||||
|
42
minio/docker-compose.yml
Normal file
42
minio/docker-compose.yml
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
# MinIO Object Storage Service Configuration
|
||||||
|
services:
|
||||||
|
# MinIO Server Service
|
||||||
|
minio:
|
||||||
|
# Basic container configuration
|
||||||
|
container_name: minio
|
||||||
|
image: docker.io/minio/minio:RELEASE.2025-06-13T11-33-47Z # Official MinIO image
|
||||||
|
restart: unless-stopped # Auto-restart on failure
|
||||||
|
|
||||||
|
# Runtime command and user permissions
|
||||||
|
command: server /data # Start in server mode
|
||||||
|
user: ${PUID}:${PGID} # Run as specified user/group
|
||||||
|
|
||||||
|
# Environment variables for authentication and configuration
|
||||||
|
environment:
|
||||||
|
- MINIO_ROOT_USER=${MINIO_ROOT_USER} # Admin username
|
||||||
|
- MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD} # Admin password
|
||||||
|
- MINIO_SERVER_URL=${MINIO_SERVER_URL} # Public server endpoint URL
|
||||||
|
- MINIO_BROWSER_REDIRECT_URL=${MINIO_BROWSER_REDIRECT_URL} # Web console redirect URL
|
||||||
|
|
||||||
|
# Persistent data storage
|
||||||
|
volumes:
|
||||||
|
- ${APPDATA_PATH}/minio/data:/data # Maps host directory to container
|
||||||
|
|
||||||
|
# Network ports
|
||||||
|
ports:
|
||||||
|
- ${API_PORT}:9000 # MinIO API port
|
||||||
|
|
||||||
|
# MinIO Console Service (separate from main server)
|
||||||
|
minio-console:
|
||||||
|
# Basic container configuration
|
||||||
|
container_name: minio-console
|
||||||
|
image: ghcr.io/georgmangold/console:v1.8.1 # Community console UI
|
||||||
|
restart: unless-stopped # Auto-restart on failure
|
||||||
|
|
||||||
|
# Environment configuration
|
||||||
|
environment:
|
||||||
|
- CONSOLE_MINIO_SERVER=http://minio:9000 # Points to MinIO server
|
||||||
|
|
||||||
|
# Network ports
|
||||||
|
ports:
|
||||||
|
- ${CONSOLE_PORT}:9090 # Web console access port
|
@@ -20,8 +20,6 @@ services:
|
|||||||
# Network configuration
|
# Network configuration
|
||||||
ports:
|
ports:
|
||||||
- ${DB_PORT}:5432 # PostgreSQL port
|
- ${DB_PORT}:5432 # PostgreSQL port
|
||||||
networks:
|
|
||||||
- backend # Connects to backend network
|
|
||||||
|
|
||||||
# Health monitoring
|
# Health monitoring
|
||||||
healthcheck:
|
healthcheck:
|
||||||
@@ -48,8 +46,6 @@ services:
|
|||||||
# Network configuration
|
# Network configuration
|
||||||
ports:
|
ports:
|
||||||
- ${VALKEY_PORT}:6379 # Valkey port
|
- ${VALKEY_PORT}:6379 # Valkey port
|
||||||
networks:
|
|
||||||
- backend # Connects to backend network
|
|
||||||
|
|
||||||
# Health monitoring
|
# Health monitoring
|
||||||
healthcheck:
|
healthcheck:
|
||||||
@@ -61,14 +57,17 @@ services:
|
|||||||
|
|
||||||
# Nextcloud Application Service
|
# Nextcloud Application Service
|
||||||
nextcloud_app:
|
nextcloud_app:
|
||||||
|
# Basic container configuration
|
||||||
image: docker.io/library/nextcloud:31.0.7
|
image: docker.io/library/nextcloud:31.0.7
|
||||||
container_name: nextcloud_app
|
container_name: nextcloud_app
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
|
# Service dependencies
|
||||||
depends_on:
|
depends_on:
|
||||||
nextcloud_db:
|
nextcloud_db:
|
||||||
condition: service_healthy
|
condition: service_healthy # Requires healthy database
|
||||||
nextcloud_valkey:
|
nextcloud_valkey:
|
||||||
condition: service_healthy
|
condition: service_healthy # Requires healthy valkey
|
||||||
|
|
||||||
# Environment variables
|
# Environment variables
|
||||||
environment:
|
environment:
|
||||||
@@ -97,15 +96,15 @@ services:
|
|||||||
# Network configuration
|
# Network configuration
|
||||||
ports:
|
ports:
|
||||||
- ${APP_PORT}:80
|
- ${APP_PORT}:80
|
||||||
networks:
|
|
||||||
- frontend # Connects to frontend network
|
|
||||||
- backend # Connects to backend network
|
|
||||||
|
|
||||||
# Nextcloud Cron Service
|
# Nextcloud Cron Service
|
||||||
nextcloud_cron:
|
nextcloud_cron:
|
||||||
|
# Basic container configuration
|
||||||
image: docker.io/library/nextcloud:31.0.7
|
image: docker.io/library/nextcloud:31.0.7
|
||||||
container_name: nextcloud_cron
|
container_name: nextcloud_cron
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
|
# Service dependencies
|
||||||
depends_on:
|
depends_on:
|
||||||
- nextcloud_app
|
- nextcloud_app
|
||||||
|
|
||||||
@@ -135,15 +134,3 @@ services:
|
|||||||
# Persistent storage configuration
|
# Persistent storage configuration
|
||||||
volumes:
|
volumes:
|
||||||
- ${APPDATA_PATH}/nextcloud/app:/var/www/html
|
- ${APPDATA_PATH}/nextcloud/app:/var/www/html
|
||||||
|
|
||||||
# Network configuration
|
|
||||||
networks:
|
|
||||||
- frontend # Connects to frontend network
|
|
||||||
- backend # Connects to backend network
|
|
||||||
|
|
||||||
# External network definitions
|
|
||||||
networks:
|
|
||||||
frontend:
|
|
||||||
external: true # Uses pre-existing network
|
|
||||||
backend:
|
|
||||||
external: true # Uses pre-existing network
|
|
||||||
|
@@ -24,8 +24,6 @@ services:
|
|||||||
# Network configuration
|
# Network configuration
|
||||||
ports:
|
ports:
|
||||||
- ${DB_PORT}:3306 # MariaDB port
|
- ${DB_PORT}:3306 # MariaDB port
|
||||||
networks:
|
|
||||||
- backend # Connects to backend network
|
|
||||||
|
|
||||||
# Health monitoring
|
# Health monitoring
|
||||||
healthcheck:
|
healthcheck:
|
||||||
@@ -82,13 +80,3 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- ${SERVER_PORT}:6157 # Web interface port
|
- ${SERVER_PORT}:6157 # Web interface port
|
||||||
- 2222:2222 # SSH port for Git operations
|
- 2222:2222 # SSH port for Git operations
|
||||||
networks:
|
|
||||||
- frontend # Connects to frontend network
|
|
||||||
- backend # Connects to backend network
|
|
||||||
|
|
||||||
# External network definitions
|
|
||||||
networks:
|
|
||||||
frontend:
|
|
||||||
external: true # Uses pre-existing network
|
|
||||||
backend:
|
|
||||||
external: true # Uses pre-existing network
|
|
||||||
|
@@ -20,8 +20,6 @@ services:
|
|||||||
# Network configuration
|
# Network configuration
|
||||||
ports:
|
ports:
|
||||||
- ${DB_PORT}:5432 # PostgreSQL port
|
- ${DB_PORT}:5432 # PostgreSQL port
|
||||||
networks:
|
|
||||||
- backend # Connects to backend network
|
|
||||||
|
|
||||||
# Health monitoring
|
# Health monitoring
|
||||||
healthcheck:
|
healthcheck:
|
||||||
@@ -78,13 +76,3 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- ${SERVER_PORT}:6157 # Web interface port
|
- ${SERVER_PORT}:6157 # Web interface port
|
||||||
- 2222:2222 # SSH port for Git operations
|
- 2222:2222 # SSH port for Git operations
|
||||||
networks:
|
|
||||||
- frontend # Connects to frontend network
|
|
||||||
- backend # Connects to backend network
|
|
||||||
|
|
||||||
# External network definitions
|
|
||||||
networks:
|
|
||||||
frontend:
|
|
||||||
external: true # Uses pre-existing network
|
|
||||||
backend:
|
|
||||||
external: true # Uses pre-existing network
|
|
||||||
|
@@ -22,10 +22,3 @@ services:
|
|||||||
# Network configuration
|
# Network configuration
|
||||||
ports:
|
ports:
|
||||||
- ${PORT}:5487 # Web interface port
|
- ${PORT}:5487 # Web interface port
|
||||||
networks:
|
|
||||||
- frontend # Connects to frontend network
|
|
||||||
|
|
||||||
# External network definition
|
|
||||||
networks:
|
|
||||||
frontend:
|
|
||||||
external: true # Uses pre-existing network
|
|
||||||
|
@@ -38,16 +38,9 @@ services:
|
|||||||
# Network configuration
|
# Network configuration
|
||||||
ports:
|
ports:
|
||||||
- ${PORT}:5232 # DAV service port
|
- ${PORT}:5232 # DAV service port
|
||||||
networks:
|
|
||||||
- frontend # Connects to frontend network
|
|
||||||
|
|
||||||
# Health monitoring
|
# Health monitoring
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: curl -f http://127.0.0.1:5232 || exit 1 # Simple HTTP check
|
test: curl -f http://127.0.0.1:5232 || exit 1 # Simple HTTP check
|
||||||
interval: 30s # Check every 30 seconds
|
interval: 30s # Check every 30 seconds
|
||||||
retries: 3 # Allow 3 failures before marking unhealthy
|
retries: 3 # Allow 3 failures before marking unhealthy
|
||||||
|
|
||||||
# External network definition
|
|
||||||
networks:
|
|
||||||
frontend:
|
|
||||||
external: true # Uses pre-existing network
|
|
||||||
|
@@ -27,10 +27,3 @@ services:
|
|||||||
# Network configuration
|
# Network configuration
|
||||||
ports:
|
ports:
|
||||||
- ${PORT}:8080 # Web interface port
|
- ${PORT}:8080 # Web interface port
|
||||||
networks:
|
|
||||||
- frontend # Connects to frontend network
|
|
||||||
|
|
||||||
# External network definition
|
|
||||||
networks:
|
|
||||||
frontend:
|
|
||||||
external: true # Uses existing Docker network
|
|
||||||
|
@@ -18,10 +18,3 @@ services:
|
|||||||
# Network configuration
|
# Network configuration
|
||||||
ports:
|
ports:
|
||||||
- ${PORT}:8282 # Web interface port
|
- ${PORT}:8282 # Web interface port
|
||||||
networks:
|
|
||||||
- frontend # Connects to frontend network
|
|
||||||
|
|
||||||
# External network definition
|
|
||||||
networks:
|
|
||||||
frontend:
|
|
||||||
external: true # Uses existing Docker network
|
|
||||||
|
@@ -13,10 +13,3 @@ services:
|
|||||||
# Network configuration
|
# Network configuration
|
||||||
ports:
|
ports:
|
||||||
- ${PORT}:3001 # Web dashboard port
|
- ${PORT}:3001 # Web dashboard port
|
||||||
networks:
|
|
||||||
- frontend # Connects to frontend network
|
|
||||||
|
|
||||||
# External network definition
|
|
||||||
networks:
|
|
||||||
frontend:
|
|
||||||
external: true # Uses existing Docker network
|
|
||||||
|
Reference in New Issue
Block a user