NocoDB
Overview
NocoDB is an open-source no-code database platform and an Airtable alternative. It turns a SQL database into a smart spreadsheet with grid, gallery, kanban, form and calendar views, so a whole team can build applications on shared data without writing code. The SecureAnyCloud image runs NocoDB 2026.06.2 from the official container image and generates a unique admin account on the first boot of every VM.
What you get:
- NocoDB 2026.06.2 (container
nocodb/nocodb:2026.06.2, AGPL-3.0) with grid, gallery, kanban, form and calendar views, an auto-generated REST and GraphQL API, webhooks, roles and real-time collaboration - A local PostgreSQL 16 metadata store bound to loopback
127.0.0.1:5432, with its data directory on the dedicated data disk - nginx on
:80as a reverse proxy to the loopback NocoDB backend, with WebSocket upgrade headers for real-time updates, plus an unauthenticated/healthendpoint - An nftables rule that drops any inbound connection to
:8080that does not arrive on loopback, so NocoDB is reachable only through nginx - A per-VM admin account (
admin@sac.local) generated on first boot and recorded in a root-only file - A dedicated Azure data disk at
/var/lib/nocodbfor the PostgreSQL metadata (pgdata) and NocoDB attachments (data) postgresql.service,nocodb.serviceandnginx.serviceas systemd units, enabled and active- 24/7 SecureAnyCloud support
Prerequisites
You need an active Azure subscription, an SSH key pair, and a VNet and subnet in the target region.
Standard_B4ms (4 vCPU, 16 GiB RAM) is the recommended size. The NocoDB and PostgreSQL stack runs comfortably there.
In the network security group, allow inbound 22/tcp from your management network and 80/tcp. NocoDB serves plain HTTP on port 80, so terminate TLS in front of it with your own domain. Use an Azure Application Gateway or Front Door, or a reverse proxy with certbot.
Step 1 - Deploy from the Azure Marketplace
Sign in to the Azure Portal, choose Create a resource, search the Marketplace for NocoDB by SecureAnyCloud, and select Create.
On the Basics tab, pick your subscription, resource group, region and size (Standard_B4ms recommended). Under Administrator account, choose SSH public key and paste your key. Under Inbound port rules, allow SSH (22) and HTTP (80).
Review the dedicated data disk on the Disks tab. Then select Review + create and Create.
Step 2 - Deploy from the Azure CLI
Accept the Marketplace terms once per subscription, then create the VM and open port 80:
# Accept the Marketplace terms once per subscription (required before the first CLI deploy)
az vm image terms accept --urn sac1647283583153:nocodb-ubuntu-24-04:default:latest
az vm create \
--resource-group <your-rg> \
--name nocodb \
--image sac1647283583153:nocodb-ubuntu-24-04:default:latest \
--size Standard_B4ms \
--admin-username azureuser \
--ssh-key-values ~/.ssh/id_ed25519.pub \
--vnet-name <your-vnet> --subnet <your-subnet> \
--public-ip-sku Standard
az vm open-port --resource-group <your-rg> --name nocodb --port 80 --priority 1010Step 3 - Connect to your VM
Connect to the VM over SSH:
ssh azureuser@<vm-public-ip>Step 4 - Confirm the services are running
Check that all three services are active:
systemctl is-active postgresql nocodb.service nginx.serviceAll three report active. On first boot, NocoDB creates a per-VM admin against a clean PostgreSQL metadata database.
Step 5 - Retrieve your admin password
First boot generates a unique admin password for your VM and writes it to a root-only file. Read the file:
sudo cat /root/nocodb-credentials.txtThe file contains NOCODB_ADMIN_EMAIL (admin@sac.local) and NOCODB_ADMIN_PASSWORD. Store the password somewhere safe.
Step 6 - Confirm the health endpoint
nginx serves an unauthenticated health file for load balancers and probes. Request it:
curl -s http://localhost/health; echoThe command returns ok.
Step 7 - Open the dashboard
Browse to http://<vm-public-ip>/ and sign in as admin@sac.local with the password from Step 5. Open signup is disabled (invite-only), so only accounts you invite can join.
After you sign in, you land on your workspace. A base is a container for tables, views and their shared data. Create one to start building.
Open a table to work in the grid view. The grid view is a spreadsheet-style editor where each row is a record and each column is a typed field. Switch a table to gallery, kanban, form or calendar view with a click.
The team and base settings cover members and roles, API tokens, webhooks and other configuration.
Step 8 - Verify authentication from the command line
NocoDB's sign-in endpoint rejects a wrong password and accepts the per-VM admin password. Read the password into a variable, then authenticate through nginx:
NC_PASS=$(sudo grep '^NOCODB_ADMIN_PASSWORD=' /root/nocodb-credentials.txt | cut -d= -f2-)
curl -s -X POST -H 'Content-Type: application/json' \
-d "{\"email\":\"admin@sac.local\",\"password\":\"$NC_PASS\"}" \
http://localhost/api/v1/auth/user/signin | head -c 120; echoThe response contains a "token" field. That JWT authenticates subsequent API calls, for example xc-auth on /api/v2/... endpoints.
Step 9 - Confirm the PostgreSQL backend on the dedicated disk
NocoDB stores its metadata (bases, tables, views, users) in a local PostgreSQL 16 instance. The data directory lives on the dedicated Azure data disk, so it survives container restarts, reboots and resizes. Check the mount and the metadata schema:
findmnt /var/lib/nocodb
sudo -u postgres psql -tAc "SELECT count(*) FROM information_schema.tables WHERE table_schema='public'" nocodbThe mount is backed by a separate Azure data disk that is captured into the image and re-provisioned on every VM. The table count is one or more, which is the NocoDB metadata schema. PostgreSQL listens on loopback 127.0.0.1:5432 only.
Building your app
NocoDB is a full no-code platform. Create a base, add tables and typed columns, and switch between grid, gallery, kanban, form and calendar views. Share forms to collect data, add filters, sorts and group-bys, wire up webhooks on row changes, and invite teammates with per-base roles.
Every table is instantly available through the auto-generated REST and GraphQL API. Point any HTTP client at http://<your-domain>/api/v2/ with a token created in the base settings. See the NocoDB documentation for the API reference, views, automations and SDKs.
Maintenance
- Users and roles: Invite members and assign per-base roles from the base settings. Open signup is disabled by default.
- Backups: Snapshot the
/var/lib/nocodbdata disk, or take a logical dump of thenocodbPostgreSQL database. - Data: The PostgreSQL metadata lives under
/var/lib/nocodb/pgdataand NocoDB attachments live under/var/lib/nocodb/data. - TLS: NocoDB serves plain HTTP on port 80. Front it with TLS and your own domain, using an Azure Application Gateway or Front Door, or certbot.
- Upgrades: NocoDB runs as a container pinned to
nocodb/nocodb:2026.06.2. To upgrade, move to a newer tag and restart the service. - Security patches: unattended-upgrades remains enabled, so the OS continues to receive security updates automatically.
Support
SecureAnyCloud provides 24/7 expert support for this image. Contact sales@secureanycloud.com.
Deploy on Azure
Launch NocoDB on Ubuntu 24.04 LTS on Azure with 24/7 support from SecureAnyCloud.
View this image
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com