--- title: 'Installation' description: 'Simple installation - takes about three minutes!' --- Simple installation - takes about three minutes! ## Prerequisites - [Docker](https://www.docker.com/get-started) or [Node.js](https://nodejs.org/en/download) ( > v16.x ) ## Quick try ### Docker If you are a Docker user, you may try this way! ```bash docker run -d --name nocodb \ -v "$(pwd)"/nocodb:/usr/app/data/ \ -p 8080:8080 \ nocodb/nocodb:latest ``` ```bash 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 ``` ```bash 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 ``` ```bash 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 ``` :::tip To persist data in docker you can mount volume at `/usr/app/data/` since 0.10.6. In older version mount at `/usr/src/app`. Otherwise your data will be lost after recreating the container. ::: :::tip 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](https://github.com/nocodb/nocodb/issues/1340#issuecomment-1049481043). ::: ### Docker Compose We provide different docker-compose.yml files under [this directory](https://github.com/nocodb/nocodb/tree/master/docker-compose). Here are some examples. ```bash git clone https://github.com/nocodb/nocodb cd nocodb/docker-compose/mysql docker-compose up -d ``` ```bash git clone https://github.com/nocodb/nocodb cd nocodb/docker-compose/pg docker-compose up -d ``` ```bash git clone https://github.com/nocodb/nocodb cd nocodb/docker-compose/mssql docker-compose up -d ``` :::tip To persist data in docker you can mount volume at `/usr/app/data/` since 0.10.6. In older version mount at `/usr/src/app`. ::: :::tip 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](https://github.com/nocodb/nocodb/issues/1313#issuecomment-1046625974). ::: ### NPX You can run below command if you need an interactive configuration. ```bash npx create-nocodb-app ``` #### Preview: image ### Homebrew ```bash brew tap nocodb/nocodb brew install nocodb nocodb ``` ### Executables You can download executables directly and run without any extra dependancy. Use the right command based on your platform. ##### 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 ``` ### 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 ``` ### AWS ECS (Fargate)
Click to Expand #### Create ECS Cluster ``` aws ecs create-cluster \ --cluster-name ``` #### Create Log group ``` aws logs create-log-group \ --log-group-name /ecs// ``` #### Create ECS Task Definiton Every time you create it, it will add a new version. If it is not existing, the version will be 1. ```bash aws ecs register-task-definition \ --cli-input-json "file://./.json" ``` :::note This json file defines the container specification. You can define secrets such as NC_DB and environment variables here. ::: Here's the sample Task Definition ```json { "family": "nocodb-sample-task-def", "networkMode": "awsvpc", "containerDefinitions": [{ "name": "", "image": "nocodb/nocodb:latest", "essential": true, "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/ecs//", "awslogs-region": "", "awslogs-stream-prefix": "ecs" } }, "secrets": [{ "name": "", "valueFrom": "" }], "environment": [{ "name": "", "value": "" }], "portMappings": [{ "containerPort": 8080, "hostPort": 8080, "protocol": "tcp" }] }], "requiresCompatibilities": [ "FARGATE" ], "cpu": "256", "memory": "512", "executionRoleArn": "", "taskRoleArn": "" } ``` #### Create ECS Service ```bash aws ecs create-service \ --cluster \ --service-name \ --task-definition : \ --desired-count \ --launch-type "FARGATE" \ --platform-version \ --health-check-grace-period-seconds \ --network-configuration "awsvpcConfiguration={subnets=[""], securityGroups=[""], assignPublicIp=ENABLED}" \ --load-balancer targetGroupArn=,containerName=,containerPort= ``` :::note 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. :::
### GCP (Cloud Run)
Click to Expand #### Pull NocoDB Image on Cloud Shell Since Cloud Run only supports images from Google Container Registry (GCR) or Artifact Registry, we need to pull NocoDB image, tag it and push it in GCP using Cloud Shell. Here are some sample commands which you can execute in Cloud Shell. ```bash # pull latest NocoDB image docker pull nocodb/nocodb:latest # tag the image docker tag nocodb/nocodb:latest gcr.io//nocodb/nocodb:latest # push the image to GCR docker push gcr.io//nocodb/nocodb:latest ``` #### Deploy NocoDB on Cloud Run ```bash gcloud run deploy --image=gcr.io//nocodb/nocodb:latest \ --region=us-central1 \ --allow-unauthenticated \ --platform=managed ```
### DigitalOcean (App)
Click to Expand #### Create Apps On Home page, Click on Create icon & Select Apps (Deploy your code). ![Screenshot 2022-02-19 at 12 17 43 PM](https://user-images.githubusercontent.com/86527202/154790558-f8fe5580-5a58-412c-9c2e-145587712bf2.png) #### Choose Source: Docker Hub ![Screenshot 2022-02-19 at 12 22 01 PM](https://user-images.githubusercontent.com/86527202/154790563-b5b6d5b4-0bdc-4718-8cea-0a7ee52f283b.png) #### Choose Source: Repository Configure Source Repository as `nocodb/nocodb`. Optionally you can pick release tag if you are interested in specific NocoDB version. ![Screenshot 2022-02-19 at 12 23 11 PM](https://user-images.githubusercontent.com/86527202/154790564-1dcb5e33-3a57-471a-a44c-835a410a0cb7.png) #### [Optional] Additional Configurations ![Screenshot 2022-02-19 at 12 24 44 PM](https://user-images.githubusercontent.com/86527202/154790565-c0234b2e-ad50-4042-90b6-4f8798f1d585.png) #### Name your web service Pick a name for your NocoDB application. This name will become part of URL subsequently Pick nearest Region for cloud hosting ![Screenshot 2022-02-19 at 12 28 11 PM](https://user-images.githubusercontent.com/86527202/154790567-a6e65e4e-9aa0-4edb-998e-da8803ad6e23.png) #### Finalize and Launch - Select hosting plan for your NocoDB application - Click "Launch APP" ![Screenshot 2022-02-19 at 12 29 23 PM](https://user-images.githubusercontent.com/86527202/154790570-62044713-5cca-4d06-82ec-f3cc257218a1.png) Application will be build & URL will be live in a minute! The URL will be something like https://simply-nocodb-rsyir.ondigitalocean.app/
### Cloudron
Click to Expand #### Navigate to App Store Log into Cloudron and select App Store ![image](https://user-images.githubusercontent.com/35857179/194700146-aae90503-a8fd-4bc5-8397-39f0bc279606.png) #### Search NocoDB ![image](https://user-images.githubusercontent.com/35857179/194700181-b5303919-70b8-4cf8-bebe-7e75aca601f3.png) #### Click Install ![image](https://user-images.githubusercontent.com/35857179/194700192-d702f5c2-2afa-45c5-9823-4ebe9e141b01.png) #### Configure NocoDB ![image](https://user-images.githubusercontent.com/35857179/194700230-c35e934f-bd93-4948-8f31-935483b30571.png) #### Go to My App and Launch NocoDB ![image](https://user-images.githubusercontent.com/35857179/194700464-50098cb1-bf94-42bb-a63a-cc0aad671913.png)
### CapRover
Click to Expand #### Login and Click One-Click Apps / Databases ![image](https://user-images.githubusercontent.com/35857179/194701420-7fe5c396-a488-456c-98de-6f2ee1151fc5.png) #### Search NocoDB ![image](https://user-images.githubusercontent.com/35857179/194701537-63e7efc5-013b-4ca9-8659-56e9d536e7d0.png) #### Configure NocoDB and Deploy ![image](https://user-images.githubusercontent.com/35857179/194701576-19519df5-2aa4-435d-8fc6-7bc684b9cfe1.png)
### Railway
Click to Expand #### Navigate to Templates Go to [Templates](https://railway.app/templates), Search NocoDB and click Deploy ![image](https://user-images.githubusercontent.com/35857179/194702833-1bea22ee-6dfa-4024-ac27-e33fe56e5500.png) #### Configure NocoDB and Deploy ![image](https://user-images.githubusercontent.com/35857179/194702960-149393fe-b00f-4d84-9e54-22cb7616ba44.png)
### FreeBSD / FreeNAS / TrueNAS Jail See [here](https://gist.github.com/Zamana/e9281d736f9e9ce5882c6f4b140a590e) provided by [C. R. Zamana](https://github.com/Zamana). ## Sample Demos ### Code Sandbox ### Docker deploying with one command ### Using NPX