多维表格
 
 
 
 
 
 

13 KiB

NocoDB
Альтернатива Airtable с открытым исходным кодом

Превращает любой MySQL, PostgreSQL, SQL Server, SQLite & Mariadb в смарт-таблицу.

Build Status Node version Twitter

WebsiteDiscordTwitterRedditDocumentation

OpenSourceAirtableAlternative

NocoDB - The Open Source Airtable alternative | Product Hunt

Быстрый старт

1-Нажмите на Deploy

Heroku

Deploy NocoDB to Heroku with 1-Click

Используя Docker

docker run -d --name nocodb -p 8080:8080 nocodb/nocodb:latest

Для сохранения данных, вы можете установить том в /usr/app/data/.

Используя NPM

npx create-nocodb-app

Используя git.

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

GUI

Получите доступ к панели управления, используя : http://localhost:8080/dashboard

Присоединяйтесь к нашему сообществу

Join NocoDB : Free & Open Source Airtable Alternative

Скриншоты

1

2

5

6

7

8

9

9a

9b

10

11

Функции

Богатый интерфейс электронной таблицы

  • Поиск, сортировка, фильтр, скрыть столбцы с невероятной легкостью
  • Создание видов: сетка, галерея, канбан, Гантт, форма
  • Делиться видами: публичный & защищенный паролем
  • Личные и заблокированные виды
  • Загрузить изображения в ячейки (работает с S3, Minio, GCP, Azure, Digitalocean, Linode, Ovh, BackBlaze)
  • Роли: владелец, создатель, редактор, зритель, комментатор, пользовательские роли.
  • Контроль доступа: тонкозернистый контроль доступа даже в базе данных, уровень таблицы и столбца.

App Store для автоматики рабочего процесса:

  • Чат: Microsoft Teams, Slack, Discord, Mattermost
  • Электронная почта: SMTP, SES, MailChimp
  • SMS: Twilio
  • WhatsApp
  • Любая API третьей стороны

Программный доступ API через:

  • REST API (Swagger)
  • GraphQL API
  • Включает в себя JWT Authentication & Social Auth
  • токены API для интеграции с Zapier, Integomat.

Настройка производства

NocoDB требует базу данных для хранения метаданных видов электронных таблиц и внешних баз данных. Подключения параметров для этой базы данных можно указать в переменной среды NC_DB.

Docker

Пример 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:latest

Пример 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:latest

Пример 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:latest

Docker Compose

git clone https://github.com/nocodb/nocodb
cd nocodb
cd docker-compose
cd mysql or pg or mssql
docker-compose up

Переменные среды

Переменная Обязательна Комментарии Если отсутствует
NC_DB Да Посмотрите наши URL-адреса базы данных В корневой папке будет создан локальный SQLite
DATABASE_URL Нет Формат URL JDBC. Может использоваться вместо NC_DB. Используется при развертывании Heroku в один клик
DATABASE_URL_FILE Нет путь к файлу, содержащему формат URL JDBC. Может использоваться вместо NC_DB. Используется при развертывании Heroku в один клик
NC_PUBLIC_URL Да Используется для отправки email приглашений Лучшее предположение из параметров HTTP-запроса
NC_AUTH_JWT_SECRET Да Секрет JWT, используемый для аутентификации и хранения других секретов Будет сгенерирован случайный секрет
NC_SENTRY_DSN Нет Для сторожевого мониторинга
NC_CONNECT_TO_EXTERNAL_DB_DISABLED Нет Отключить создание проекта с внешней базой данных
NC_DISABLE_TELE Нет Отключить телеметрию
NC_BACKEND_URL Нет Пользовательский Backend URL будет использоваться http://localhost:8080

Настройка разработки

git clone https://github.com/nocodb/nocodb
cd nocodb

# запустить бэкэнд
cd packages/nocodb
npm install
npm run watch:run

# открыть localhost:8080/dashboard в браузере

# запустить фронтэнд
cd packages/nc-gui
npm install
npm run dev

# открыть localhost:3000/dashboard в браузере

Изменения, внесенные в код, автоматически перезапускаются.

Локальный запуск Cypress-тестов

# установить зависимости (cypress)
npm install

# install dependencies(cypress)
npm install

# запустить базу данных mysql с необходимой базой данных, используя docker compose
docker-compose -f ./scripts/docker-compose-cypress.yml up

# Запустите backend api, используя следующую команду
npm run start:api

# Запустите интерфейсный веб-интерфейс, используя следующую команду
npm run start:web

# подождите, пока станут доступны порты 3000 и 8080
# и запустите тест cypress, используя следующую команду
npm run cypress:run

# или запустите следующую команду, чтобы запустить ее с графическим интерфейсом
npm run cypress:open

Содействие

  • Пожалуйста, посмотрите ./scripts/contribute/HowToApplyLicense.md
  • Игнорировать добавление заголовков для .json, .md или .yml.

🎯 Почему мы строим это?

Большинство интернет-компаний используют электронные таблицы или базы данных для решения своих бизнес-задач. Таблицы ежедневно используют более миллиарда человек. Однако мы далеко не работаем с аналогичной скоростью над базами данных, которые являются более мощными инструментами, когда дело доходит до вычислений. Попытки решить эту проблему с помощью предложений SaaS означали ужасный контроль доступа, блокировку поставщиков, блокировку данных, резкие изменения цен и, самое главное, стеклянный потолок для того, что возможно в будущем.

❤ Наша миссия :

Наша миссия - предоставить самый мощный интерфейс без кода для баз данных с открытым исходным кодом для каждого интернет-бизнеса в мире. Это не только демократизирует доступ к мощному вычислительному инструменту, но и приведет к появлению более миллиарда человек, которые будут иметь радикальные способности возиться и строить в Интернете.