services: web: build: ./web container_name: lazyflat-web restart: unless-stopped depends_on: apply: condition: service_started environment: - AUTH_USERNAME=${AUTH_USERNAME} - AUTH_PASSWORD_HASH=${AUTH_PASSWORD_HASH} - SESSION_SECRET=${SESSION_SECRET} - COOKIE_SECURE=${COOKIE_SECURE:-true} - INTERNAL_API_KEY=${INTERNAL_API_KEY} - APPLY_URL=http://apply:8000 - APPLY_TIMEOUT=${APPLY_TIMEOUT:-600} - APPLY_FAILURE_THRESHOLD=${APPLY_FAILURE_THRESHOLD:-3} - DATA_DIR=/data - SESSION_MAX_AGE_SECONDS=${SESSION_MAX_AGE_SECONDS:-604800} - LOGIN_RATE_LIMIT=${LOGIN_RATE_LIMIT:-5} - LOGIN_RATE_WINDOW_SECONDS=${LOGIN_RATE_WINDOW_SECONDS:-900} - RETENTION_DAYS=${RETENTION_DAYS:-14} - RETENTION_RUN_INTERVAL_SECONDS=${RETENTION_RUN_INTERVAL_SECONDS:-3600} - PUBLIC_URL=${PUBLIC_URL:-https://flat.lab.moritz.run} - SMTP_HOST=${SMTP_HOST:-} - SMTP_PORT=${SMTP_PORT:-587} - SMTP_USERNAME=${SMTP_USERNAME:-} - SMTP_PASSWORD=${SMTP_PASSWORD:-} - SMTP_FROM=${SMTP_FROM:-lazyflat@localhost} - SMTP_STARTTLS=${SMTP_STARTTLS:-true} volumes: - lazyflat_data:/data expose: - "8000" apply: build: ./apply container_name: lazyflat-apply restart: unless-stopped expose: - "8000" environment: - INTERNAL_API_KEY=${INTERNAL_API_KEY} - HEADLESS=true - BROWSER_WIDTH=${BROWSER_WIDTH:-600} - BROWSER_HEIGHT=${BROWSER_HEIGHT:-800} - BROWSER_LOCALE=${BROWSER_LOCALE:-de-DE} - POST_SUBMISSION_SLEEP_MS=${POST_SUBMISSION_SLEEP_MS:-0} alert: build: ./alert container_name: lazyflat-alert restart: unless-stopped depends_on: web: condition: service_started environment: - WEB_URL=http://web:8000 - INTERNAL_API_KEY=${INTERNAL_API_KEY} - SLEEP_INTERVALL=${SLEEP_INTERVALL:-60} - GMAPS_API_KEY=${GMAPS_API_KEY} - BERLIN_WOHNEN_USERNAME=${BERLIN_WOHNEN_USERNAME} - BERLIN_WOHNEN_PASSWORD=${BERLIN_WOHNEN_PASSWORD} volumes: lazyflat_data: