name: actual-budget services: actual: image: actualbudget/actual-server:26.10.0 restart: unless-stopped ports: - "127.0.0.1:${ACTUAL_PORT:-5006}:5006" environment: # Пароль сервера задаётся в браузере при первом открытии, поэтому в # окружении секретов нет. # The server password is set in the browser on the first visit, so no # secret lives in the environment. ACTUAL_LOGIN_METHOD: ${ACTUAL_LOGIN_METHOD:-password} # Явный список закрывает вход по заголовку и OpenID, пока их не включили # осознанно: по умолчанию Actual разрешает все три способа. # The explicit list keeps header and OpenID logins closed until they are # enabled on purpose: Actual allows all three by default. ACTUAL_ALLOWED_LOGIN_METHODS: ${ACTUAL_ALLOWED_LOGIN_METHODS:-password} ACTUAL_UPLOAD_FILE_SYNC_SIZE_LIMIT_MB: ${ACTUAL_UPLOAD_FILE_SYNC_SIZE_LIMIT_MB:-20} ACTUAL_UPLOAD_SYNC_ENCRYPTED_FILE_SYNC_SIZE_LIMIT_MB: ${ACTUAL_UPLOAD_SYNC_ENCRYPTED_FILE_SYNC_SIZE_LIMIT_MB:-50} ACTUAL_UPLOAD_FILE_SIZE_LIMIT_MB: ${ACTUAL_UPLOAD_FILE_SIZE_LIMIT_MB:-20} TZ: ${ACTUAL_TIME_ZONE:-Etc/UTC} volumes: - actual-data:/data healthcheck: test: ["CMD-SHELL", "node scripts/health-check.js"] interval: 30s timeout: 10s retries: 5 start_period: 30s security_opt: - no-new-privileges:true stop_grace_period: 60s volumes: actual-data: name: ${ACTUAL_DATA_VOLUME:-actual-data}