Cannot run the app in dev mode

I’d like to run Baserow in dev mode. So, I did ./dev.sh, and this is what I keep getting:

baserow % ./dev.sh

./dev.sh running docker-compose commands:


  • ‘[’ false = true ‘]’
  • ‘[’ false = true ‘]’
  • ‘[’ false = true ‘]’
  • ‘[’ false = true ‘]’
  • ‘[’ true = true ‘]’
  • docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d

Traceback (most recent call last):

File “urllib3/connectionpool.py”, line 426, in _make_request
File “”, line 3, in raise_from
File “urllib3/connectionpool.py”, line 421, in _make_request
File “http/client.py”, line 1347, in getresponse
File “http/client.py”, line 307, in begin
File “http/client.py”, line 268, in _read_status
File “socket.py”, line 704, in readinto

socket.timeout: timed out

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “requests/adapters.py”, line 439, in send
File “urllib3/connectionpool.py”, line 7

Hi @mehran_naghizadeh
Could you provide the full output of the dev.sh command? it looks like you’ve stripped some bits out and I can’t tell which container is raising that error. Can you also let me know what operating system you are trying to run dev.sh on and what version of docker-compose and separately docker version you have?

Hi @nigel

Thank you for reaching out. Here is the recent output (after having restarted the system):
baserow -- 2 - sh dev


Docker version 20.10.13, build a224086

docker-compose version 1.29.2, build 5becea4c

ProductName: macOS
ProductVersion: 12.3.1
BuildVersion: 21E258

The timeout issue is because of the input filed seen in the following screenshot. It wants me to enter something, but I don’t know what.

Hm, thats pretty odd.

If you just instead skipped using ./dev.sh (its just a wrapper around docker-compose) and run

cp .env.example .env

Now edit .env to have the defaults the ./dev.sh normally sets for you:

SECRET_KEY=baserow
DATABASE_PASSWORD=baserow
REDIS_PASSWORD=baserow
BASEROW_PUBLIC_URL=http://localhost
BASEROW_CADDY_ADDRESSES=:80
WEB_FRONTEND_PORT=80
HOST_PUBLISH_IP=0.0.0.0

EMAIL_SMTP=
EMAIL_SMTP_HOST=
EMAIL_SMTP_PORT=
EMAIL_SMTP_USE_TLS=
EMAIL_SMTP_USER=
EMAIL_SMTP_PASSWORD=
FROM_EMAIL=no-reply@localhost

Now finally you should be able to just start baserow with the dev override compose file. All docker-compose commands should be run with the two -f flags in dev mode.

docker-compose -f docker-compose.yml -f docker-compose.dev.yml up --build

Alternatively I think I know where the problem is you are encountering. Dev.sh tries to open terminal tabs for each service baserow launches for easy debugging. The following bash is used to try and open tabs in osx which I’m guessing is not working for you:

  elif [[ "$OSTYPE" == "darwin"* ]]; then
    osascript \
        -e "tell application \"Terminal\"" \
        -e "tell application \"System Events\" to keystroke \"t\" using {command down}" \
        -e "do script \"printf '\\\e]1;$TAB_NAME\\\a'; $COMMAND\" in front window" \
        -e "end tell" > /dev/null

Instead you can completely turn off this tab opening mechanism by always running ./dev.sh with the dont_attach flag like so:
./dev.sh dont_attach.

Maybe it fails to open new tabs because I’m using the embedded Terminal of the Visual Studio Code. By the way, the dont_attach trick didn’t help:

That looks like dev.sh has worked for me? If you now visit http://localhost:3000 are you able to see Baserow? docker-compose logs and docker-compose ps should give you the status of the docker containers created by dev.sh (you’ll need to create the .env file as described above to run these two commands).

But yeh ./dev.sh certainly doesn’t support opening tabs in vscode atm and so you’ll have to generally always use dont_attach or try using the native terminal .

Yep! I expected some expressive message, or a blinking cursor. Some indication of success, I mean. Anyways, it’s nw working. Thank you @nigel

This is a good point, it should definitely show clearer messages about what has happened etc. Right now ./dev.sh is a bit of a mess and we hope to clean it up/replace it in the near future with something more usable and friendly.