Baserow self-host self-build from source, custom components(fe/be) build to scale separately

Please fill in the questionnaire below.

Technical Help Questionnaire

Have you read and followed the instructions at: *READ ME FIRST* Technical Help FAQs - #2 by nigel ?

Answer: Yes

Self-Hosted Installation and Setup Questions

Delete this section if you are using Baserow.io.

How have you self-hosted Baserow.

I do a docker build of the backend, then frontend, then docker build the AIO. I then run the AIO. I build them myself because I want to only use OSS (set in the dockerfile) and I delete all templates aside from 6 which are useful to us + our own templates. I also have to remove kanban views from the templates so they don’t fail the templates sync upon startup.

I’m looking for direction on other ways to run this, specifically with running the different components separately so I could deploy them with AWS ECS behind a load balancer from docker images that I will be building. I’m totally lost on what components I need and how do I build them from source myself so their images run separately but talks to the correct db/redis/s3 (or backend for the FE).

docker build . -t be-v0.0.1 -f backend/Dockerfile
docker build . -t fe-v0.0.1 -f web-frontend/Dockerfile
##### I then go into the AIO Dockerfile to change the source tags for BE and FE to match above
docker build . -t AIO-v0.0.1 -f deploy/all-in-one/Dockerfile

docker run \
  -d \
  --name AIO-v0.0.1 \
  -e BASEROW_PUBLIC_URL=http://xxxx \
  -e BASEROW_CADDY_ADDRESSES=http://xxxx \
  -e DATABASE_HOST=aws-0-us-west-1.pooler.supabase.com \
  -e DATABASE_NAME=postgres \
  -e DATABASE_USER=postgres.xxxx \
  -e DATABASE_PASSWORD=xxxx \
  -e DATABASE_PORT=5432 \
  -e AWS_ACCESS_KEY_ID=xxxx \
  -e AWS_SECRET_ACCESS_KEY=xxxx \
  -e AWS_STORAGE_BUCKET_NAME=xxxx \
  -e AWS_S3_REGION_NAME=sfo3 \
  -e AWS_S3_ENDPOINT_URL=https://sfo3.digitaloceanspaces.com \
  -e AWS_S3_CUSTOM_DOMAIN=xxxx.sfo3.digitaloceanspaces.com \
  -e FROM_EMAIL=no-reply@xxx \
  -e EMAIL_SMTP=1 \
  -e EMAIL_SMTP_HOST=smtp.mailgun.org \
  -e EMAIL_SMTP_PORT=587 \
  -e EMAIL_SMTP_USER=xxxx	 \
  -e EMAIL_SMTP_PASSWORD=xxxx \
  -e MIGRATE_ON_STARTUP=true \
  -e BASEROW_TRIGGER_SYNC_TEMPLATES_AFTER_MIGRATION=true \
  -v baserow_data:/baserow/data \
  -p 80:80 \
  -p 443:443 \
  --restart unless-stopped \
AIO-v0.0.1

What are the specs of the service or server you are using to host Baserow.

Currently using AIO docker image that I’ve built myself running on a sizeable VM on digital ocean.

Which version of Baserow are you using.

1.22.3

How have you configured your self-hosted installation?

I got it all running on digital ocean with a self-built AIO docker image running on a VM, S3 compatible storage (digital ocean), and supabase. I don’t have a separate installation for redis which I think is included in the AIO.

What commands if any did you use to start your Baserow server?

Please see docker run above.

Describe the problem

Describe, step by step, how to reproduce the error or problem you are encountering.

I do have self-built aio baserow running and its great. Looking for direction on how to build and run each component separately so they scale independently of each other depending on usage.

How do I build/run the components myself so I could deploy, say, in ECS Fargate + ALB. What’s the setup gonna look like so they talk to each other nicely?

Provide screenshots or include share links showing:

N/A

How many rows in total do you have in your Baserow tables?

~9000 rows

Please attach full logs from all of Baserow’s services

N/A

Hi @xyxy, we currently only have a tutorial on how you can run the all-in-one image on Fargate, and it can be found here: Install on AWS // Baserow. If you’re looking for running the backend and web-frontend containers separately, I’d recommend you to get some inspiration from the docker-compose setup Install with Docker compose // Baserow or kubernetes Install with K8S // Baserow.

I hope that helps. :slight_smile: