Airbyte Deployment and Usage Guide
1. Prerequisites
System Requirements
- Docker and Docker Compose (required for running Airbyte Open Source)
- Python 3.7+ (for connector development and customizations)
- Git (for cloning the repository)
- Java 11+ (for building and running certain components)
- Node.js 14+ (for UI and some development tools)
- At least 4GB RAM (8GB+ recommended for production)
Accounts & Credentials
- Source Systems: API keys, OAuth credentials, or database credentials for your data sources (e.g., Google Ads, Salesforce, Shopify, HubSpot)
- Destination Systems: Credentials for your data warehouses/lakes (Snowflake, BigQuery, Redshift, Postgres, etc.)
- Optional: Docker Hub account if building custom connector images
2. Installation
Clone the Repository
git clone https://github.com/airbytehq/airbyte.git
cd airbyte
Quick Start with Docker (Recommended)
# Start Airbyte with Docker Compose
docker-compose up
# Or in detached mode
docker-compose up -d
Once running, access the Airbyte UI at http://localhost:8000
Manual Installation (Development)
# Install Python dependencies for connector development
pip install -e ".[dev]" # From the root directory
# Build the project (requires Java and Node.js)
./gradlew build
# Start the platform components separately
./gradlew :airbyte-webapp:dev # UI
./gradlew :airbyte-server:run # API server
./gradlew :airbyte-worker:run # Worker processes
3. Configuration
Environment Variables
Create a .env file in the root directory or set environment variables:
# Basic configuration
AIRBYTE_VERSION=0.50.0
DATABASE_URL=postgresql://airbyte:password@localhost:5432/airbyte
WORKSPACE_ROOT=/tmp/airbyte/workspace
LOCAL_ROOT=/tmp/airbyte/local
CONFIG_ROOT=/tmp/airbyte/config
# Optional: External database for production
# AIRBYTE_DATABASE_HOST=your-postgres-host
# AIRBYTE_DATABASE_PORT=5432
# AIRBYTE_DATABASE_USER=airbyte
# AIRBYTE_DATABASE_PASSWORD=secure_password
# Optional: S3/MinIO for logs and state storage
# AIRBYTE_MINIO_ENDPOINT=minio:9000
# AIRBYTE_MINIO_ACCESS_KEY=airbyte
# AIRBYTE_MINIO_SECRET_KEY=password123
Source Configuration Examples
Google Ads Connector (source-google-ads):
config:
developer_token: "your_developer_token"
client_id: "your_client_id"
client_secret: "your_client_secret"
refresh_token: "your_refresh_token"
customer_id: "1234567890"
start_date: "2024-01-01"
Salesforce Connector (source-salesforce):
config:
client_id: "your_client_id"
client_secret: "your_client_secret"
refresh_token: "your_refresh_token"
start_date: "2024-01-01T00:00:00Z"
is_sandbox: false
Shopify Connector (source-shopify):
config:
shop: "your-store-name"
credentials:
auth_method: "api_password"
api_password: "your_api_password"
start_date: "2024-01-01"
Authentication
Most connectors support multiple authentication methods:
- API keys (Shopify, HubSpot)
- OAuth 2.0 (Google Ads, Salesforce)
- Bearer tokens (HubSpot)
- Database credentials (Postgres, MySQL)
4. Build & Run
Running with Docker Compose
# Start all services
docker-compose up
# Check service status
docker-compose ps
# View logs
docker-compose logs -f airbyte-server
docker-compose logs -f airbyte-worker
# Stop services
docker-compose down
# Stop and remove volumes (clears all data)
docker-compose down -v
Development Build
# Build all Docker images
./gradlew build
# Build specific connector
cd airbyte-integrations/connectors/source-google-ads
docker build . -t airbyte/source-google-ads:dev
# Run tests for a connector
./gradlew :airbyte-integrations:connectors:source-google-ads:test
Custom Connector Development
# Create a new Python source connector
cd airbyte-integrations/connectors
python -m venv .venv
source .venv/bin/activate
pip install airbyte-cdk
# Use the Connector Builder UI (available at http://localhost:8000/connector-builder)
# Or develop with the low-code CDK
5. Deployment
Production Deployment Options
Option 1: Kubernetes (Recommended for production)
# Example Kubernetes deployment using Helm
helm repo add airbyte https://airbytehq.github.io/helm-charts
helm install airbyte airbyte/airbyte \
--namespace airbyte \
--set database.secretName=airbyte-database-secret \
--set minio.enabled=true
Option 2: Docker Swarm
# Deploy stack
docker stack deploy -c docker-compose.yml airbyte
Option 3: VM/ Bare Metal
# Install dependencies
apt-get update
apt-get install -y docker.io docker-compose
# Clone and deploy
git clone https://github.com/airbytehq/airbyte.git
cd airbyte
docker-compose -f docker-compose.yml up -d
Production Considerations
- Database: Use external PostgreSQL for persistence
- Storage: Configure S3/MinIO for logs and state storage
- Scaling: Run multiple workers for parallel syncs
- Monitoring: Set up Prometheus metrics and logging
- Backups: Regular backups of PostgreSQL database and S3 storage
Cloud Deployment
- Airbyte Cloud: Managed service (recommended for teams without DevOps resources)
- AWS: Deploy on ECS/EKS with RDS and S3
- GCP: Deploy on GKE with Cloud SQL and Cloud Storage
- Azure: Deploy on AKS with Azure Database and Blob Storage
6. Troubleshooting
Common Issues
Issue: Connector fails with authentication errors
# Solution: Verify credentials and authentication method
# Check connector logs in the Airbyte UI
# Ensure OAuth tokens are refreshed if using OAuth
Issue: Docker containers failing to start
# Check available resources
docker system df
docker logs <container_id>
# Common fixes:
# 1. Increase Docker memory allocation
# 2. Clear Docker cache: docker system prune -a
# 3. Check port conflicts: netstat -tulpn | grep :8000
Issue: Syncs stuck or slow
# Check worker logs
docker-compose logs -f airbyte-worker
# Increase resources:
# 1. Add more workers in docker-compose.yml
# 2. Increase JVM memory: JAVA_OPTS="-Xmx4g"
# 3. Check network connectivity to sources/destinations
Issue: "No space left on device" errors
# Clear temporary files
docker system prune
rm -rf /tmp/airbyte/*
# Or change workspace location in .env:
WORKSPACE_ROOT=/path/to/larger/disk/airbyte/workspace
Issue: Connector development errors
# For Python connector issues:
pip install --upgrade airbyte-cdk
pytest tests/ -v # Run tests
# For build issues:
./gradlew clean build
Getting Help
- Check Logs: Access logs via UI or
docker-compose logs - Community Support: Join Airbyte Community Slack
- GitHub Issues: Search existing issues or create new ones
- Documentation: Refer to docs.airbyte.com
- Debug Mode: Enable debug logging in connector configuration
Maintenance
# Regular maintenance tasks
docker-compose pull # Update to latest version
docker-compose down && docker-compose up -d # Restart services
docker system prune # Clean up unused Docker resources
# Backup database
docker exec airbyte-db pg_dump -U airbyte airbyte > backup.sql
# Monitor resource usage
docker stats
docker-compose logs --tail=100