NocoDB
An Open Source Airtable Alternative Build With Vue.js
Turns any MySQL, PostgreSQL, SQL Server, SQLite & MariaDB into a smart-spreadsheet.
Quick try
1-Click Deploy
Heroku
Using Docker
docker run -d --name nocodb -p 8080:8080 nocodb/nocodb
Using Npm
npx create-nocodb-app
Using Git
git clone https://github.com/nocodb/nocodb-seed
cd nocodb-seed
npm install
npm start
GUI
Access Dashboard using : http://localhost:8080/dashboard
Screenshots
Features
Rich Spreadsheet Interface
- ⚡ Search, sort, filter, hide columns with uber ease
- ⚡ Create Views : Grid, Gallery, Kanban, Gantt, Form
- ⚡ Share Views : public & password protected
- ⚡ Personal & locked Views
- ⚡ Upload images to cells (Works with S3, Minio, GCP, Azure, DigitalOcean, Linode, OVH, BackBlaze)!!
- ⚡ Roles : Owner, Creator, Editor, Commenter, Viewer, Commenter, Custom Roles.
- ⚡ Access Control : Fine-grained access control even at database, table & column level.
App Store for workflow automations :
- ⚡ Chat : Microsoft Teams, Slack, Discord, Mattermost
- ⚡ Email : SMTP, SES, Mailchimp
- ⚡ SMS : Twilio
- ⚡ Any 3rd Party APIs
Programmatic API access via :
- ⚡ REST APIs (Swagger)
- ⚡ GraphQL APIs.
- ⚡ Includes JWT Authentication & Social Auth
- ⚡ API tokens to integrate with Zapier, Integromat.
Production Setup
NocoDB requires a database to store metadata of spreadsheets views and external databases.
And connection params for this database can be specified in NC_DB
environment variable.
Docker
Example MySQL
docker run -d -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
Example Postgres
docker run -d -p 8080:8080 \
-e NC_DB="pg://host:port?u=user&p=password&d=database" \
-e NC_AUTH_JWT_SECRET="569a1821-0a93-45e8-87ab-eb857f20a010" \
nocodb/nocodb
Example SQL Server
docker run -d -p 8080:8080 \
-e NC_DB="mssql://host:port?u=user&p=password&d=database" \
-e NC_AUTH_JWT_SECRET="569a1821-0a93-45e8-87ab-eb857f20a010" \
nocodb/nocodb
Docker Compose
git clone https://github.com/nocodb/nocodb
cd docker-compose
cd mysql or pg or mssql
docker-compose up
Environment variables
Variable | Mandatory | Comments | If absent |
---|---|---|---|
NC_DB | Yes | See our database URLs | A local SQLite will be created in root folder |
DATABASE_URL | No | JDBC URL Format. Can be used instead of NC_DB. Used in 1-Click Heroku deployment | |
DATABASE_URL_FILE | No | path to file containing JDBC URL Format. Can be used instead of NC_DB. Used in 1-Click Heroku deployment | |
NC_PUBLIC_URL | Yes | Used for sending Email invitations | Best guess from http request params |
NC_AUTH_JWT_SECRET | Yes | JWT secret used for auth and storing other secrets | A Random secret will be generated |
NC_SENTRY_DSN | No | For Sentry monitoring | |
NC_CONNECT_TO_EXTERNAL_DB_DISABLED | No | Disable Project creation with external database | |
NC_DISABLE_TELE | No | Disable telemetry | |
NC_BACKEND_URL | No | Custom Backend URL | http://localhost:8080 will be used |
Running locally
git clone https://github.com/nocodb/nocodb
cd nocodb
# run backend
cd packages/nocodb
npm install
npm run watch:run
# open localhost:8080/dashboard in browser
# run frontend
cd packages/nc-gui
npm install
npm run dev
# open localhost:3000/dashboard in browser
Changes made to code automatically restart.