diff --git a/.env.example b/.env.example index 22959ab..f362786 100644 --- a/.env.example +++ b/.env.example @@ -1,6 +1,7 @@ # Airflow Configuration AIRFLOW_USER=admin AIRFLOW_PASSWORD=admin +AIRFLOW__WEBSERVER__SECRET_KEY=your-super-secret-key-here-replace-with-actual-random-key # PostgreSQL (Airflow metadata) PG_USER=airflow diff --git a/Makefile b/Makefile index bc853ed..3764822 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ SHELL := /bin/bash UV := uv PYTHON_VERSION := 3.11 -.PHONY: up down airflow-init logs gp-psql ddl-gp dev-setup dev-sync dev-lock test lint fmt clean-venv +.PHONY: up down start stop airflow-init logs gp-psql ddl-gp dev-setup dev-sync dev-lock test lint fmt clean-venv up: docker compose -f docker-compose.yml up -d @@ -10,6 +10,12 @@ up: down: docker compose -f docker-compose.yml down -v +start: + docker compose -f docker-compose.yml start + +stop: + docker compose -f docker-compose.yml stop + airflow-init: docker compose -f docker-compose.yml run --rm airflow-init diff --git a/docker-compose.yml b/docker-compose.yml index 73e9613..8d4a58e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -47,6 +47,7 @@ services: environment: AIRFLOW__CORE__LOAD_EXAMPLES: "False" AIRFLOW__DATABASE__SQL_ALCHEMY_CONN: postgresql+psycopg2://${PG_USER}:${PG_PASSWORD}@pgmeta:5432/${PG_DB} + AIRFLOW__WEBSERVER__SECRET_KEY: ${AIRFLOW__WEBSERVER__SECRET_KEY} command: > bash -lc "pip install --no-cache-dir -r /opt/airflow/requirements.txt && airflow webserver" @@ -69,6 +70,7 @@ services: environment: AIRFLOW__CORE__LOAD_EXAMPLES: "False" AIRFLOW__DATABASE__SQL_ALCHEMY_CONN: postgresql+psycopg2://${PG_USER}:${PG_PASSWORD}@pgmeta:5432/${PG_DB} + AIRFLOW__WEBSERVER__SECRET_KEY: ${AIRFLOW__WEBSERVER__SECRET_KEY} command: > bash -lc "pip install --no-cache-dir -r /opt/airflow/requirements.txt && airflow scheduler" @@ -89,6 +91,7 @@ services: environment: AIRFLOW__CORE__LOAD_EXAMPLES: "False" AIRFLOW__DATABASE__SQL_ALCHEMY_CONN: postgresql+psycopg2://${PG_USER}:${PG_PASSWORD}@pgmeta:5432/${PG_DB} + AIRFLOW__WEBSERVER__SECRET_KEY: ${AIRFLOW__WEBSERVER__SECRET_KEY} volumes: - ./airflow/dags:/opt/airflow/dags - ./airflow/requirements.txt:/opt/airflow/requirements.txt