Baserow - No Code Database alternative to AirTable
Baserow is a No-code, open source alternative to AirTable. If you've ever needed to collect data on anything. A system for sales leads, or a shopping list that does something specific to your needs, maybe a client support form, and a way to add comments, or perhaps a Product Management system where you can track, and be notified of changes to milestones, and goals...then Baserow may just be exactly the system you've been looking for.
This amazing little system gives you the ability to create a database, the tables that make up that data, and forms for users (or you) to utilize in filling in that data without writing a single line of code.
The system even provides you a simple link to share out with your users for the forms you create, or to allow them to see views of the data you are collecting.
What You'll Need
Docker and Docker-Compose
Email SMTP Setting Information
(optional, but recommended) A domain / sub-domain name that you own.
(optional, but recommended) NGinX Proxy Manager
(optional) Portainer or Yacht for Docker Management in a GUI.
About 20 minutes of your time.
Installation of Prerequisites
Installing Docker-CE and Docker-Compose
If you already have Docker and Docker-Compose installed, feel free to skip down to the next section.
You may want to install some pre-requisite softwre as well:
Debian / Ubuntu
sudo apt install git curl wget
Fedora / Redhat
dnf install git curl wget
Arch
sudo pacman -Sy git curl wget
You can easily install Docker-CE, Docker-Compose, Portainer-CE, and NGinX Proxy manager by using this quick install script I created and maintain on Github. Just use the command:
Change the permissios to make the script executable:
chmod +x ./install_docker_nproxyman.sh
and then run the script with the command:
./install_docker_nproxyman.sh
When run, the script will prompt you to select your host operating system, then will ask you which bits of software you want to install.
Simply enter 'y' for each thing you want to install.
For instance, you may want to answer 'y' to NGinX Proxy Manager, and Portainer-CE if you don't already use these in your system.
At some point, you'll be asked for your super user (sudo) password as well.
Allow the script to complete installation.
At this point, you might want to log out and back in, as this will allow you to use the docker and docker-compose commands without the need of sudo in front of them.
Installation of Baserow
Once you have docker and docker-compose installed and ready, we'll want to create a new folder for Baserow. I like to create a top level parent folder called docker in which I create all of my docker application folders. This allows me to keep them all together, and is easy to back up as a single folder / zip file.
mkdir -p docker/baserow
Now move into the new baserow directory.
cd ./docker/baserow
Now we need to create three files.
Caddyfile - this is a small web server that will serve up the front end of our Baserow application in the browser.
.env - an environmental variable file. We use this file to set various configuratioin values for our install, such as the domain name, ports we want to use, and our email SMTP settings.
docker-compose.yml - the file we run to bring up our docker container(s) for our Baserow install.
The good news is that you only have to copy / paste for two of the files listed above. The .env file, however, you'll need to edit a few values in.
First, let's create the Caddyfile.
nano Caddyfile
Now, copy the information below by highlighting it with your mouse, then using CTRL + C to copy it, or right-click and select "copy" from the pop-up menu.
Now save the file with CTRL + O, then press Enter to confirm. Exit the nano editor with CTRL + X.
Next, we'll copy and paste the docker-compose.yml file.
nano docker-compose.yml
Again, copy the information from below, and paste it into the file you just created.
The file above is quite long. Please double check and make sure you got everything in it. There is nothing to be changed in this file, so save the file with CTRL + O, then press Enter to confirm. Exit the nano editor with CTRL + X.
Finally, let's create our .env file. Files that start with a period in the *nix based systems are hidden files, and therefore don't show up when you do a simple list command like ls, so if you want to see them, you have to use ls -al.
nano .env
Once again, copy the information below, and paste it into the file you just created.
So, you need to either change or set almost everything in this file. I have surrounded the items you definitely need to either set, or change, with curly braces above { }.
SECRET_KEY needs to be a long, strong, comples string of upper and lower case letters and numbers.
DATABASE_PASSWORD needs to be a long, strong, comples string of upper and lower case letters and numbers.
REDIS_PASSWORD needs to be a long mixed set of numbers only. At least 10 characters long.
BASEROW_PUBLIC_URL is the domain or IP address that you want to reach baserow on through your browser. If you only intend to use baserow on your local network, you can use the IP of your host machine, otherwise you'll want to use a domain name that you own.
BASEROW_CADDY_ADDRESS - this needs to be 80 if possible, but if port 80 is already in use on your host, you'll want to change this port to an open / available port number.
WEB_FRONTEND_PORT - this needs to be left as 80, since Caddy calls it on 80.
HOST_PUBLISH_IP you can leave as 0.0.0.0, unless you have a reason to limit what machine IPs will be allowed to call this application.
All of the Email SMTP settings need to be set properly according to your email smtp service / provider.
Once, you have set or changed all of the values as needed, save the file with CTRL + O, then press Enter to confirm. Exit the nano editor with CTRL + X.
Running Our Application
We'll use a simple command to start the application running. I like to tack on a second command that also allows me to see the output being logged as the application starts up, so I can watch for any possible errors.
docker-compose up -d && docker-compose logs -f
The above command will start the application installing and running - docker-compose up -d. The second part of the command will then show the logs as the application starts up after the images are downloaded - docker-compose logs -f.
You can exit the logging at any time with the CTRL + C hotkey combination. The application will continue to run in the background.
The app takes a little bit to get started. I think on a first run I have to wait about 10 minutes for the app to get running. Be patient.
Seting up our Reverse Proxy so we can use a Domain Name
I have other videos on how to setup NGinX Proxy Manager to work inside a home network, but if you already have it running from my install script, you just need to forward ports 80 and 443 through your internet router / firewall to the host machine where NGinX Proxy Manager is running.
Next, make sure your domain name has an A-Record set that points to your public IP address. You can find out your public IP by going to https://ipchicken.com/.
Now, when you type in your domain name, you should, at the very least, see the Congratulations page from NGinX.
Next, we'll go into NGinX Proxy Manager, and add a new Proxy Host.
Enter the subdomain / domain for your baserow install, then press tab.
Next, enter the IP of your host machine in the IP Adddress field, and then enter the port you set for the Caddy item in the .env file. If you didn't change it this will be 80.
Now, tick the options for Block Common Exploits, and Websocket Support. Click Save, and test your new proxy entry by clicking the domain name in the list.
If Baserow isn't done starting up you may get a 'Server Error' screen. Be patient, it may still be starting up.
Test every few minutes, and once you see the login screen, you know it's up and running.
Now we want to make our site https (for secure). So click on the three dots to the right end of your proy host entry in NGinX Proxy Manager, and select 'Edit' from the drop down list.
Now go to the "SSL" tab, and click the drop down that says 'None'. Select 'Request a New Certificate', and then tick the box for 'Force SSL', and make sure your email is etnered in the Email field, then tick the box to accept the LetsEncrypt Terms of Service. Click Save, and wait.
If the pop-up window goes away with no error, then click the domain name in the list again. You should now be accessing your new Baserow install through an SSL Encrypted connection.
Supporting Baserow and Getting a Discount
It's super important to support Open Source projects, and Baserow was good enough to provide a discount code available to you all to get 10% off of your first paid transaction for Premium, Advanced, or Enterprise license plans.
That's right, if you pay for 1 year of Premium, Advanced or Enterprise you'll get 10% off for that first year.
If you only want to go monthly at first, not to worry, you still get 10% off that first month by using the discount code they provided.
This offer is good through August 20, 2022, so jump in, try out Baserow, and get a paid version for some great advanced features!