Files
airflow-coolify/docker-compose.yaml
T
Power BI Dev 33f4666bad add edoxid calendar sync dag
Sync jadwal sidang eDOXID ke Google Calendar "Jadwal Sidang" tiap 5 menit
(read-only ke doxid2022), plus reminder email H-1/1-jam via Gmail API
karena reminder Calendar bawaan tidak ikut ke kalender pribadi attendee.
2026-07-27 21:59:27 +07:00

65 lines
2.1 KiB
YAML

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}
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: