From 645c2d677515efeb72f5613c016240de6424c41b Mon Sep 17 00:00:00 2001 From: DarkPhoenix2704 Date: Tue, 3 Sep 2024 21:12:00 +0530 Subject: [PATCH 01/20] chore: updated installation docs --- README.md | 61 +-- .../050.self-hosted/010.installation.md | 410 ------------------ .../010.installation/010.easy-install.md | 62 +++ .../010.installation/020.docker-install.md | 71 +++ .../010.installation/030.docker-compose.md | 64 +++ .../010.installation/040.home-brew.md | 49 +++ .../050.executable-installation.md | 88 ++++ .../010.installation/060.node-js.md | 70 +++ .../010.installation/070.aws-ecs.md | 116 +++++ .../010.installation/080.gcp-cloud-run.md | 47 ++ .../010.installation/090.digital-ocean.md | 45 ++ .../100.other-installations.md | 97 +++++ .../010.installation/_category_.json | 8 + .../050.self-hosted/_category_.json | 2 +- 14 files changed, 749 insertions(+), 441 deletions(-) delete mode 100644 packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation.md create mode 100644 packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.easy-install.md create mode 100644 packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/020.docker-install.md create mode 100644 packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/030.docker-compose.md create mode 100644 packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/040.home-brew.md create mode 100644 packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/050.executable-installation.md create mode 100644 packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/060.node-js.md create mode 100644 packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/070.aws-ecs.md create mode 100644 packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/080.gcp-cloud-run.md create mode 100644 packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/090.digital-ocean.md create mode 100644 packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/100.other-installations.md create mode 100644 packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/_category_.json diff --git a/README.md b/README.md index 640fed6ca0..c4e159534b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

- +
NocoDB @@ -13,12 +13,6 @@ Turns any MySQL, PostgreSQL, SQL Server, SQLite & MariaDB into a smart spreadsheet.

-
- -[![Node version](https://img.shields.io/badge/node-%3E%3D%2018.19.1-brightgreen)](http://nodejs.org/download/) -[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-green.svg)](https://conventionalcommits.org) - -

Website • @@ -49,19 +43,17 @@ Turns any MySQL, PostgreSQL, SQL Server, SQLite & MariaDB into a smart spreadshe -# Join Our Team - -

- -# Join Our Community +# Installation +There are different ways to start using NocoDB. You can either signup on NocoDB Cloud or self-host it. +The self-hosting can be done using Docker, Docker Compose, Binaries, or using the script. - - - +## Easy Installation -[![Stargazers repo roster for @nocodb/nocodb](http://reporoster.com/stars/nocodb/nocodb)](https://github.com/nocodb/nocodb/stargazers) +This script installs NocoDB with PostgreSQL, Redis, and Minio for a complete setup in a docker environment. +```bash +bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp) +```` -# Quick try ## Docker @@ -83,6 +75,7 @@ nocodb/nocodb:latest ## Binaries 🚥 Binaries are intended for ONLY quick trials or testing purposes and are not recommended for production use. + | OS | Architecture | Command | |---------|--------------|----------------------------------------------------------------------------------------------| | macOS | arm64 | `curl http://get.nocodb.com/macos-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb` | @@ -125,8 +118,11 @@ Access Dashboard using: [http://localhost:8080/dashboard](http://localhost:8080/ # Table of Contents - [Quick try](#quick-try) - - [Docker](#docker) - - [Docker Compose](#docker-compose) +- [Installation](#installation) + - [Easy Installation](#easy-installation) + - [Binaries](#binaries) + - [Docker](#docker) + - [Docker Compose](#docker-compose) - [GUI](#gui) - [Join Our Community](#join-our-community) - [Screenshots](#screenshots) @@ -151,11 +147,11 @@ Access Dashboard using: [http://localhost:8080/dashboard](http://localhost:8080/ ### Rich Spreadsheet Interface - ⚡  Basic Operations: Create, Read, Update and Delete Tables, Columns, and Rows -- ⚡  Fields Operations: Sort, Filter, Hide / Unhide Columns -- ⚡  Multiple Views Types: Grid (By default), Gallery, Form View and Kanban View +- ⚡  Fields Operations: Sort, Filter, Group, Hide / Unhide Columns +- ⚡  Multiple Views Types: Grid (By default), Gallery, Form, Kanban and Calendar View - ⚡  View Permissions Types: Collaborative Views, & Locked Views - ⚡  Share Bases / Views: either Public or Private (with Password Protected) -- ⚡  Variant Cell Types: ID, LinkToAnotherRecord, Lookup, Rollup, SingleLineText, Attachment, Currency, Formula, etc +- ⚡  Variant Cell Types: ID, Links, Lookup, Rollup, SingleLineText, Attachment, Currency, Formula, User, etc - ⚡  Access Control with Roles: Fine-grained Access Control at different levels - ⚡  and more ... @@ -182,18 +178,10 @@ We allow you to sync schema changes if you have made changes outside NocoDB GUI. We are keeping all the user operation logs in one place. See Audit for details. -# Production Setup - -By default, SQLite is used for storing metadata. However, you can specify your database. The connection parameters for this database can be specified in `NC_DB` environment variable. Moreover, we also provide the below environment variables for configuration. - ## Environment variables Please refer to the [Environment variables](https://docs.nocodb.com/getting-started/self-hosted/environment-variables) -# Development Setup - -Please refer to [Development Setup](https://docs.nocodb.com/engineering/development-setup) - # Contributing Please refer to [Contribution Guide](https://github.com/nocodb/nocodb/blob/master/.github/CONTRIBUTING.md). @@ -212,6 +200,19 @@ Our mission is to provide the most powerful no-code interface for databases that This project is licensed under AGPLv3.

+# Join Our Team + +

+ +# Join Our Community + + + + + +[![Stargazers repo roster for @nocodb/nocodb](http://reporoster.com/stars/nocodb/nocodb)](https://github.com/nocodb/nocodb/stargazers) + + # Contributors Thank you for your contributions! We appreciate all the contributions from the community. diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation.md b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation.md deleted file mode 100644 index d4033f6416..0000000000 --- a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation.md +++ /dev/null @@ -1,410 +0,0 @@ ---- -title: 'Installation' -description: 'Simple installation - takes about three minutes!' -tags: ['Open Source'] -keywords : ['NocoDB installation', 'NocoDB docker installation', 'NocoDB nodejs installation', 'NocoDB quick try', 'NocoDB prerequisites'] ---- - -Simple installation - takes about three minutes! - -## Prerequisites -- [Docker](https://www.docker.com/get-started) or [Node.js](https://nodejs.org/en/download) ( > v18.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-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 -``` - - - - -:::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. -::: - - -### 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/pg -docker-compose up -d -``` - - - - -:::tip -If `/usr/app/data/` is not mounted, there will be data loss. -::: - - - - - -### Homebrew - -```bash -brew tap nocodb/nocodb -brew install nocodb -nocodb -``` - -### Executables - -You can download executables directly and run without any extra dependency. Use the right command based on your platform. - - - - - -```bash -curl http://get.nocodb.com/macos-x64 -o nocodb -L \ - && chmod +x nocodb \ - && ./nocodb -``` - - - - -```bash -curl http://get.nocodb.com/macos-arm64 -o nocodb -L \ - && chmod +x nocodb \ - && ./nocodb -``` - - - - -```bash -curl http://get.nocodb.com/linux-x64 -o nocodb -L \ - && chmod +x nocodb \ - && ./nocodb -``` - - - -```bash -curl http://get.nocodb.com/linux-arm64 -o nocodb -L \ - && chmod +x nocodb \ - && ./nocodb -``` - - - - -```bash -iwr http://get.nocodb.com/win-x64.exe -OutFile "Noco-win-x64.exe" -.\Noco-win-x64.exe -``` - - - - -```bash -iwr http://get.nocodb.com/win-arm64.exe -OutFile "Noco-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" - ``` - -:::tip -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= - ``` - -:::tip - -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). - -### Sealos - -[![](https://raw.githubusercontent.com/labring-actions/templates/main/Deploy-on-Sealos.svg)](https://cloud.sealos.io/?openapp=system-template%3FtemplateName%3Dnocodb) - -## Sample Demos - -### Code Sandbox - - - -### Docker deploying with one command - - - -### Using NPX - - - diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.easy-install.md b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.easy-install.md new file mode 100644 index 0000000000..bddcca018f --- /dev/null +++ b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.easy-install.md @@ -0,0 +1,62 @@ +--- +title: 'One-Click Install' +description: 'One-click installation' +tags: ['Open Source'] +keywords : ['NocoDB installation', 'NocoDB one click installation', 'NocoDB prerequisites'] +--- + +# One-Click Install + +The One-Click install command is the easiest way to get NocoDB up and running. This method is recommended for users who want to quickly deploy NocoDB without any hassle. + +It will automatically install NocoDB, PostgreSQL database, Redis, and Minio for file storage and even setup a reverse proxy and ssl certificate for you using traefik. + +## Prerequisites +- A Linux-based system (Ubuntu, Debian, CentOS, etc.) + +## Installation Steps + +1. Run the following command in your terminal: + + ```bash + bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp) + ``` + +2. Follow the Installation Prompts + - Domain Name: Enter the IP address or domain name for your NocoDB instance. + - SSL Configuration: If you entered a valid domain name, you'll be asked if you want to configure SSL. + - Advanced Options: You can choose to show advanced options or use default settings. + +3. Advanced Options (if chosen): + - Choose between Community (CE) or Enterprise Edition (EE) + - Enter license key (for EE) + - Enable/disable Redis for caching + - Enable/disable Minio for file storage + - Configure Minio domain and SSL + - Enable/disable Watchtower for automatic updates + - Set the number of NocoDB instances to run + +4. Wait for Installation to Complete + The installation process may take a few minutes to complete. Once done, you'll see a success message with the URL to access your NocoDB instance. + +5. Access NocoDB + Open the URL provided in your browser to access NocoDB. +6. Congratulations! You should now have a working installation of NocoDB. Enjoy using your new no-code database platform! + + +## Management Menu + +After installation, you'll be asked if you want to start the management menu. This menu allows you to: + +- Start NocoDB +- Stop NocoDB +- View logs +- Restart NocoDB +- Upgrade NocoDB +- Scale NocoDB (change the number of running instances) +- Monitor NocoDB (view Docker stats) + +## Additional Notes + +- The script creates an update.sh file in the installation directory. You can use this to update NocoDB in the future. +- If you encounter any issues during installation, check the logs for error messages. \ No newline at end of file diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/020.docker-install.md b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/020.docker-install.md new file mode 100644 index 0000000000..4c8194b9cd --- /dev/null +++ b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/020.docker-install.md @@ -0,0 +1,71 @@ +--- +title: 'Docker' +description: 'Docker installation - takes about three minutes!' +tags: ['Open Source'] +keywords : ['NocoDB installation', 'NocoDB docker installation', 'NocoDB prerequisites'] +--- + +Docker installation - takes about three minutes! + +Docker provides an easy way to install and run NocoDB. Follow these steps to get NocoDB up and running using Docker. + + +## Prerequisites +- [Docker](https://www.docker.com/get-started) + +## Installation Steps + +1. Choose your preferred database: + + + + +``` +docker run -d --name nocodb \ +-v "$(pwd)"/nocodb:/usr/app/data/ \ +-p 8080:8080 \ +nocodb/nocodb:latest +``` + + + + +``` +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 +``` + + + + +2. Once the container is running, you can access NocoDB by opening http://localhost:8080 in your web browser. + + +:::tip +To persist data, always mount a volume at `/usr/app/data/`. Without this, your data will be lost when the container is removed. + +For versions prior to 0.10.6, mount the volume at /usr/src/app. + +::: + +## Troubleshooting + +- If you can't access NocoDB after installation, check if the Docker container is running: + +```bash +docker ps +``` + +- If the container is not running, check the logs for any errors: + +```bash +docker logs nocodb +``` + +## Installation Video + + diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/030.docker-compose.md b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/030.docker-compose.md new file mode 100644 index 0000000000..1b312b1153 --- /dev/null +++ b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/030.docker-compose.md @@ -0,0 +1,64 @@ +--- +title: 'Docker Compose' +description: 'Install NocoDB using Docker Compose' +tags: ['Open Source'] +keywords : ['NocoDB installation', 'NocoDB docker installation', 'NocoDB prerequisites'] +--- + +# Installing NocoDB with Docker Compose + +Docker Compose allows you to define and run multi-container Docker applications. It's a great way to set up NocoDB along with its database in a single configuration file. + + + +## Prerequisites +- [Docker](https://www.docker.com/get-started) +- [Docker Compose](https://docs.docker.com/compose/install/) + +## Installation Steps + +1. Clone the NocoDB repository from GitHub. + + ```bash + git clone https://github.com/nocodb/nocodb + ``` +2. Navigate to the docker-compose directory + + ```bash + cd nocodb/docker-compose/pg + ``` +3. Start the services using Docker Compose: + + ```bash + docker-compose up -d + ``` + This will start NocoDB along with a PostgreSQL database. + +4. Access NocoDB in your browser by visiting `http://localhost:8080`. + +## Important Notes + +- The provided `docker-compose.yml` files are configured to persist data. Make sure the volumes are properly mounted. +- You can customize the `docker-compose.yml` file to change ports, environment variables, or add additional services. + +## Troubleshooting + +- If you encounter any issues, check the logs using the following command: + + ```bash + docker-compose logs + ``` + +- If you need to stop the services, use the following command: + + ```bash + docker-compose down + ``` + +- Ensure all required ports are available on your host machine. + +- For database connection issues, verify the database service is running: + + ```bash + docker-compose ps + ``` \ No newline at end of file diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/040.home-brew.md b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/040.home-brew.md new file mode 100644 index 0000000000..3c9cc14da2 --- /dev/null +++ b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/040.home-brew.md @@ -0,0 +1,49 @@ +--- +title: 'Homebrew' +description: 'Install NocoDB using Homebrew' +tags: ['Open Source'] +keywords : ['NocoDB installation', 'NocoDB homebrew installation', 'NocoDB prerequisites'] +--- + +# Installing NocoDB with Homebrew + +Homebrew provides a simple way to install NocoDB on macOS and Linux systems. Follow these steps to install NocoDB using Homebrew. + +## Prerequisites +- [Homebrew](https://brew.sh/) + +## Installation Steps + +1. Add the NocoDB tap to Homebrew: + + ```bash + brew tap nocodb/nocodb + ``` + +2. Install NocoDB: + + ```bash + brew install nocodb + ``` + +3. Start NocoDB: + + ```bash + nocodb + ``` + +4. Access NocoDB in your browser by visiting `http://localhost:8080`. + +## Updating NocoDB + +To update NocoDB to the latest version, use the following command: + +```bash +brew upgrade nocodb +``` + +## Troubleshooting + +- If you encounter permission issues, make sure you have the necessary rights to install packages with Homebrew. + +- If NocoDB doesn't start, check if the default port (8080) is already in use. You can specify a different port using environment variables. diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/050.executable-installation.md b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/050.executable-installation.md new file mode 100644 index 0000000000..e4feddb0b5 --- /dev/null +++ b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/050.executable-installation.md @@ -0,0 +1,88 @@ +--- +title: 'Executables' +description: 'Executable installation' +tags: ['Open Source'] +keywords : ['NocoDB installation', 'NocoDB executable installation', 'NocoDB prerequisites'] +--- + +# Installing NocoDB using Executables + +NocoDB provides pre-built executables for various platforms, allowing you to run NocoDB without any additional dependencies. + + +## Downloading and Running NocoDB + +Choose the appropriate command based on your operating system and architecture: + + + + +```bash +curl http://get.nocodb.com/macos-x64 -o nocodb -L \ + && chmod +x nocodb \ + && ./nocodb +``` + + + + + +```bash +curl http://get.nocodb.com/macos-arm64 -o nocodb -L \ + && chmod +x nocodb \ + && ./nocodb +``` + + + + +```bash +curl http://get.nocodb.com/linux-x64 -o nocodb -L \ + && chmod +x nocodb \ + && ./nocodb +``` + + + + +```bash +curl http://get.nocodb.com/linux-arm64 -o nocodb -L \ + && chmod +x nocodb \ + && ./nocodb +``` + + + + +```bash +iwr http://get.nocodb.com/win-x64.exe -OutFile "Noco-win-x64.exe" +.\Noco-win-x64.exe +``` + + + + +```bash +iwr http://get.nocodb.com/win-arm64.exe -OutFile "Noco-win-arm64.exe" +.\Noco-win-arm64.exe +``` + + + + + +## Accessing NocoDB + +Once you run the executable, you can access NocoDB in your browser by visiting `http://localhost:8080`. + +## Important Notes + +- The executables are self-contained and don't require any additional installation steps. +- By default, NocoDB will use SQLite as the database, storing data in the same directory as the executable. +- To use a different database or configure other options, you can set environment variables before running the executable. + +## Troubleshooting + +- If you see a security warning on macOS, you may need to allow the executable in System Preferences > Security & Privacy. +- On Windows, if SmartScreen prevents the execution, you can choose "More info" and then "Run anyway". +- Make sure port 8080 is not in use by another application. \ No newline at end of file diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/060.node-js.md b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/060.node-js.md new file mode 100644 index 0000000000..0c6238fa67 --- /dev/null +++ b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/060.node-js.md @@ -0,0 +1,70 @@ +--- +title: 'NodeJS' +description: 'Installation using NodeJS' +tags: ['Open Source'] +keywords : ['NocoDB installation', 'NocoDB nodejs Installation', 'NocoDB prerequisites'] +--- + +# Installing NocoDB using Node.js + +This method allows you to run NocoDB as a Node.js application, which is useful for development purposes or if you want to customize the setup. + +## Prerequisites +- [Node.js (v18.x)](https://nodejs.org/en/download/) + +## Installation Steps + +1. Clone the NocoDB seed repository: + + ```bash + git clone https://github.com/nocodb/nocodb-seed + ``` +2. Navigate to the project directory: + + ```bash + cd nocodb-seed + ``` +3. Install the dependencies: + + ```bash + npm install + ``` +4. Start NocoDB: + + ```bash + npm start + ``` +5. Access NocoDB in your browser by visiting `http://localhost:8080`. + +## Updating NocoDB + +Updating NocoDB is similar to updating a npm package. + +1. Unitall the existing NocoDB package: + + ```bash + npm uninstall nocodb + ``` +2. Install the latest version of NocoDB: + + ```bash + npm install --save nocodb + ``` +3. Start NocoDB: + + ```bash + npm start + ``` +4. Access latest NocoDB in your browser by visiting `http://localhost:8080`. + +## Troubleshooting + +- If you encounter errors during npm install, make sure you're using a compatible Node.js version. +- If NocoDB doesn't start, check the console output for any error messages. +- If the application fails to start, check if port 8080 is already in use. +- For database connection issues, verify your database credentials and connection string. + + +## Code Sandbox Example + + diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/070.aws-ecs.md b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/070.aws-ecs.md new file mode 100644 index 0000000000..89e3e2f7e9 --- /dev/null +++ b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/070.aws-ecs.md @@ -0,0 +1,116 @@ +--- +title: 'AWS ECS (Fargate)' +description: 'AWS ECS (Fargate) Installation' +tags: ['Open Source'] +keywords : ['NocoDB installation', 'NocoDB AWS Fargate installation', 'NocoDB prerequisites'] +--- + +# Deploying NocoDB on AWS ECS (Fargate) + +This guide will walk you through deploying NocoDB on Amazon ECS using Fargate. + +## Prerequisites + +- AWS CLI configured with appropriate permissions +- Basic understanding of AWS ECS and Fargate + +## Deployment Steps + +1. Create ECS Cluster + + ```bash + aws ecs create-cluster --cluster-name + ``` + +2. Create a Log Group: + + ```bash + aws logs create-log-group --log-group-name /ecs// + ``` +3. Create an ECS Task Definition: + + 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://task-definition.json + ``` + :::tip + This json file defines the container specification. You can define secrets such as NC_DB and environment variables here. + ::: + + Example `task-definition.json`: + + ```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": "" + } + ``` + + +4. Create an 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= + ``` + +:::tip +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. +::: + + +### Important Notes + +- Ensure that your security groups have the correct inbound and outbound rules. +- The NC_DB environment variable should be properly set to connect to your database. +- Monitor the ECS console and CloudWatch logs for any deployment issues. +- You can customize the task definition and service configuration based on your requirements. \ No newline at end of file diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/080.gcp-cloud-run.md b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/080.gcp-cloud-run.md new file mode 100644 index 0000000000..27e41631b2 --- /dev/null +++ b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/080.gcp-cloud-run.md @@ -0,0 +1,47 @@ +--- +title: 'GCP Cloud Run' +description: 'Installing NocoDB on Google Cloud Run' +tags: ['Open Source'] +keywords : ['NocoDB installation', 'NocoDB Google Cloud run installation', 'NocoDB prerequisites'] +--- + +# Deploying NocoDB on GCP Cloud Run + +This guide will help you deploy NocoDB on Google Cloud Platform using Cloud Run. + +## Prerequisites + +- Google Cloud SDK installed and configured +- [Docker](https://docs.docker.com/get-docker/) + +## Deployment Steps + +1. Pull the NocoDB Docker image: + + ```bash + docker pull nocodb/nocodb:latest + ``` +2. Tag the image for Google Container Registry (GCR): + + ```bash + docker tag nocodb/nocodb:latest gcr.io//nocodb/nocodb:latest + ``` +3. Push the image to GCR: + + ```bash + docker push gcr.io//nocodb/nocodb:latest + ``` +4. Deploy NocoDB on Cloud Run: + + ```bash + gcloud run deploy --image=gcr.io//nocodb/nocodb:latest \ + --region=us-central1 \ + --allow-unauthenticated \ + --platform=managed + ``` + +## Important Notes + +- Cloud Run only supports images from Google Container Registry (GCR) or Artifact registry. Hence we pull the image from Docker Hub and push it to GCR. +- Ensure that your GCP project has the necessary APIs enabled (Cloud Run, Container Registry). +- The `--allow-unauthenticated` flag is used to allow unauthenticated access to the service. You can remove this flag if you want to restrict access. \ No newline at end of file diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/090.digital-ocean.md b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/090.digital-ocean.md new file mode 100644 index 0000000000..2e209201bc --- /dev/null +++ b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/090.digital-ocean.md @@ -0,0 +1,45 @@ +--- +title: 'DigitalOcean' +description: 'Installing NocoDB on Digital Ocean' +tags: ['Open Source'] +keywords : ['NocoDB installation', 'NocoDB Digital Ocean installation', 'NocoDB prerequisites'] +--- + +# Deploying NocoDB as a DigitalOcean App + +Follow these steps to deploy NocoDB on DigitalOcean using their App Platform. + +## Deployment Steps + +1. On the DigitalOcean homepage, click on the Create icon and select "Apps (Deploy your code)". + + [![DigitalOcean Create App](https://user-images.githubusercontent.com/86527202/154790558-f8fe5580-5a58-412c-9c2e-145587712bf2.png)](https://user-images.githubusercontent.com/86527202/154790558-f8fe5580-5a58-412c-9c2e-145587712bf2.png) +2. Choose "Docker Hub" as the source. + + [![DigitalOcean Docker Hub](https://user-images.githubusercontent.com/86527202/154790563-b5b6d5b4-0bdc-4718-8cea-0a7ee52f283b.png)](https://user-images.githubusercontent.com/86527202/154790563-b5b6d5b4-0bdc-4718-8cea-0a7ee52f283b.png) + +3. Set the source repository as nocodb/nocodb. You can optionally specify a release tag if you want a specific NocoDB version. + + [![DigitalOcean Docker Hub](https://user-images.githubusercontent.com/86527202/154790564-1dcb5e33-3a57-471a-a44c-835a410a0cb7.png)](https://user-images.githubusercontent.com/86527202/154790564-1dcb5e33-3a57-471a-a44c-835a410a0cb7.png) + +4. Configure any additional settings as needed. + + [![DigitalOcean Docker Hub](https://user-images.githubusercontent.com/86527202/154790565-c0234b2e-ad50-4042-90b6-4f8798f1d585.png)](https://user-images.githubusercontent.com/86527202/154790565-c0234b2e-ad50-4042-90b6-4f8798f1d585.png) + +5. Name your web service and select the nearest region for cloud hosting. + + [![DigitalOcean Docker Hub](https://user-images.githubusercontent.com/86527202/154790567-a6e65e4e-9aa0-4edb-998e-da8803ad6e23.png)](https://user-images.githubusercontent.com/86527202/154790567-a6e65e4e-9aa0-4edb-998e-da8803ad6e23.png) + +6. Choose your preferred hosting plan and click on "Launch Basic App". + + [![DigitalOcean Docker Hub](https://user-images.githubusercontent.com/86527202/154790570-62044713-5cca-4d06-82ec-f3cc257218a1.png)](https://user-images.githubusercontent.com/86527202/154790570-62044713-5cca-4d06-82ec-f3cc257218a1.png) + + Your application will be built, and the URL will be live shortly. The URL will look something like https://your-app-name.ondigitalocean.app/. + + +## Important Notes + +- Ensure you configure environment variables for database connections if needed. +- Set up persistent storage for your NocoDB data. +- You can scale your app as needed using DigitalOcean's App Platform. +- Consider enabling automatic deployments for easier updates. diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/100.other-installations.md b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/100.other-installations.md new file mode 100644 index 0000000000..a6f8884e5f --- /dev/null +++ b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/100.other-installations.md @@ -0,0 +1,97 @@ +--- +title: 'Other Installation Methods' +description: 'Installing NocoDB on other platforms' +tags: ['Open Source'] +keywords : ['NocoDB installation', 'NocoDB Digital Ocean installation', 'NocoDB prerequisites'] +--- + +# Installing NocoDB on Other Platforms + +This guide covers installation methods for NocoDB on various platforms including Cloudron, CapRover, Railway, FreeBSD/FreeNAS/TrueNAS Jail, and SealOs. + +## Cloudron + +Cloudron provides an easy way to install and manage NocoDB. + +### Installation Steps + +1. Log in to your Cloudron dashboard. +2. Navigate to the App Store. + + ![https://user-images.githubusercontent.com/35857179/194700146-aae90503-a8fd-4bc5-8397-39f0bc279606.png](https://user-images.githubusercontent.com/35857179/194700146-aae90503-a8fd-4bc5-8397-39f0bc279606.png) +3. Search for NocoDB + + ![https://user-images.githubusercontent.com/35857179/194700181-b5303919-70b8-4cf8-bebe-7e75aca601f3.png](https://user-images.githubusercontent.com/35857179/194700181-b5303919-70b8-4cf8-bebe-7e75aca601f3.png) +4. Click on the NocoDB app, then click "Install". + + ![https://user-images.githubusercontent.com/35857179/194700192-d702f5c2-2afa-45c5-9823-4ebe9e141b01.png](https://user-images.githubusercontent.com/35857179/194700192-d702f5c2-2afa-45c5-9823-4ebe9e141b01.png) +5. Configure NocoDB settings as needed. + + ![https://user-images.githubusercontent.com/35857179/194700230-c35e934f-bd93-4948-8f31-935483b30571.png](https://user-images.githubusercontent.com/35857179/194700230-c35e934f-bd93-4948-8f31-935483b30571.png) +5. Once installed, go to "My Apps" and launch NocoDB. + + ![https://user-images.githubusercontent.com/35857179/194700464-50098cb1-bf94-42bb-a63a-cc0aad671913.png](https://user-images.githubusercontent.com/35857179/194700464-50098cb1-bf94-42bb-a63a-cc0aad671913.png) + +### Important Notes +- Ensure your Cloudron server meets the minimum requirements for running NocoDB. +- Configure backups for your NocoDB instance through Cloudron's backup system. +- Keep your Cloudron and NocoDB app up to date for the latest features and security patches. + +## CapRover + +### Deployment Steps + +1. Log in to your CapRover dashboard. +2. Go to "Apps" and click on "One-Click Apps/Databases". + + ![https://user-images.githubusercontent.com/35857179/194701420-7fe5c396-a488-456c-98de-6f2ee1151fc5.png](https://user-images.githubusercontent.com/35857179/194701420-7fe5c396-a488-456c-98de-6f2ee1151fc5.png) +3. Search for NocoDB and click on it. + + ![https://user-images.githubusercontent.com/35857179/194701537-63e7efc5-013b-4ca9-8659-56e9d536e7d0.png](https://user-images.githubusercontent.com/35857179/194701537-63e7efc5-013b-4ca9-8659-56e9d536e7d0.png) +4. Click on NocoDB to start the configuration process. +5. Configure NocoDB settings as needed and click "Deploy". + + ![https://user-images.githubusercontent.com/35857179/194701576-19519df5-2aa4-435d-8fc6-7bc684b9cfe1.png](https://user-images.githubusercontent.com/35857179/194701576-19519df5-2aa4-435d-8fc6-7bc684b9cfe1.png) +6. Once deployed, you can access NocoDB from the provided URL. + +### Important Notes +- Ensure your CapRover server has sufficient resources to run NocoDB. +- Configure persistent storage for your NocoDB data. +- Set up SSL for secure access to your NocoDB instance. +- Regularly update your CapRover server and NocoDB app for the latest features and security patches. + +## Railway + +### Deployment Steps + +1. Go to Railway Templates. +2. Search for "NocoDB" in the templates list. + + ![https://user-images.githubusercontent.com/35857179/194702833-1bea22ee-6dfa-4024-ac27-e33fe56e5500.png](https://user-images.githubusercontent.com/35857179/194702833-1bea22ee-6dfa-4024-ac27-e33fe56e5500.png) +3. Click on the NocoDB template, then click "Deploy". +4. Configure your NocoDB settings as needed. + + ![https://user-images.githubusercontent.com/35857179/194702960-149393fe-b00f-4d84-9e54-22cb7616ba44.png](https://user-images.githubusercontent.com/35857179/194702960-149393fe-b00f-4d84-9e54-22cb7616ba44.png) +5. Railway will automatically deploy your NocoDB instance. + +### Important Notes +- Make sure to configure environment variables for database connections if needed. +- Set up persistent storage for your NocoDB data. +- Regularly update your NocoDB instance for the latest features and security patches. + +## FreeBSD/FreeNAS/TrueNAS Jail Installation + +For detailed instructions on installing NocoDB on FreeBSD, FreeNAS, or TrueNAS Jail, please refer to the [guide](https://gist.github.com/Zamana/e9281d736f9e9ce5882c6f4b140a590e) provided by [C. R. Zamana.](https://github.com/Zamana) + +## Sealos + +1. Open the NocoDB template by clicking on the following button: + + [![](https://raw.githubusercontent.com/labring-actions/templates/main/Deploy-on-Sealos.svg)](https://cloud.sealos.io/?openapp=system-template%3FtemplateName%3Dnocodb) +2. Follow the on-screen instructions to configure and deploy your NocoDB instance. + + +## Using NPX + + + diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/_category_.json b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/_category_.json new file mode 100644 index 0000000000..dc5b5b3cac --- /dev/null +++ b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Installation", + "collapsible": true, + "collapsed": false, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/_category_.json b/packages/noco-docs/docs/020.getting-started/050.self-hosted/_category_.json index de31bd5b4b..32404eba70 100644 --- a/packages/noco-docs/docs/020.getting-started/050.self-hosted/_category_.json +++ b/packages/noco-docs/docs/020.getting-started/050.self-hosted/_category_.json @@ -1,5 +1,5 @@ { - "label": "In Open Source", + "label": "Self Hosting", "collapsible": true, "collapsed": false, "link": { From 574321f3773c183bb8ce7ced1219a049fdf3e03e Mon Sep 17 00:00:00 2001 From: DarkPhoenix2704 Date: Tue, 3 Sep 2024 21:13:52 +0530 Subject: [PATCH 02/20] fix: update readme --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c4e159534b..8f9f19a4aa 100644 --- a/README.md +++ b/README.md @@ -47,9 +47,9 @@ Turns any MySQL, PostgreSQL, SQL Server, SQLite & MariaDB into a smart spreadshe There are different ways to start using NocoDB. You can either signup on NocoDB Cloud or self-host it. The self-hosting can be done using Docker, Docker Compose, Binaries, or using the script. -## Easy Installation +## One-Click Install -This script installs NocoDB with PostgreSQL, Redis, and Minio for a complete setup in a docker environment. +This script installs NocoDB with PostgreSQL, Redis, and Minio (for file storage) using Docker Compose. ```bash bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp) ```` @@ -119,7 +119,7 @@ Access Dashboard using: [http://localhost:8080/dashboard](http://localhost:8080/ - [Quick try](#quick-try) - [Installation](#installation) - - [Easy Installation](#easy-installation) + - [One-Click Install](#one-click-install) - [Binaries](#binaries) - [Docker](#docker) - [Docker Compose](#docker-compose) From 529a1d3828f98be01c6ed03d13db5017ed365d86 Mon Sep 17 00:00:00 2001 From: Anbarasu Date: Tue, 3 Sep 2024 21:30:49 +0530 Subject: [PATCH 03/20] Update packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/100.other-installations.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- .../050.self-hosted/010.installation/100.other-installations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/100.other-installations.md b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/100.other-installations.md index a6f8884e5f..a88712eb25 100644 --- a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/100.other-installations.md +++ b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/100.other-installations.md @@ -87,7 +87,7 @@ For detailed instructions on installing NocoDB on FreeBSD, FreeNAS, or TrueNAS J 1. Open the NocoDB template by clicking on the following button: - [![](https://raw.githubusercontent.com/labring-actions/templates/main/Deploy-on-Sealos.svg)](https://cloud.sealos.io/?openapp=system-template%3FtemplateName%3Dnocodb) + [![Deploy on Sealos](https://raw.githubusercontent.com/labring-actions/templates/main/Deploy-on-Sealos.svg)](https://cloud.sealos.io/?openapp=system-template%3FtemplateName%3Dnocodb) 2. Follow the on-screen instructions to configure and deploy your NocoDB instance. From 1eafae41585b941188dfee2fbec1d257aa47f0bb Mon Sep 17 00:00:00 2001 From: Naveen MR Date: Tue, 3 Sep 2024 20:27:55 +0100 Subject: [PATCH 04/20] update : refactor auto-upstall and installation methods --- .github/workflows/bats-test.yml | 2 +- README.md | 84 ++++++-------- docker-compose/1_Auto_Upstall/README.md | 15 +++ .../{setup-script => 1_Auto_Upstall}/noco.sh | 0 .../tests/configure/monitor.bats | 0 .../tests/configure/restart.bats | 0 .../tests/configure/scale.bats | 0 .../tests/configure/setup.sh | 0 .../tests/configure/start.bats | 0 .../tests/configure/stop.bats | 0 .../tests/configure/upgrade.bats | 0 .../tests/expects/configure/monitor.sh | 0 .../tests/expects/configure/restart.sh | 0 .../tests/expects/configure/scale.sh | 0 .../tests/expects/configure/start.sh | 0 .../tests/expects/configure/stop.sh | 0 .../tests/expects/configure/upgrade.sh | 0 .../tests/expects/install/default.sh | 0 .../tests/expects/install/ip.sh | 0 .../tests/expects/install/redis.sh | 0 .../tests/expects/install/scale.sh | 0 .../tests/expects/install/ssl.sh | 0 .../tests/expects/install/watchtower.sh | 0 .../tests/install/default.bats | 0 .../tests/install/ip.bats | 0 .../tests/install/redis.bats | 0 .../tests/install/scale.bats | 0 .../tests/install/setup.sh | 0 .../tests/install/ssl.bats | 0 .../tests/install/watchtower.bats | 0 .../tests/mocks/clear | 0 .../tests/mocks/nproc | 0 .../{pg => 2_pg}/docker-compose.yml | 0 docker-compose/{traefik => 3_traefik}/.env | 0 .../{traefik => 3_traefik}/README.md | 0 .../{traefik => 3_traefik}/docker-compose.yml | 0 docker-compose/aio/.env | 2 - docker-compose/aio/.gitignore | 3 - docker-compose/aio/README.md | 71 ------------ docker-compose/aio/advanced.md | 47 -------- .../aio/bin/gen_letsencrypt_cert.sh | 39 ------- docker-compose/aio/bin/nginx_reload.sh | 2 - docker-compose/aio/bin/nginx_start.sh | 12 -- docker-compose/aio/bin/renew_certs.sh | 3 - docker-compose/aio/bin/restart.sh | 7 -- docker-compose/aio/bin/start.sh | 7 -- docker-compose/aio/conf/nc_properties.env | 13 --- docker-compose/aio/docker-compose.yml | 105 ------------------ docker-compose/aio/install.sh | 41 ------- .../conf-templates/certbot_conf.template | 15 --- .../ssl_server_name_conf.template | 33 ------ docker-compose/aio/nginx/conf.d/backends.conf | 5 - docker-compose/aio/nginx/conf.d/default.conf | 23 ---- docker-compose/aio/nginx/conf.d/fe_artf.conf | 0 docker-compose/aio/nginx/conf/nginx.conf | 8 -- docker-compose/aio/pre-req-check.sh | 60 ---------- docker-compose/aio/prepare_env.sh | 78 ------------- docker-compose/aio/sbin/install_vars.sh | 51 --------- docker-compose/aio/sbin/ubuntu-setup.sh | 18 --- docker-compose/aio/sbin/util.sh | 24 ---- docker-compose/letsencrypt/nc.sh | 60 ---------- docker-compose/mysql/docker-compose.yml | 39 ------- docker-compose/sqlite/nocodb/noco.db | Bin 516096 -> 0 bytes markdown/readme/languages/chinese.md | 2 +- markdown/readme/languages/indonesian.md | 2 +- markdown/readme/languages/ukrainian.md | 2 +- .../010.installation/010.auto-install.md | 96 ++++++++++++++++ .../010.installation/010.easy-install.md | 62 ----------- .../050.executable-installation.md | 88 --------------- .../010.installation/060.node-js.md | 70 ------------ .../100.other-installations.md | 3 - 71 files changed, 152 insertions(+), 1040 deletions(-) create mode 100644 docker-compose/1_Auto_Upstall/README.md rename docker-compose/{setup-script => 1_Auto_Upstall}/noco.sh (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/configure/monitor.bats (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/configure/restart.bats (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/configure/scale.bats (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/configure/setup.sh (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/configure/start.bats (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/configure/stop.bats (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/configure/upgrade.bats (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/expects/configure/monitor.sh (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/expects/configure/restart.sh (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/expects/configure/scale.sh (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/expects/configure/start.sh (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/expects/configure/stop.sh (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/expects/configure/upgrade.sh (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/expects/install/default.sh (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/expects/install/ip.sh (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/expects/install/redis.sh (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/expects/install/scale.sh (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/expects/install/ssl.sh (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/expects/install/watchtower.sh (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/install/default.bats (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/install/ip.bats (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/install/redis.bats (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/install/scale.bats (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/install/setup.sh (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/install/ssl.bats (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/install/watchtower.bats (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/mocks/clear (100%) rename docker-compose/{setup-script => 1_Auto_Upstall}/tests/mocks/nproc (100%) rename docker-compose/{pg => 2_pg}/docker-compose.yml (100%) rename docker-compose/{traefik => 3_traefik}/.env (100%) rename docker-compose/{traefik => 3_traefik}/README.md (100%) rename docker-compose/{traefik => 3_traefik}/docker-compose.yml (100%) delete mode 100644 docker-compose/aio/.env delete mode 100644 docker-compose/aio/.gitignore delete mode 100644 docker-compose/aio/README.md delete mode 100644 docker-compose/aio/advanced.md delete mode 100755 docker-compose/aio/bin/gen_letsencrypt_cert.sh delete mode 100755 docker-compose/aio/bin/nginx_reload.sh delete mode 100755 docker-compose/aio/bin/nginx_start.sh delete mode 100755 docker-compose/aio/bin/renew_certs.sh delete mode 100755 docker-compose/aio/bin/restart.sh delete mode 100755 docker-compose/aio/bin/start.sh delete mode 100644 docker-compose/aio/conf/nc_properties.env delete mode 100644 docker-compose/aio/docker-compose.yml delete mode 100755 docker-compose/aio/install.sh delete mode 100644 docker-compose/aio/nginx/conf-templates/certbot_conf.template delete mode 100644 docker-compose/aio/nginx/conf-templates/ssl_server_name_conf.template delete mode 100644 docker-compose/aio/nginx/conf.d/backends.conf delete mode 100644 docker-compose/aio/nginx/conf.d/default.conf delete mode 100644 docker-compose/aio/nginx/conf.d/fe_artf.conf delete mode 100644 docker-compose/aio/nginx/conf/nginx.conf delete mode 100755 docker-compose/aio/pre-req-check.sh delete mode 100755 docker-compose/aio/prepare_env.sh delete mode 100644 docker-compose/aio/sbin/install_vars.sh delete mode 100755 docker-compose/aio/sbin/ubuntu-setup.sh delete mode 100644 docker-compose/aio/sbin/util.sh delete mode 100644 docker-compose/letsencrypt/nc.sh delete mode 100644 docker-compose/mysql/docker-compose.yml delete mode 100644 docker-compose/sqlite/nocodb/noco.db create mode 100644 packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.auto-install.md delete mode 100644 packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.easy-install.md delete mode 100644 packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/050.executable-installation.md delete mode 100644 packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/060.node-js.md diff --git a/.github/workflows/bats-test.yml b/.github/workflows/bats-test.yml index 222399ff7e..1c965c22a6 100644 --- a/.github/workflows/bats-test.yml +++ b/.github/workflows/bats-test.yml @@ -3,7 +3,7 @@ name: Run BATS Tests on: push: paths: - - 'docker-compose/setup-script/noco.sh' + - 'docker-compose/1_Auto_Upstall/noco.sh' workflow_dispatch: jobs: diff --git a/README.md b/README.md index 8f9f19a4aa..e2eddca45e 100644 --- a/README.md +++ b/README.md @@ -44,60 +44,53 @@ Turns any MySQL, PostgreSQL, SQL Server, SQLite & MariaDB into a smart spreadshe # Installation -There are different ways to start using NocoDB. You can either signup on NocoDB Cloud or self-host it. -The self-hosting can be done using Docker, Docker Compose, Binaries, or using the script. + +Else you can always rely on Docker or Binaries if you are trying locally. -## One-Click Install +## Auto-upstall +Auto-upstall is the fastest and easiest way to self-host NocoDB on a server. Behind the scenes it auto-generates docker-compose for you. -This script installs NocoDB with PostgreSQL, Redis, and Minio (for file storage) using Docker Compose. ```bash bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp) -```` - - -## Docker - -```bash -# with PostgreSQL -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 - -# with SQLite : mounting volume `/usr/app/data/` is crucial to avoid data loss. -docker run -d --name nocodb \ --v "$(pwd)"/nocodb:/usr/app/data/ \ --p 8080:8080 \ -nocodb/nocodb:latest ``` -## Binaries -🚥 Binaries are intended for ONLY quick trials or testing purposes and are not recommended for production use. +Follow the simple steps below & enjoy the seamless installation. - | OS | Architecture | Command | - |---------|--------------|----------------------------------------------------------------------------------------------| - | macOS | arm64 | `curl http://get.nocodb.com/macos-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb` | - | macOS | x64 | `curl http://get.nocodb.com/macos-x64 -o nocodb -L && chmod +x nocodb && ./nocodb` | - | Linux | x64 | `curl http://get.nocodb.com/linux-x64 -o nocodb -L && chmod +x nocodb && ./nocodb` | - | Linux | arm64 | `curl http://get.nocodb.com/linux-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb` | - | Windows | x64 | `iwr http://get.nocodb.com/win-x64.exe -o Noco-win-x64.exe &&.\Noco-win-x64.exe` | - | Windows | arm64 | `iwr http://get.nocodb.com/win-arm64.exe -o Noco-win-arm64.exe && .\Noco-win-arm64.exe` | - +- Step 1. 🔐 SSH into your server. +- Step 2. 🚀 Run the below command & follow instructions : + ```bash + bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp) + ``` +- Step 3. 🌐 Open your browser and go to URL + - For 🌍 HTTP: `http://` + - For 🔒 HTTPS: `https://` +- Step 4. 🐦 Don't keep the command a secret. Tweet how easy it is. This step is a must! -## Docker Compose +### Notes +Auto-upstall is a single command that : 🕊 +- 🐳 Automatically installs all pre-requisites like docker, docker-compose +- 🚀 Automatically installs NocoDB with PostgreSQL, Redis, Minio, Traefik gateway using Docker Compose. 🐘 🗄️ 🌐 +- 🔄 Automatically upgrades NocoDB to the latest version when you run the command again. +- 🔒 Automatically setups SSL and also renews it. Needs a domain or subdomain as input while installation. -We provide different docker-compose.yml files under [this directory](https://github.com/nocodb/nocodb/tree/master/docker-compose). Here are some examples. +> install.nocodb.com/noco.sh script can be found [here in our github](https://raw.githubusercontent.com/nocodb/nocodb/develop/docker-compose/setup-script/noco.sh) -```bash -git clone https://github.com/nocodb/nocodb -cd nocodb/docker-compose/pg -``` +## Installation Methods + +| Install Method | Command to install | Comments | +|------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------| +| 🚀 Auto Upstall
     or
    1-cmd setup | `bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp)` | install.nocodb.com/noco.sh script [is here in our github](https://raw.githubusercontent.com/nocodb/nocodb/develop/docker-compose/setup-script/noco.sh) | +| 🐳 Docker (with SQLite) | `docker run -d --name nocodb \`
   `-v ""$(pwd)"":/nocodb:/usr/app/data/ \`
   `-p 8080:8080 \`
   `nocodb/nocodb:latest` | Placeholder text | +| 🐳 Docker (with Postgres 🐘) | `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` | Please point NC_DB to a fresh postgres database. | +| 🍏 MacOS arm64 (Binary) | `curl http://get.nocodb.com/macos-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb` | Only for quick trial. Not recommended for production. | +| 🍏 MacOS x64 (Binary) | `curl http://get.nocodb.com/macos-x64 -o nocodb -L && chmod +x nocodb && ./nocodb` | Only for quick trial. Not recommended for production. | +| 🐧 Linux arm64 (Binary) | `curl http://get.nocodb.com/linux-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb` | Only for quick trial. Not recommended for production. | +| 🐧 Linux x64 (Binary) | `curl http://get.nocodb.com/linux-x64 -o nocodb -L && chmod +x nocodb && ./nocodb` | Only for quick trial. Not recommended for production. | +| 🪟 Windows arm64 (Binary) | `iwr http://get.nocodb.com/win-arm64.exe -o Noco-win-arm64.exe && .\Noco-win-arm64.exe` | Only for quick trial. Not recommended for production. | +| 🪟 Windows x64 (Binary) | `iwr http://get.nocodb.com/win-x64.exe -o Noco-win-x64.exe && .\Noco-win-x64.exe` | Only for quick trial. Not recommended for production. | -# GUI -Access Dashboard using: [http://localhost:8080/dashboard](http://localhost:8080/dashboard) +> When running locally access nocodb by visiting: [http://localhost:8080/dashboard](http://localhost:8080/dashboard) # Screenshots ![2](https://github.com/nocodb/nocodb/assets/86527202/a127c05e-2121-4af2-a342-128e0e2d0291) @@ -119,11 +112,8 @@ Access Dashboard using: [http://localhost:8080/dashboard](http://localhost:8080/ - [Quick try](#quick-try) - [Installation](#installation) - - [One-Click Install](#one-click-install) - - [Binaries](#binaries) - - [Docker](#docker) - - [Docker Compose](#docker-compose) -- [GUI](#gui) + - [Auto-Upstall or 1-Command Setup](#auto-upstall) + - [Installation Methods](#installation-methods) - [Join Our Community](#join-our-community) - [Screenshots](#screenshots) - [Table of Contents](#table-of-contents) diff --git a/docker-compose/1_Auto_Upstall/README.md b/docker-compose/1_Auto_Upstall/README.md new file mode 100644 index 0000000000..53794b8160 --- /dev/null +++ b/docker-compose/1_Auto_Upstall/README.md @@ -0,0 +1,15 @@ +# NocoDB : Auto-upstall script + +### Usage + +```bash +./noco.sh +```` + +### Notes + +This simple command : 🕊 +- 🐳 Automatically installs all pre-requisites like docker, docker-compose +- 🚀 Automatically installs NocoDB with PostgreSQL, Redis, Minio, Traefik gateway using Docker Compose. 🐘 🗄️ 🌐 +- 🔄 Automatically upgrades NocoDB to the latest version when you run the command again. +- 🔒 Automatically setups SSL and also renews it. Needs a domain or subdomain as input while installation. diff --git a/docker-compose/setup-script/noco.sh b/docker-compose/1_Auto_Upstall/noco.sh similarity index 100% rename from docker-compose/setup-script/noco.sh rename to docker-compose/1_Auto_Upstall/noco.sh diff --git a/docker-compose/setup-script/tests/configure/monitor.bats b/docker-compose/1_Auto_Upstall/tests/configure/monitor.bats similarity index 100% rename from docker-compose/setup-script/tests/configure/monitor.bats rename to docker-compose/1_Auto_Upstall/tests/configure/monitor.bats diff --git a/docker-compose/setup-script/tests/configure/restart.bats b/docker-compose/1_Auto_Upstall/tests/configure/restart.bats similarity index 100% rename from docker-compose/setup-script/tests/configure/restart.bats rename to docker-compose/1_Auto_Upstall/tests/configure/restart.bats diff --git a/docker-compose/setup-script/tests/configure/scale.bats b/docker-compose/1_Auto_Upstall/tests/configure/scale.bats similarity index 100% rename from docker-compose/setup-script/tests/configure/scale.bats rename to docker-compose/1_Auto_Upstall/tests/configure/scale.bats diff --git a/docker-compose/setup-script/tests/configure/setup.sh b/docker-compose/1_Auto_Upstall/tests/configure/setup.sh similarity index 100% rename from docker-compose/setup-script/tests/configure/setup.sh rename to docker-compose/1_Auto_Upstall/tests/configure/setup.sh diff --git a/docker-compose/setup-script/tests/configure/start.bats b/docker-compose/1_Auto_Upstall/tests/configure/start.bats similarity index 100% rename from docker-compose/setup-script/tests/configure/start.bats rename to docker-compose/1_Auto_Upstall/tests/configure/start.bats diff --git a/docker-compose/setup-script/tests/configure/stop.bats b/docker-compose/1_Auto_Upstall/tests/configure/stop.bats similarity index 100% rename from docker-compose/setup-script/tests/configure/stop.bats rename to docker-compose/1_Auto_Upstall/tests/configure/stop.bats diff --git a/docker-compose/setup-script/tests/configure/upgrade.bats b/docker-compose/1_Auto_Upstall/tests/configure/upgrade.bats similarity index 100% rename from docker-compose/setup-script/tests/configure/upgrade.bats rename to docker-compose/1_Auto_Upstall/tests/configure/upgrade.bats diff --git a/docker-compose/setup-script/tests/expects/configure/monitor.sh b/docker-compose/1_Auto_Upstall/tests/expects/configure/monitor.sh similarity index 100% rename from docker-compose/setup-script/tests/expects/configure/monitor.sh rename to docker-compose/1_Auto_Upstall/tests/expects/configure/monitor.sh diff --git a/docker-compose/setup-script/tests/expects/configure/restart.sh b/docker-compose/1_Auto_Upstall/tests/expects/configure/restart.sh similarity index 100% rename from docker-compose/setup-script/tests/expects/configure/restart.sh rename to docker-compose/1_Auto_Upstall/tests/expects/configure/restart.sh diff --git a/docker-compose/setup-script/tests/expects/configure/scale.sh b/docker-compose/1_Auto_Upstall/tests/expects/configure/scale.sh similarity index 100% rename from docker-compose/setup-script/tests/expects/configure/scale.sh rename to docker-compose/1_Auto_Upstall/tests/expects/configure/scale.sh diff --git a/docker-compose/setup-script/tests/expects/configure/start.sh b/docker-compose/1_Auto_Upstall/tests/expects/configure/start.sh similarity index 100% rename from docker-compose/setup-script/tests/expects/configure/start.sh rename to docker-compose/1_Auto_Upstall/tests/expects/configure/start.sh diff --git a/docker-compose/setup-script/tests/expects/configure/stop.sh b/docker-compose/1_Auto_Upstall/tests/expects/configure/stop.sh similarity index 100% rename from docker-compose/setup-script/tests/expects/configure/stop.sh rename to docker-compose/1_Auto_Upstall/tests/expects/configure/stop.sh diff --git a/docker-compose/setup-script/tests/expects/configure/upgrade.sh b/docker-compose/1_Auto_Upstall/tests/expects/configure/upgrade.sh similarity index 100% rename from docker-compose/setup-script/tests/expects/configure/upgrade.sh rename to docker-compose/1_Auto_Upstall/tests/expects/configure/upgrade.sh diff --git a/docker-compose/setup-script/tests/expects/install/default.sh b/docker-compose/1_Auto_Upstall/tests/expects/install/default.sh similarity index 100% rename from docker-compose/setup-script/tests/expects/install/default.sh rename to docker-compose/1_Auto_Upstall/tests/expects/install/default.sh diff --git a/docker-compose/setup-script/tests/expects/install/ip.sh b/docker-compose/1_Auto_Upstall/tests/expects/install/ip.sh similarity index 100% rename from docker-compose/setup-script/tests/expects/install/ip.sh rename to docker-compose/1_Auto_Upstall/tests/expects/install/ip.sh diff --git a/docker-compose/setup-script/tests/expects/install/redis.sh b/docker-compose/1_Auto_Upstall/tests/expects/install/redis.sh similarity index 100% rename from docker-compose/setup-script/tests/expects/install/redis.sh rename to docker-compose/1_Auto_Upstall/tests/expects/install/redis.sh diff --git a/docker-compose/setup-script/tests/expects/install/scale.sh b/docker-compose/1_Auto_Upstall/tests/expects/install/scale.sh similarity index 100% rename from docker-compose/setup-script/tests/expects/install/scale.sh rename to docker-compose/1_Auto_Upstall/tests/expects/install/scale.sh diff --git a/docker-compose/setup-script/tests/expects/install/ssl.sh b/docker-compose/1_Auto_Upstall/tests/expects/install/ssl.sh similarity index 100% rename from docker-compose/setup-script/tests/expects/install/ssl.sh rename to docker-compose/1_Auto_Upstall/tests/expects/install/ssl.sh diff --git a/docker-compose/setup-script/tests/expects/install/watchtower.sh b/docker-compose/1_Auto_Upstall/tests/expects/install/watchtower.sh similarity index 100% rename from docker-compose/setup-script/tests/expects/install/watchtower.sh rename to docker-compose/1_Auto_Upstall/tests/expects/install/watchtower.sh diff --git a/docker-compose/setup-script/tests/install/default.bats b/docker-compose/1_Auto_Upstall/tests/install/default.bats similarity index 100% rename from docker-compose/setup-script/tests/install/default.bats rename to docker-compose/1_Auto_Upstall/tests/install/default.bats diff --git a/docker-compose/setup-script/tests/install/ip.bats b/docker-compose/1_Auto_Upstall/tests/install/ip.bats similarity index 100% rename from docker-compose/setup-script/tests/install/ip.bats rename to docker-compose/1_Auto_Upstall/tests/install/ip.bats diff --git a/docker-compose/setup-script/tests/install/redis.bats b/docker-compose/1_Auto_Upstall/tests/install/redis.bats similarity index 100% rename from docker-compose/setup-script/tests/install/redis.bats rename to docker-compose/1_Auto_Upstall/tests/install/redis.bats diff --git a/docker-compose/setup-script/tests/install/scale.bats b/docker-compose/1_Auto_Upstall/tests/install/scale.bats similarity index 100% rename from docker-compose/setup-script/tests/install/scale.bats rename to docker-compose/1_Auto_Upstall/tests/install/scale.bats diff --git a/docker-compose/setup-script/tests/install/setup.sh b/docker-compose/1_Auto_Upstall/tests/install/setup.sh similarity index 100% rename from docker-compose/setup-script/tests/install/setup.sh rename to docker-compose/1_Auto_Upstall/tests/install/setup.sh diff --git a/docker-compose/setup-script/tests/install/ssl.bats b/docker-compose/1_Auto_Upstall/tests/install/ssl.bats similarity index 100% rename from docker-compose/setup-script/tests/install/ssl.bats rename to docker-compose/1_Auto_Upstall/tests/install/ssl.bats diff --git a/docker-compose/setup-script/tests/install/watchtower.bats b/docker-compose/1_Auto_Upstall/tests/install/watchtower.bats similarity index 100% rename from docker-compose/setup-script/tests/install/watchtower.bats rename to docker-compose/1_Auto_Upstall/tests/install/watchtower.bats diff --git a/docker-compose/setup-script/tests/mocks/clear b/docker-compose/1_Auto_Upstall/tests/mocks/clear similarity index 100% rename from docker-compose/setup-script/tests/mocks/clear rename to docker-compose/1_Auto_Upstall/tests/mocks/clear diff --git a/docker-compose/setup-script/tests/mocks/nproc b/docker-compose/1_Auto_Upstall/tests/mocks/nproc similarity index 100% rename from docker-compose/setup-script/tests/mocks/nproc rename to docker-compose/1_Auto_Upstall/tests/mocks/nproc diff --git a/docker-compose/pg/docker-compose.yml b/docker-compose/2_pg/docker-compose.yml similarity index 100% rename from docker-compose/pg/docker-compose.yml rename to docker-compose/2_pg/docker-compose.yml diff --git a/docker-compose/traefik/.env b/docker-compose/3_traefik/.env similarity index 100% rename from docker-compose/traefik/.env rename to docker-compose/3_traefik/.env diff --git a/docker-compose/traefik/README.md b/docker-compose/3_traefik/README.md similarity index 100% rename from docker-compose/traefik/README.md rename to docker-compose/3_traefik/README.md diff --git a/docker-compose/traefik/docker-compose.yml b/docker-compose/3_traefik/docker-compose.yml similarity index 100% rename from docker-compose/traefik/docker-compose.yml rename to docker-compose/3_traefik/docker-compose.yml diff --git a/docker-compose/aio/.env b/docker-compose/aio/.env deleted file mode 100644 index e992e1f60e..0000000000 --- a/docker-compose/aio/.env +++ /dev/null @@ -1,2 +0,0 @@ -NC_INSTALL_ROOT=./ -NO_COLOR=NEST_JS_LOG_MESSAGE_NO_COLOR_SET_NON_NULL_VALUE \ No newline at end of file diff --git a/docker-compose/aio/.gitignore b/docker-compose/aio/.gitignore deleted file mode 100644 index da79846d85..0000000000 --- a/docker-compose/aio/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -conf/ -data/ -logs/ \ No newline at end of file diff --git a/docker-compose/aio/README.md b/docker-compose/aio/README.md deleted file mode 100644 index 54792da5a0..0000000000 --- a/docker-compose/aio/README.md +++ /dev/null @@ -1,71 +0,0 @@ -# Install all-in-one nocodb with Docker (compose) - -This page provides instructions to install nocodb all-in-one (aio) using Docker-Compse. The installation will run multiple contianers in single node which includes -- nocodb -- postgres -- nginx -- redis - -## Prerequisites -Before you begin, ensure you have the following prerequisites: - -- Docker (version 20.10.7 or later) -- Docker-Compose (version 2.17.3 or later) -- Ports 80 and 443 are available - -TIP: you could simply run [./pre-req-check.sh](./pre-req-check.sh) which performs pre-requisite check. - -## Install -Run [install.sh](./install.sh), This script performs pre-requisite check, prompts you through required application properties and finally performs `docker-compose up -d`. -For most cases where no external integration required. The defaults properties are just fine. -``` -sudo ./install.sh -``` -Note: sudo is required for docker to run unless you have configured docker user to be part of sudoers. If sudo is not used then you will get error `('Connection aborted.', PermissionError(13, 'Permission denied'))` - -* At this point, your installation is completed and you should be able to access your nocodb instance * - -### An example output will be like below. -``` -./install.sh -** Performing nocodb system check and setup. This step may require sudo permissions - | Checking if required tools (docker, docker-compose, jq, lsof) are installed... - | Checking port accessibility... - | Port 80 is free. - | WARNING: Port 443 is in use. Please make sure it is free. -** System check completed successfully. ** -** Few pre-requisites are failing. Recommend to resolve and proceed. However you could still proceed to install ** - | Press Y to continue or N to skip (Y/N)? -Preparing environment file before install.. - | Press Y to continue with defaults or N to customise app properties (Y/N) -Backing up previous docker-compose/aio/conf/nc_properties.env file to nocodb/docker-compose/aio/conf/nc_properties.env-1707455571.bak -Environment variables written to docker-compose/aio/conf/nc_properties.env file. -Installing docker containers -``` - -## Data and Conf directories -This directory acts as the NC_INSTALL_ROOT by default and it will have data, conf directories which are `.gitingore` to avoid accidentlly exposing to git repository. -During installation the default properties are configured at [nc_properties.env](./conf/nc_properties.env) which can be updated if required and restarted - -``` -. -├── conf -│ └── nc_properties.env -├── data -│ ├── nginx -│ ├── nocodb -│ ├── postgres -│ └── redis -├── docker -│ └── docker-compose.yml -``` - - -## what does install.sh do -[Install script](./install.sh) performs the following steps -1. pre-req-check.sh and warns if there is anything missing which could potentially cause issues at later stage. However it will let you proceed if you wish to. -2. create application properties file under conf dir which will then be used for future upgrades etc. -3. runs docker-compose up -d - -## Advanced Operations -Refer [advanced section](./advanced.md) for advanced operations like setting up ssl, updating configurations, restarts etc diff --git a/docker-compose/aio/advanced.md b/docker-compose/aio/advanced.md deleted file mode 100644 index 36e9b310b6..0000000000 --- a/docker-compose/aio/advanced.md +++ /dev/null @@ -1,47 +0,0 @@ -# Advanced operations - -## Restarting containers -There are atleast 4 main containers which are running as part of this installation through same docker-compose. The same docker-compose can be leveraged to restart any or all of these containers. - -Use [restart.sh](./bin/restart.sh) or Use below command to restart all containers -``` docker compose restart ``` - -To restart individual containers with name ( names: nocodb, nginx, postgres, redis)\ -ex: to restart nginx\ -``` docker compose restart nginx ``` - -## Reload nginx -use utility script at [./bin/nginx_reload.sh](./bin/nginx_reload.sh) - -## [TBD] Upgrade nocodb instance - -## Enable SSL -To enable SSL for incoming https requests, nginx should be configured with combination of a public certificate and a private key. The SSL private key is kept secret on the server. It will be used to encrypt content sent to clients. -Below are different approaches to get and configure certificates. Make your choice -### letsencrypt for generating certificates -Certificates/key can be obtained by trusted CA (Certificate Authorities), there are many paid vendors found online or you can also use [letsencrypt](https://letsencrypt.org/) a non profit certificate provider for free however we recommend [donating](https://www.abetterinternet.org/donate/) for their work. - -Run the script to create certificate using the script -``` -./bin/gen_letsencrypt_cert.sh -``` - -### [TBD] Bring your own certificates -If you already have the certificates, either self signed or generated by any other means, you will need to configure them with nginx. Below are the steps - -### [TBD] Self signed certificates -One of the pre-requisite is that your server should be associated with the domain name. In the absence of that you could use self signed certificates which does ecrypt but browsers show warning. - -## Database password rotation -As a security measure, It is best practice to rotate the database credentials periodically. Assuming you would have created new credentials in postgres database. The db credentials are persisted on filesystem as part of initial install and it will be available at -[./conf/nc_properties.env](./conf/nc_properties.env)\ -update properties POSTGRES_USER, POSTGRES_PASSWORD with new credentials and [restarting nocodb](#restarting-containers) with\ -```docker compose restart nocodb``` - -## nginx configurations -There are two main directories where nginx configurations are maintained -- nocodb team managed configurations at [nginx/conf.d](./conf/nginx/conf.d). -- self managed (you) [conf/nginx/conf.d](./conf/nginx/conf.d) - -## postgres configurations -[postgres.conf](./data/postgres/postgresql.conf) and [pg_hba.conf](./data/postgres/pg_hba.conf) are created under ./data/postgres directory upon first postgres container creation. The configurations can be updated and restarted continer to take affect. \ No newline at end of file diff --git a/docker-compose/aio/bin/gen_letsencrypt_cert.sh b/docker-compose/aio/bin/gen_letsencrypt_cert.sh deleted file mode 100755 index 852a1e58df..0000000000 --- a/docker-compose/aio/bin/gen_letsencrypt_cert.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -# expects nginx to be up and running with conf.d/certbot.conf -# dns to be mapped to the machine where cert is generated -# - -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) - -SERVER_NAME=${1} -if [[ -z "$SERVER_NAME" ]] -then - echo "required argument servername" - echo "usage ex: ./gen_certs my.nocodb.com" - exit 1 -fi - -echo "Creating configs for SERVER_NAME: ${SERVER_NAME}" -cd ${SCRIPT_DIR}/../conf/nginx/conf.d -sed "s,,${SERVER_NAME},g" ${SCRIPT_DIR}/../nginx/conf-templates/certbot_conf.template > certbot.conf - -cd ${SCRIPT_DIR}/../bin -./nginx_start.sh -./nginx_reload.sh - -echo "Triggering certbot to create ssl configs: ${SERVER_NAME}" -cd ${SCRIPT_DIR}/.. -docker-compose run --rm certbot certonly --webroot --webroot-path /var/www/certbot/ -d ${SERVER_NAME} -result=$? - -if [[ $result == 1 ]]; then - echo "cert generation failed" - echo "rolling back the certs and reloading nginx" -else - echo "Now reload nginx with new ssl configs for your site : ${SERVER_NAME}" - cd ${SCRIPT_DIR}/../conf/nginx/conf.d - rm -f certbot.conf - sed "s,,${SERVER_NAME},g" ${SCRIPT_DIR}/../nginx/conf-templates/ssl_server_name_conf.template > ${SERVER_NAME}.conf -fi -rm -rf ${SCRIPT_DIR}/../conf/nginx/conf.d/certbot.conf -${SCRIPT_DIR}/../bin/nginx_reload.sh diff --git a/docker-compose/aio/bin/nginx_reload.sh b/docker-compose/aio/bin/nginx_reload.sh deleted file mode 100755 index 3e591ee95b..0000000000 --- a/docker-compose/aio/bin/nginx_reload.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -docker exec -it nginx /etc/init.d/nginx reload \ No newline at end of file diff --git a/docker-compose/aio/bin/nginx_start.sh b/docker-compose/aio/bin/nginx_start.sh deleted file mode 100755 index 24b2292837..0000000000 --- a/docker-compose/aio/bin/nginx_start.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -# starts the docker containers configured in this components -# docker compose dir -# -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) - -COMPONENT_DIR=${SCRIPT_DIR}/../ -cd ${COMPONENT_DIR} -mkdir -p ${COMPONENT_DIR}/data -chmod -R 777 ${COMPONENT_DIR}/data -docker-compose restart nginx - diff --git a/docker-compose/aio/bin/renew_certs.sh b/docker-compose/aio/bin/renew_certs.sh deleted file mode 100755 index 7e9de5b2da..0000000000 --- a/docker-compose/aio/bin/renew_certs.sh +++ /dev/null @@ -1,3 +0,0 @@ -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) -cd ${SCRIPT_DIR}/../ -sudo docker-compose run --rm certbot renew -q \ No newline at end of file diff --git a/docker-compose/aio/bin/restart.sh b/docker-compose/aio/bin/restart.sh deleted file mode 100755 index 4ed2710112..0000000000 --- a/docker-compose/aio/bin/restart.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -# docker-compose restart all containers utilty script -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) - -COMPONENT_DIR=${SCRIPT_DIR}/../ -cd ${COMPONENT_DIR} -docker-compose restart \ No newline at end of file diff --git a/docker-compose/aio/bin/start.sh b/docker-compose/aio/bin/start.sh deleted file mode 100755 index 2c6c5f6251..0000000000 --- a/docker-compose/aio/bin/start.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -# docker-compose start -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) - -COMPONENT_DIR=${SCRIPT_DIR}/../ -cd ${COMPONENT_DIR} -docker-compose up -d \ No newline at end of file diff --git a/docker-compose/aio/conf/nc_properties.env b/docker-compose/aio/conf/nc_properties.env deleted file mode 100644 index 9a4755099b..0000000000 --- a/docker-compose/aio/conf/nc_properties.env +++ /dev/null @@ -1,13 +0,0 @@ -# Environment Variables -POSTGRES_USER=postgres -POSTGRES_PASSWORD=test123 -POSTGRES_DB=nocodb -NC_REDIS_URL=redis://redis:6379/4 -NC_DB=pg://postgres:5432?u=postgres&password=${POSTGRES_PASSWORD:-nocodb}&d=postgres -NC_PUBLIC_URL=http://rajanishs-MacBook-Pro.local -NC_CONNECT_TO_EXTERNAL_DB_DISABLED=false -NC_INVITE_ONLY_SIGNUP=false -NC_ADMIN_EMAIL=admin@nocodb.com -NC_ADMIN_PASSWORD=nocodb123 -NC_S3_BUCKET_NAME=nocodb-attachements - diff --git a/docker-compose/aio/docker-compose.yml b/docker-compose/aio/docker-compose.yml deleted file mode 100644 index 5ecbb7f203..0000000000 --- a/docker-compose/aio/docker-compose.yml +++ /dev/null @@ -1,105 +0,0 @@ -version: '3.8' - -networks: - nocodb-001: - # external: true - -services: - redis: - image: redis:latest - container_name: redis - restart: unless-stopped - env_file: - - ${NC_INSTALL_ROOT:-/opt/nocodb}/conf/nc_properties.env - expose: - - "6379" - volumes: - - ${NC_INSTALL_ROOT:-/opt/nocodb}/data/redis:/data - networks: - - nocodb-001 - deploy: - resources: - limits: - cpus: '0.5' - memory: 1000M - - postgres: - image: postgres:14.7 - container_name: postgres - restart: unless-stopped - env_file: - - ${NC_INSTALL_ROOT:-/opt/nocodb}/conf/nc_properties.env - expose: - - "5432" - volumes: - - ${NC_INSTALL_ROOT:-/opt/nocodb}/data/postgres:/var/lib/postgresql/data - networks: - - nocodb-001 - healthcheck: - interval: 10s - retries: 10 - test: "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}" - timeout: 2s - deploy: - resources: - limits: - cpus: '1' - memory: 1000M - - nocodb: - depends_on: - - postgres - - redis - image: nocodb/nocodb:latest - container_name: nocodb - restart: unless-stopped - env_file: - - ${NC_INSTALL_ROOT:-/opt/nocodb}/conf/nc_properties.env - expose: - - "8080" - volumes: - - ${NC_INSTALL_ROOT:-/opt/nocodb}/data/nocodb:/usr/app/data/ - networks: - - nocodb-001 - deploy: - resources: - limits: - cpus: '1' - memory: 1000M - - nginx: - container_name: nginx - depends_on: - - nocodb - image: nginx - restart: unless-stopped - env_file: - - ${NC_INSTALL_ROOT:-/opt/nocodb}/conf/nc_properties.env - volumes: - - ${NC_INSTALL_ROOT:-/opt/nocodb}/nginx/conf.d:/etc/nginx/conf.d:ro - - ${NC_INSTALL_ROOT:-/opt/nocodb}/conf/nginx/conf.d:/etc/nginx/custom-conf.d:ro - - ${NC_INSTALL_ROOT:-/opt/nocodb}/nginx/conf:/opt/nocohub/nginx/conf - - ${NC_INSTALL_ROOT:-/opt/nocodb}/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro - - ${NC_INSTALL_ROOT:-/opt/nocodb}/data/nginx:/opt/nocohub/nginx/data - - ${NC_INSTALL_ROOT:-/opt/nocodb}/conf/nginx/certbot/www:/var/www/certbot/:ro - - ${NC_INSTALL_ROOT:-/opt/nocodb}/conf/nginx/certbot/conf/:/etc/nginx/ssl/:ro - # - ../nginx/conf/ssl:/etc/nginx/ssl/:ro - expose: - - "80" - - "443" - ports: - - "80:80" - - "443:443" - networks: - - nocodb-001 - deploy: - resources: - limits: - cpus: '1' - memory: 1000M - certbot: - container_name: nocodb_certbot - image: certbot/certbot:latest - volumes: - - ${NC_INSTALL_ROOT:-/opt/nocodb}/conf/nginx/certbot/www:/var/www/certbot/:rw - - ${NC_INSTALL_ROOT:-/opt/nocodb}/conf/nginx/certbot/conf/:/etc/letsencrypt/:rw diff --git a/docker-compose/aio/install.sh b/docker-compose/aio/install.sh deleted file mode 100755 index a1c566edab..0000000000 --- a/docker-compose/aio/install.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash -# Performs Initial setup and System Requirements Check - -## 1. validate system requirements -# a. docker, docker-compose, jq installed -# b. port mapping check -# - port 80,443 are free or being used by nginx container -# - port 8080 is open if used for multi-instance setup -# - port 6379 for redis access -# - port 9001 for minio access -# c. docker repo accessiblity quay.io/minio/minio:RELEASE.2023-12-09T18-17-51Z, redis:latest, postgres:14.7, nocodb/nocodb:latest, nginx -# d. licence check (tbd) - -# -- main line code starts here -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) -## utility functions -source ${SCRIPT_DIR}/sbin/util.sh - -${SCRIPT_DIR}/pre-req-check.sh -PRE_REQ_SUCCESS=$? -if [[ ${PRE_REQ_SUCCESS} != 0 ]] -then - echo "** Few pre-requisites are failing. Recommend to resolve and proceed. However you could still proceed to install **" >&2 -else - echo "** All pre-requistites are taken care of. Proceeding to install.. **" -fi - -# ask do you want to proceed with all defaults, -# if yes, then no prompts -if asksure; then - echo "Preparing environment file before install.." - promptUser=true - if asksure " | Press Y to continue with defaults or N to customise app properties (Y/N)"; then - promptUser=false - fi - ${SCRIPT_DIR}/prepare_env.sh ${promptUser} - echo "Installing docker containers" - docker-compose -f ${SCRIPT_DIR}/docker-compose.yml up -d - else - echo "Exiting without install. You can install using docker-compose -f ${SCRIPT_DIR}/docker-compose.yml up -d " -fi \ No newline at end of file diff --git a/docker-compose/aio/nginx/conf-templates/certbot_conf.template b/docker-compose/aio/nginx/conf-templates/certbot_conf.template deleted file mode 100644 index 63b8609c96..0000000000 --- a/docker-compose/aio/nginx/conf-templates/certbot_conf.template +++ /dev/null @@ -1,15 +0,0 @@ -server { - listen 80; - listen [::]:80; - - # chantge server_name while generating cert - server_name ; - - #access_log /var/log/nginx/host.access.log main; - - # this is required for cert generation. - # change server_name as well with cname of required cert - location /.well-known/acme-challenge/ { - root /var/www/certbot; - } -} \ No newline at end of file diff --git a/docker-compose/aio/nginx/conf-templates/ssl_server_name_conf.template b/docker-compose/aio/nginx/conf-templates/ssl_server_name_conf.template deleted file mode 100644 index b6a3eafcbd..0000000000 --- a/docker-compose/aio/nginx/conf-templates/ssl_server_name_conf.template +++ /dev/null @@ -1,33 +0,0 @@ -server { - listen 443 default_server ssl; - listen [::]:443 ssl ; - # chantge server_name while generating cert - server_name ; - - # force https-redirects - if ($scheme = http) { - return 301 https://$server_name$request_uri; - } - - ssl_certificate /etc/nginx/ssl/live//fullchain.pem; - ssl_certificate_key /etc/nginx/ssl/live//privkey.pem; - - location / { - proxy_pass http://nocodb_backend; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - proxy_intercept_errors on; - } - - # deny access to .htaccess files, if Apache's document root - # concurs with nginx's one - # - location ~ /\.ht { - deny all; - } -} \ No newline at end of file diff --git a/docker-compose/aio/nginx/conf.d/backends.conf b/docker-compose/aio/nginx/conf.d/backends.conf deleted file mode 100644 index 2090cbe544..0000000000 --- a/docker-compose/aio/nginx/conf.d/backends.conf +++ /dev/null @@ -1,5 +0,0 @@ -upstream nocodb_backend { - server nocodb:8080; - # server nocodb-1:8080; - # server nocodb-2:8080; -} \ No newline at end of file diff --git a/docker-compose/aio/nginx/conf.d/default.conf b/docker-compose/aio/nginx/conf.d/default.conf deleted file mode 100644 index f9a78f3a6c..0000000000 --- a/docker-compose/aio/nginx/conf.d/default.conf +++ /dev/null @@ -1,23 +0,0 @@ -server { - - listen 80; - listen [::]:80; - server_name localhost; - - location / { - proxy_pass http://nocodb_backend; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - proxy_intercept_errors on; - error_page 404 = @handle404; - } - - location @handle404 { - rewrite ^ /dashboard permanent; - } -} \ No newline at end of file diff --git a/docker-compose/aio/nginx/conf.d/fe_artf.conf b/docker-compose/aio/nginx/conf.d/fe_artf.conf deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/docker-compose/aio/nginx/conf/nginx.conf b/docker-compose/aio/nginx/conf/nginx.conf deleted file mode 100644 index f6a3a2da04..0000000000 --- a/docker-compose/aio/nginx/conf/nginx.conf +++ /dev/null @@ -1,8 +0,0 @@ -events { - worker_connections 1024; -} - -http { - include /etc/nginx/conf.d/*.conf; - include /etc/nginx/custom-conf.d/*.conf; -} \ No newline at end of file diff --git a/docker-compose/aio/pre-req-check.sh b/docker-compose/aio/pre-req-check.sh deleted file mode 100755 index b19a22d119..0000000000 --- a/docker-compose/aio/pre-req-check.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash -# Performs Initial setup and System Requirements Check - -## 1. validate system requirements -# a. docker, docker-compose, jq installed -# b. port mapping check -# - port 80,443 are free or being used by nginx container -# - port 8080 is open if used for multi-instance setup -# - port 6379 for redis access -# - port 9001 for minio access -# c. docker repo accessiblity quay.io/minio/minio:RELEASE.2023-12-09T18-17-51Z, redis:latest, postgres:14.7, nocodb/nocodb:latest, nginx -# d. licence check (tbd) - - -# -- main line code starts here -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) -source ${SCRIPT_DIR}/sbin/util.sh -source ${SCRIPT_DIR}/sbin/install_vars.sh -echo "** Performing nocodb system check and setup. This step may require sudo permissions" -PRE_REQ=0 - -# d. Check if required tools are installed -echo " | Checking if required tools (docker, docker-compose, jq, lsof) are installed..." -for tool in docker docker-compose lsof; do - if ! command -v "$tool" &> /dev/null; then - echo " | Error: $tool is not installed. Please install it before proceeding." - PRE_REQ=1 - fi -done - -# e. Check if NocoDB is already installed and its expected version -# echo "Checking if NocoDB is already installed and its expected version..." -# Replace the following command with the actual command to check NocoDB installation and version -# Example: nocodb_version=$(command_to_get_nocodb_version) -# echo "NocoDB version: $nocodb_install_version" - -# f. Port mapping check -echo " | Checking port accessibility..." -for port in "${REQUIRED_PORTS[@]}"; do - if lsof -Pi :$port -sTCP:LISTEN -t >/dev/null; then - echo " | WARNING: Port $port is in use. Please make sure it is free." >&2 - PRE_REQ=1 - else - echo " | Port $port is free." - fi -done - -# # g. Docker repository accessibility check -# echo "Checking Docker repository accessibility..." -# for image in "${DOCKER_IMAGES[@]}"; do -# if docker pull "$image" &> /dev/null; then -# echo "Docker image $image is accessible." -# else -# echo "Error: Docker image $image is not accessible. Please check the repository or internet connection." -# PRE_REQ=1 -# fi -# done - -echo "** System check completed successfully. **" -exit $PRE_REQ \ No newline at end of file diff --git a/docker-compose/aio/prepare_env.sh b/docker-compose/aio/prepare_env.sh deleted file mode 100755 index 4a9d32faac..0000000000 --- a/docker-compose/aio/prepare_env.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/bash -# prepares env file with all the required env variables. -# - -# -- main line code starts here -- -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) -source ${SCRIPT_DIR}/sbin/util.sh -source ${SCRIPT_DIR}/sbin/install_vars.sh - -ENV_FILE=${SCRIPT_DIR}/conf/nc_properties.env -bkp_file=${ENV_FILE}-$(date +%s).bak -# Source existing nc_envs.env file to get current values -if [ -f ${ENV_FILE} ]; then - source ${ENV_FILE} - echo "Backing up previous ${ENV_FILE} file to ${bkp_file}" - cp ${ENV_FILE} ${bkp_file} -fi - -function trim(){ - local var="${@}" - echo "$(sed -e 's/[[:space:]]*$//' <<<${var})" -} - -function acceptProperty(){ - local varDetail="$1" - local promptUser="${2:-true}" - prompt=$(echo "$varDetail" | cut -d '|' -f2) - prop=$(echo "$varDetail" | cut -d '|' -f1) - key=$(echo "$prop" | cut -d'=' -f1) - default_value="${prop#*=}" - prev_value_or_default=${!key:-${default_value}} - - # echo promptUser: ${promptUser} - # echo prop: ${prop} - # echo key: ${key} - # echo default_value: ${default_value} - if [[ ${promptUser} == "true" ]]; then - read -p " || Enter value for $key (default: ${prev_value_or_default}): " user_input - fi - - # Use user input or default value if empty - value=$(trim ${user_input:-$prev_value_or_default}) - - # Store key-value pair in a variable - if [[ ${value} != "" ]]; then - userValues="${userValues}${key}=${value}\n" - fi -} -# Iterate over the properties array and prompt user for input -for multi_property_array in basic_properties invite_only_signup_priorities google_login_properties email_properties s3_attachment_properties ; do - array_name="$multi_property_array[@]" # Name of the array to process - array=("${!array_name}") - promptUser="${1}" - for varDetail in "${array[@]}"; do - promptMsg=$(echo "$varDetail" | cut -d '|' -f2) - prop=$(echo "$varDetail" | cut -d '|' -f1) - if [[ ${promptUser} == "true" ]] && [[ ${prop} == "main" ]] - then - echo $promptMsg - if ! asksure; then - # set all defaults here - promptUser=false - fi - continue - fi - if [[ ${prop} != "main" ]]; then - acceptProperty "${varDetail}" "${promptUser}" - fi - done -done - -# Write key-value pairs to nc_envs.env file -echo -e "# Environment Variables\n$userValues" > ${ENV_FILE} - -echo "Environment variables written to ${ENV_FILE} file." - -# echo "creating data conf, data and log directories" -# mkdir -p ${INSTALL_ROOT}/conf ${INSTALL_ROOT}/data ${INSTALL_ROOT}/logs diff --git a/docker-compose/aio/sbin/install_vars.sh b/docker-compose/aio/sbin/install_vars.sh deleted file mode 100644 index 6bee14cb28..0000000000 --- a/docker-compose/aio/sbin/install_vars.sh +++ /dev/null @@ -1,51 +0,0 @@ -nocodb_install_version="1.0.0" # Replace with actual version -REQUIRED_PORTS=(80 443) -DOCKER_IMAGES=("redis:latest" "postgres:14.7" "nocodb/nocodb:latest" "nginx" "certbot/certbot:latest" ) - -# Array of properties with default values -basic_properties=( -"main|Basic Configurations" -"POSTGRES_USER=postgres | Username for postgres database" -"POSTGRES_PASSWORD=test123 | " -"POSTGRES_DB=nocodb | " -"NC_REDIS_URL=redis://redis:6379/4 | default to redis container" -'NC_DB=pg://postgres:5432?u=postgres&password=${POSTGRES_PASSWORD:-nocodb}&d=postgres | hide' -"NC_PUBLIC_URL=http://$(hostname) | Are you using custom DNS, configure NC_PUBLIC_URL to reflect in the invite emails?" -"NC_CONNECT_TO_EXTERNAL_DB_DISABLED=false | Disable connecting to external db?" -) - -invite_only_signup_priorities=( -"main|Allow invite only sign-up" -"NC_INVITE_ONLY_SIGNUP=false | invite only signup?" -"NC_ADMIN_EMAIL=admin@nocodb.com | " -"NC_ADMIN_PASSWORD=nocodb123 | " -) - -google_login_properties=( -"main|Configure Google Login" -"NC_GOOGLE_CLIENT_ID= | Enter Client ID" -"NC_GOOGLE_CLIENT_SECRET= | Enter Client ID") - -email_properties=( -"main|Configure smtp properties" -"NC_SMTP_FROM= |" -"NC_SMTP_HOST= |" -"NC_SMTP_PORT= |" -"NC_SMTP_USERNAME= |" -"NC_SMTP_PASSWORD= |" -"NC_SMTP_SECURE= |" -"NC_SMTP_IGNORE_TLS= |" -) - -s3_attachment_properties=( -"main|Do you want to configure s3 for attachements?" -"NC_S3_BUCKET_NAME=nocodb-attachements |" -"NC_S3_REGION= |" -"NC_S3_ACCESS_KEY= | " -"NC_S3_ACCESS_SECRET= |" -) - -multi_property_array=(basic_properties invite_only_signup_priorities google_login_properties email_properties s3_attachment_properties) - - - diff --git a/docker-compose/aio/sbin/ubuntu-setup.sh b/docker-compose/aio/sbin/ubuntu-setup.sh deleted file mode 100755 index 8c29ba4066..0000000000 --- a/docker-compose/aio/sbin/ubuntu-setup.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -echo "install docker and compose" -sudo apt update -sudo install -m 0755 -d /etc/apt/keyrings -curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg -sudo chmod a+r /etc/apt/keyrings/docker.gpg - - -sudo apt update -sudo apt install apt-transport-https ca-certificates curl software-properties-common -y -curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg -echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null -sudo apt update -apt-cache policy docker-ce -sudo apt install docker-ce -y -sudo apt install docker-compose -y -apt-get install jq -y \ No newline at end of file diff --git a/docker-compose/aio/sbin/util.sh b/docker-compose/aio/sbin/util.sh deleted file mode 100644 index b65d4696c5..0000000000 --- a/docker-compose/aio/sbin/util.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -# this file contains the utility functions -# used during installation -# - -asksure() { -local custom_msg="${@}" -if [[ ${custom_msg} ]]; then - echo -n "${custom_msg}" -else - echo -n " | Press Y to continue or N to skip (Y/N)? " -fi -while read -r -n 1 -s answer; do - if [[ $answer = [YyNn] ]]; then - [[ $answer = [Yy] ]] && retval=0 - [[ $answer = [Nn] ]] && retval=1 - break - fi -done - -echo # just a final linefeed, optics... - -return $retval -} \ No newline at end of file diff --git a/docker-compose/letsencrypt/nc.sh b/docker-compose/letsencrypt/nc.sh deleted file mode 100644 index fc2218f7d2..0000000000 --- a/docker-compose/letsencrypt/nc.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env bash - - -read -p "Enter your domain name: " domain -read -p "Enter your email id: " email - -# Docker installation -if [ -x "$(command -v docker)" ]; then - echo "Docker already available" -else - sudo apt-get update - sudo apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common - curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -- - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian buster stable" - sudo apt-get update - sudo apt-get install -y docker-ce docker-ce-cli containerd.io - sudo usermod -a -G docker $USER - echo "Docker installed successfully" -fi - -# Docker compose installation -if [ -x "$(command -v docker-compose)" ]; then - echo "Docker-compose already available" -else - sudo apt-get -y install wget - sudo wget https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m) -O /usr/local/bin/docker-compose - sudo chmod +x /usr/local/bin/docker-compose - docker-compose --version - echo "Docker-compose installed successfully" -fi - - -#wget https://github.com/evertramos/docker-compose-letsencrypt-nginx-proxy-companion/archive/master.zip -O master.zip -# -#unzip -n master.zip -# -#cd docker-compose-letsencrypt-nginx-proxy-companion-master - -git clone https://github.com/evertramos/docker-compose-letsencrypt-nginx-proxy-companion.git - -cd docker-compose-letsencrypt-nginx-proxy-companion - -OUTPUT1=$(./start.sh) - - - - -docker run -p 8080:8080 -p 8081:8081 -p 8082:8082 -d --name xc-instant \ --e VIRTUAL_HOST="$domain" \ --e LETSENCRYPT_HOST="$domain" \ --e LETSENCRYPT_EMAIL="$email" \ --e VIRTUAL_PORT=8080 \ ---network=webproxy nocodb/nocodb:latest - - - - - - - diff --git a/docker-compose/mysql/docker-compose.yml b/docker-compose/mysql/docker-compose.yml deleted file mode 100644 index 388c7d3752..0000000000 --- a/docker-compose/mysql/docker-compose.yml +++ /dev/null @@ -1,39 +0,0 @@ -version: "2.1" -services: - nocodb: - depends_on: - root_db: - condition: service_healthy - environment: - NC_DB: "mysql2://root_db:3306?u=noco&p=password&d=root_db" - image: "nocodb/nocodb:latest" - ports: - - "8080:8080" - restart: always - volumes: - - "nc_data:/usr/app/data" - root_db: - environment: - MYSQL_DATABASE: root_db - MYSQL_PASSWORD: password - MYSQL_ROOT_PASSWORD: password - MYSQL_USER: noco - healthcheck: - retries: 10 - test: - - CMD - - mysqladmin - - ping - - "-h" - - localhost - timeout: 20s - image: "mysql:8.3.0" - restart: always - volumes: - - "db_data:/var/lib/mysql" -# below line shows how to change charset and collation -# uncomment it if necessary -# command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci -volumes: - db_data: {} - nc_data: {} diff --git a/docker-compose/sqlite/nocodb/noco.db b/docker-compose/sqlite/nocodb/noco.db deleted file mode 100644 index 328334821947e05585188711a700ef9a01bb088d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 516096 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 &2pOnf| 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 S4?J)C1EI|JsMk&@`u`8?*F?Gi diff --git a/markdown/readme/languages/chinese.md b/markdown/readme/languages/chinese.md index f1c91fb2c8..d6187a9f65 100644 --- a/markdown/readme/languages/chinese.md +++ b/markdown/readme/languages/chinese.md @@ -77,7 +77,7 @@ nocodb/nocodb:latest ```bash git clone https://github.com/nocodb/nocodb # 如果使用 PostgreSQL 的话 -cd nocodb/docker-compose/pg +cd nocodb/docker-compose/2_pg ``` > 你可以通过在 0.10.6 以上的版本中挂载 `/usr/app/data/` 来持久化数据,否则你的数据会在重新创建容器后完全丢失。 diff --git a/markdown/readme/languages/indonesian.md b/markdown/readme/languages/indonesian.md index 827bc0dde5..60c42dc127 100644 --- a/markdown/readme/languages/indonesian.md +++ b/markdown/readme/languages/indonesian.md @@ -122,7 +122,7 @@ Kami menyediakan berbagai file docker-compose.yml di [bawah direktori](https://g ```bash git clone https://github.com/nocodb/nocodb # for PostgreSQL -cd nocodb/docker-compose/pg +cd nocodb/docker-compose/2_pg docker-compose up -d ``` diff --git a/markdown/readme/languages/ukrainian.md b/markdown/readme/languages/ukrainian.md index df04f274a7..e285f3523f 100644 --- a/markdown/readme/languages/ukrainian.md +++ b/markdown/readme/languages/ukrainian.md @@ -134,7 +134,7 @@ iwr http://get.nocodb.com/win-arm64.exe -o Noco-win-arm64.exe ```bash git clone https://github.com/nocodb/nocodb # для PostgreSQL -cd nocodb/docker-compose/pg +cd nocodb/docker-compose/2_pg docker-compose up -d ``` diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.auto-install.md b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.auto-install.md new file mode 100644 index 0000000000..6d427239e0 --- /dev/null +++ b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.auto-install.md @@ -0,0 +1,96 @@ +--- +title: 'Auto-Upstall' +description: 'Auto-Upstall is a one command setup for NocoDB installation.' +tags: ['Open Source'] +keywords : ['NocoDB installation', 'NocoDB one command installation', 'NocoDB prerequisites'] +--- + +# Auto-Upstall + +> auto-upstall is one command that automatically installs and upgrades NocoDB with SSL setup. + + +```bash +bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp) +``` + +Above command is the fastest and easiest way to self-host NocoDB on a server. It auto-generates a docker-compose for you behind the scenes. + +## Notes on Auto-Upstall +Auto-upstall is a single command that : 🕊 +- 🐳 First Automatically installs all pre-requisites on your linux based server (docker, docker-compose) +- 🚀 Then automatically installs + - 🇳 NocoDB, + - 🐘 PostgreSQL, + - ⚡ Redis, + - 🗄 Minio, + - 🌐 Traefik gateway. +- 🔄 Also automatically upgrades NocoDB when new versions are available. +- 🔒 And finally automatically setups+renews SSL. + + +## Quick installation guide + +This is quick walkthrough of how to install NocoDB using auto-upstall script. + +- **Step 1** : 🔐 SSH into your server (linux-based system - Ubuntu, Debian, CentOS etc) +- **Step 2** : 🚀 Run the below command : + ```bash + bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp) + ``` +- **Step 3** : 🌐 Open your browser and go to URL + - For 🌍 HTTP: `http://` + - For 🔒 HTTPS: `https://` +- **Step 4** : 🐦 Don't keep the command a secret. Tweet how easy it is. This step is a must! + + +> install.nocodb.com/noco.sh script can be found [here in our github](https://raw.githubusercontent.com/nocodb/nocodb/develop/docker-compose/setup-script/noco.sh) + + +## Detailed installation guide + +1. Run the following command in your terminal: + + ```bash + bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp) + ``` + +3. Follow the installation prompts + - **Domain name**: Enter the IP address or domain name for your NocoDB instance. + - **SSL configuration**: If you entered a valid domain name, you'll be asked if you want to configure SSL. + - **Advanced options**: You can choose to show advanced options or use default settings. + +4. Advanced options (if chosen): + - Choose between community (CE) or enterprise edition (EE) + - Enter license key (for EE) + - Enable/disable Redis for caching + - Enable/disable Minio for file storage + - Configure Minio domain and SSL + - Enable/disable Watchtower for automatic updates + - Set the number of NocoDB instances to run + +5. Wait for installation to complete - takes about 2-5 minutes. + Once done, you'll see a success message with the URL to access your NocoDB instance. + +6. Access NocoDB + Open the URL provided in your browser to access NocoDB. + +7. Congratulations! You should now have a working installation of NocoDB. Enjoy using your new no-code database platform! + + +## Installation management menu + +After installation, you'll be asked if you want to start the management menu. This menu allows you to: + +- Start NocoDB +- Stop NocoDB +- View logs +- Restart NocoDB +- Upgrade NocoDB +- Scale NocoDB (change the number of running instances) +- Monitor NocoDB (view Docker stats) + +## Additional Notes + +- The script creates an update.sh file in the installation directory. You can use this to update NocoDB in the future. +- If you encounter any issues during installation, check the logs for error messages. \ No newline at end of file diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.easy-install.md b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.easy-install.md deleted file mode 100644 index bddcca018f..0000000000 --- a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.easy-install.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: 'One-Click Install' -description: 'One-click installation' -tags: ['Open Source'] -keywords : ['NocoDB installation', 'NocoDB one click installation', 'NocoDB prerequisites'] ---- - -# One-Click Install - -The One-Click install command is the easiest way to get NocoDB up and running. This method is recommended for users who want to quickly deploy NocoDB without any hassle. - -It will automatically install NocoDB, PostgreSQL database, Redis, and Minio for file storage and even setup a reverse proxy and ssl certificate for you using traefik. - -## Prerequisites -- A Linux-based system (Ubuntu, Debian, CentOS, etc.) - -## Installation Steps - -1. Run the following command in your terminal: - - ```bash - bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp) - ``` - -2. Follow the Installation Prompts - - Domain Name: Enter the IP address or domain name for your NocoDB instance. - - SSL Configuration: If you entered a valid domain name, you'll be asked if you want to configure SSL. - - Advanced Options: You can choose to show advanced options or use default settings. - -3. Advanced Options (if chosen): - - Choose between Community (CE) or Enterprise Edition (EE) - - Enter license key (for EE) - - Enable/disable Redis for caching - - Enable/disable Minio for file storage - - Configure Minio domain and SSL - - Enable/disable Watchtower for automatic updates - - Set the number of NocoDB instances to run - -4. Wait for Installation to Complete - The installation process may take a few minutes to complete. Once done, you'll see a success message with the URL to access your NocoDB instance. - -5. Access NocoDB - Open the URL provided in your browser to access NocoDB. -6. Congratulations! You should now have a working installation of NocoDB. Enjoy using your new no-code database platform! - - -## Management Menu - -After installation, you'll be asked if you want to start the management menu. This menu allows you to: - -- Start NocoDB -- Stop NocoDB -- View logs -- Restart NocoDB -- Upgrade NocoDB -- Scale NocoDB (change the number of running instances) -- Monitor NocoDB (view Docker stats) - -## Additional Notes - -- The script creates an update.sh file in the installation directory. You can use this to update NocoDB in the future. -- If you encounter any issues during installation, check the logs for error messages. \ No newline at end of file diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/050.executable-installation.md b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/050.executable-installation.md deleted file mode 100644 index e4feddb0b5..0000000000 --- a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/050.executable-installation.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: 'Executables' -description: 'Executable installation' -tags: ['Open Source'] -keywords : ['NocoDB installation', 'NocoDB executable installation', 'NocoDB prerequisites'] ---- - -# Installing NocoDB using Executables - -NocoDB provides pre-built executables for various platforms, allowing you to run NocoDB without any additional dependencies. - - -## Downloading and Running NocoDB - -Choose the appropriate command based on your operating system and architecture: - - - - -```bash -curl http://get.nocodb.com/macos-x64 -o nocodb -L \ - && chmod +x nocodb \ - && ./nocodb -``` - - - - - -```bash -curl http://get.nocodb.com/macos-arm64 -o nocodb -L \ - && chmod +x nocodb \ - && ./nocodb -``` - - - - -```bash -curl http://get.nocodb.com/linux-x64 -o nocodb -L \ - && chmod +x nocodb \ - && ./nocodb -``` - - - - -```bash -curl http://get.nocodb.com/linux-arm64 -o nocodb -L \ - && chmod +x nocodb \ - && ./nocodb -``` - - - - -```bash -iwr http://get.nocodb.com/win-x64.exe -OutFile "Noco-win-x64.exe" -.\Noco-win-x64.exe -``` - - - - -```bash -iwr http://get.nocodb.com/win-arm64.exe -OutFile "Noco-win-arm64.exe" -.\Noco-win-arm64.exe -``` - - - - - -## Accessing NocoDB - -Once you run the executable, you can access NocoDB in your browser by visiting `http://localhost:8080`. - -## Important Notes - -- The executables are self-contained and don't require any additional installation steps. -- By default, NocoDB will use SQLite as the database, storing data in the same directory as the executable. -- To use a different database or configure other options, you can set environment variables before running the executable. - -## Troubleshooting - -- If you see a security warning on macOS, you may need to allow the executable in System Preferences > Security & Privacy. -- On Windows, if SmartScreen prevents the execution, you can choose "More info" and then "Run anyway". -- Make sure port 8080 is not in use by another application. \ No newline at end of file diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/060.node-js.md b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/060.node-js.md deleted file mode 100644 index 0c6238fa67..0000000000 --- a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/060.node-js.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: 'NodeJS' -description: 'Installation using NodeJS' -tags: ['Open Source'] -keywords : ['NocoDB installation', 'NocoDB nodejs Installation', 'NocoDB prerequisites'] ---- - -# Installing NocoDB using Node.js - -This method allows you to run NocoDB as a Node.js application, which is useful for development purposes or if you want to customize the setup. - -## Prerequisites -- [Node.js (v18.x)](https://nodejs.org/en/download/) - -## Installation Steps - -1. Clone the NocoDB seed repository: - - ```bash - git clone https://github.com/nocodb/nocodb-seed - ``` -2. Navigate to the project directory: - - ```bash - cd nocodb-seed - ``` -3. Install the dependencies: - - ```bash - npm install - ``` -4. Start NocoDB: - - ```bash - npm start - ``` -5. Access NocoDB in your browser by visiting `http://localhost:8080`. - -## Updating NocoDB - -Updating NocoDB is similar to updating a npm package. - -1. Unitall the existing NocoDB package: - - ```bash - npm uninstall nocodb - ``` -2. Install the latest version of NocoDB: - - ```bash - npm install --save nocodb - ``` -3. Start NocoDB: - - ```bash - npm start - ``` -4. Access latest NocoDB in your browser by visiting `http://localhost:8080`. - -## Troubleshooting - -- If you encounter errors during npm install, make sure you're using a compatible Node.js version. -- If NocoDB doesn't start, check the console output for any error messages. -- If the application fails to start, check if port 8080 is already in use. -- For database connection issues, verify your database credentials and connection string. - - -## Code Sandbox Example - - diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/100.other-installations.md b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/100.other-installations.md index a88712eb25..a430e915a1 100644 --- a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/100.other-installations.md +++ b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/100.other-installations.md @@ -91,7 +91,4 @@ For detailed instructions on installing NocoDB on FreeBSD, FreeNAS, or TrueNAS J 2. Follow the on-screen instructions to configure and deploy your NocoDB instance. -## Using NPX - - From 9c17d5a6733e97bf5472494daf586e870de884e9 Mon Sep 17 00:00:00 2001 From: Naveen MR Date: Tue, 3 Sep 2024 20:31:51 +0100 Subject: [PATCH 05/20] update : refactor auto-upstall and installation methods --- README.md | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index e2eddca45e..050be5a91a 100644 --- a/README.md +++ b/README.md @@ -76,18 +76,17 @@ Auto-upstall is a single command that : 🕊 > install.nocodb.com/noco.sh script can be found [here in our github](https://raw.githubusercontent.com/nocodb/nocodb/develop/docker-compose/setup-script/noco.sh) ## Installation Methods - -| Install Method | Command to install | Comments | -|------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------| -| 🚀 Auto Upstall
     or
    1-cmd setup | `bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp)` | install.nocodb.com/noco.sh script [is here in our github](https://raw.githubusercontent.com/nocodb/nocodb/develop/docker-compose/setup-script/noco.sh) | -| 🐳 Docker (with SQLite) | `docker run -d --name nocodb \`
   `-v ""$(pwd)"":/nocodb:/usr/app/data/ \`
   `-p 8080:8080 \`
   `nocodb/nocodb:latest` | Placeholder text | -| 🐳 Docker (with Postgres 🐘) | `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` | Please point NC_DB to a fresh postgres database. | -| 🍏 MacOS arm64 (Binary) | `curl http://get.nocodb.com/macos-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb` | Only for quick trial. Not recommended for production. | -| 🍏 MacOS x64 (Binary) | `curl http://get.nocodb.com/macos-x64 -o nocodb -L && chmod +x nocodb && ./nocodb` | Only for quick trial. Not recommended for production. | -| 🐧 Linux arm64 (Binary) | `curl http://get.nocodb.com/linux-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb` | Only for quick trial. Not recommended for production. | -| 🐧 Linux x64 (Binary) | `curl http://get.nocodb.com/linux-x64 -o nocodb -L && chmod +x nocodb && ./nocodb` | Only for quick trial. Not recommended for production. | -| 🪟 Windows arm64 (Binary) | `iwr http://get.nocodb.com/win-arm64.exe -o Noco-win-arm64.exe && .\Noco-win-arm64.exe` | Only for quick trial. Not recommended for production. | -| 🪟 Windows x64 (Binary) | `iwr http://get.nocodb.com/win-x64.exe -o Noco-win-x64.exe && .\Noco-win-x64.exe` | Only for quick trial. Not recommended for production. | +| Install Method | Command to install | +|------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| 🚀 Auto Upstall | `bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp)` | +| 🐳 Docker (with SQLite) | `docker run -d --name nocodb \`
   `-v ""$(pwd)"":/nocodb:/usr/app/data/ \`
   `-p 8080:8080 \`
   `nocodb/nocodb:latest` | +| 🐳 Docker (with Postgres 🐘) | `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` | +| 🍏 MacOS arm64 (Binary) | `curl http://get.nocodb.com/macos-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb` | +| 🍏 MacOS x64 (Binary) | `curl http://get.nocodb.com/macos-x64 -o nocodb -L && chmod +x nocodb && ./nocodb` | +| 🐧 Linux arm64 (Binary) | `curl http://get.nocodb.com/linux-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb` | +| 🐧 Linux x64 (Binary) | `curl http://get.nocodb.com/linux-x64 -o nocodb -L && chmod +x nocodb && ./nocodb` | +| 🪟 Windows arm64 (Binary) | `iwr http://get.nocodb.com/win-arm64.exe -o Noco-win-arm64.exe && .\Noco-win-arm64.exe` | +| 🪟 Windows x64 (Binary) | `iwr http://get.nocodb.com/win-x64.exe -o Noco-win-x64.exe && .\Noco-win-x64.exe` | > When running locally access nocodb by visiting: [http://localhost:8080/dashboard](http://localhost:8080/dashboard) From 90043d37460342992126b3230a0c564e1c5dffc8 Mon Sep 17 00:00:00 2001 From: Naveen MR Date: Tue, 3 Sep 2024 20:32:30 +0100 Subject: [PATCH 06/20] update : refactor auto-upstall and installation methods --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 050be5a91a..53d0d267c0 100644 --- a/README.md +++ b/README.md @@ -79,14 +79,14 @@ Auto-upstall is a single command that : 🕊 | Install Method | Command to install | |------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 🚀 Auto Upstall | `bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp)` | -| 🐳 Docker (with SQLite) | `docker run -d --name nocodb \`
   `-v ""$(pwd)"":/nocodb:/usr/app/data/ \`
   `-p 8080:8080 \`
   `nocodb/nocodb:latest` | -| 🐳 Docker (with Postgres 🐘) | `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` | -| 🍏 MacOS arm64 (Binary) | `curl http://get.nocodb.com/macos-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb` | -| 🍏 MacOS x64 (Binary) | `curl http://get.nocodb.com/macos-x64 -o nocodb -L && chmod +x nocodb && ./nocodb` | -| 🐧 Linux arm64 (Binary) | `curl http://get.nocodb.com/linux-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb` | -| 🐧 Linux x64 (Binary) | `curl http://get.nocodb.com/linux-x64 -o nocodb -L && chmod +x nocodb && ./nocodb` | -| 🪟 Windows arm64 (Binary) | `iwr http://get.nocodb.com/win-arm64.exe -o Noco-win-arm64.exe && .\Noco-win-arm64.exe` | -| 🪟 Windows x64 (Binary) | `iwr http://get.nocodb.com/win-x64.exe -o Noco-win-x64.exe && .\Noco-win-x64.exe` | +| 🐳 Docker
(with SQLite) | `docker run -d --name nocodb \`
   `-v ""$(pwd)"":/nocodb:/usr/app/data/ \`
   `-p 8080:8080 \`
   `nocodb/nocodb:latest` | +| 🐳 Docker
(with Postgres 🐘) | `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` | +| 🍏 MacOS arm64
(Binary) | `curl http://get.nocodb.com/macos-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb` | +| 🍏 MacOS x64
(Binary) | `curl http://get.nocodb.com/macos-x64 -o nocodb -L && chmod +x nocodb && ./nocodb` | +| 🐧 Linux arm64
(Binary) | `curl http://get.nocodb.com/linux-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb` | +| 🐧 Linux x64
(Binary) | `curl http://get.nocodb.com/linux-x64 -o nocodb -L && chmod +x nocodb && ./nocodb` | +| 🪟 Windows arm64
(Binary) | `iwr http://get.nocodb.com/win-arm64.exe -o Noco-win-arm64.exe && .\Noco-win-arm64.exe` | +| 🪟 Windows x64
(Binary) | `iwr http://get.nocodb.com/win-x64.exe -o Noco-win-x64.exe && .\Noco-win-x64.exe` | > When running locally access nocodb by visiting: [http://localhost:8080/dashboard](http://localhost:8080/dashboard) From dfdf4b92cc98b3ca48a0b8972f8edee45e0a9c95 Mon Sep 17 00:00:00 2001 From: Naveen MR Date: Tue, 3 Sep 2024 20:34:14 +0100 Subject: [PATCH 07/20] update : refactor auto-upstall and installation methods --- README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 53d0d267c0..2e8f92a81f 100644 --- a/README.md +++ b/README.md @@ -76,17 +76,17 @@ Auto-upstall is a single command that : 🕊 > install.nocodb.com/noco.sh script can be found [here in our github](https://raw.githubusercontent.com/nocodb/nocodb/develop/docker-compose/setup-script/noco.sh) ## Installation Methods -| Install Method | Command to install | -|------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 🚀 Auto Upstall | `bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp)` | -| 🐳 Docker
(with SQLite) | `docker run -d --name nocodb \`
   `-v ""$(pwd)"":/nocodb:/usr/app/data/ \`
   `-p 8080:8080 \`
   `nocodb/nocodb:latest` | -| 🐳 Docker
(with Postgres 🐘) | `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` | -| 🍏 MacOS arm64
(Binary) | `curl http://get.nocodb.com/macos-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb` | -| 🍏 MacOS x64
(Binary) | `curl http://get.nocodb.com/macos-x64 -o nocodb -L && chmod +x nocodb && ./nocodb` | -| 🐧 Linux arm64
(Binary) | `curl http://get.nocodb.com/linux-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb` | -| 🐧 Linux x64
(Binary) | `curl http://get.nocodb.com/linux-x64 -o nocodb -L && chmod +x nocodb && ./nocodb` | -| 🪟 Windows arm64
(Binary) | `iwr http://get.nocodb.com/win-arm64.exe -o Noco-win-arm64.exe && .\Noco-win-arm64.exe` | -| 🪟 Windows x64
(Binary) | `iwr http://get.nocodb.com/win-x64.exe -o Noco-win-x64.exe && .\Noco-win-x64.exe` | +| Install Method | Command to install | +|-------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +|
🚀 Auto Upstall
|
`bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp)`
| +| 🐳 Docker
(with SQLite) | `docker run -d --name nocodb \`
   `-v ""$(pwd)"":/nocodb:/usr/app/data/ \`
   `-p 8080:8080 \`
   `nocodb/nocodb:latest` | +| 🐳 Docker
(with PG 🐘) | `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` | +| 🍏 MacOS arm64
(Binary) | `curl http://get.nocodb.com/macos-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb` | +| 🍏 MacOS x64
(Binary) | `curl http://get.nocodb.com/macos-x64 -o nocodb -L && chmod +x nocodb && ./nocodb` | +| 🐧 Linux arm64
(Binary) | `curl http://get.nocodb.com/linux-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb` | +| 🐧 Linux x64
(Binary) | `curl http://get.nocodb.com/linux-x64 -o nocodb -L && chmod +x nocodb && ./nocodb` | +| 🪟 Windows arm64
(Binary) | `iwr http://get.nocodb.com/win-arm64.exe -o Noco-win-arm64.exe && .\Noco-win-arm64.exe` | +| 🪟 Windows x64
(Binary) | `iwr http://get.nocodb.com/win-x64.exe -o Noco-win-x64.exe && .\Noco-win-x64.exe` | > When running locally access nocodb by visiting: [http://localhost:8080/dashboard](http://localhost:8080/dashboard) From b48eb648a4501551a714d9aca266dd8993d7181d Mon Sep 17 00:00:00 2001 From: Naveen MR Date: Tue, 3 Sep 2024 20:40:03 +0100 Subject: [PATCH 08/20] update : refactor auto-upstall and installation methods --- README.md | 52 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 2e8f92a81f..02ebfd0ed3 100644 --- a/README.md +++ b/README.md @@ -54,33 +54,40 @@ Auto-upstall is the fastest and easiest way to self-host NocoDB on a server. Beh bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp) ``` -Follow the simple steps below & enjoy the seamless installation. - -- Step 1. 🔐 SSH into your server. -- Step 2. 🚀 Run the below command & follow instructions : - ```bash - bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp) - ``` -- Step 3. 🌐 Open your browser and go to URL - - For 🌍 HTTP: `http://` - - For 🔒 HTTPS: `https://` -- Step 4. 🐦 Don't keep the command a secret. Tweet how easy it is. This step is a must! - -### Notes -Auto-upstall is a single command that : 🕊 -- 🐳 Automatically installs all pre-requisites like docker, docker-compose +#### Notes +Auto-upstall is a single command that : 🕊 +- 🐳 Automatically installs all pre-requisites like docker, docker-compose - 🚀 Automatically installs NocoDB with PostgreSQL, Redis, Minio, Traefik gateway using Docker Compose. 🐘 🗄️ 🌐 -- 🔄 Automatically upgrades NocoDB to the latest version when you run the command again. +- 🔄 Automatically upgrades NocoDB to the latest version when you run the command again. - 🔒 Automatically setups SSL and also renews it. Needs a domain or subdomain as input while installation. - > install.nocodb.com/noco.sh script can be found [here in our github](https://raw.githubusercontent.com/nocodb/nocodb/develop/docker-compose/setup-script/noco.sh) -## Installation Methods +## Docker with SQLite + +```bash +docker run -d --name nocodb + -v "$(pwd)"/nocodb:/usr/app/data/ + -p 8080:8080 + nocodb/nocodb:latest +``` + +## Docker with PG +```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 +``` + + +## Other Methods + +> Binaries are only for quick testing locally. + | Install Method | Command to install | |-------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -|
🚀 Auto Upstall
|
`bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp)`
| -| 🐳 Docker
(with SQLite) | `docker run -d --name nocodb \`
   `-v ""$(pwd)"":/nocodb:/usr/app/data/ \`
   `-p 8080:8080 \`
   `nocodb/nocodb:latest` | -| 🐳 Docker
(with PG 🐘) | `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` | | 🍏 MacOS arm64
(Binary) | `curl http://get.nocodb.com/macos-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb` | | 🍏 MacOS x64
(Binary) | `curl http://get.nocodb.com/macos-x64 -o nocodb -L && chmod +x nocodb && ./nocodb` | | 🐧 Linux arm64
(Binary) | `curl http://get.nocodb.com/linux-arm64 -o nocodb -L && chmod +x nocodb && ./nocodb` | @@ -112,7 +119,8 @@ Auto-upstall is a single command that : 🕊 - [Quick try](#quick-try) - [Installation](#installation) - [Auto-Upstall or 1-Command Setup](#auto-upstall) - - [Installation Methods](#installation-methods) + - [Docker with SQLite](#docker-with-sqlite) + - [Docker with PG](#docker-with-pg) - [Join Our Community](#join-our-community) - [Screenshots](#screenshots) - [Table of Contents](#table-of-contents) From 2c2b013792ac81c3011298c9a10aa080431b1475 Mon Sep 17 00:00:00 2001 From: Naveen MR Date: Tue, 3 Sep 2024 20:41:05 +0100 Subject: [PATCH 09/20] update : refactor auto-upstall and installation methods --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 02ebfd0ed3..ca7cbcfe3b 100644 --- a/README.md +++ b/README.md @@ -76,8 +76,8 @@ docker run -d --name nocodb 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" + -e NC_DB="pg://host.docker.internal:5432?u=root&p=password&d=d1" # replace with your pg connection string + -e NC_AUTH_JWT_SECRET="569a1821-0a93-45e8-87ab-eb857f20a010" # replace with a random secret nocodb/nocodb:latest ``` From daea90a0da8254dbf7986975b4505ecfda37aa56 Mon Sep 17 00:00:00 2001 From: Naveen MR Date: Tue, 3 Sep 2024 20:42:59 +0100 Subject: [PATCH 10/20] update : refactor auto-upstall and installation methods --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index ca7cbcfe3b..ed6f535031 100644 --- a/README.md +++ b/README.md @@ -44,24 +44,24 @@ Turns any MySQL, PostgreSQL, SQL Server, SQLite & MariaDB into a smart spreadshe # Installation - -Else you can always rely on Docker or Binaries if you are trying locally. -## Auto-upstall -Auto-upstall is the fastest and easiest way to self-host NocoDB on a server. Behind the scenes it auto-generates docker-compose for you. +## Auto-upstall +Auto-upstall is a single command that sets up NocoDB on a server for production usage. +Behind the scenes it auto-generates docker-compose for you. ```bash bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp) ``` #### Notes -Auto-upstall is a single command that : 🕊 +Auto-upstall does the following : 🕊 - 🐳 Automatically installs all pre-requisites like docker, docker-compose - 🚀 Automatically installs NocoDB with PostgreSQL, Redis, Minio, Traefik gateway using Docker Compose. 🐘 🗄️ 🌐 - 🔄 Automatically upgrades NocoDB to the latest version when you run the command again. - 🔒 Automatically setups SSL and also renews it. Needs a domain or subdomain as input while installation. > install.nocodb.com/noco.sh script can be found [here in our github](https://raw.githubusercontent.com/nocodb/nocodb/develop/docker-compose/setup-script/noco.sh) + ## Docker with SQLite ```bash From 169ee9dfd8ba45733ca404edda7a4d1f89e5cf68 Mon Sep 17 00:00:00 2001 From: Naveen MR Date: Tue, 3 Sep 2024 20:44:36 +0100 Subject: [PATCH 11/20] update : refactor auto-upstall and installation methods --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ed6f535031..f422cc4521 100644 --- a/README.md +++ b/README.md @@ -76,8 +76,10 @@ docker run -d --name nocodb 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" # replace with your pg connection string - -e NC_AUTH_JWT_SECRET="569a1821-0a93-45e8-87ab-eb857f20a010" # replace with a random secret + # replace with your pg connection string + -e NC_DB="pg://host.docker.internal:5432?u=root&p=password&d=d1" + # replace with a random secret + -e NC_AUTH_JWT_SECRET="569a1821-0a93-45e8-87ab-eb857f20a010" nocodb/nocodb:latest ``` From c779e077aeb9f9d6530007087a5cc3487861d87e Mon Sep 17 00:00:00 2001 From: Naveen MR Date: Tue, 3 Sep 2024 20:45:18 +0100 Subject: [PATCH 12/20] update : refactor auto-upstall and installation methods --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f422cc4521..5cee06f7ba 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ Auto-upstall does the following : 🕊 ## Docker with SQLite ```bash -docker run -d --name nocodb +docker run -d --name noco -v "$(pwd)"/nocodb:/usr/app/data/ -p 8080:8080 nocodb/nocodb:latest @@ -73,7 +73,7 @@ docker run -d --name nocodb ## Docker with PG ```bash -docker run -d --name nocodb-postgres +docker run -d --name noco -v "${pwd}"/nocodb:/usr/app/data/ -p 8080:8080 # replace with your pg connection string From 56776294d7fb15c03c16924e44c562134e7035f5 Mon Sep 17 00:00:00 2001 From: Naveen MR Date: Tue, 3 Sep 2024 20:46:26 +0100 Subject: [PATCH 13/20] update : refactor auto-upstall and installation methods --- README.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 5cee06f7ba..8b5c8160f8 100644 --- a/README.md +++ b/README.md @@ -45,22 +45,6 @@ Turns any MySQL, PostgreSQL, SQL Server, SQLite & MariaDB into a smart spreadshe # Installation -## Auto-upstall -Auto-upstall is a single command that sets up NocoDB on a server for production usage. -Behind the scenes it auto-generates docker-compose for you. - -```bash -bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp) -``` - -#### Notes -Auto-upstall does the following : 🕊 -- 🐳 Automatically installs all pre-requisites like docker, docker-compose -- 🚀 Automatically installs NocoDB with PostgreSQL, Redis, Minio, Traefik gateway using Docker Compose. 🐘 🗄️ 🌐 -- 🔄 Automatically upgrades NocoDB to the latest version when you run the command again. -- 🔒 Automatically setups SSL and also renews it. Needs a domain or subdomain as input while installation. -> install.nocodb.com/noco.sh script can be found [here in our github](https://raw.githubusercontent.com/nocodb/nocodb/develop/docker-compose/setup-script/noco.sh) - ## Docker with SQLite @@ -83,6 +67,22 @@ docker run -d --name noco nocodb/nocodb:latest ``` +## Auto-upstall +Auto-upstall is a single command that sets up NocoDB on a server for production usage. +Behind the scenes it auto-generates docker-compose for you. + +```bash +bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp) +``` + +Auto-upstall does the following : 🕊 +- 🐳 Automatically installs all pre-requisites like docker, docker-compose +- 🚀 Automatically installs NocoDB with PostgreSQL, Redis, Minio, Traefik gateway using Docker Compose. 🐘 🗄️ 🌐 +- 🔄 Automatically upgrades NocoDB to the latest version when you run the command again. +- 🔒 Automatically setups SSL and also renews it. Needs a domain or subdomain as input while installation. +> install.nocodb.com/noco.sh script can be found [here in our github](https://raw.githubusercontent.com/nocodb/nocodb/develop/docker-compose/setup-script/noco.sh) + + ## Other Methods From d1e37114467221ab921255bdb03aa55146bd580f Mon Sep 17 00:00:00 2001 From: Naveen MR Date: Tue, 3 Sep 2024 20:52:41 +0100 Subject: [PATCH 14/20] update : refactor auto-upstall and installation methods --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index 8b5c8160f8..8063b9ca50 100644 --- a/README.md +++ b/README.md @@ -199,9 +199,6 @@ Our mission is to provide the most powerful no-code interface for databases that This project is licensed under AGPLv3.

-# Join Our Team - -

# Join Our Community From 84bf15b795b014a7a46fa662f49079467e0e6fbc Mon Sep 17 00:00:00 2001 From: Naveen MR Date: Tue, 3 Sep 2024 20:54:09 +0100 Subject: [PATCH 15/20] update : refactor auto-upstall and installation methods --- README.md | 2 +- packages/nocodb/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8063b9ca50..de014cc767 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@

-Turns any MySQL, PostgreSQL, SQL Server, SQLite & MariaDB into a smart spreadsheet. +NocoDB is the fastest and easiest way to build online databases for business users.

diff --git a/packages/nocodb/README.md b/packages/nocodb/README.md index ac12480b84..ef938065bf 100644 --- a/packages/nocodb/README.md +++ b/packages/nocodb/README.md @@ -10,7 +10,7 @@

-Turns any MySQL, PostgreSQL, SQL Server, SQLite & MariaDB into a smart spreadsheet. +NocoDB is the fastest and easiest way to build online databases for business users.

From d3c8e9ec7eb19aff3124914dc7888d0c2197d200 Mon Sep 17 00:00:00 2001 From: Naveen MR Date: Tue, 3 Sep 2024 20:55:28 +0100 Subject: [PATCH 16/20] update : refactor auto-upstall and installation methods --- README.md | 2 +- packages/nocodb/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index de014cc767..53959560c7 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@

-NocoDB is the fastest and easiest way to build online databases for business users. +NocoDB is the fastest and easiest way to build databases online.

diff --git a/packages/nocodb/README.md b/packages/nocodb/README.md index ef938065bf..7285cb7c94 100644 --- a/packages/nocodb/README.md +++ b/packages/nocodb/README.md @@ -10,7 +10,7 @@

-NocoDB is the fastest and easiest way to build online databases for business users. +NocoDB is the fastest and easiest way to build databases online.

From 5c284f6e0e4acd7b5723c0a6161e1eda3de4dba1 Mon Sep 17 00:00:00 2001 From: Naveen MR Date: Tue, 3 Sep 2024 20:59:11 +0100 Subject: [PATCH 17/20] update : refactor auto-upstall and installation methods --- README.md | 54 +++++++++--------------------------------------------- 1 file changed, 9 insertions(+), 45 deletions(-) diff --git a/README.md b/README.md index 53959560c7..74576b8672 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,15 @@ NocoDB is the fastest and easiest way to build databases online. +# Join Our Community + + + + + +[![Stargazers repo roster for @nocodb/nocodb](http://reporoster.com/stars/nocodb/nocodb)](https://github.com/nocodb/nocodb/stargazers) + + # Installation @@ -116,31 +125,6 @@ Auto-upstall does the following : 🕊 ![11](https://user-images.githubusercontent.com/35857179/194844903-c1e47f40-e782-4f5d-8dce-6449cc70b181.png) ![12](https://user-images.githubusercontent.com/35857179/194844907-09277d3e-cbbf-465c-9165-6afc4161e279.png) -# Table of Contents - -- [Quick try](#quick-try) -- [Installation](#installation) - - [Auto-Upstall or 1-Command Setup](#auto-upstall) - - [Docker with SQLite](#docker-with-sqlite) - - [Docker with PG](#docker-with-pg) -- [Join Our Community](#join-our-community) -- [Screenshots](#screenshots) -- [Table of Contents](#table-of-contents) -- [Features](#features) - - [Rich Spreadsheet Interface](#rich-spreadsheet-interface) - - [App Store for Workflow Automations](#app-store-for-workflow-automations) - - [Programmatic Access](#programmatic-access) - - [Sync Schema](#sync-schema) - - [Audit](#audit) -- [Production Setup](#production-setup) - - [Environment variables](#environment-variables) -- [Development Setup](#development-setup) -- [Contributing](#contributing) -- [Why are we building this?](#why-are-we-building-this) -- [Our Mission](#our-mission) -- [License](#license) -- [Contributors](#contributors) - # Features ### Rich Spreadsheet Interface @@ -169,18 +153,6 @@ We provide the following ways to let users programmatically invoke actions. You - ⚡  REST APIs - ⚡  NocoDB SDK -### Sync Schema - -We allow you to sync schema changes if you have made changes outside NocoDB GUI. However, it has to be noted then you will have to bring your own schema migrations for moving from one environment to another. See Sync Schema for details. - -### Audit - -We are keeping all the user operation logs in one place. See Audit for details. - -## Environment variables - -Please refer to the [Environment variables](https://docs.nocodb.com/getting-started/self-hosted/environment-variables) - # Contributing Please refer to [Contribution Guide](https://github.com/nocodb/nocodb/blob/master/.github/CONTRIBUTING.md). @@ -200,14 +172,6 @@ This project is licensed under AGPLv3.

-# Join Our Community - - - - - -[![Stargazers repo roster for @nocodb/nocodb](http://reporoster.com/stars/nocodb/nocodb)](https://github.com/nocodb/nocodb/stargazers) - # Contributors From 1b92bd1975397017237ddc4d98d5caec81323771 Mon Sep 17 00:00:00 2001 From: DarkPhoenix2704 Date: Wed, 4 Sep 2024 10:02:21 +0530 Subject: [PATCH 18/20] fix: broken links --- packages/noco-docs/docs/020.getting-started/020.quick-start.md | 2 +- .../docs/020.getting-started/050.self-hosted/030.upgrading.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/noco-docs/docs/020.getting-started/020.quick-start.md b/packages/noco-docs/docs/020.getting-started/020.quick-start.md index b37931936d..792723088a 100644 --- a/packages/noco-docs/docs/020.getting-started/020.quick-start.md +++ b/packages/noco-docs/docs/020.getting-started/020.quick-start.md @@ -16,7 +16,7 @@ When you opt for self-hosting, you gain the advantage of running an application Setting up NocoDB on your own server is a straightforward process & the articles below will guide you through the steps to get started. -- [Installation](/getting-started/self-hosted/installation) +- [Installation](/getting-started/self-hosted/installation/auto-install) - [Environment Variables](/getting-started/self-hosted/environment-variables) - [Upgrading](/getting-started/self-hosted/upgrading) diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/030.upgrading.md b/packages/noco-docs/docs/020.getting-started/050.self-hosted/030.upgrading.md index 919c17a8f0..877fa659fc 100644 --- a/packages/noco-docs/docs/020.getting-started/050.self-hosted/030.upgrading.md +++ b/packages/noco-docs/docs/020.getting-started/050.self-hosted/030.upgrading.md @@ -5,7 +5,7 @@ tags: ['Open Source'] keywords: ['NocoDB upgrade', 'upgrade NocoDB', 'upgrade nocodb'] --- -By default, if `NC_DB` is not specified upon [installation](/getting-started/self-hosted/installation), then SQLite will be used to store metadata. We suggest users to separate the metadata and user data in different databases as pictured in our [architecture](/engineering/architecture). +By default, if `NC_DB` is not specified upon [installation](/getting-started/self-hosted/installation/auto-install), then SQLite will be used to store metadata. We suggest users to separate the metadata and user data in different databases as pictured in our [architecture](/engineering/architecture). ## Docker From ca8e8156ece9bc1c8bb9aa7a4fa6d26e90aa5c9a Mon Sep 17 00:00:00 2001 From: Anbarasu Date: Wed, 4 Sep 2024 10:03:54 +0530 Subject: [PATCH 19/20] Update packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.auto-install.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- .../050.self-hosted/010.installation/010.auto-install.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.auto-install.md b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.auto-install.md index 6d427239e0..35f5cd4ac4 100644 --- a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.auto-install.md +++ b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.auto-install.md @@ -14,7 +14,7 @@ keywords : ['NocoDB installation', 'NocoDB one command installation', 'NocoDB pr bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp) ``` -Above command is the fastest and easiest way to self-host NocoDB on a server. It auto-generates a docker-compose for you behind the scenes. +The above command is the fastest and easiest way to self-host NocoDB on a server. It auto-generates a docker-compose for you behind the scenes. ## Notes on Auto-Upstall Auto-upstall is a single command that : 🕊 From 03c9d14285f9873f6a3f03bcc6a82d4771e42535 Mon Sep 17 00:00:00 2001 From: Anbarasu Date: Wed, 4 Sep 2024 10:06:33 +0530 Subject: [PATCH 20/20] Update packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.auto-install.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- .../050.self-hosted/010.installation/010.auto-install.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.auto-install.md b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.auto-install.md index 35f5cd4ac4..8240d785c3 100644 --- a/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.auto-install.md +++ b/packages/noco-docs/docs/020.getting-started/050.self-hosted/010.installation/010.auto-install.md @@ -33,7 +33,7 @@ Auto-upstall is a single command that : 🕊 This is quick walkthrough of how to install NocoDB using auto-upstall script. -- **Step 1** : 🔐 SSH into your server (linux-based system - Ubuntu, Debian, CentOS etc) +- **Step 1** : 🔐 SSH into your server (Linux-based system - Ubuntu, Debian, CentOS etc.) - **Step 2** : 🚀 Run the below command : ```bash bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp)