This skill covers deploying Airflow DAGs and projects to production, whether using Astro (Astronomer's managed platform) or open-source Airflow on Docker Compose or Kubernetes.
Works with
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versiondeploying-airflowExecute the skills CLI command in your project's root directory to begin installation:
Fetches deploying-airflow from astronomer/agents and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate deploying-airflow. Access via /deploying-airflow in your agent's command palette.
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
Automate repetitive workflows and reduce manual effort
Example
Generate reports, summarize documents, draft communications
Save 3-5 hours per week on routine tasks
Learn new skills, understand complex topics, get expert guidance
Example
Explain concepts, provide examples, suggest learning resources
Accelerate learning and skill development by 2x
Enhance output quality through reviews, suggestions, and refinements
Example
Review drafts, suggest improvements, catch errors
Improve work quality by 30-40% with less effort
0
total installs
0
this week
302
GitHub stars
0
upvotes
Run in your terminal
0
installs
0
this week
302
stars
This skill covers deploying Airflow DAGs and projects to production, whether using Astro (Astronomer's managed platform) or open-source Airflow on Docker Compose or Kubernetes.
Choosing a path: Astro is a good fit for managed operations and faster CI/CD. For open-source, use Docker Compose for dev and the Helm chart for production.
Astro provides CLI commands and GitHub integration for deploying Airflow projects.
| Command | What It Does |
|---|---|
astro deploy |
Full project deploy — builds Docker image and deploys DAGs |
astro deploy --dags |
DAG-only deploy — pushes only DAG files (fast, no image build) |
astro deploy --image |
Image-only deploy — pushes only the Docker image (for multi-repo CI/CD) |
astro deploy --dbt |
dbt project deploy — deploys a dbt project to run alongside Airflow |
Builds a Docker image from your Astro project and deploys everything (DAGs, plugins, requirements, packages):
astro deploy
Use this when you've changed requirements.txt, Dockerfile, packages.txt, plugins, or any non-DAG file.
Pushes only files in the dags/ directory without rebuilding the Docker image:
astro deploy --dags
This is significantly faster than a full deploy since it skips the image build. Use this when you've only changed DAG files and haven't modified dependencies or configuration.
Pushes only the Docker image without updating DAGs:
astro deploy --image
This is useful in multi-repo setups where DAGs are deployed separately from the image, or in CI/CD pipelines that manage image and DAG deploys independently.
Deploys a dbt project to run with Cosmos on an Astro deployment:
astro deploy --dbt
Astro supports branch-to-deployment mapping for automated deploys:
main -> production, develop -> staging)Configure this in the Astro UI under Deployment Settings > CI/CD.
Common CI/CD strategies on Astro:
astro deploy --dags for fast iteration during developmentastro deploy on merge to main for production releases--image and --dags in separate CI jobs for independent release cyclesWhen multiple deploys are triggered in quick succession, Astro processes them sequentially in a deploy queue. Each deploy completes before the next one starts.
Deploy Airflow using the official Docker Compose setup. This is recommended for learning and exploration — for production, use Kubernetes with the Helm chart (see below).
apache/airflow Docker imageDownload the official Airflow 3 Docker Compose file:
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/stable/docker-compose.yaml'
This sets up the full Airflow 3 architecture:
| Service | Purpose |
|---|---|
airflow-apiserver |
REST API and UI (port 8080) |
airflow-scheduler |
Schedules DAG runs |
airflow-dag-processor |
Parses and processes DAG files |
airflow-worker |
Executes tasks (CeleryExecutor) |
airflow-triggerer |
Handles deferrable/async tasks |
postgres |
Metadata database |
redis |
Celery message broker |
For a simpler setup with LocalExecutor (no Celery/Redis), create a docker-compose.yaml:
x-airflow-common: &airflow-common
image: apache/airflow:3 # Use the latest Airflow 3.x release
environment: &airflow-common-env
AIRFLOW__CORE__EXECUTOR: LocalExecutor
AIRFLOW__DATABASE__SQL_ALCHEMY_CONN: postgresql+psycopg2://airflow:airflow@postgres/airflow
AIRFLOW__CORE__LOAD_EXAMPLES: 'false'
AIRFLOW__CORE__DAGS_FOLDER: /opt/airflow/dags
volumes:
- ./dags:/opt/airflow/dags
- ./logs:/opt/airflow/logs
- ./plugins:/opt/airflow/plugins
depends_on:
postgres:
condition: service_healthy
services:
postgres:
image: postgres:16
environment:
POSTGRES_USER: airflow
POSTGRES_PASSWORD: airflow
POSTGRES_DB: airflow
volumes:
- postgres-db-volume:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "airflow"]
interval: 10s
retries: 5
start_period: 5s
airflow-init:
<<: *airflow-common
entrypoint: /bin/bash
command:
- -c
- |
airflow db migrate
airflow users create \
--username admin \
--firstname Admin \
--lastname User \
--role Admin \
--email [email protected] \
--password admin
depends_on:
postgres:
condition: service_healthy
airflow-apiserver:
<<: *airflow-common
command: airflow api-server
ports:
- "8080:8080"
healthcheck:
test: ["CMD", "curl", "--fail", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 5
start_period: 30s
airflow-scheduler:
<<: *airflow-common
command: airflow scheduler
airflow-dag-processor:
<<: *airflow-common
command: airflow dag-processor
airflow-triggerer:
<<: *airflow-common
command: airflow triggerer
volumes:
postgres-db-volume:
Airflow 3 architecture note: The webserver has been replaced by the API server (
airflow api-server), and the DAG processor now runs as a standalone process separate from the scheduler.
# Start all services
docker compose up -d
# Stop all services
docker compose down
# View logs
docker compose logs -f airflow-scheduler
# Restart after requirements change
docker compose down && docker compose up -d --build
# Run a one-off Airflow CLI command
docker compose exec airflow-apiserver airflow dags list
Add packages to requirements.txt and rebuild:
# Add to requirements.txt, then:
docker compose down
docker compose up -d --build
Or use a custom Dockerfile:
FROM apache/airflow:3 # Pin to a specific version (e.g., 3.1.7) for reproducibility
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
Update docker-compose.yaml to build from the Dockerfile:
x-airflow-common: &airflow-common
build:
context: .
dockerfile: Dockerfile
# ... rest of config
Configure Airflow settings via environment variables in docker-compose.yaml:
environment:
# Core settings
AIRFLOW__CORE__EXECUTOR: LocalExecutor
AIRFLOW__CORE__PARALLELISM: 32
AIRFLOW__CORE__MAX_ACTIVE_TASKS_PER_DAG: 16
# Email
AIRFLOW__EMAIL__EMAIL_BACKEND: airflow.utils.email.send_email_smtp
AIRFLOW__SMTP__SMTP_HOST: smtp.example.com
# Connections (as URI)
AIRFLOW_CONN_MY_DB: postgresql://user:pass@host:5432/db
Deploy Airflow on Kubernetes using the official Apache Airflow Helm chart.
kubectl configuredhelm installed# Add the Airflow Helm repo
helm repo add apache-airflow https://airflow.apache.org
helm repo update
# Install with default values
helm install airflow apache-airflow/airflow \
--namespace airflow \
--create-namespace
# Install with custom values
helm install airflow apache-airflow/airflow \
--namespace airflow \
--create-namespace \
-f values.yaml
# Executor type
executor: KubernetesExecutor # or CeleryExecutor, LocalExecutor
Implementation Guide
Prerequisites
- ›Claude Desktop or compatible AI client with skill support
- ›Clear understanding of task or problem to solve
- ›Willingness to iterate and refine outputs
Time Estimate
15-45 minutes depending on use case complexity
Steps
- 1Install skill using provided installation command
- 2Test with simple use case relevant to your work
- 3Evaluate output quality and relevance
- 4Iterate on prompts to improve results
- 5Integrate into regular workflow if valuable
Common Pitfalls
- ⚠Expecting perfect results without iteration
- ⚠Not providing enough context in prompts
- ⚠Using skill for tasks outside its intended scope
- ⚠Accepting outputs without review and validation
Best Practices
✓ Do
- +Start with clear, specific prompts
- +Provide relevant context and constraints
- +Review and refine all outputs before using
- +Iterate to improve output quality
- +Document successful prompt patterns
✗ Don't
- −Don't use without understanding skill limitations
- −Don't skip validation of outputs
- −Don't share sensitive information in prompts
- −Don't expect skill to replace human judgment
💡 Pro Tips
- ★Be specific about desired format and style
- ★Ask for multiple options to choose from
- ★Request explanations to understand reasoning
- ★Combine AI efficiency with human expertise
When to Use This
✓ Use when
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
✗ Avoid when
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
Learning Path
- 1Familiarize yourself with skill capabilities and limitations
- 2Start with low-risk, non-critical tasks
- 3Progress to more complex and valuable use cases
- 4Build expertise through regular use and experimentation
Related Skills
ml-paper-writing
75davila7/claude-code-templates
AI/MLsame categorybeautiful-mermaid
31intellectronica/agent-skills
AI/MLsame categoryllm-council
26am-will/codex-skills
AI/MLsame categorybrainstorming
16sickn33/antigravity-awesome-skills
AI/MLsame categorydokie-ai-ppt
11myzy-ai/dokie-ai-ppt
AI/MLsame categoryblockchain-developer
10sickn33/antigravity-awesome-skills
AI/MLsame categoryReviews
4.7★★★★★34 reviews- DDhruvi Jain★★★★★Dec 28, 2024
Registry listing for deploying-airflow matched our evaluation — installs cleanly and behaves as described in the markdown.
- HHenry Jackson★★★★★Dec 24, 2024
deploying-airflow reduced setup friction for our internal harness; good balance of opinion and flexibility.
- KKofi Flores★★★★★Dec 16, 2024
deploying-airflow has been reliable in day-to-day use. Documentation quality is above average for community skills.
- KKofi Malhotra★★★★★Dec 16, 2024
Useful defaults in deploying-airflow — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- SSakura Martinez★★★★★Dec 12, 2024
deploying-airflow is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- OOshnikdeep★★★★★Nov 19, 2024
Solid pick for teams standardizing on skills: deploying-airflow is focused, and the summary matches what you get after install.
- NNikhil Thomas★★★★★Nov 15, 2024
We added deploying-airflow from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
- EEmma Gonzalez★★★★★Nov 7, 2024
I recommend deploying-airflow for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- CCarlos Taylor★★★★★Nov 3, 2024
Keeps context tight: deploying-airflow is the kind of skill you can hand to a new teammate without a long onboarding doc.
- KKofi Lopez★★★★★Oct 26, 2024
Solid pick for teams standardizing on skills: deploying-airflow is focused, and the summary matches what you get after install.
showing 1-10 of 34
1 / 4Discussion
Comments — not star reviews- No comments yet — start the thread.