compose.yaml
Rama main · réplica de lectura del repositorio original.
name: spectarr
services:
spectarr:
build:
context: .
additional_contexts:
msconvert_cli: ${SPECTARR_MSCONVERT_CLI_SOURCE:-../msconvert-cli}
mzmlpy_source: ${SPECTARR_MZMLPY_SOURCE:-../mzmlpy}
spxtacular_source: ${SPECTARR_SPXTACULAR_SOURCE:-../spxtacular}
args:
SPECTARR_INSTALL_OPENMASSSPEC: ${SPECTARR_INSTALL_OPENMASSSPEC:-true}
SPECTARR_DOTNET_RUNTIME_IMAGE: ${SPECTARR_DOTNET_RUNTIME_IMAGE:-mcr.microsoft.com/dotnet/runtime:10.0@sha256:b89586dc17781f25531909993658aa8161205ae38b8cec8847df4a8221a403d5}
environment:
SPECTARR_ENVIRONMENT: ${SPECTARR_ENVIRONMENT:-development}
SPECTARR_DATABASE_URL: sqlite:////data/spectarr.db
SPECTARR_JOB_LEASE_SECONDS: ${SPECTARR_JOB_LEASE_SECONDS:-300}
SPECTARR_STORAGE_ROOT: /data/storage
SPECTARR_LIBRARY_ROOT: /data/storage/library
SPECTARR_LIBRARY_LINK_MODE: ${SPECTARR_LIBRARY_LINK_MODE:-auto}
SPECTARR_LIBRARY_PROJECT_TEMPLATE: ${SPECTARR_LIBRARY_PROJECT_TEMPLATE:-{project_name}__{project_id:8}}
SPECTARR_LIBRARY_FILENAME_TEMPLATE: ${SPECTARR_LIBRARY_FILENAME_TEMPLATE:-{run_name}__{sample_name}__{run_id:8}{extension}}
SPECTARR_IMPORT_ROOTS: '["/imports"]'
SPECTARR_CORS_ORIGINS: ${SPECTARR_CORS_ORIGINS:-[]}
SPECTARR_TRUSTED_HOSTS: ${SPECTARR_TRUSTED_HOSTS:-["localhost"]}
SPECTARR_WORKER_TOKEN: ${SPECTARR_WORKER_TOKEN:-}
SPECTARR_AUTH_ENABLED: ${SPECTARR_AUTH_ENABLED:-true}
SPECTARR_RESTORE_MODE: ${SPECTARR_RESTORE_MODE:-false}
SPECTARR_REMOTE_IMPORTS_ENABLED: ${SPECTARR_REMOTE_IMPORTS_ENABLED:-true}
SPECTARR_REMOTE_DOWNLOAD_CONCURRENCY: ${SPECTARR_REMOTE_DOWNLOAD_CONCURRENCY:-2}
SPECTARR_AUTH_MODE: ${SPECTARR_AUTH_MODE:-password}
SPECTARR_SESSION_HOURS: ${SPECTARR_SESSION_HOURS:-24}
SPECTARR_LOCAL_USER: ${SPECTARR_LOCAL_USER:-admin}
SPECTARR_ALLOW_REMOTE_NO_AUTH: ${SPECTARR_ALLOW_REMOTE_NO_AUTH:-false}
SPECTARR_BIND_ADDRESS: ${SPECTARR_BIND_ADDRESS:-127.0.0.1}
SPECTARR_SECRET_KEY: ${SPECTARR_SECRET_KEY:-}
SPECTARR_SPECTRUM_READER_TIMEOUT_SECONDS: ${SPECTARR_SPECTRUM_READER_TIMEOUT_SECONDS:-30}
SPECTARR_DOCKER_DATA_ROOT: ${SPECTARR_DOCKER_DATA_ROOT:-}
SPECTARR_MSCONVERT_IMAGE: ${SPECTARR_MSCONVERT_IMAGE:-proteowizard/pwiz-skyline-i-agree-to-the-vendor-licenses:skyline_26.1.0.266-578b175@sha256:448a833eb92eac2ca731f2461c046963c0c2afafb3550b4dfb6fc3914cec7b0e}
SPECTARR_MCP_ALLOW_WRITES: ${SPECTARR_MCP_ALLOW_WRITES:-false}
SPECTARR_MCP_PUBLIC_URL: ${SPECTARR_MCP_PUBLIC_URL:-}
SPECTARR_MCP_TOKEN: ${SPECTARR_MCP_TOKEN:-}
SPECTARR_API_KEY: ${SPECTARR_API_KEY:-}
SPECTARR_WEBHOOK_ALLOW_HTTP: ${SPECTARR_WEBHOOK_ALLOW_HTTP:-false}
SPECTARR_WEBHOOK_ALLOW_PRIVATE_NETWORKS: ${SPECTARR_WEBHOOK_ALLOW_PRIVATE_NETWORKS:-false}
SPECTARR_UID: ${SPECTARR_UID:-1000}
SPECTARR_GID: ${SPECTARR_GID:-1000}
volumes:
- ${SPECTARR_DATA_DIR:-./data}:/data
- ${SPECTARR_STORAGE_DIR:-${SPECTARR_DATA_DIR:-./data}/storage}:/data/storage
- ${SPECTARR_IMPORTS_DIR:-./imports}:/imports:ro
- type: bind
source: ${DOCKER_SOCKET:-/var/run/docker.sock}
target: /var/run/docker.sock
bind:
create_host_path: false
ports:
- "${SPECTARR_BIND_ADDRESS:-127.0.0.1}:${SPECTARR_PORT:-3280}:8000"
- "${SPECTARR_MCP_BIND_ADDRESS:-127.0.0.1}:${SPECTARR_MCP_PORT:-8281}:8001"
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request\nurllib.request.urlopen('http://127.0.0.1:8000/health', timeout=3)"]
interval: 10s
timeout: 5s
retries: 10
security_opt:
- no-new-privileges:true
cap_drop:
- NET_RAW
restart: unless-stopped
stop_grace_period: 45s