Get startedSign in
Back

NocoDB

Open-source alternative to Airtable that turns any database into a smart spreadsheet.

Available providers

Why use NocoDB on Plural?

Plural helps you deploy and manage the lifecycle of open-source applications on Kubernetes. Our platform combines the scalability and observability benefits of managed SaaS with the data security, governance, and compliance benefits of self-hosting NocoDB.

If you need more than just NocoDB, look for other cloud-native and open-source tools in our marketplace of curated applications to leapfrog complex deployments and get started quickly.

NocoDB’s websiteGitHubLicenseInstalling NocoDB docs

Deploying NocoDB is a matter of executing these 3 commands:

plural bundle install nocodb nocodb-aws
plural build
plural deploy --commit "deploying nocodb"
Read the install documentation

The Open Source Airtable Alternative

Turns any MySQL, PostgreSQL, SQL Server, SQLite & MariaDB into a smart-spreadsheet.

Build Status Node version Conventional Commits

WebsiteDiscordCommunityTwitterRedditDocumentation

All Views

Deploy NocoDB to Heroku with 1-Click

See other languages »

Join Our Team

Join Our Community

Stargazers repo roster for @nocodb/nocodb

Quick try

1-Click Deploy to Heroku

Before doing so, make sure you have a Heroku account. By default, an add-on Heroku Postgres will be used as meta database. You can see the connection string defined in DATABASE_URL by navigating to Heroku App Settings and selecting Config Vars.

Deploy NocoDB to Heroku with 1-Click

NPX

You can run below command if you need an interactive configuration.

npx create-nocodb-app

Node Application

We provide a simple NodeJS Application for getting started.

bash
git clone https://github.com/nocodb/nocodb-seed
cd nocodb-seed
npm install
npm start

Docker

bash
# for SQLite
docker run -d --name nocodb \
-v "$(pwd)"/nocodb:/usr/app/data/ \
-p 8080:8080 \
nocodb/nocodb:latest

# for MySQL
docker run -d --name nocodb-mysql \
-v "$(pwd)"/nocodb:/usr/app/data/ \
-p 8080:8080 \
-e NC_DB="mysql2://host.docker.internal:3306?u=root&p=password&d=d1" \
-e NC_AUTH_JWT_SECRET="569a1821-0a93-45e8-87ab-eb857f20a010" \
nocodb/nocodb:latest

# for PostgreSQL
docker run -d --name nocodb-postgres \
-v "$(pwd)"/nocodb:/usr/app/data/ \
-p 8080:8080 \
-e NC_DB="pg://host.docker.internal:5432?u=root&p=password&d=d1" \
-e NC_AUTH_JWT_SECRET="569a1821-0a93-45e8-87ab-eb857f20a010" \
nocodb/nocodb:latest

# for MSSQL
docker run -d --name nocodb-mssql \
-v "$(pwd)"/nocodb:/usr/app/data/ \
-p 8080:8080 \
-e NC_DB="mssql://host.docker.internal:1433?u=root&p=password&d=d1" \
-e NC_AUTH_JWT_SECRET="569a1821-0a93-45e8-87ab-eb857f20a010" \
nocodb/nocodb:latest

To persist data in docker you can mount volume at /usr/app/data/ since 0.10.6. Otherwise your data will be lost after recreating the container.

If you plan to input some special characters, you may need to change the character set and collation yourself when creating the database. Please check out the examples for MySQL Docker.

Binaries

MacOS (x64)
bash
curl http://get.nocodb.com/macos-x64 -o nocodb -L && chmod +x nocodb && ./nocodb
MacOS (arm64)
bash
curl http://get.nocodb.com/macos-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb
Linux (x64)
bash
curl http://get.nocodb.com/linux-x64 -o nocodb -L && chmod +x nocodb && ./nocodb
Linux (arm64)
bash
curl http://get.nocodb.com/linux-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb
Windows (x64)
bash
iwr http://get.nocodb.com/win-x64.exe
.\Noco-win-x64.exe
Windows (arm64)
bash
iwr http://get.nocodb.com/win-arm64.exe
.\Noco-win-arm64.exe

Docker Compose

We provide different docker-compose.yml files under this directory. Here are some examples.

bash
git clone https://github.com/nocodb/nocodb
# for MySQL
cd nocodb/docker-compose/mysql
# for PostgreSQL
cd nocodb/docker-compose/pg
# for MSSQL
cd nocodb/docker-compose/mssql
docker-compose up -d

To persist data in docker, you can mount volume at /usr/app/data/ since 0.10.6. Otherwise your data will be lost after recreating the container.

If you plan to input some special characters, you may need to change the character set and collation yourself when creating the database. Please check out the examples for MySQL Docker Compose.

GUI

Access Dashboard using : http://localhost:8080/dashboard

Screenshots

1 2 3 4 5 6 7 8 9 10 11 12

Table of Contents

Features

Rich Spreadsheet Interface

  • ⚡  Basic Operations: Create, Read, Update and Delete on Tables, Columns, and Rows
  • ⚡  Fields Operations: Sort, Filter, Hide / Unhide Columns
  • ⚡  Multiple Views Types: Grid (By default), Gallery, Form View and Kanban View
  • ⚡  View Permissions Types: Collaborative Views, & Locked Views
  • ⚡  Share Bases / Views: either Public or Private (with Password Protected)
  • ⚡  Variant Cell Types: ID, LinkToAnotherRecord, Lookup, Rollup, SingleLineText, Attachement, Currency, Formula and etc
  • ⚡  Access Control with Roles : Fine-grained Access Control at different levels
  • ⚡  and more ...

App Store for Workflow Automations

We provide different integrations in three main categories. See App Store for details.

  • ⚡  Chat : Slack, Discord, Mattermost, and etc
  • ⚡  Email : AWS SES, SMTP, MailerSend, and etc
  • ⚡  Storage : AWS S3, Google Cloud Storage, Minio, and etc

Programmatic Access

We provide the following ways to let users to invoke actions in a programmatic way. You can use a token (either JWT or Social Auth) to sign your requests for authorization to NocoDB.

  • ⚡  REST APIs
  • ⚡  NocoDB SDK

Sync Schema

We allow you to sync schema changes if you have made changes outside NocoDB GUI. However, it has to be noted then you will have to bring your own schema migrations for moving from environment to others. See Sync Schema for details.

Audit

We are keeping all the user operation logs under one place. See Audit for details.

Production Setup

By default, SQLite is used for storing meta data. However, you can specify your own database. The connection params for this database can be specified in NC_DB environment variable. Moreover, we also provide the below environment variables for configuration.

Environment variables

Please refer to Environment variables

Development Setup

Please refer to Development Setup

Contributing

Please refer to Contribution Guide.

Why are we building this?

Most internet businesses equip themselves with either spreadsheet or a database to solve their business needs. Spreadsheets are used by a Billion+ humans collaboratively every single day. However, we are way off working at similar speeds on databases which are way more powerful tools when it comes to computing. Attempts to solve this with SaaS offerings has meant horrible access controls, vendor lockin, data lockin, abrupt price changes & most importantly a glass ceiling on what's possible in future.

Our Mission

Our mission is to provide the most powerful no-code interface for databases which is open source to every single internet business in the world. This would not only democratise access to a powerful computing tool but also bring forth a billion+ people who will have radical tinkering-and-building abilities on internet.

License

This project is licensed under AGPLv3.

Contributors

Thank you for your contributions! We appreciate all the contributions from the community.

How Plural works

We make it easy to securely deploy and manage open-source applications in your cloud.

Select from 90+ open-source applications

Get any stack you want running in minutes, and never think about upgrades again.

Securely deployed on your cloud with your git

You control everything. No need to share your cloud account, keys, or data.

Designed to be fully customizable

Built on Kubernetes and using standard infrastructure as code with Terraform and Helm.

Maintain & Scale with Plural Console

Interactive runbooks, dashboards, and Kubernetes api visualizers give an easy-to-use toolset to manage application operations.

Learn more
Screenshot of app installation in Plural app

Build your custom stack with Plural

Build your custom stack with over 90+ apps in the Plural Marketplace.

Data
Stack
Airbyte
DATA
Clickhouse
DATA
Dagster
DATA
Datahub
DATA
Growthbook
DATA
Jitsu
DATA
Lightdash
DATA
Posthog
DATA
Explore the Marketplace

Used by fast-moving teams at

  • CoachHub
  • Digitas
  • Fnatic
  • FSN Capital
  • Justos
  • Mott Mac

What companies are saying about us

We no longer needed a dedicated DevOps team; instead, we actively participated in the industrialization and deployment of our applications through Plural. Additionally, it allowed us to quickly gain proficiency in Terraform and Helm.

Walid El Bouchikhi
Data Engineer at Beamy

I have neither the patience nor the talent for DevOps/SysAdmin work, and yet I've deployed four enterprise-caliber open-source apps on Kubernetes... since 9am today. Bonkers.

Sawyer Waugh
Head of Engineering at Justifi

This is awesome. You saved me hours of further DevOps work for our v1 release. Just to say, I really love Plural.

Ismael Goulani
CTO & Data Engineer at Modeo

Wow! First of all I want to say thank you for creating Plural! It solves a lot of problems coming from a non-DevOps background. You guys are amazing!

Joey Taleño
Head of Data at Poplar Homes

We have been using Plural for complex Kubernetes deployments of Kubeflow and are excited with the possibilities it provides in making our workflows simpler and more efficient.

Jürgen Stary
Engineering Manager @ Alexander Thamm

Plural has been awesome, it’s super fast and intuitive to get going and there is zero-to-no overhead of the app management.

Richard Freling
CTO and Co-Founder at Commandbar

Case StudyHow Fnatic Deploys Their Data Stack with Plural

Fnatic is a leading global esports performance brand headquartered in London, focused on leveling up gamers. At the core of Fnatic’s success is its best-in-class data team. The Fnatic data team relies on third-party applications to serve different business functions with every member of the organization utilizing data daily. While having access to an abundance of data is great, it opens up a degree of complexity when it comes to answering critical business questions and in-game analytics for gaming members.

To answer these questions, the data team began constructing a data stack to solve these use cases. Since the team at Fnatic are big fans of open-source they elected to build their stack with popular open-source technologies.

Fnatic’s Data Stack

Airbyte
Airflow
Clickhouse
Grafana
Metabase
PostgreSQL

FAQ

Plural is open-source and self-hosted. You retain full control over your deployments in your cloud. We perform automated testing and upgrades and provide out-of-the-box Day 2 operational workflows. Monitor, manage, and scale your configuration with ease to meet changing demands of your business. Read more.

We support deploying on all major cloud providers, including AWS, Azure, and GCP. We also support all on-prem Kubernetes clusters, including OpenShift, Tanzu, Rancher, and others.

No, Plural does not have access to any cloud environments when deployed through the CLI. We generate deployment manifests in the Plural Git repository and then use your configured cloud provider's CLI on your behalf. We cannot perform anything outside of deploying and managing the manifests that are created in your Plural Git repository. However, Plural does have access to your cloud credentials when deployed through the Cloud Shell. Read more.