Install Baserow
Run the company's own database that looks like a spreadsheet, in Docker on Windows or Linux Mint, with a form view and export to CSV.
Last reviewed:
What Baserow is
A database that looks like a spreadsheet. You create tables with columns, fill them with rows, and view the same data as a table, a kanban board, a calendar or a form. It is the same information all the time, just shown in different ways.
The difference from an ordinary spreadsheet is that the columns have a type. A column for price contains numbers and nothing else. A column for customer points to a row in the customer table, so the customer's name is written once and not thirty times. If someone in the company misspells something in column D in a spreadsheet, nobody notices. In Baserow you cannot make that kind of mistake, because the field refuses to accept the junk.
For a company it usually ends up being the inventory list, the customer register and the orders. The form view is the one that surprises most: you build a form from the table, share the link, and the answers land directly as rows.
This is a server program
Baserow is not installed like a regular program on your computer. It is a web service that runs on a machine, and you reach it through your browser. The easiest way there is Docker, the same tool as in Install Docker. If you do not have Docker in place, start there and come back here.
Baserow itself also runs a cloud version with a free tier, and for a company that just wants to get started it is faster. What the tier includes right now is on baserow.io, and you can read about it there, since that kind of thing changes more often than this guide.
Windows and Linux Mint
The same file on both. Create a folder called baserow in the home folder, that is in C:\Users\ert-namn on Windows and in /home/ert-namn on Linux Mint. The location matters, because the commands further down assume it. Then put a text file in the folder called compose.yaml:
services:
baserow:
image: baserow/baserow:latest
environment:
BASEROW_PUBLIC_URL: 'http://localhost:8080'
ports:
- "8080:80"
volumes:
- baserow_data:/baserow/data
restart: unless-stopped
volumes:
baserow_data:
Open the terminal and go into the folder. On Windows that is PowerShell:
cd $HOME\baserow
On Linux Mint the program is called Terminal:
cd ~/baserow
Then start:
docker compose up -d
If the answer is that no compose.yaml was found, you are in the wrong folder. Run the cd line again and check that the file is there.
The first start takes a few minutes, because Baserow sets up its database inside the container before it opens. Follow along in docker compose logs -f if you want to see what happens, and press Ctrl and C to leave the log without shutting anything down.
Then browse to http://localhost:8080. The first account you create becomes the administrator. We ran this exact file, and the login page was up with no extra manual work.
localhost always means the computer you are sitting at. The address therefore only works on the machine where the container runs, and if you send the link to a colleague it ends up on the colleague's own computer, where there is no Baserow. To build the tables and test them, the installation as it stands is enough. If the company is going to work in the same tables, Baserow has to run on a machine that stays on, and be reached at that machine's address.
The line BASEROW_PUBLIC_URL is the only one that usually needs changing. It tells Baserow which address users actually type in. If the company is going to reach the tables from other computers on the office network, replace localhost with the computer's IP address, for example http://192.168.1.42:8080, and restart with docker compose up -d.
Three things to do first
- Build a table for real instead of looking at the example. Start with the products: name, price, quantity in stock, supplier. Fifteen minutes of work and you see right away whether the structure holds.
- Set the right field type for each column while the table is still empty. Price should be Number with two decimals, not text. Changing the type later works, but Baserow reinterprets what is already there, and then you have cleanup work.
- Create a form view of the order table and fill it in yourselves once. You discover in ten seconds which fields are unclear, and that is cheaper than discovering it at the customer's end.
The most common trap
Believing that the container is the backup. Everything you put in ends up in the volume baserow_data, and it stays there even when you restart or upgrade. But if someone runs docker compose down with the flag -v at the end, the volume is deleted, and the entire database goes with it. That exact flag appears in every third guide online, because it is convenient when testing. On your real installation it should never be used.
So export every important table to CSV at regular intervals, from the menu in the view, and put the files where the company stores other things that must not disappear. A CSV file can be opened in any spreadsheet program and read even if Baserow is no longer around. That is the whole point of it.