airbytehq / airbyte

The leading data integration platform for ETL / ELT data pipelines from APIs, databases & files to data warehouses, data lakes & data lakehouses. Both self-hosted and Cloud-hosted.
https://airbyte.com
Other
16.37k stars 4.16k forks source link

Documentation on how to run Airbyte behind Traefik #2763

Open codefriar opened 3 years ago

codefriar commented 3 years ago

Tell us about the documentation you'd like us to add or update

I've seen the CEO's comments on HN about adjusting the APIURL, but i'm not able to get it to function correctly (throws a 405 on api/v1/workspaces/get...

I've established a traefik network, and the airbyte_network and pulling from the official docker-compose file put this together

```yml

version: '3'

This networks section required for the package to be visible to Traefik.

DO NOT Remove

networks: traefik_network: external: name: vivumlab_traefik airbyte_network:

services: init: image: airbyte/init:0.18.2-alpha container_name: init command: /bin/sh -c "./scripts/create_mount_directories.sh /local_parent /tmp /tmp/airbyte_local" environment:



I'm trying to establish this as a service for vivumlab (https://github.com/VivumLab/VivumLab) so it's rapidly and easily deployable for home-lab use. Any advice is appreciated.

┆Issue is synchronized with this [Asana task](https://app.asana.com/0/1200367912513076/1200368099789921) by [Unito](https://www.unito.io)
michel-tricot commented 3 years ago

@codefriar Would love to help on fixing this, it will likely be easier on a zoom. Do you have time next week to discuss it? I will contact you on slack to set this up.

codefriar commented 3 years ago

For anyone else wondering, here's the magic for traefik 2.

The web front end will need standard traefik labels, but the api will need tags that add && PathPrefix(/api) and therefor look like this:

"traefik.http.routers.{{ service_item }}-api-http.rule=Host({{ service_domain }}) && PathPrefix(/api)"

hongbo-miao commented 5 months ago

Thanks @codefriar !

For future people who come here, I want to point out today is actually just simply switching Terraform provider to server_url = "${var.airbyte_url}/api/public/v1". Here airbyte_url points to airbyte-webapp-svc.airbyte-namespace.

It helps