<ahref="https://www.producthunt.com/posts/nocodb?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-nocodb"target="_blank"><imgsrc="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=297536&theme=dark"alt="NocoDB - The Open Source Airtable alternative | Product Hunt"style="width: 250px; height: 54px;"width="250"height="54"/></a>
"subscribeNewsletter":"Subscribe to our weekly newsletter",
"subscribeNewsletter":"Abonnez-vous à notre newsletter hebdomadaire",
"signUpWithGoogle":"S’enregistrer avec Google",
"signInWithGoogle":"Se connecter avec Google",
"agreeToTos":"By signing up, you agree to the Terms of Service",
"welcomeToNc":"Welcome to NocoDB!",
"agreeToTos":"En continuant, vous acceptez les Conditions d'Utilisation",
"welcomeToNc":"Bienvenue sur NocoDB !",
"inviteOnlySignup":"Allow signup only using invite url"
},
"activity":{
@ -339,7 +340,7 @@
"translate":"Aider à la traduction",
"account":{
"authToken":"Copier le jeton d'authentification",
"swagger":"Swagger : les API REST",
"swagger":"Swagger : API REST",
"projInfo":"Copier les informations du projet",
"themes":"Thèmes"
},
@ -350,13 +351,13 @@
"share":"Partager",
"shareBase":{
"disable":"Désactiver la base partagée",
"enable":"N'importe qui avec le lien",
"enable":"N'importe qui disposant du lien",
"link":"Partager le lien de la base"
},
"invite":"Inviter",
"inviteMore":"Inviter plus",
"inviteTeam":"Inviter une équipe",
"inviteUser":"Invite User",
"inviteUser":"Inviter un utilisateur",
"inviteToken":"Inviter via un jeton",
"newUser":"Nouvel utilisateur",
"editUser":"Modifier l'utilisateur",
@ -375,17 +376,17 @@
"refreshTable":"Actualiser le tableau",
"renameTable":"Renommer le tableau",
"deleteTable":"Supprimer le tableau",
"addField":"Ajouter un nouveau champ à cette table",
"addField":"Ajouter un nouveau champ à ce tableau",
"setPrimary":"Définir comme valeur primaire",
"addRow":"Ajouter une nouvelle ligne",
"saveRow":"Enregistrer la ligne",
"saveAndExit":"Save & Exit",
"saveAndStay":"Save & Stay",
"saveAndExit":"Enregistrer et quitter",
"saveAndStay":"Enregistrer et rester",
"insertRow":"Insérer une nouvelle ligne",
"deleteRow":"Supprimer la ligne",
"deleteSelectedRow":"Supprimer les lignes sélectionnées",
"importExcel":"Importer depuis Excel",
"importCSV":"Import CSV",
"importCSV":"Importer un fichier CSV",
"downloadCSV":"Télécharger comme CSV",
"downloadExcel":"Télécharger comme XLSX",
"uploadCSV":"Téléverser un CSV",
@ -424,14 +425,14 @@
"editConnJson":"Éditer le JSON de connexion",
"sponsorUs":"Nous Parrainer",
"sendEmail":"ENVOYER UN EMAIL",
"addUserToProject":"Add user to project",
"addUserToProject":"Ajouter un utilisateur au projet",
"getApiSnippet":"Récupérer le Snippet API",
"clearCell":"Clear cell",
"addFilterGroup":"Add Filter Group",
"clearCell":"Vider la cellule",
"addFilterGroup":"Ajouter un groupe de filtres",
"linkRecord":"Link record",
"addNewRecord":"Add new record",
"useConnectionUrl":"Use Connection URL",
"toggleCommentsDraw":"Toggle comments draw",
"toggleCommentsDraw":"Afficher ou masquer le panneau des commentaires",
"expandRecord":"Expand Record",
"deleteRecord":"Delete Record",
"erd":{
@ -445,7 +446,7 @@
"collapseStack":"Collapse Stack",
"deleteStack":"Delete Stack",
"stackedBy":"Stacked By",
"chooseGroupingField":"Choose a Grouping Field",
"chooseGroupingField":"Choisir un champ de regroupement",
"addOrEditStack":"Add / Edit Stack"
}
},
@ -459,9 +460,9 @@
"dark":"Nuit (^⇧B)",
"light":"Jour (^⇧B)"
},
"addTable":"Ajouter une nouvelle table",
"addTable":"Ajouter un nouveau tableau",
"inviteMore":"Inviter plus d'utilisateurs",
"toggleNavDraw":"Basculer le tiroir de navigation",
"toggleNavDraw":"Afficher ou masquer le panneau de navigation",
"reloadApiToken":"Recharger les jetons API",
"generateNewApiToken":"Générer de nouveaux jetons d'API",
"addRole":"Ajouter un nouveau rôle",
@ -493,18 +494,18 @@
"searchModels":"Chercher un modèle",
"noItemsFound":"Aucun élément trouvé",
"defaultValue":"Valeur par défaut",
"filterByEmail":"Filtrer par courriel",
"filterQuery":"Filter query",
"selectField":"Select field"
"filterByEmail":"Rechercher un courriel",
"filterQuery":"Rechercher",
"selectField":"Sélectionner un champ"
},
"msg":{
"warning":{
"barcode":{
"renderError":"Barcode error - please check compatibility between input and barcode type"
"renderError":"Erreur de code-barres - veuillez vérifier la compatibiltié entre la donnée d'entrée et le type de code-barres"
},
"nonEditableFields":{
"computedFieldUnableToClear":"Warning: Computed field - unable to clear text",
"qrFieldsCannotBeDirectlyChanged":"Warning: QR fields cannot be directly changed."
"qrFieldsCannotBeDirectlyChanged":"Attention : les champs QR code ne peuvent pas être modifiés directement."
}
},
"info":{
@ -518,7 +519,7 @@
"upload_sub":"ou glisser-déposer un fichier",
"excelSupport":"Pris en charge: .xls, .xlsx, .xlsm, .ods, .ots",
"excelURL":"Définir l'URL du fichier Excel",
"csvURL":"Définir l'URL du fichier CSV",
"csvURL":"URL vers le fichier CSV",
"footMsg":"Nombre de lignes à analyser pour déduire le type de données",
"excelImport":"Les tableaux sont disponibles pour l'import",
"exportMetadata":"Voulez-vous exporter des métadonnées des méta-tables?",
@ -536,19 +537,19 @@
"formInput":"Entrer le libellé du formulaire",
"formHelpText":"Ajouter un texte d'aide",
"onlyCreator":"Visible uniquement pour les créateurs",
"formDesc":"Ajouter une description du formulaire",
"formDesc":"Ajouter une description au formulaire",
"beforeEnablePwd":"Restreindre l’accès à l’aide d’un mot de passe",
"afterEnablePwd":"L’accès est restreint par un mot de passe",
"privateLink":"Cette vue est partagée avec un lien privé",
"privateLinkAdditionalInfo":"Les personnes ayant le lien privé peuvent voir uniquement les cellules visibles de cette vue",
"afterFormSubmitted":"Après que le formulaire est soumis",
"afterFormSubmitted":"Après que le formulaire ait été soumis",
"apiOptions":"Accéder au projet via",
"submitAnotherForm":"Afficher le bouton \"Soumettre un autre formulaire\"",
"showBlankForm":"Montrer un formulaire vierge après 5 secondes",
"emailForm":"Écrivez-moi à",
"showSysFields":"Afficher les champs système",
"filterAutoApply":"Appliquer automatiquement",
"showMessage":"Montrer ce message",
"showMessage":"Montrer ce message",
"viewNotShared":"La vue actuelle n'est pas partagée!",
"showAllViews":"Montrer toutes les vues partagées sur cette table",
"collabView":"Les collaborateurs avec des autorisations d'édition ou plus peuvent modifier la configuration de la vue.",
@ -574,7 +575,7 @@
},
"sponsor":{
"header":"Vous pouvez nous aider !",
"message":"Nous sommes une petite équipe travaillant à plein temps pour rendre Nocodb Open-Source. Nous croyons qu'un outil comme Nocodb devrait être disponible librement à chaque solveur de problèmes sur Internet."
"message":"Nous sommes une petite équipe travaillant à plein temps pour rendre NocoDB open-Source. Nous croyons qu'un outil comme NocoDB devrait être disponible librement à chaque solutionneur de problème sur Internet."
},
"loginMsg":"Se connecter à NocoDB",
"passwordRecovery":{
@ -583,7 +584,7 @@
"success":"Veuillez vérifier votre email pour réinitialiser le mot de passe"
},
"signUp":{
"superAdmin":"Vous serez le 'super admin'",
"superAdmin":"Vous serez le « super administrateur »",
"alreadyHaveAccount":"Avez-vous déjà un compte ?",
"workEmail":"Saisir votre adresse mail professionnelle",
"enterPassword":"Saisir votre mot de passe",
@ -599,33 +600,33 @@
},
"tablesMetadataInSync":"Les métadonnées de tables sont en synchronisation",
"addMultipleUsers":"Vous pouvez ajouter plusieurs courriels séparés par des virgules (,)",
"enterTableName":"Entrer le nom de la table",
"enterTableName":"Entrez le nom du tableau",
"addDefaultColumns":"Ajouter des colonnes par défaut",
"tableNameInDb":"Nom de la table tel qu'enregistré dans la base de données",
"airtable":{
"credentials":"Where to find this?"
"credentials":"Où trouver ceci?"
},
"import":{
"clickOrDrag":"Click or drag file to this area to upload"
"clickOrDrag":"Cliquez ou glissez un fichier dans cette zone pour téléverser"
"noColumnsToUpdate":"Aucune colonne à mettre à jour",
"tableDeleted":"Tableau supprimé avec succès",
"generatePublicShareableReadonlyBase":"Génère une base publique partagée en lecture seule",
"deleteViewConfirmation":"Êtes-vous sûr de vouloir effacer cette vue ?",
"deleteTableConfirmation":"Do you want to delete the table",
"showM2mTables":"Show M2M Tables",
"deleteTableConfirmation":"Voulez-vous supprimer ce tableau",
"showM2mTables":"Afficher les tables plusieurs à plusieurs",
"deleteKanbanStackConfirmation":"Deleting this stack will also remove the select option `{stackToBeDeleted}` from the `{groupingField}`. The records will move to the uncategorized stack.",
"computedFieldEditWarning":"Computed field: contents are read-only. Use column edit menu to reconfigure",
"computedFieldDeleteWarning":"Computed field: contents are read-only. Unable to clear content."
@ -640,26 +641,26 @@
"dbConnectionFailed":"Echec de connexion :",
"signUpRules":{
"emailReqd":"Adresse mail requise",
"emailInvalid":"L'adresse mail doit être valide",
"emailInvalid":"L'adresse électronique doit être valide",
"passwdRequired":"Mot de passe requis",
"passwdLength":"Votre mot de passe doit contenir au moins 8 caractères",
"passwdMismatch":"Les mots de passe ne correspondent pas",
"completeRuleSet":"At least 8 characters with one Uppercase, one number and one special character",
"atLeast8Char":"At least 8 characters",
"atLeastOneUppercase":"One Uppercase letter",
"atLeastOneNumber":"One Number",
"atLeastOneSpecialChar":"One special character",
"completeRuleSet":"Au moins 8 caractères avec une majuscule, un chiffre et un caractère spécial",
"atLeast8Char":"Au moins 8 caractères",
"atLeastOneUppercase":"Une lettre majuscule",
"atLeastOneNumber":"Un chiffre",
"atLeastOneSpecialChar":"Un caractère spécial",
"allowedSpecialCharList":"Allowed special character list"
},
"invalidURL":"Invalid URL",
"internalError":"Some internal error occurred",
"invalidURL":"URL invalide",
"internalError":"Une erreur interne est survenue",
"templateGeneratorNotFound":"Template Generator cannot be found!",
"fileUploadFailed":"Failed to upload file",
"fileUploadFailed":"Échec du téléversement du fichier",
"primaryColumnUpdateFailed":"Failed to update primary column",
"formDescriptionTooLong":"Data too long for Form Description",
"columnsRequired":"Following columns are required",
"selectAtleastOneColumn":"At least one column has to be selected",
"columnDescriptionNotFound":"Cannot find the destination column for",
"selectAtleastOneColumn":"Au moins une colonne doit être sélectionnée",
"columnDescriptionNotFound":"Impossible de trouver la colonne de destination pour",
"duplicateMappingFound":"Duplicate mapping found, please remove one of the mapping",
"nullValueViolatesNotNull":"Null value violates not-null constraint",
"sourceHasInvalidNumbers":"Source data contains some invalid numbers",
@ -675,14 +676,14 @@
"deleteRowFailed":"Failed to delete row",
"setFormDataFailed":"Failed to set form data",
"formViewUpdateFailed":"Échec de la mise à jour de la vue du formulaire",
"tableNameRequired":"Table name is required",
"nameShouldStartWithAnAlphabetOr_":"Name should start with an alphabet or _",
"followingCharactersAreNotAllowed":"Following characters are not allowed",
"columnNameRequired":"Column name is required",
"projectNameExceeds50Characters":"Project name exceeds 50 characters",
"projectNameCannotStartWithSpace":"Project name cannot start with space",
"requiredField":"Required field",
"ipNotAllowed":"IP not allowed",
"tableNameRequired":"Nom du tableau requis",
"nameShouldStartWithAnAlphabetOr_":"Le nom doit commencer par une lettre de l'alphabet ou _",
"followingCharactersAreNotAllowed":"Les caractères suivants ne sont pas autorisés",
"columnNameRequired":"Nom de la colonne requis",
"projectNameExceeds50Characters":"Le nom du projet dépasse les 50 caractères",
"projectNameCannotStartWithSpace":"Le nom du projet ne peut pas commencer par un espace",
"requiredField":"Champ requis",
"ipNotAllowed":"Adresse IP non autorisée",
"targetFileIsNotAnAcceptedFileType":"Target file is not an accepted file type",
"theAcceptedFileTypeIsCsv":"The accepted file type is .csv",
"theAcceptedFileTypesAreXlsXlsxXlsmOdsOts":"The accepted file types are .xls, .xlsx, .xlsm, .ods, .ots",
@ -704,7 +705,7 @@
"projInfo":"Informations de projet copiées dans le presse-papier",
"inviteUrlCopy":"URL d'invitation copiée dans le presse-papier",
"createView":"Vue créée avec succès",
"formEmailSMTP":"Veuillez activer le plugin SMTP dans l'App Store pour permettre la notification par courrier électronique",
"formEmailSMTP":"Veuillez activer le plugin SMTP dans le magasin d'applications pour permettre la notification par courriel",
"collabView":"Vous êtes bien dans la vue collaborative",
"lockedView":"Vous êtes bien dans la vue vérouillée",
If your service fails to start, you may check the logs in ECS console or in Cloudwatch. Generally it fails due to the connection between ECS container and NC_DB. Make sure the security groups have the correct inbound and outbound rules.
</alert>
```
</details>
@ -444,62 +443,61 @@ npm start
See [here](https://gist.github.com/Zamana/e9281d736f9e9ce5882c6f4b140a590e) provided by [C. R. Zamana](https://github.com/Zamana).
## Production Setup
It is mandatory to configure `NC_DB` environment variables for production usecases.
| NC_TOOL_DIR | No | App directory to keep metadata and app related files | Defaults to current working directory. In docker maps to `/usr/app/data/` for mounting volume. | |
| NC_PUBLIC_URL | Yes | Used for sending Email invitations | Best guess from http request params | |
| NC_JWT_EXPIRES_IN | No | JWT token expiry time | `10h` | |
| NC_CONNECT_TO_EXTERNAL_DB_DISABLED | No | Disable Project creation with external database | | |
| NC_INVITE_ONLY_SIGNUP | No | <strong>Removed</strong> since version <kbd>0.99.0</kbd> and now it's recommended to use [super admin settings menu](/setup-and-usages/account-settings#enable--disable-signup). <br><br>Allow users to signup only via invite url, value should be any non-empty string. | | |
| NUXT_PUBLIC_NC_BACKEND_URL | No | Custom Backend URL | ``http://localhost:8080`` will be used | |
| NC_REQUEST_BODY_SIZE | No | Request body size [limit](https://expressjs.com/en/resources/middleware/body-parser.html#limit) | `1048576` | |
| NC_EXPORT_MAX_TIMEOUT | No | After NC_EXPORT_MAX_TIMEOUT csv gets downloaded in batches | Default value 5000(in millisecond) will be used | |
| NC_DISABLE_CACHE | No | To be used only while debugging. On setting this to `true` - meta data be fetched from db instead of redis/cache. | `false` | |
| NC_BASEURL_INTERNAL | No | Used as base url for internal(server) API calls | Default value in docker will be `http://localhost:$PORT` and in all other case it's populated from request object | |
| AWS_ACCESS_KEY_ID | No | For Litestream - S3 access key id | If Litestream is configured and NC_DB is not present. SQLite gets backed up to S3 | |
| AWS_SECRET_ACCESS_KEY | No | For Litestream - S3 secret access key | If Litestream is configured and NC_DB is not present. SQLite gets backed up to S3 | |
| AWS_BUCKET | No | For Litestream - S3 bucket | If Litestream is configured and NC_DB is not present. SQLite gets backed up to S3 | |
| AWS_BUCKET_PATH | No | For Litestream - S3 bucket path (like folder within S3 bucket) | If Litestream is configured and NC_DB is not present. SQLite gets backed up to S3 | |
| NC_SMTP_FROM | No | For SMTP plugin - Email sender address | | |
| NC_SMTP_HOST | No | For SMTP plugin - SMTP host value | | |
| NC_SMTP_PORT | No | For SMTP plugin - SMTP port value | | |
| NC_SMTP_USERNAME | No | For SMTP plugin (Optional) - SMTP username value for authentication | | |
| NC_SMTP_PASSWORD | No | For SMTP plugin (Optional) - SMTP password value for authentication | | |
| NC_SMTP_SECURE | No | For SMTP plugin (Optional) - To enable secure set value as `true` any other value treated as false | | |
| NC_SMTP_IGNORE_TLS | No | For SMTP plugin (Optional) - To ignore tls set value as `true` any other value treated as false. For more info visit https://nodemailer.com/smtp/ | | |
| NC_S3_BUCKET_NAME | No | For S3 storage plugin - AWS S3 bucket name | | |
| NC_S3_REGION | No | For S3 storage plugin - AWS S3 region | | |
| NC_S3_ACCESS_KEY | No | For S3 storage plugin - AWS access key credential for accessing resource | | |
| NC_S3_ACCESS_SECRET | No | For S3 storage plugin - AWS access secret credential for accessing resource | | |
| NC_ADMIN_EMAIL | No | For updating/creating super admin with provided email and password | | |
| NC_ATTACHMENT_FIELD_SIZE | No | For setting the attachment field size(in Bytes) | Defaults to 20MB | |
| NC_ADMIN_PASSWORD | No | For updating/creating super admin with provided email and password. Your password should have at least 8 letters with one uppercase, one number and one special letter(Allowed special chars <code>$&+,:;=?@#|'.^*()%!_-"</code> ) | | |
| NODE_OPTIONS | No | For passing Node.js [options](https://nodejs.org/api/cli.html#node_optionsoptions) to instance | | |
| NC_MINIMAL_DBS | No | Create a new SQLite file for each project. All the db files are stored in `nc_minimal_dbs` folder in current working directory. (This option restricts project creation on external sources) | | |
## Environment Variables
Here is the list of the environment variables that you can use. Even though they are optional, it is **recommended** to configure `NC_DB`, `NC_AUTH_JWT_SECRET`, and `NC_PUBLIC_URL` for production use cases.
| NC_TOOL_DIR | App directory to keep metadata and app related files | Defaults to current working directory. In docker maps to `/usr/app/data/` for mounting volume. | |
| NC_PUBLIC_URL | Used for sending Email invitations | Best guess from http request params | |
| NC_INVITE_ONLY_SIGNUP | Removed since version 0.99.0 and now it's recommended to use [super admin settings menu](/setup-and-usages/account-settings#enable--disable-signup). Allow users to signup only via invite url, value should be any non-empty string. | | |
| NUXT_PUBLIC_NC_BACKEND_URL | Custom Backend URL | ``http://localhost:8080`` will be used | |
| NC_DISABLE_CACHE | To be used only while debugging. On setting this to `true` - meta data be fetched from db instead of redis/cache. | `false` | |
| NC_BASEURL_INTERNAL | Used as base url for internal(server) API calls | Default value in docker will be `http://localhost:$PORT` and in all other case it's populated from request object | |
| AWS_ACCESS_KEY_ID | For Litestream - S3 access key id | If Litestream is configured and `NC_DB` is not present. SQLite gets backed up to S3 | |
| AWS_SECRET_ACCESS_KEY | For Litestream - S3 secret access key | If Litestream is configured and `NC_DB` is not present. SQLite gets backed up to S3 | |
| AWS_BUCKET | For Litestream - S3 bucket | If Litestream is configured and `NC_DB` is not present. SQLite gets backed up to S3 | |
| AWS_BUCKET_PATH | For Litestream - S3 bucket path (like folder within S3 bucket) | If Litestream is configured and `NC_DB` is not present. SQLite gets backed up to S3 | |
| NC_SMTP_HOST | For SMTP plugin - SMTP host value | | |
| NC_SMTP_PORT | For SMTP plugin - SMTP port value | | |
| NC_SMTP_USERNAME | For SMTP plugin (Optional) - SMTP username value for authentication | | |
| NC_SMTP_PASSWORD | For SMTP plugin (Optional) - SMTP password value for authentication | | |
| NC_SMTP_SECURE | For SMTP plugin (Optional) - To enable secure set value as `true` any other value treated as false | | |
| NC_SMTP_IGNORE_TLS | For SMTP plugin (Optional) - To ignore tls set value as `true` any other value treated as false. For more info visit https://nodemailer.com/smtp/ | | |
| NC_S3_BUCKET_NAME | For S3 storage plugin - AWS S3 bucket name | | |
| NC_S3_REGION | For S3 storage plugin - AWS S3 region | | |
| NC_S3_ACCESS_KEY | For S3 storage plugin - AWS access key credential for accessing resource | | |
| NC_S3_ACCESS_SECRET | For S3 storage plugin - AWS access secret credential for accessing resource | | |
| NC_ADMIN_EMAIL | For updating/creating super admin with provided email and password | | |
| NC_ATTACHMENT_FIELD_SIZE | For setting the attachment field size(in Bytes) | Defaults to 20MB | |
| NC_ADMIN_PASSWORD | For updating/creating super admin with provided email and password. Your password should have at least 8 letters with one uppercase, one number and one special letter(Allowed special chars $&+,:;=?@#\|'.^*()%!_-" ) | | |
| NODE_OPTIONS | For passing Node.js [options](https://nodejs.org/api/cli.html#node_optionsoptions) to instance | | |
| NC_MINIMAL_DBS | Create a new SQLite file for each project. All the db files are stored in `nc_minimal_dbs` folder in current working directory. (This option restricts project creation on external sources) | | |