Title: [Guide] How to Install Baserow with Host Path (Permissions & URL Fix)
Hey everyone,
I was able to get an instance of Baserow up and running using host paths, but it requires a few specific permission and URL settings. The app kept crashing with Permission denied errors until I did this.
Here’s a quick guide to save you the headache.
1. Create Your Datasets
First, create your datasets in TrueNAS. Using the apps pool is recommended, but you can put them anywhere. Make a note of your paths.
I used:
/mnt/tank/baserow/data (for the main app data)
/mnt/tank/baserow/pg_data (for the Postgres database)
2. Set Host Path Permissions (The Critical Step)
Before you start the app, you must set the correct ownership from the TrueNAS shell. The app’s built-in permission script can’t change ownership on host paths, so we have to do it manually.
Stop the app if it’s running, then go to System Settings > Shell and run these commands.
`Shell# Why? The main Baserow container runs as root (0)
but in the ‘apps’ group (568).
chown -R 0:568 /mnt/tank/baserow/data
chmod -R 775 /mnt/tank/baserow/data
Why? The Postgres container runs as user 999 and group 999.
It’s also very strict about permissions.
chown -R 999:999 /mnt/tank/baserow/pg_data
chmod -R 700 /mnt/tank/baserow/pg_data\`
3. Install/Configure the App
Now, install the Baserow app (or Edit your existing one):
- Storage: In the “Storage” section, set your “Baserow Data” and “Postgres Data” paths to the host paths you just created (e.g.,
/mnt/tank/baserow/data).
- Environment Variables (The URL Fix): This is the second place people get stuck. You need to tell Baserow what its URL is.
Scenario A: You ONLY use the local IP
If you just want to access Baserow at http://YOUR-NAS-IP:PORT:
- Find
BASEROW_PUBLIC_URL.
- Set it to your IP and port. (My port was
30163, yours might be different).
BASEROW_PUBLIC_URL: http://192.168.1.546:30163
Scenario B: You use a Public Domain (like Cloudflare)
This is the best setup. It makes your public domain the “official” URL but still lets you access the app from the local IP.
- Set the main URL to your public domain:
BASEROW_PUBLIC_URL: https://baserow.youdomain.com
- Click Add to create a new variable to allow your local IP:
This did not work for me for both public and local access but if you can figure it out please let us know
- Variable Name:
BASEROW_EXTRA_ALLOWED_HOSTS
- Variable Value:
192.168.1.546 (Note: no http:// or port here)
4. Save and Start
Click Save and start the app. The containers will now have the correct permissions to your host paths, and the frontend will be able to connect to the backend without any “Not Found” or “API” errors.
Hope this helps!
It takes a really long time for this app to start the first time. Go make dinner in the meantime!!