Learn how to install and configure NocoDB on AlmaLinux 10 to convert any database into a user-friendly no-code platform.
What is NocoDB
NocoDB is an open-source no-code platform that converts traditional databases into smart, spreadsheet-style interfaces. It allows teams to manage data visually, collaborate in real time, and build workflows without writing a single line of code.
It supports popular databases such as MySQL, PostgreSQL, MariaDB, and SQLite, and exposes them through intuitive UI and robust REST APIs.
In simpler terms, NocoDB acts like an open-source Airtable alternative that runs entirely on our own infrastructure. It helps development teams, analysts, and business users connect to existing databases and start managing records, views, and forms instantly — without sacrificing control or privacy.
Why NocoDB
NocoDB turns relational databases into spreadsheet-style “no-code” interfaces. You get CRUD UI, query capabilities, REST APIs over existing tables—all without writing front-end code. Good choice if you want flexibility + control over data.
Prerequisites
Before we begin, ensure we have the following:
- An AlmaLinux 10 dedicate server or KVM VPS.
- Basic Linux Command Line Knowledge.
- A domain name pointing A record to server IP.
How to Install NocoDB on AlmaLinux 10
Step 1: Update AlmaLinux 10
Before installing anything, it’s important to update the system packages to ensure stability and compatibility.
sudo dnf update -y
sudo dnf upgrade -y
This refreshes all dependencies and prepares the environment for Docker installation.
Step 2: Install Docker Engine
NocoDB runs perfectly inside Docker containers, keeping the setup clean and easy to maintain.
Now add the Docker repository and install Docker Engine:
sudo dnf install dnf-plugins-core -y
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Enable and start the Docker service:
sudo systemctl enable docker
sudo systemctl start docker
Check the installation:
docker --version
Step 3: Create a NocoDB Directory
Organizing files matters. Let’s create a clean directory for NocoDB:
sudo mkdir -p /opt/nocodb
cd /opt/nocodb
Step 4: Write docker-compose.yml
nano docker-compose.yml
Add following content:
services:
nocodb:
image: nocodb/nocodb:latest
container_name: nocodb
ports:
- "8080:8080"
depends_on:
- db
environment:
- NC_DB=pg://db:5432?u=nocodb&p=${PG_PASSWORD}&d=nocodb
- NC_AUTH_JWT_SECRET=${NC_AUTH_JWT_SECRET}
restart: unless-stopped
db:
image: postgres:15-alpine
container_name: nocodb_db
environment:
- POSTGRES_USER=nocodb
- POSTGRES_PASSWORD=${PG_PASSWORD}
- POSTGRES_DB=nocodb
volumes:
- pgdata:/var/lib/postgresql/data
restart: unless-stopped
volumes:
nocodb_data:
pgdata:
Important: use an .env
file to store secrets.
Create .env
in same folder with:
nano .env
Add following variable:
NC_AUTH_JWT_SECRET=some_random_hex_string
PG_PASSWORD=strong_password_here
Generate the JWT secret:
openssl rand -hex 32
5. Launch containers
docker compose up -d
Check status:
docker ps
docker compose logs -f
If things break, logs are your friend.
You’ll be prompted to register an admin account. After login, you can “Add Connection” to existing databases or use the built-in one.
Step 6: Secure NocoDB with a Reverse Proxy (Recommended)
If NocoDB will be accessed publicly, using a reverse proxy like Nginx or Apache is important for SSL and basic protection.
Here’s an example using Nginx:
sudo dnf install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
Step 7: Configure firewall and SELinux
We need to add HTTP and HTTPS ports in the firewall:
sudo firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --add-port=443/tcp --permanent
Now, let's configure SELinux (If you have enabled SELinux):
sudo setsebool -P httpd_can_network_connect 1
Create a configuration file:
sudo nano /etc/nginx/conf.d/nocodb.conf
Add this block:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Save, exit, and restart Nginx:
sudo systemctl restart nginx
Then install Certbot to enable HTTPS:
sudo dnf install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com
Step 7: Access NocoDB Interface
Once the container is running, open our browser and visit:
http://SERVER_IP:8080
We’ll be greeted with the NocoDB setup screen. Create the first admin account — this is the main login that manages everything.
After login, we can connect any supported database by providing the credentials and selecting a table.
Step 8: Manage NocoDB Container
Useful Docker commands for managing the NocoDB container:
sudo docker ps # List running containers
sudo docker logs nocodb # View logs
sudo docker restart nocodb # Restart container
sudo docker stop nocodb # Stop container
sudo docker rm nocodb # Remove container
To update NocoDB to the latest version:
sudo docker pull nocodb/nocodb:latest
sudo docker stop nocodb
sudo docker rm nocodb
sudo docker run -d -p 8080:8080 -v /opt/nocodb/data:/usr/app/data --name nocodb nocodb/nocodb:latest
Conclusion
By following these steps, we’ve successfully installed NocoDB on AlmaLinux 10 using Docker — a clean, scalable setup that converts any SQL database into a no-code workspace.
NocoDB gives our team a powerful tool to collaborate, automate, and manage data visually, all while maintaining full control of our infrastructure.
This installation is ideal for small teams, developers, and organizations aiming to bring no-code flexibility without sacrificing data ownership or security.