services: sencho: image: saelix/sencho:latest build: . container_name: sencho restart: unless-stopped # Publish only the Sencho UI / API port. Sencho Mesh runs on an internal # `sencho_mesh` Docker network that Sencho creates and joins on boot, # so cross-stack mesh routing does not require any extra host ports or # firewall rules. Override the mesh subnet (default 172.30.0.0/24) with # SENCHO_MESH_SUBNET if it conflicts with your network. ports: - "1852:1852" volumes: # Required: Docker Socket for container orchestration - /var/run/docker.sock:/var/run/docker.sock # Required: Sencho's internal database for alerts and settings # Format is [Host Path]:[Container Path] # You can change the left side to anywhere on your server, but leave the right side as /app/data - ./data:/app/data # ⚠️ THE 1:1 COMPOSE PATH RULE ⚠️ # Mount the root folder where all your compose files live. # The path on the left (Host) MUST EXACTLY MATCH the path on the right (Container). # EXAMPLE: If your compose files are in /opt/docker, use: - /opt/docker:/opt/docker - /path/to/your/docker/folder:/path/to/your/docker/folder # (Optional but Recommended) Media/Data Drives # Mount your media drives here so Docker Compose inside Sencho can validate paths during deployment. - /path/to/your/media/drives:/path/to/your/media/drives environment: # ENVIRONMENT VARIABLES FOR INSIDE THE CONTAINER # This points to the Container Path (right side) of your 1:1 mount above - COMPOSE_DIR=/path/to/your/docker/folder/compose # This points to the Container Path (right side) of your database mount above. Leave this as /app/data. - DATA_DIR=/app/data # ⚠️ GLOBAL ENVIRONMENT VARIABLES ⚠️ # If your compose files rely on host-level shell variables (like $PUID, $TZ) # or a centralized globals.env file, you MUST pass them into Sencho here. # Otherwise, Sencho will evaluate your compose files with empty variables. # If you do not use a global env file, you can delete these two lines. env_file: - /path/to/your/docker/folder/env/globals.env