NocoDB
✨ L'alternativa Abertable Open Source ✨
Trasforma qualsiasi MySQL, PostgreSQL, SQL Server, SQLite & Mariadb in un foglio di calcolo intelligente.
[![Build Status](https://travis-ci.org/dwyl/esta.svg?branch=master)](https://travis-ci.com/github/NocoDB/NocoDB)
[![Node version](https://badgen.net/npm/node/next)](http://nodejs.org/download/)
[![Twitter](https://img.shields.io/twitter/url/https/twitter.com/NocoDB.svg?style=social&label=Follow%20%40NocoDB)](https://twitter.com/NocoDB)
Website •
Discord •
Twitter
![OpenSourceAirtableAlternative](https://user-images.githubusercontent.com/5435402/133762127-e94da292-a1c3-4458-b09a-02cd5b57be53.png)
# Quick try
### 1-Click Deploy
#### Heroku
### Usando Docker.
```bash
docker run -d --name nocodb -p 8080:8080 nocodb/nocodb:latest
```
> To persist data you can mount volume at `/usr/app/data/`.
### Usando NPM.
```
npx create-nocodb-app
```
### Usando git.
```
git clone https://github.com/nocodb/nocodb-seed
cd nocodb-seed
npm install
npm start
```
### GUI
Accesso Dashboard utilizzando : [http://localhost:8080/dashboard](http://localhost:8080/dashboard)
# Unisciti alla nostra comunità
# Screenshots
![2](https://user-images.githubusercontent.com/5435402/133759229-4275b934-873b-4a9b-9f23-96470fec9775.png)
![1](https://user-images.githubusercontent.com/5435402/133759218-f8b0bffc-707f-451c-82f2-b5ba2573d6a6.png)
![7](https://user-images.githubusercontent.com/5435402/133759245-a536165b-55f1-46a8-a74e-1964e7e481c6.png)
![5](https://user-images.githubusercontent.com/5435402/133759240-dd3f2509-aab7-4bd1-9a58-4c2dff08f2f2.png)
![6](https://user-images.githubusercontent.com/5435402/133759242-2311a127-17c8-406c-b865-1a2e9c8ee398.png)
![3](https://user-images.githubusercontent.com/5435402/133759234-9b539029-be36-4a35-b55a-bee3ebd0e010.png)
![4](https://user-images.githubusercontent.com/5435402/133759236-dc182129-3768-4e23-874e-98f5f32e962c.png)
![11](https://user-images.githubusercontent.com/5435402/133759253-bb9bc729-ee28-4f86-ab95-7d112c0815f2.png)
![10](https://user-images.githubusercontent.com/5435402/133759250-ebd75ecf-31db-4a17-b2d7-2c43af78a54e.png)
![8](https://user-images.githubusercontent.com/5435402/133759248-3a7141e0-4b7d-4079-a5f9-cf8611d00bc5.png)
![9](https://user-images.githubusercontent.com/5435402/133759249-8c1a85c2-a55c-48f6-bd58-aa6b4195cce7.png)
# Caratteristiche
### Interfaccia foglio di calcolo ricco
- ⚡ Ricerca, ordina, filtra, nascondi le colonne con facilità di uber
- ⚡ Creare viste: Grid, Gallery, Kanban, Gantt, Form
- ⚡ Condividi Visualizzazioni: Protezione pubblica e password
- ⚡ Viste personali e bloccate
- ⚡ Carica immagini su celle (funziona con S3, Minio, GCP, Azure, Digitalocean, Linode, OVH, BackBlaze) !!
- ⚡ Ruoli: proprietario, creatore, editor, commentatore, visualizzatore, commentatore, ruoli personalizzati.
- ⚡ Controllo accessi: controllo di accesso a grana fine anche a livello di database, tabella e colonna.
### App store per automazioni del flusso di lavoro:
- ⚡ Chat: Microsoft Teams, Slack, Discord, Materialmost
- ⚡ Email: SMTP, SES, MailChimp
- ⚡ SMS: Twilio
- ⚡ whatsapp.
- ⚡ Qualsiasi API di terze parti
### Accesso API programmatico tramite:
- ⚡ Apis di riposo (spavalderia)
- ⚡ API graphql.
- ⚡ Include autenticazione JWT e AUTH
- ⚡ Token API da integrare con Zapier, Integromat.
# Production Setup
NOCODB richiede un database per memorizzare i metadati delle viste dei fogli di calcolo e dei database esterni. E i parametri di connessione per questo database possono essere specificati nella variabile di ambiente NC_DB.
## 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:latest
```
#### 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:latest
```
#### 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:latest
```
## 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 |
# Development setup
```
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.
## Running Cypress tests locally
```shell
# install dependencies(cypress)
npm install
# run required services by using docker compose
docker-compose -f ./docker-compose-cypress.yml up
# wait until both 3000 and 8080 porta are avalable
# and run cypress test using following command
npm run cypress:run
# or run following command to run it with GUI
npm run cypress:open
```
# Contributing
- Please take a look at ./contribute/HowToApplyLicense.md
- Ignore adding headers for .json or .md or .yml
# 🎯 Perché stiamo costruendo questo?
La maggior parte delle aziende Internet si arretra con il foglio di calcolo o un database per risolvere le loro esigenze aziendali. I fogli di calcolo sono utilizzati da un miliardo + umani in collaborazione ogni singolo giorno. Tuttavia, siamo andati via lavorando a velocità simili sui database che sono molto più potenti strumenti quando si tratta di elaborare. I tentativi di risolvere questo con le offerte SAAS hanno significato orribili controlli di accesso, serratura del fornitore, blocco dati, bruschi cambiamenti di prezzo e soprattutto un soffitto di vetro su ciò che è possibile in futuro.
# ❤ La nostra missione :
La nostra missione è quella di fornire l'interfaccia no-code più potente per i database che è open source ad ogni singola attività internet nel mondo. Ciò non solo democratizzerebbe l'accesso a uno strumento di calcolo potente ma produrre anche un miliardo di miliardi + persone che avranno abilità radicali armeggiare e costruire capacità su Internet.