version: '3.8' services: postgres: image: postgres:13 environment: - POSTGRES_USER=airflow - POSTGRES_PASSWORD=airflow - POSTGRES_DB=airflow volumes: - postgres_data:/var/lib/postgresql/data airflow-webserver: build: . user: "50000:0" depends_on: - postgres environment: - PYTHONPATH=/opt/airflow - AIRFLOW__DATABASE__SQL_ALCHEMY_CONN=postgresql+psycopg2://airflow:airflow@postgres/airflow - AIRFLOW__CORE__EXECUTOR=LocalExecutor - AIRFLOW__CORE__LOAD_EXAMPLES=False volumes: - airflow_logs:/opt/airflow/logs - airflow_plugins:/opt/airflow/plugins ports: - "8081:8080" command: bash -c "airflow db init && airflow webserver" airflow-scheduler: build: . user: "50000:0" depends_on: - postgres environment: - PYTHONPATH=/opt/airflow - AIRFLOW__DATABASE__SQL_ALCHEMY_CONN=postgresql+psycopg2://airflow:airflow@postgres/airflow - AIRFLOW__CORE__EXECUTOR=LocalExecutor # koneksi DB dashboard akreditasi + SerpAPI (nilai di-set di Coolify UI) - DB_HOST=${DB_HOST:-host.docker.internal} - DB_PORT=${DB_PORT:-7891} - DB_USER=${DB_USER:-root} - DB_PASS=${DB_PASS} - DB_NAME=${DB_NAME:-informatika} - SERPAPI_KEY=${SERPAPI_KEY} - SERPAPI_MAX_REQUESTS=${SERPAPI_MAX_REQUESTS:-90} # sync jadwal sidang eDOXID -> Google Calendar (nilai di-set di Coolify UI) - EDOXID_DB_HOST=${EDOXID_DB_HOST:-203.24.50.52} - EDOXID_DB_PORT=${EDOXID_DB_PORT:-3306} - EDOXID_DB_DATABASE=${EDOXID_DB_DATABASE:-doxid2022} - EDOXID_DB_USERNAME=${EDOXID_DB_USERNAME:-calendar_sync_ro} - EDOXID_DB_PASSWORD=${EDOXID_DB_PASSWORD} - EDOXID_GOOGLE_CLIENT_ID=${EDOXID_GOOGLE_CLIENT_ID} - EDOXID_GOOGLE_CLIENT_SECRET=${EDOXID_GOOGLE_CLIENT_SECRET} - EDOXID_GOOGLE_REFRESH_TOKEN=${EDOXID_GOOGLE_REFRESH_TOKEN} # jam kerja WIB — di luar rentang ini sync beneran cuma jalan tiap N menit, bukan tiap trigger DAG - EDOXID_BUSINESS_HOURS_START=${EDOXID_BUSINESS_HOURS_START:-7} - EDOXID_BUSINESS_HOURS_END=${EDOXID_BUSINESS_HOURS_END:-17} - EDOXID_OFF_HOURS_INTERVAL_MINUTES=${EDOXID_OFF_HOURS_INTERVAL_MINUTES:-120} extra_hosts: - "host.docker.internal:host-gateway" volumes: - airflow_logs:/opt/airflow/logs - airflow_plugins:/opt/airflow/plugins command: scheduler volumes: postgres_data: airflow_logs: airflow_plugins: