How to Use Airbyte: The Beginner's Guide (First Install, First Source, First Connection, and the Sync-Mode Lesson)
CodexFuse Team · 12 min read
What is Airbyte, exactly?
Airbyte is a source-available data-integration platform that moves data from sources like APIs, databases, and files into destinations like data warehouses — the EL (extract-and-load) half of an ELT pipeline. If you want to learn how to use Airbyte, this is the whole idea: you pick a source connector, pick a destination connector, link them in a connection, and Airbyte runs scheduled syncs that copy your data on autopilot. (Two quick notes. First, "Airbyte" is an unambiguous brand — no homonym games. Second, the current docs brand the product in two lanes: Airbyte Core, the free self-hosted edition you install with abctl, and Airbyte Cloud, the managed SaaS. This Airbyte tutorial covers Core, the self-hosted path, end to end.)
The project lives at github.com/airbytehq/airbyte (created July 2020), where it carries 22,295 stars and 5,427 forks across 419 releases, and its catalog lists 700+ connectors. One license note that matters for beginners: the Airbyte platform and its connectors are released under the Elastic License 2.0 (ELv2) — source-available, not OSI open source — while the Airbyte Protocol itself is MIT, per the official license page. The latest release is Airbyte 2.0, released October 14, 2025, which needs abctl 0.30.2 or newer, promises 4–6x faster sync speeds, and adds data activation plus Enterprise Flex. Before you build anything, it helps to see what a connection looks like on paper: our free Airbyte config analyzer takes a pasted connector config and reports its sources, streams, and sync modes — a paste-only browser tool, never a live Airbyte connection.
How do you use Airbyte? (The 60-second answer)
The full beginner arc is ten steps. Here is the numbered version Google-style, and the rest of this tutorial walks every step:
- Install Docker on the machine that will host Airbyte.
- Install the abctl command-line tool.
- Run
abctl local installand wait for the install to finish. - Run
abctl local credentialsand note the generated login. - Open http://localhost:8000 and sign in.
- Add a source (the API or database you sync FROM).
- Add a destination (the warehouse or database you sync TO).
- Create a connection linking that source to that destination.
- Pick a sync mode for each stream and set the schedule.
- Run the first sync manually, then check the job history.
What do you need before installing Airbyte?
You need Docker and enough machine. Airbyte Core runs as a set of containers, so Docker Desktop (macOS/Windows) or Docker Engine (headless Linux) must be running before abctl does anything — the official quickstart lists this as the hard prerequisite, and new to the container lane, our Docker beginner guide covers the install on each platform.
On sizing, the official quickstart's stated suggestion is 4 or more CPUs and at least 8 GB of memory. If your laptop has only 2 CPUs, you are not excluded: Airbyte ships a low-resource mode (2 CPUs and 8 GB) via a flag on the install command. One trade-off to know: in low-resource mode the Connector Builder is off on abctl 0.26.0 and newer, per the 1.7 release notes. If you plan to run Airbyte 24/7 rather than on your laptop, read what is VPS hosting first — a VPS is where most self-hosted Airbyte instances actually live.
How do you install Airbyte with abctl?
You install Airbyte Core with two commands, and the docker-compose era is over. This is the one break to internalize: Airbyte Docker-Compose deployments are officially deprecated — the deployment docs state that compose is no longer supported for fresh OSS installs, and the migration guide's instruction for existing compose users is to run abctl local install --migrate. Every new self-hosted install uses abctl.
First, install the abctl tool itself from the official install script — this is the Airbyte abctl installer every self-hosted setup starts with:
curl -LsfS https://get.airbyte.com | bash -
Then run the local install:
abctl local install
The install can take up to 30 minutes on a first run — it pulls and starts the whole platform stack, so let it finish. That second command is the Airbyte local install itself: everything else in this tutorial builds on the platform it starts. Two useful flags: --low-resource-mode for the 2-CPU lane, and --port if port 8000 is already taken on your machine. When the install completes, the UI is at http://localhost:8000 by default.
Where do you find your Airbyte login credentials?
There is no default admin/admin — and this is the one credentials lesson. On first install abctl generates a random password, client-id, and client-secret, and the only way to see them is the credentials command:
abctl local credentials
The command prints JSON with email, password, client-id, and client-secret — these Airbyte credentials are generated once per install, so save them somewhere safe the first time you see them. The email + password pair logs you into the UI at localhost:8000; the client-id + client-secret pair is for creating API access tokens. To change the password later, run abctl local credentials --password YourStrongPasswordExample — the server restarts after the change. Do this before you expose the UI beyond your own machine.
How do you add a source in Airbyte?
A source is added BEFORE anything else can happen. The official docs' definition is worth quoting exactly: "A source is the database, API, or other system from which you sync data." In the UI this is Sources → New source → pick a connector from the 700+ catalog → fill in that connector's configuration (API keys, hostnames, credentials for whatever system you are reading from) → Test, then Set up source.
Two concepts land here that pay off in every later section. First, a stream is a group of related records — a database table, an API endpoint, or a set of files — and each connection syncs one or more streams. Second, the source's own configuration decides what each stream can do: not every stream supports every sync mode, which is why the sync-mode lesson comes after the source and destination are set — check the connector's Airbyte sources catalog entry for the modes it actually offers. (A concrete example from the docs: the Linear source supports only Full Refresh modes, not incremental.)
How do you add a destination in Airbyte?
The vendor flow order is strict: source first, destination second, connection third — a connection cannot exist until both ends are configured. The docs define a destination as "the data warehouse, data lake, database, or other system to which you sync data." In the UI this is Destinations → New destination → pick your target (Postgres, BigQuery, Snowflake, S3, and the rest of the catalog) → enter the warehouse credentials → Test, then Set up destination.
The beginner gotcha is permissions: the Airbyte destination user needs CREATE TABLE (and usually CREATE SCHEMA) rights in the warehouse, plus write access to whatever dataset or schema you point it at. Test the connection in the UI before you move on — a destination that cannot write is the single most common reason a first sync fails at the final step.
What are Airbyte sync modes, and which should you pick?
This is the sync-mode lesson, and it is the section most beginners skip to their regret. Airbyte defines four sync modes per stream — each answers two questions: how much of the source gets read, and what happens in the destination. Availability varies by connector and even by stream, so treat the table below as the mental model and check your source's stream list for which modes are actually offered:
| Sync mode | What Airbyte reads | What lands in the destination | Use it when… |
|---|---|---|---|
| Full Refresh Overwrite | The entire stream, every sync | The whole destination table is replaced | You want a clean mirror of the source's current state and the table is small |
| Full Refresh Append | The entire stream, every sync | Every sync's full copy is appended — history accumulates, duplicates expected | You want a raw audit trail of how the source looked over time |
| Incremental Append | Only records new since the last sync (first run reads everything) | New rows appended; no deduplication | The source is large and growing, and you only care about new events |
| Incremental Append + Deduped | New and modified records since the last sync | History tables plus a de-duplicated final view mirroring the source state | You need an up-to-date final table; requires a primary key and a cursor field on the stream |
The deduped mode deserves its one extra sentence: it can only work when the stream declares a primary key (which record is which) and a cursor field (how Airbyte knows what changed) — if your source stream offers neither, you are choosing between the two Full Refresh modes. And remember the lane division: Airbyte does the EL in ELT — the T belongs to dbt, which transforms the raw warehouse tables Airbyte loads; our dbt beginner guide picks up exactly where this one ends.
How do you create your first connection in Airbyte?
A connection is the pipeline itself. The official definition: "A connection is the relationship between a source connector and a destination connector… an automated data pipeline that syncs data from a source to a destination." In the UI, Airbyte connections live under Connections → New connection → select your already-configured source → select your already-configured destination → configure each stream's sync mode (the lesson above) → set the replication schedule.
Two ordering rules keep this painless. First, source + destination must exist before the connection — the wizard will not let you create them mid-flow. Second, pick the sync mode per stream deliberately rather than accepting defaults: a small, slow-changing dimension table is a fine Full Refresh Overwrite, while a large append-only event feed wants Incremental Append. Each iteration of a connection is called a sync, and it runs on the schedule you set — or manually, which is how you should run the very first one.
How do you schedule and monitor Airbyte syncs?
You schedule in the connection settings. Airbyte lets each connection run on an automated replication schedule (hourly, daily, and custom cadences) or on manual trigger only — and the first sync should always be manual so you watch it succeed before automation hides the details. After a sync runs, the connection's job history shows every attempt with its status, row counts, and logs; a failed sync shows red with the error at the stream level, which is where you start debugging (wrong credentials, missing warehouse permissions, or a cursor field the source stopped providing are the usual three).
If you outgrow Airbyte's built-in scheduling, the orchestration lane is a real integration, not a hack: Airbyte maintains an official Kestra plugin (io.kestra.plugin.airbyte.connections.Sync for self-hosted, io.kestra.plugin.airbyte.cloud.jobs.Sync for Cloud) that triggers replication jobs and waits for completion. The official tip is to set the connection's sync frequency to manual when Kestra owns the schedule — two schedulers fighting over one connection is a classic beginner outage. Our Kestra beginner guide covers that orchestration lane from scratch.
How much does Airbyte cost?
Airbyte Core — the self-hosted edition this guide installs — is free; you pay only for your own infrastructure (the VPS or laptop it runs on). Airbyte Cloud, the managed lane, starts with a Standard plan from $20 per month and a Plus plan from $189 per month, with Pro and Enterprise Flex priced on compute capacity (Data Workers) rather than on row counts. That capacity-based pricing is the deliberate contrast with the main rival, below.
Airbyte vs Fivetran vs dbt: how do the lanes divide?
These three names get mixed up constantly, so here is the one-table division the docs themselves draw:
| Airbyte | Fivetran | dbt | |
|---|---|---|---|
| The lane | Data movement: EL | Data movement: EL | Transformation: T |
| Hosting | Self-hosted Core (free) or Airbyte Cloud | Fully managed SaaS only | Your warehouse / dbt Cloud |
| Source model | Open, 700+ connectors | Closed, 700+ connectors | N/A — it transforms, never extracts |
| How you pay | Capacity-based (compute), not per row | Monthly Active Rows | Seats / compute |
| Honest fit | You want control, privacy, or custom connectors | You want zero infrastructure to touch | Your data already lands in a warehouse and needs modeling |
The one-liner from Airbyte's own comparison page: Fivetran is a fully managed, closed-source ELT SaaS billed per row synced; Airbyte is a source-available (ELv2) platform you can self-host for free or run on Airbyte Cloud with capacity-based pricing. One piece of 2026 context: Fivetran merged with dbt Labs on June 1, 2026 — the EL and T lanes are consolidating under one roof, which is exactly why knowing the lane division above matters more than ever.
The 7 beginner mistakes to avoid
| Mistake | What actually happens |
|---|---|
| Installing via docker-compose | You follow a 2021 tutorial into a deprecated deploy path; fresh installs are no longer supported there — abctl is the migration target |
| Guessing the login | There is no admin/admin; the credentials only exist in the output of abctl local credentials |
| Skipping the low-resource flag | A 2-CPU laptop chokes on the default install; --low-resource-mode exists for exactly this machine |
| Building the connection first | The wizard blocks you — source and destination must be configured and tested before the connection step |
| Accepting default sync modes | A Full Refresh Overwrite on a billion-row table is a very expensive lesson; match the mode to the stream |
| Expecting incremental everywhere | Some sources only offer Full Refresh (the Linear source is the documented example) — check the stream's offered modes |
| Letting two schedulers run | Airbyte's schedule plus an orchestrator like Kestra both firing is a classic outage; set the connection to manual when Kestra owns it |
Sources
- GitHub — airbytehq/airbyte repository (stars, forks, releases, 700+ connector catalog)
- GitHub — airbytehq/airbyte releases, Airbyte 2.0 (October 14, 2025)
- Airbyte docs — Licenses (Elastic License 2.0 platform, MIT protocol)
- Airbyte docs — abctl deployment reference (install script,
abctl local install, flags) - Airbyte docs — OSS quickstart (Docker prerequisite, http://localhost:8000, 4 CPU / 8 GB suggestion, low-resource mode)
- Airbyte docs — abctl credentials (view and change credentials)
- Airbyte docs — Self-managed 1.7 release notes (Connector Builder off in low-resource mode)
- Airbyte docs — Add a source (source definition)
- Airbyte docs — Add a destination (destination definition)
- Airbyte docs — Set up a connection (connection and sync definitions)
- Airbyte docs — Sync modes (the four modes)
- Airbyte docs — Kestra plugin operator guide (trigger syncs, manual-frequency tip)
- airbyte.com — Airbyte vs Fivetran comparison (pricing, capacity model, merger note)
- intuz.com — Migrating Airbyte from Docker Compose to abctl (deprecation)
- skyvia.com — Airbyte pricing (Cloud plan prices)
- dbt docs — Introduction / What exactly is dbt (the T in ELT)
Frequently asked questions
Is Airbyte really free?
Airbyte Core, the self-hosted edition, is free under the Elastic License 2.0 — you pay only for the machine it runs on. Airbyte Cloud is the managed lane: Standard from $20 per month, Plus from $189 per month, with larger plans priced on compute capacity rather than row counts.
Is Airbyte open source?
Source-available, with a nuance. The Airbyte platform and its connectors are under the Elastic License 2.0 (ELv2), which is not an OSI open-source license; the Airbyte Protocol is MIT. In practice this means you can download, run, and modify it freely for most uses, but it is not "open source" in the strict OSI sense.
Can I still install Airbyte with docker-compose?
Not for fresh installs — Docker-Compose deployments are officially deprecated and no longer supported for new OSS setups. Use abctl (abctl local install); if you have an existing compose deployment, migrate with abctl local install --migrate.
What is the difference between Airbyte and dbt?
Airbyte does the EL and dbt does the T. Airbyte extracts data from sources and loads it into a warehouse; dbt transforms that raw warehouse data into clean, tested models. They are designed to sit in sequence: Airbyte first, dbt second.
What is the difference between Airbyte and Fivetran?
Fivetran is a fully managed, closed-source ELT SaaS billed on Monthly Active Rows — you never touch infrastructure. Airbyte is a source-available (ELv2) platform you can self-host for free with 700+ connectors, or run on Airbyte Cloud with capacity-based pricing that does not grow with row counts.