diff --git a/content/docs/fields/field-summary-footer.mdx b/content/docs/fields/field-summary-footer.mdx
index 51516ca5..1729f84d 100644
--- a/content/docs/fields/field-summary-footer.mdx
+++ b/content/docs/fields/field-summary-footer.mdx
@@ -8,7 +8,7 @@ keywords : ['NocoDB field summary', 'field summary bar', 'field summary in nocoD
The "Field Summary" provides quick calculations for chosen fields displayed in the footer of a table's grid view. These calculations offer quick insights into your data, such as total sums, averages, minimum, and maximum values. This section explains how to use & configure field summary to accurately compute these values.
-
+
## Overview
diff --git a/content/docs/fields/field-types/custom-types/button.mdx b/content/docs/fields/field-types/custom-types/button.mdx
index 5c20fb99..ec6345c7 100644
--- a/content/docs/fields/field-types/custom-types/button.mdx
+++ b/content/docs/fields/field-types/custom-types/button.mdx
@@ -12,7 +12,7 @@ NocoDB currently supports two types of actions for the Button Field:
2. **Run Webhook**: Trigger a webhook with the configured URL & custom payload. Payload can include data from the current record.
-
+
## Create a Button Field
diff --git a/content/docs/records/expand-record.mdx b/content/docs/records/expand-record.mdx
index a85c4372..8d40afd2 100644
--- a/content/docs/records/expand-record.mdx
+++ b/content/docs/records/expand-record.mdx
@@ -55,7 +55,7 @@ In an expanded form,
The Comments feature allows you to collaborate directly within records by leaving comments, making it easier to discuss and track changes. You can also receive [notifications](../collaboration/notifications) for updates, ensuring everyone stays informed in real time.
-
+
diff --git a/content/docs/views/view-types/form.mdx b/content/docs/views/view-types/form.mdx
index f59d9d2c..bc06640f 100644
--- a/content/docs/views/view-types/form.mdx
+++ b/content/docs/views/view-types/form.mdx
@@ -242,7 +242,7 @@ Example
Check out this video for a more detailed explanation with examples:
-
+
## Field "Show On Conditions"
diff --git a/content/self-hosting/apache.mdx b/content/self-hosting/apache.mdx
new file mode 100644
index 00000000..f84485d7
--- /dev/null
+++ b/content/self-hosting/apache.mdx
@@ -0,0 +1,94 @@
+---
+title: 'Behind Apache'
+icon: 'apache'
+description: 'Run NocoDB Behind Apache Proxy.'
+tags: ['nginx', 'proxy']
+keywords : ['NocoDB Apache', 'NocoDB Proxy']
+---
+import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
+
+## Prerequisites
+We assume you already have a Apache server running.
+
+## Step 1 - Run NocoDB
+
+
+
+```bash
+docker run \
+ -d \
+ --name nocodb \
+ --tmpfs /run:nodev,nosuid,exec,mode=0755 \
+ -v ./nocodb:/usr/app/data \
+ -e NC_AUTH_JWT_SECRET="your-super-secret-string" \
+ -e NC_PUBLIC_URL="__your_nocodb_domain__.com" \
+ -p 8080:8080 \
+ --restart unless-stopped \
+ -it nocodb/nocodb:latest
+```
+
+
+
+```yaml
+version: "3.9"
+services:
+ nocodb:
+ container_name: nocodb
+ image: nocodb/nocodb:latest
+ environment:
+ NC_AUTH_JWT_SECRET: 'your-super-secret-passs'
+ NC_PUBLIC_URL: '__your_nocodb_domain__.com'
+ ports:
+ - "8080:8080"
+ volumes:
+ - nocodb_data:/usr/app/data
+ tmpfs:
+ - /run:nodev,nosuid,exec,mode=0755
+volumes:
+ nocodb_data:
+```
+
+
+
+```bash
+nix run github:nocodb/nocodb/master
+```
+
+
+
+## Step 2 - Enable the required Apache modules
+
+The Apache config shown later needs the following modules enabled.
+
+```bash
+sudo a2enmod proxy headers proxy_http proxy_wstunnel rewrite
+sudo systemctl restart apache2
+```
+
+## Step 3 - Create the Apache config for NocoDB
+
+Create a new `nocodb.conf` in `/etc/apache2/sites-enabled/` like the following example
+
+> Make sure to replace any __nocodb_domain__ with you own domain
+
+```
+
+ProxyPreserveHost On
+
+# Replace with your domain
+ServerName __nocodb_domain__
+
+ProxyPass / http://localhost:8080/
+ProxyPassReverse / http://localhost:8080/
+
+
+
+```
+
+## Step 3 - Enable the apache site
+
+```bash
+sudo a2ensite nocodb.conf
+```
+
+> You should now be able to access NocoDB on your configured domain.
diff --git a/content/self-hosting/installation/aws-ecs.mdx b/content/self-hosting/aws-ecs.mdx
similarity index 98%
rename from content/self-hosting/installation/aws-ecs.mdx
rename to content/self-hosting/aws-ecs.mdx
index 1985cfe1..796db1f9 100644
--- a/content/self-hosting/installation/aws-ecs.mdx
+++ b/content/self-hosting/aws-ecs.mdx
@@ -1,5 +1,6 @@
---
-title: 'AWS ECS (Fargate)'
+title: 'Install on AWS'
+icon: 'aws'
tags: ['Open Source']
description: 'Deploy NocoDB on AWS ECS using Fargate'
keywords : ['NocoDB installation', 'NocoDB AWS Fargate installation', 'NocoDB prerequisites']
@@ -111,4 +112,4 @@ This guide will walk you through deploying NocoDB on Amazon ECS using Fargate.
- 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
+- You can customize the task definition and service configuration based on your requirements.
diff --git a/content/self-hosting/cloudron.mdx b/content/self-hosting/cloudron.mdx
new file mode 100644
index 00000000..3ee65c18
--- /dev/null
+++ b/content/self-hosting/cloudron.mdx
@@ -0,0 +1,46 @@
+---
+title: 'Install on Cloudron'
+icon: 'cloudron'
+tags: ['cloudron', 'docker']
+keywords: ['NocoDB Railway', 'Install NocoDB', 'NocoDB Docker']
+---
+
+[Cloudron](https://www.cloudron.io/) is a self-hosted platform that simplifies deploying and managing web applications. If you're using your own server and want to host **NocoDB** with auto-updates and domain management, Cloudron is a solid choice.
+
+## Prerequisites
+
+Before proceeding, ensure:
+
+* You have a working Cloudron instance set up on your server.
+* You’ve signed into the Cloudron App Store.
+* You’re comfortable using the command line and basic Cloudron CLI commands.
+
+## Deploying NocoDB on Cloudron
+
+1. Log into your Cloudron admin panel.
+
+2. Open the **App Store** from the main dashboard.
+
+ 
+
+3. In the search bar, type **NocoDB**.
+
+ 
+
+4. Select the **NocoDB** app and click **Install**.
+
+ 
+
+5. Configure the app’s domain, access settings, and environment variables as needed.
+
+ 
+
+6. After installation, go to the **My Apps** section and launch your new NocoDB instance.
+
+ 
+
+## Things to Keep in Mind
+
+* **System Requirements**: Make sure your Cloudron server has enough resources (at least 1 vCPU and 1 GB RAM for testing, 2 GB+ recommended for production).
+* **Backups**: Take advantage of Cloudron’s built-in backup options to safeguard your NocoDB data.
+* **Maintenance**: Regularly update both NocoDB and Cloudron to stay current with security patches and new features.
diff --git a/content/self-hosting/digital-ocean.mdx b/content/self-hosting/digital-ocean.mdx
new file mode 100644
index 00000000..de0afffa
--- /dev/null
+++ b/content/self-hosting/digital-ocean.mdx
@@ -0,0 +1,62 @@
+---
+title: 'Install on DigitalOcean'
+icon: 'digitalocean'
+tags: ['Open Source']
+keywords : ['NocoDB installation', 'NocoDB Digital Ocean installation', 'NocoDB prerequisites']
+---
+
+This guide outlines how to deploy **NocoDB** on [DigitalOcean App Platform](https://www.digitalocean.com/products/app-platform), a fully managed solution for container-based applications. It covers provisioning databases, object storage, and setting environment variables for a reliable, scalable setup.
+
+## Step 1: Set Up Required Services
+
+Since DigitalOcean App Platform doesn't support persistent volumes, NocoDB's data must be stored using **managed services**. You’ll need:
+
+* **PostgreSQL database**
+* **Redis instance**
+* **Spaces bucket (S3-compatible storage)**
+
+### PostgreSQL
+
+1. Go to **Databases → Create Database**.
+2. Choose **PostgreSQL v15** and a region.
+3. Use at least 1 vCPU / 1GB RAM for smaller workloads.
+4. Once created, go to the connection info and switch to the **Connection String** view—copy this for later.
+
+### Redis
+
+1. Go to **Databases → Create Database** again.
+2. Select **Redis v7**, same region.
+3. Minimum specs: 1 vCPU / 1GB RAM.
+4. Copy the Redis connection string from the details page.
+
+### Spaces (Object Storage)
+
+1. Go to **Spaces Object Storage → Create Spaces Bucket**.
+2. Choose the same region used for your DB/Redis.
+3. Then go to **API → Generate New Key** to get your `Access Key` and `Secret Key`.
+
+## Step 2: Deploy the NocoDB App
+
+1. Navigate to **Apps → Create App**.
+2. Choose **Docker Hub** as the source.
+3. Use `Repository: nocodb/nocodb` & `Tag: latest`
+4. Proceed and edit the **HTTP Port** to `8080`.
+5. Refer [Configuring NocoDB section](./configuring-nocodb#docker-image-configuration) to set environment variables
+6. Set resources to **1 container with 2GB RAM / 1 vCPU** at a minimum.
+7. Complete deployment by clicking **Create Resources**.
+
+## Step 3: Secure the Setup
+
+For PostgreSQL and Redis, add your NocoDB app as a **trusted source**:
+
+* Navigate to your database → **Settings → Trusted Sources** → Add the app.
+
+## Updating NocoDB
+
+To upgrade to a new NocoDB version:
+
+1. Go to **App Settings → Source → Edit Component**.
+2. Change the image tag (e.g., `latest`, or a specific version).
+3. Save to trigger a redeploy.
+
+You're all set! Visit your app URL to access your NocoDB workspace.
diff --git a/content/self-hosting/docker-compose.mdx b/content/self-hosting/docker-compose.mdx
new file mode 100644
index 00000000..a2ccd957
--- /dev/null
+++ b/content/self-hosting/docker-compose.mdx
@@ -0,0 +1,83 @@
+---
+title: 'Install with Docker Compose'
+icon: 'docker'
+tags: ['Open Source']
+keywords : ['NocoDB installation', 'NocoDB docker installation', 'NocoDB prerequisites']
+---
+import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
+
+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 Compose](https://docs.docker.com/compose/install/)
+
+## docker-compose.yml
+
+
+
+
+```
+version: "3.9"
+services:
+ nocodb:
+ container_name: nocodb
+ image: nocodb/nocodb:latest
+ environment:
+ NC_AUTH_JWT_SECRET: 'your-super-secret-passs'
+ NC_PUBLIC_URL: '__your_nocodb_domain__.com'
+ ports:
+ - "80:8080"
+ volumes:
+ - nocodb_data:/usr/app/data
+ tmpfs:
+ - /run:nodev,nosuid,exec,mode=0755
+volumes:
+ nocodb_data:
+```
+
+
+
+```
+version: "3.9"
+services:
+ nocodb:
+ container_name: nocodb
+ image: nocodb/nocodb:latest
+ environment:
+ NC_AUTH_JWT_SECRET: 'your-super-secret-passs'
+ aio_ssl_email: 'you@example.com'
+ aio_ssl_domain: 'example.com'
+ aio_ssl_enable: true
+ ports:
+ - "80:80"
+ - "443:443"
+ volumes:
+ - nocodb_data:/usr/app/data
+ tmpfs:
+ - /run:nodev,nosuid,exec,mode=0755
+volumes:
+ nocodb_data:
+```
+
+
+
+
+> If you have other services running on the same server using up port 80,
+> see [Behind Traefik section](./traefik) to use HTTPS with NocoDB
+
+## Start NocoDB
+
+```bash
+docker compose up -d
+
+```
+> Once the container is running, you can access NocoDB by opening http://localhost in your web browser.
+
+## Update NocoDB
+
+```bash
+docker compose pull
+docker compose down
+docker compose up -d
+```
diff --git a/content/self-hosting/docker.mdx b/content/self-hosting/docker.mdx
new file mode 100644
index 00000000..0270f484
--- /dev/null
+++ b/content/self-hosting/docker.mdx
@@ -0,0 +1,96 @@
+---
+title: 'Install with Docker'
+icon: 'docker'
+tags: ['Open Source']
+keywords : ['NocoDB installation', 'NocoDB docker installation', 'NocoDB prerequisites']
+---
+import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
+
+Docker provides an easy way to install and run NocoDB. Follow these steps to get NocoDB up and running using Docker.
+NocoDB provides A single image that contains
+
+- 🇳 NocoDB,
+- 🐘 PostgreSQL,
+- ⚡ Valkey(Redis),
+- 🗄 Minio,
+- 🌐 nginx gateway.
+- 🔒 automated SSL certs and auto renew
+
+## Prerequisites
+- [Docker](https://www.docker.com/get-started)
+
+## Normal Installation
+> Only use this in production if you have a reverse proxy for TLS encryption
+
+```bash
+docker run \
+ -d \
+ --name nocodb \
+ --tmpfs /run:nodev,nosuid,exec,mode=0755 \
+ -v ./nocodb:/usr/app/data \
+ -e NC_AUTH_JWT_SECRET="your-super-secret-string" \
+ -e NC_PUBLIC_URL="__your_nocodb_domain__.com" \
+ -p 80:8080 \
+ --restart unless-stopped \
+ -it nocodb/nocodb:latest
+```
+
+## with HTTPS Support
+
+```bash
+docker run \
+ -d \
+ --name nocodb \
+ --tmpfs /run:nodev,nosuid,exec,mode=0755 \
+ -v ./nocodb:/usr/app/data \
+ -e nc_aio_ssl_domain=example.com \
+ -e nc_aio_ssl_enable=true \
+ -e nc_aio_ssl_email=your@mail.com \
+ -e NC_AUTH_JWT_SECRET="your-super-secret-string" \
+ -p 80:80 \
+ -p 443:443 \
+ --restart unless-stopped \
+ -it nocodb/nocodb:latest
+```
+
+## with SQLite
+
+```bash
+docker run \
+ -d \
+ --name nocodb \
+ --tmpfs /run:nodev,nosuid,exec,mode=0755 \
+ -v ./nocodb:/usr/app/data \
+ -e nc_aio_postgres_enable=false \
+ -e NC_AUTH_JWT_SECRET="your-super-secret-string" \
+ -e NC_PUBLIC_URL="__your_nocodb_domain__.com" \
+ -p 80:8080 \
+ --restart unless-stopped \
+ -it nocodb/nocodb:latest
+```
+
+> Read the [Configuring NocoDB section](./configuring-nocodb#docker-image-configuration) to review all supported options
+
+> Once the container is running, you can access NocoDB by opening http://localhost in your web browser.
+
+## Update NocoDB
+
+```bash
+docker pull nocodb/nocodb:latest
+docker stop nocodb
+docker rm nocodb
+
+```
+> use the the docker run command to start nocodb again
+
+## Exposed ports on the AIO Image
+
+- 80: https redirect & ssl acme challenge
+- 443: https
+- 8080: http & ssl acme challenge
+- 9000: minio
+
+## Additional Notes
+
+- variables set by aio can be overridden by the end user by using `docker run -e var_name=var_value`
+- the code used to build the aio image is publicly available at [github.com/nocodb/nocodb/tree/develop/nix/docker/all_in_one](https://github.com/nocodb/nocodb/tree/develop/nix/docker/all_in_one)
diff --git a/content/self-hosting/environment-variables.mdx b/content/self-hosting/environment-variables.mdx
index 8b3c0851..f475b050 100644
--- a/content/self-hosting/environment-variables.mdx
+++ b/content/self-hosting/environment-variables.mdx
@@ -1,6 +1,6 @@
---
-title: 'Environment variables'
-description: 'Environment Variables for NocoDB!'
+title: 'Environment Variables'
+icon: 'cog'
tags: [ 'Open Source' ]
keywords: [ 'NocoDB Environment Variables', 'NocoDB env variables', 'NocoDB envs', 'NocoDB .env' ]
---
@@ -19,6 +19,54 @@ performance, security, and functionality of NocoDB.
| `DATABASE_URL_FILE` | No | A path to a file containing a JDBC URL can be specified for the database connection as an alternative to `NC_DB`. | |
| `NC_CONNECTION_ENCRYPT_KEY` | No | The key used to encrypt the credentials of external databases. **Warning:** Changing this variable may break the application. If you must change it, use the CLI as described in the [NocoDB Secret CLI documentation](/docs/product-docs/data-sources/updating-secret). | Keep connection credentials as plain text in the database if not set. |
+## Docker Image Configuration
+
+The NocoDB docker image supports flexible environment variable management across its internal services.
+All environment variables that begin with `nc_aio_` are processed by the AIO Docker image itself to control the internal setup and orchestration.
+
+| Variable | Mandatory | Description | Default |
+|--------------------------|-----------|---------------------------------------|-----------|
+| `nc_aio_minio_enable` | No | enable aio minio for s3 storage | false |
+| `nc_aio_redis_enable` | No | enable aio redis for caching | true |
+| `nc_aio_postgres_enable` | No | enable aio PostgreSQL | true |
+| `nc_aio_ssl_enable` | No | enable ssl | false |
+| `nc_aio_ssl_email` | No | email used for ssl | null |
+| `nc_aio_ssl_domain` | No | domain to fetch ssl certs for | localhost |
+| `nc_aio_worker_enable` | No | enable worker instance | false |
+
+### Shared Variables
+
+* All environment variables except those prefixed with `nc_aio_` are passed **to both the main NocoDB instance and the worker**.
+
+> Example:
+>
+> ```bash
+> -e NC_PUBLIC_URL="https://example.com"
+> ```
+>
+> This will be available in **both** main and worker containers.
+
+### Targeted Variable Injection
+
+The NocoDB docker image supports passing environment variables to individual services using the following prefixes
+
+| Prefix | Targets Service |
+| --------------------- | --------------- |
+| `nc_aio_pass_main_` | NocoDB (main) |
+| `nc_aio_pass_worker_` | Worker process |
+| `nc_aio_pass_minio_` | Minio |
+| `nc_aio_pass_acme_` | Lego (ACME/SSL) |
+
+These allow fine-grained control over configuration by scoping variables to specific containers managed by the AIO image.
+
+> 🔧 Example:
+> To pass `NC_AUTH_JWT_SECRET` only to the main NocoDB instance:
+>
+> ```bash
+> -e nc_aio_pass_main_NC_AUTH_JWT_SECRET="your-secret"
+> ```
+
+
## Authentication
| Variable | Mandatory | Description | If Not Set |
@@ -157,4 +205,4 @@ has the required permissions. To disable it, set the `NC_DISABLE_PG_DATA_REFLECT
| `AWS_ACCESS_KEY_ID` | No | ***Deprecated***. Please use `LITESTREAM_S3_ACCESS_KEY_ID` instead. | |
| `AWS_SECRET_ACCESS_KEY` | No | ***Deprecated***. Please use `LITESTREAM_S3_SECRET_ACCESS_KEY` instead. | |
| `AWS_BUCKET` | No | ***Deprecated***. Please use `LITESTREAM_S3_BUCKET` instead. | |
-| `AWS_BUCKET_PATH` | No | ***Deprecated***. Please use `LITESTREAM_S3_PATH` instead. | |
\ No newline at end of file
+| `AWS_BUCKET_PATH` | No | ***Deprecated***. Please use `LITESTREAM_S3_PATH` instead. | |
diff --git a/content/self-hosting/index.mdx b/content/self-hosting/index.mdx
index bba2bfc9..4cf0f7f0 100644
--- a/content/self-hosting/index.mdx
+++ b/content/self-hosting/index.mdx
@@ -1,23 +1,25 @@
---
-title: 'Self-hosting'
-description: 'NocoDB Self-hosting Documentation'
-icon: 'code'
+title: 'Overview'
+icon: 'server'
---
-## Overview
+Self-hosting NocoDB gives you complete control over your data, infrastructure, and customizations—empowering you to tailor the platform to your exact needs.
-Self-hosting NocoDB allows you to run NocoDB on your own server, giving you full control over your data and infrastructure.
+## Deployment Guidance
-## Key Features
+* **New to self-hosting?** Use [Upstall](./self-hosting/upstall) for a quick and simplified setup experience.
+* **Just exploring?** Try NocoDB with the [Docker](./self-hosting/docker) or [Nix](./self-hosting/nix) setup for easy local testing.
+* **Production-ready deployment?** We recommend using [Docker Compose](./self-hosting/docker-compose), or [NixOS](./self-hosting/nixos)
+> Be sure to read the [Configuring NocoDB](./self-hosting/configuring-nocodb) section to ensure your instance is secure and optimized
-- **Full Control**: Run NocoDB on your own server
-- **Customization**: Customize NocoDB to fit your specific needs
-- **Security**: Run NocoDB on your own server
+## Key Benefits
-## Getting Started
+* **Total Ownership**: Deploy NocoDB on your own infrastructure to retain full control over your data.
+* **Complete Customization**: Modify and extend NocoDB to match your unique requirements.
+* **Enhanced Security**: Keep everything in your own environment, behind your firewalls and security policies.
-To self-host NocoDB, follow these steps:
+## Get Started in 3 Steps
-1. Install NocoDB on your server
-2. Configure NocoDB to fit your specific needs
-3. Run NocoDB on your server
+1. **Install**: Set up NocoDB on your preferred server or cloud environment.
+2. **Configure**: Adjust settings, connect databases, and apply any custom features you need.
+3. **Run**: Launch NocoDB and manage your projects with confidence—your way.
diff --git a/content/self-hosting/installation/auto-upstall.mdx b/content/self-hosting/installation/auto-upstall.mdx
deleted file mode 100644
index d3cc0a11..00000000
--- a/content/self-hosting/installation/auto-upstall.mdx
+++ /dev/null
@@ -1,101 +0,0 @@
----
-title: 'Auto-Upstall'
-description: 'Automatically install NocoDB with SSL in under 2 Minutes — The Ultimate Guide.'
-tags: ['Open Source']
-keywords : ['NocoDB installation', 'NocoDB one command installation', 'NocoDB prerequisites']
----
-
-Auto-upstall is the fastest way to install NocoDB with SSL, auto-upgrades with every release, and auto-renews your SSL — all within just 2 minutes!
-
-
-```bash
-bash <(curl -sSL http://install.nocodb.com/noco.sh) <(mktemp)
-```
-
-## 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 sets up SSL that auto-renews!
-
-## Installation Video
-
-
-
-
-## 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!
-
-
-
-
- You can find the install.nocodb.com/noco.sh script [on our GitHub here.](https://raw.githubusercontent.com/nocodb/nocodb/develop/docker-compose/1_Auto_Upstall/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/content/self-hosting/installation/digital-ocean.mdx b/content/self-hosting/installation/digital-ocean.mdx
deleted file mode 100644
index ba550a7c..00000000
--- a/content/self-hosting/installation/digital-ocean.mdx
+++ /dev/null
@@ -1,42 +0,0 @@
----
-title: 'DigitalOcean'
-tags: ['Open Source']
-keywords : ['NocoDB installation', 'NocoDB Digital Ocean installation', 'NocoDB prerequisites']
----
-
-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)".
-
- 
-2. Choose "Docker Hub" as the source.
-
- 
-
-3. Set the source repository as nocodb/nocodb. You can optionally specify a release tag if you want a specific NocoDB version.
-
- 
-
-4. Configure any additional settings as needed.
-
- 
-
-5. Name your web service and select the nearest region for cloud hosting.
-
- 
-
-6. Choose your preferred hosting plan and click on "Launch Basic App".
-
- 
-
- 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/content/self-hosting/installation/docker-compose.mdx b/content/self-hosting/installation/docker-compose.mdx
deleted file mode 100644
index 531709bc..00000000
--- a/content/self-hosting/installation/docker-compose.mdx
+++ /dev/null
@@ -1,61 +0,0 @@
----
-title: 'Docker Compose'
-description: 'Install NocoDB using Docker Compose'
-tags: ['Open Source']
-keywords : ['NocoDB installation', 'NocoDB docker installation', 'NocoDB prerequisites']
----
-
-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/2_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
- ```
diff --git a/content/self-hosting/installation/docker.mdx b/content/self-hosting/installation/docker.mdx
deleted file mode 100644
index aa4910b1..00000000
--- a/content/self-hosting/installation/docker.mdx
+++ /dev/null
@@ -1,71 +0,0 @@
----
-title: 'Docker'
-description: 'Docker installation - takes about three minutes!'
-tags: ['Open Source']
-keywords : ['NocoDB installation', 'NocoDB docker installation', 'NocoDB prerequisites']
----
-import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
-
-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/content/self-hosting/installation/gcp-cloud-run.mdx b/content/self-hosting/installation/gcp-cloud-run.mdx
deleted file mode 100644
index 741f6638..00000000
--- a/content/self-hosting/installation/gcp-cloud-run.mdx
+++ /dev/null
@@ -1,45 +0,0 @@
----
-title: 'GCP Cloud Run'
-description: 'Installing NocoDB on Google Cloud Run'
-tags: ['Open Source']
-keywords : ['NocoDB installation', 'NocoDB Google Cloud run installation', 'NocoDB prerequisites']
----
-
-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/content/self-hosting/installation/home-brew.mdx b/content/self-hosting/installation/home-brew.mdx
deleted file mode 100644
index 2b90a4ec..00000000
--- a/content/self-hosting/installation/home-brew.mdx
+++ /dev/null
@@ -1,47 +0,0 @@
----
-title: 'Homebrew'
-description: 'Install NocoDB using Homebrew'
-tags: ['Open Source']
-keywords : ['NocoDB installation', 'NocoDB homebrew installation', 'NocoDB prerequisites']
----
-
-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/content/self-hosting/installation/meta.json b/content/self-hosting/installation/meta.json
deleted file mode 100644
index 04f8481d..00000000
--- a/content/self-hosting/installation/meta.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "title": "Installation",
- "pages": ["auto-upstall", "docker", "docker-compose", "home-brew", "aws-ecs", "gcp-cloud-run", "digital-ocean", "nix", "other-installations"]
-}
\ No newline at end of file
diff --git a/content/self-hosting/installation/other-installations.mdx b/content/self-hosting/installation/other-installations.mdx
deleted file mode 100644
index 72400fb6..00000000
--- a/content/self-hosting/installation/other-installations.mdx
+++ /dev/null
@@ -1,96 +0,0 @@
----
-title: 'Other Installation Methods'
-description: 'Installing NocoDB on other platforms'
-tags: ['Open Source']
-keywords : ['NocoDB installation', 'NocoDB Digital Ocean installation', 'NocoDB prerequisites']
----
-
-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.
-
- 
-3. Search for NocoDB
-
- 
-4. Click on the NocoDB app, then click "Install".
-
- 
-5. Configure NocoDB settings as needed.
-
- 
-5. Once installed, go to "My Apps" and launch NocoDB.
-
- 
-
-#### 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".
-
- 
-3. Search for NocoDB and click on it.
-
- 
-4. Click on NocoDB to start the configuration process.
-5. Configure NocoDB settings as needed and click "Deploy".
-
- 
-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.
-
- 
-3. Click on the NocoDB template, then click "Deploy".
-4. Configure your NocoDB settings as needed.
-
- 
-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
-
-[](https://cloud.sealos.io/?openapp=system-template%3FtemplateName%3Dnocodb)
-
-### Elestio
-
-[](https://elest.io/open-source/nocodb)
-
-### RepoCloud
-
-[](https://repocloud.io/details/?app_id=100)
-
diff --git a/content/self-hosting/k8s.mdx b/content/self-hosting/k8s.mdx
new file mode 100644
index 00000000..035b055c
--- /dev/null
+++ b/content/self-hosting/k8s.mdx
@@ -0,0 +1,112 @@
+---
+title: 'Install on Kubernets'
+icon: 'k8s'
+tags: ['kubernets', 'k8s']
+keywords: ['Kubernets']
+---
+
+This guide provides a starting point for deploying NocoDB using Kubernetes.
+
+Make sure to supply external Redis and PostgreSQL services by setting the appropriate environment variables listed below. Refer to the "Environment variables" section for a full explanation of each option.
+If not specified, NocoDB will default to its internal Redis and PostgreSQL instances.
+
+Additionally, configure NocoDB to use an S3-compatible storage provider to handle user-uploaded files, both for storage and delivery.
+
+## Prerequisites
+
+- k8s cluster
+
+## manifest.yaml
+
+```yaml
+apiVersion: v1
+kind: Secret
+metadata:
+ name: nocodb
+type: Opaque
+data:
+ NC_AUTH_JWT_SECRET: change_me_now
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: nocodb
+data:
+ NC_PUBLIC_URL: __your_nocodb_domain__.com
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: aio
+spec:
+ selector:
+ app: aio
+ ports:
+ - protocol: TCP
+ name: "http"
+ targetPort: 80
+ port: 80
+ - protocol: TCP
+ name: "https"
+ targetPort: 443
+ port: 443
+ type: ClusterIP
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: aio
+ labels:
+ type: local
+spec:
+ storageClassName: manual
+ capacity:
+ storage: 10Gi
+ accessModes:
+ - ReadWriteOnce
+ hostPath:
+ path: "/var/nocodb_aio"
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: aio
+spec:
+ storageClassName: manual
+ accessModes:
+ - ReadWriteOnce
+ resources:
+ requests:
+ storage: 3Gi
+---
+apiVersion: v1
+kind: Pod
+metadata:
+ name: aio
+ labels:
+ app: aio
+spec:
+ volumes:
+ - name: aio
+ persistentVolumeClaim:
+ claimName: aio
+ - name: tmpfs
+ emptyDir:
+ medium: Memory
+ containers:
+ - name: aio
+ image: nocodb/nocodb:latest
+ envFrom:
+ - secretRef:
+ name: nocodb
+ - configMapRef:
+ name: nocodb
+ ports:
+ - containerPort: 80
+ - containerPort: 443
+ volumeMounts:
+ - mountPath: "/usr/app/data"
+ name: aio
+ - mountPath: "/run"
+ name: tmpfs
+```
diff --git a/content/self-hosting/meta.json b/content/self-hosting/meta.json
index 7234474d..b00f82c1 100644
--- a/content/self-hosting/meta.json
+++ b/content/self-hosting/meta.json
@@ -1,8 +1,27 @@
{
- "pages": [
- "index",
- "installation",
- "environment-variables",
- "upgrading"
- ]
-}
\ No newline at end of file
+ "pages": [
+ "index",
+ "environment-variables",
+
+ "upstall",
+ "docker",
+ "nix",
+ "docker-compose",
+
+ "nixos",
+ "ubuntu",
+ "k8s",
+
+ "render",
+ "digital-ocean",
+ "aws-ecs",
+ "railway",
+ "cloudron",
+
+ "nginx",
+ "apache",
+ "traefik",
+
+ "other-installations"
+ ]
+}
diff --git a/content/self-hosting/nginx.mdx b/content/self-hosting/nginx.mdx
new file mode 100644
index 00000000..7681fcd7
--- /dev/null
+++ b/content/self-hosting/nginx.mdx
@@ -0,0 +1,150 @@
+---
+title: 'Behind Nginx'
+icon: 'nginx'
+description: 'Run NocoDB Behind Nginx Proxy.'
+tags: ['nginx', 'proxy']
+keywords : ['NocoDB Nginx', 'NocoDB Proxy']
+---
+import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
+
+## Prerequisites
+We assume you already have a Nginx server running.
+
+## Step 1 - Run NocoDB
+
+
+
+```bash
+docker run \
+ -d \
+ --name nocodb \
+ --tmpfs /run:nodev,nosuid,exec,mode=0755 \
+ -v ./nocodb:/usr/app/data \
+ -e NC_AUTH_JWT_SECRET="your-super-secret-string" \
+ -e NC_PUBLIC_URL="__your_nocodb_domain__.com" \
+ -p 8080:8080 \
+ --restart unless-stopped \
+ -it nocodb/nocodb:latest
+```
+
+
+
+```yaml
+version: "3.9"
+services:
+ nocodb:
+ container_name: nocodb
+ image: nocodb/nocodb:latest
+ environment:
+ NC_AUTH_JWT_SECRET: 'your-super-secret-passs'
+ NC_PUBLIC_URL: '__your_nocodb_domain__.com'
+ ports:
+ - "8080:8080"
+ volumes:
+ - nocodb_data:/usr/app/data
+ tmpfs:
+ - /run:nodev,nosuid,exec,mode=0755
+volumes:
+ nocodb_data:
+```
+
+
+
+```bash
+nix run github:nocodb/nocodb/master
+```
+
+
+
+## Step 2 - Create the nginx config
+
+Create a new `nocodb.conf` in `/etc/nginx/sites-enabled/` with the following contents
+
+> Make sure to replace any __nocodb_domain__ with you own domain
+
+
+
+```
+server {
+ listen 0.0.0.0:80 ;
+ listen [::0]:80 ;
+ server_name __nocodb_domain__ ;
+
+ location / {
+ return 301 https://$host$request_uri;
+ }
+
+ location ^~ /.well-known/acme-challenge/ {
+ root /var/lib/acme/_acme-challenge;
+ auth_basic off;
+ auth_request off;
+ }
+}
+
+server {
+ listen 0.0.0.0:443 ssl ;
+ listen [::0]:443 ssl ;
+ server_name __nocodb_domain__ ;
+ http2 on;
+ proxy_buffering off;
+ proxy_request_buffering off;
+
+ ssl_certificate /var/lib/acme/__nocodb_domain__/fullchain.pem;
+ ssl_certificate_key /var/lib/acme/__nocodb_domain__/key.pem;
+ ssl_trusted_certificate /var/lib/acme/__nocodb_domain__/chain.pem;
+
+ location ^~ /.well-known/acme-challenge/ {
+ root /var/lib/acme/_acme-challenge;
+ auth_basic off;
+ auth_request off;
+ }
+
+ location / {
+ proxy_pass http://127.0.0.1:8079;
+
+ # recommended proxy headers
+ 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_set_header X-Forwarded-Host $host;
+ proxy_set_header X-Forwarded-Server $host;
+ }
+}
+```
+
+
+
+```
+server {
+ listen 0.0.0.0:80 ;
+ listen [::0]:80 ;
+ server_name __nocodb_domain__ ;
+ http2 on;
+ proxy_buffering off;
+ proxy_request_buffering off;
+
+ location / {
+ proxy_pass http://127.0.0.1:8080;
+
+ # recommended proxy headers
+ 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_set_header X-Forwarded-Host $host;
+ proxy_set_header X-Forwarded-Server $host;
+ }
+}
+```
+
+
+
+## Step 3 - Enable the nginx site
+
+```bash
+sudo ln -s /etc/nginx/sites-available/nocodb.conf /etc/nginx/sites-enabled/nocodb.conf
+sudo systemctl reload nginx
+```
+
+> You should now be able to access NocoDB on your configured domain.
diff --git a/content/self-hosting/nix.mdx b/content/self-hosting/nix.mdx
new file mode 100644
index 00000000..0bbe18e0
--- /dev/null
+++ b/content/self-hosting/nix.mdx
@@ -0,0 +1,17 @@
+---
+title: 'Install with Nix'
+icon: 'nix'
+tags: ['Open Source', 'Nix', 'NixOS']
+keywords : ['NocoDB installation', 'Nix', 'NixOS']
+---
+
+if nix is not already installed on your system, we recommend the determinate systems installer.
+
+```bash
+curl --proto '=https' --tlsv1.2 -ssf -l https://install.determinate.systems/nix | sh -s -- install
+```
+
+once nix is installed, you can run nocodb using the following command:
+```bash
+nix run github:nocodb/nocodb/master
+```
diff --git a/content/self-hosting/installation/nix.mdx b/content/self-hosting/nixos.mdx
similarity index 60%
rename from content/self-hosting/installation/nix.mdx
rename to content/self-hosting/nixos.mdx
index 4db1db21..e9ac61bd 100644
--- a/content/self-hosting/installation/nix.mdx
+++ b/content/self-hosting/nixos.mdx
@@ -1,11 +1,10 @@
---
-title: 'Nix/NixOS'
-description: 'Install NocoDB on NixOS.'
+title: 'Install on NixOS'
+icon: 'nix'
tags: ['Open Source', 'Nix', 'NixOS']
-keywords : ['NocoDB installation', 'NocoDB one command installation', 'NocoDB prerequisites']
+keywords : ['NocoDB installation', 'Nix', 'NixOS']
---
-### Basic Setup
The NixOS module is the recommended method for installing and configuring NocoDB on NixOS. We advise using Flakes for this process. The NixOS module will install NocoDB and create a corresponding systemd service
```
@@ -14,7 +13,7 @@ The NixOS module is the recommended method for installing and configuring NocoDB
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
- nocodb.url = "github:nocodb/nocodb";
+ nocodb.url = "github:nocodb/nocodb/master";
};
outputs = inputs@{ nixpkgs, nocodb, ... }: {
@@ -36,8 +35,8 @@ The NixOS module is the recommended method for installing and configuring NocoDB
}
```
-### Secrets
-We recommend using the `services.nocodb.environmentFile` option to securely pass secrets, such as `NC_AUTH_JWT_SECRET`, to the NixOS NocoDB instance. This approach prevents sensitive information from being committed to the NixOS repository. While it is not required, we strongly suggest using [sops-nix](https://github.com/Mic92/sops-nix) for managing secrets in a more secure and structured manner.
+## Secret Management
+Use the `services.nocodb.environmentFile` option to securely pass secrets, such as `NC_AUTH_JWT_SECRET`, to the NixOS NocoDB instance. This approach prevents sensitive information from being committed to the NixOS repository. While it is not required, we strongly suggest using [sops-nix](https://github.com/Mic92/sops-nix) for managing secrets in a more secure and structured manner.
Example configuration:
@@ -45,8 +44,8 @@ Example configuration:
services.nocodb.environmentFile = "/var/lib/secrets/nocodb.env"
```
-### SSL
-It is recommended to use the NixOS Nginx module with ACME for SSL certificate management. This approach ensures secure and automated handling of SSL certificates.
+## with HTTPS Support
+Use the NixOS Nginx module for SSL certificate management. This approach ensures secure and automated handling of SSL certificates.
```
networking.firewall.allowedTCPPorts = [ 80 443 ];
@@ -71,8 +70,8 @@ services.nginx = {
};
```
-### PostgreSQL
-For production use recommend PostgreSQL instead of SQLite
+## PostgreSQL as Database
+For production, use PostgreSQL instead of SQLite
```
services.nocodb.environments = {
@@ -102,18 +101,3 @@ For production use recommend PostgreSQL instead of SQLite
settings.log_timezone = config.time.timeZone;
};
```
-
-### On Other GNU/Linux Distributions and MacOS
-
-If Nix is not already installed on your system, we recommend using the Determinate Systems Nix installer to install Nix. If Nix is already installed, you can skip this step.
-
-To install Nix, run the following command:
-
-```
-curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
-```
-
-Once Nix is installed, you can run NocoDB using the following command:
-```
-nix run github:nocodb/nocodb
-```
diff --git a/content/self-hosting/other-installations.mdx b/content/self-hosting/other-installations.mdx
new file mode 100644
index 00000000..c65ae943
--- /dev/null
+++ b/content/self-hosting/other-installations.mdx
@@ -0,0 +1,49 @@
+---
+title: 'Other Installation Methods'
+icon: 'bookheart'
+tags: ['Open Source']
+keywords : ['NocoDB installation' ]
+---
+
+This guide covers installation methods for NocoDB on various platforms including, CapRover, FreeBSD/FreeNAS/TrueNAS Jail, and SealOs.
+
+## CapRover
+
+### Deployment Steps
+
+1. Log in to your CapRover dashboard.
+2. Go to "Apps" and click on "One-Click Apps/Databases".
+
+ 
+3. Search for NocoDB and click on it.
+
+ 
+4. Click on NocoDB to start the configuration process.
+5. Configure NocoDB settings as needed and click "Deploy".
+
+ 
+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.
+
+
+## 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
+
+[](https://cloud.sealos.io/?openapp=system-template%3FtemplateName%3Dnocodb)
+
+## Elestio
+
+[](https://elest.io/open-source/nocodb)
+
+## RepoCloud
+
+[](https://repocloud.io/details/?app_id=100)
diff --git a/content/self-hosting/railway.mdx b/content/self-hosting/railway.mdx
new file mode 100644
index 00000000..7b23f209
--- /dev/null
+++ b/content/self-hosting/railway.mdx
@@ -0,0 +1,47 @@
+---
+title: 'Install on Railway'
+icon: 'railway'
+tags: ['railway', 'docker']
+keywords: ['NocoDB Railway', 'Install NocoDB', 'NocoDB Docker']
+---
+
+[Railway](https://railway.app) is a developer-friendly platform that lets you launch full-stack applications with minimal configuration. NocoDB can be deployed on Railway using a prebuilt template, making it easy to get started.
+
+## Step 1: Sign Up for Railway
+
+If you’re new to Railway, head over to [railway.app](https://railway.app) and create an account. You can sign in using GitHub, GitLab, or an email address.
+
+## Step 2: Start a New Project
+
+1. Once logged in, click **“New Project.”**
+2. In the template search bar, type **“NocoDB”**.
+3. Select the **NocoDB** template.
+4. Review the configuration, then click **Deploy Project**.
+
+Railway will automatically provision and start the necessary services (like the container and database).
+
+## Step 3: Access Your NocoDB Instance
+
+After deployment:
+
+* Go to your Railway dashboard.
+* Click on the NocoDB service.
+* Open the generated URL (usually something like `your-project-name.up.railway.app`) to start using NocoDB.
+
+## ⚠️ Memory Requirement Notice
+
+The Railway **Trial plan** includes only 512 MB of RAM, which is not sufficient to run NocoDB even in minimal mode.
+
+To run NocoDB reliably:
+
+* Upgrade to the **Hobby plan** or higher.
+* Plans with at least **1 GB RAM** are recommended for stable performance.
+
+## Important Notes
+- Make sure to configure environment variables for database connections if needed.
+- Set up persistent storage or S3 for your NocoDB data.
+- Regularly update your NocoDB instance for the latest features and security patches.
+
+## You're Live 🎉
+
+That’s it! NocoDB should now be running on Railway. You can begin creating APIs from your database, importing spreadsheets, or managing data collaboratively.
diff --git a/content/self-hosting/render.mdx b/content/self-hosting/render.mdx
new file mode 100644
index 00000000..7e0840ee
--- /dev/null
+++ b/content/self-hosting/render.mdx
@@ -0,0 +1,65 @@
+---
+title: 'Install on Render'
+icon: 'render'
+tags: ['render', 'docker']
+keywords: ['NocoDB Render', 'Install NocoDB', 'NocoDB Docker']
+---
+
+Render offers a simple way to host containerized applications with automatic HTTPS, scaling, and persistent storage. You can deploy **NocoDB** as a Web Service using Docker with just a few steps.
+
+## Using the Deploy Button
+You can easily deploy NocoDB to Render using the Deploy to Render button.
+
+[](https://render.com/deploy?repo=https://github.com/nocodb/render_com/tree/master)
+
+## Manual Deployment
+
+> ⚠️ For optimal performance, we recommend using the \$25/month "Standard" service on Render.
+
+1. Log into your [Render dashboard](https://dashboard.render.com).
+2. Click **New → Web Service** to begin creating a new app.
+3. Choose **Existing Image**.
+4. Use the official NocoDB image:
+
+ ```
+ Image URL: nocodb/nocodb
+ ```
+4. Click Connect
+
+### Configure Persistent Storage
+
+To ensure that your data survives service restarts or deployments, you must add a **volume mount**.
+
+1. Under the **Advanced -> Disks** section of the service configuration:
+
+ * Click **Add Disk**.
+ * Name the disk (e.g., `nocodb-data`).
+ * Set the **mount path** to:
+
+ ```
+ /usr/app/data
+ ```
+ * Choose an appropriate disk size (e.g., 1–5 GB for smaller projects, or more for production).
+
+> 💡 NocoDB image stores its Postgres database, and data in this path by default, so mounting a volume here is essential for data persistence.
+
+
+## Set Environment Variables
+
+You may add any custom configuration through environment variables in the **Environment** tab (e.g., SMTP settings or external storage). the following env variables should be configured in production.
+
+- NC_AUTH_JWT_SECRET
+- NC_PUBLIC_URL
+
+## Final Steps
+
+1. Click **Create Web Service** to deploy.
+2. Once the build finishes, your NocoDB instance will be live at the Render-generated URL.
+
+You can now access the web UI, import your data, and start building APIs.
+
+## Notes & Best Practices
+
+* ✅ Mounting a volume at `/usr/app/data` is required to prevent data loss across restarts.
+* 🔐 Enable HTTPS by default with Render’s built-in certificate support.
+
diff --git a/content/self-hosting/traefik.mdx b/content/self-hosting/traefik.mdx
new file mode 100644
index 00000000..83d80081
--- /dev/null
+++ b/content/self-hosting/traefik.mdx
@@ -0,0 +1,38 @@
+---
+title: 'Behind Traefik'
+icon: 'traefik'
+description: 'Run NocoDB Behind Traefik Proxy.'
+tags: ['nginx', 'proxy']
+keywords : ['NocoDB Traefik', 'NocoDB Proxy']
+---
+import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
+
+If you are setting up [Traefik](https://doc.traefik.io/traefik/) as your reverse proxy, the following guide will help you integrate it with NocoDB.
+
+## Sample Traefik Docker Compose Setup
+Below is a sample docker-compose configuration that demonstrates how to run NocoDB alongside Traefik.
+
+
+```yaml
+version: "3.9"
+services:
+ nocodb:
+ container_name: nocodb
+ image: nocodb/nocodb:latest
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.routers.nocodb.rule=Host(`__your_nocodb_domain__.com`)"
+ environment:
+ NC_AUTH_JWT_SECRET: 'your-super-secret-passs'
+ NC_PUBLIC_URL: '__your_nocodb_domain__.com'
+ ports:
+ - "8080:8080"
+ volumes:
+ - nocodb_data:/usr/app/data
+ tmpfs:
+ - /run:nodev,nosuid,exec,mode=0755
+volumes:
+ nocodb_data:
+```
+
+> You should now be able to access NocoDB on you configured domain.
diff --git a/content/self-hosting/ubuntu.mdx b/content/self-hosting/ubuntu.mdx
new file mode 100644
index 00000000..5071f533
--- /dev/null
+++ b/content/self-hosting/ubuntu.mdx
@@ -0,0 +1,60 @@
+---
+title: 'Install on Ubuntu'
+icon: 'ubuntu'
+description: 'Install and run NocoDB on Ubuntu using Docker or Nix.'
+tags: ['ubuntu', 'docker', 'nix']
+keywords: ['NocoDB Ubuntu', 'Install NocoDB', 'NocoDB Docker', 'NocoDB Nix']
+---
+import { Tab, Tabs } from 'fumadocs-ui/components/tabs';
+
+This guide walks you through a installation of NocoDB on **Ubuntu** using
+**Docker**, and using **Nix**. These steps have been tested on Ubuntu 20.04 and
+later.
+
+
+## Prerequisites
+
+- Ubuntu 20.04 or later
+- A user account with root privileges
+
+## Run NocoDB
+
+
+
+```bash
+# Step 1: Update system packages
+sudo apt update && sudo apt upgrade -y
+
+# Step 2: Install Docker
+sudo apt install docker
+
+# Step 3: Add your user to the Docker group to run Docker without sudo
+sudo usermod -aG docker $USER
+
+# Step 4: Refresh the group without logging out
+newgrp docker
+
+# Step 5: Run NocoDB in a Docker container
+docker run \
+ -d \
+ --name nocodb \
+ --tmpfs /run:nodev,nosuid,exec,mode=0755 \
+ -v ./nocodb:/usr/app/data \
+ -e NC_AUTH_JWT_SECRET="your-super-secret-string" \
+ -e NC_PUBLIC_URL="__your_nocodb_domain__.com" \
+ -p 80:8080 \
+ --restart unless-stopped \
+ -it nocodb/nocodb:latest
+```
+
+
+
+```bash
+nix run github:nocodb/nocodb/master
+```
+
+
+
+> for https support read the [docker section](./docker#with-https-support)
+
+> You should now be able to access NocoDB on http://localhost.
diff --git a/content/self-hosting/upgrading.mdx b/content/self-hosting/upgrading.mdx
deleted file mode 100644
index 34f7e714..00000000
--- a/content/self-hosting/upgrading.mdx
+++ /dev/null
@@ -1,147 +0,0 @@
----
-title: 'Upgrading'
-description: 'Upgrading NocoDB : Docker, Node and Homebrew!'
-tags: ['Open Source']
-keywords: ['NocoDB upgrade', 'upgrade NocoDB', 'upgrade nocodb']
----
-
-By default, if `NC_DB` is not specified upon [installation](/docs/self-hosting/auto-upstall), 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](/docs/product-docs/engineering/architecture).
-
-## Docker
-
-### Find, Stop & Delete NocoDB Docker Container
-
-```bash
-# find NocoDB container ID
-docker ps
-# stop NocoDB container
-docker stop
-# delete NocoDB container
-docker rm
-```
-
-Note: Deleting your docker container without setting `NC_DB` or mounting to a persistent volume for a default SQLite database will result in losing your data. See examples below.
-
-### Find & Remove NocoDB Docker Image
-
-```bash
-# find NocoDB image
-docker images
-# delete NocoDB image
-docker rmi
-```
-
-### Pull the latest NocoDB image with same environment variables
-
-```bash
-docker run -d -p 8080:8080 \
- -e NC_DB="" \
- -e NC_AUTH_JWT_SECRET="" \
- nocodb/nocodb:latest
-```
-
-Updating NocoDB docker container is similar to updating [any other docker containers](https://www.whitesourcesoftware.com/free-developer-tools/blog/update-docker-images/).
-
-### Example: Docker Upgrade
-
-```bash
-# Previous docker run
-#
-terminal % docker run -d --name myNocoDB \
--v "$(pwd)"/nocodb:/usr/app/data/ \
--p 8080:8080 \
--e NC_DB="pg://host.docker.internal:5432?u=postgres&p=password&d=d1" \
--e NC_AUTH_JWT_SECRET="569a1821-0a93-45e8-87ab-eb857f20a010" \
-nocodb/nocodb:0.111.0
-Unable to find image 'nocodb/nocodb:0.111.0' locally
-0.111.0: Pulling from nocodb/nocodb
-ad3fa0ea069c: Pull complete
-e43b9156e769: Pull complete
-c1bee0da1504: Pull complete
-adf78ab024d9: Pull complete
-cd8000d2c16a: Pull complete
-Digest: sha256:93b6e1ba2c0b90a26b205f9c7d44053aa6d8fa037eff9eb4155ca017f6c9bed4
-Status: Downloaded newer image for nocodb/nocodb:0.111.0
-afdc8edd1005c93e1df8f90d02e46430ea7b5c5610a2bf9ba105238d6c4d927b
-
-
-# Find, stop and delete NocoDB docker container
-#
-terminal % docker ps
-CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
-afdc8edd1005 nocodb/nocodb:0.111.0 "/usr/bin/dumb-init …" 18 seconds ago Up 18 seconds 0.0.0.0:8080->8080/tcp myNocoDB
-0202041b3607 postgres:14.7 "docker-entrypoint.s…" 2 days ago Up 8 hours (healthy) 0.0.0.0:5432->5432/tcp scripts_pg147_1
-
-terminal % docker stop afdc8edd1005
-afdc8edd1005
-
-terminal % docker rm afdc8edd1005
-afdc8edd1005
-
-
-# Find and remove NocoDB docker image
-#
-terminal % docker images
-REPOSITORY TAG IMAGE ID CREATED SIZE
-nocodb/nocodb 0.111.0 34609411e87c 5 weeks ago 132MB
-mysql 8.0 6a0560a40914 7 weeks ago 599MB
-postgres 14.7 2075a95c7b3b 4 months ago 358MB
-
-terminal % docker rmi 34609411e87c
-Untagged: nocodb/nocodb:0.111.0
-Untagged: nocodb/nocodb@sha256:93b6e1ba2c0b90a26b205f9c7d44053aa6d8fa037eff9eb4155ca017f6c9bed4
-Deleted: sha256:3bfxxxx38e682742cbxxxx535b3503af45e931fb9bd15f46eca7d33cf4c54d72
-Deleted: sha256:952152b5da42ae057c6688a04xxxx72e1a2f91825956f5c7e35f91d5b285d4d8
-Deleted: sha256:3155197577xxxx673675ed1bce761714a24d7803f70a905740f7d4c248cxxxxx
-
-
-# Pull & run the latest NocoDB image with same environment variables as before
-#
-terminal % docker run -d --name myNocoDB \
--v "$(pwd)"/nocodb:/usr/app/data/ \
--p 8080:8080 \
--e NC_DB="pg://host.docker.internal:5432?u=postgres&p=password&d=d1" \
--e NC_AUTH_JWT_SECRET="569a1821-0a93-45e8-87ab-eb857f20a010" \
-nocodb/nocodb:latest
-Unable to find image 'nocodb/nocodb:latest' locally
-latest: Pulling from nocodb/nocodb
-ad3fa0ea069c: Pull complete
-e43b9156e769: Pull complete
-c1bee0da1504: Pull complete
-adf78ab024d9: Pull complete
-28ce4fc94e48: Pull complete
-Digest: sha256:5c6df5ff0eb1278e1dbfe684af630a743ca73dfec8c30cab3bae9c1d0d640287
-Status: Downloaded newer image for nocodb/nocodb:latest
-ae793a04b75f2f3ee78abbaef09891396a884ec83320151a266326195649a058
-
-
-```
-
-
-## Node
-
-Updating docker container is similar to updating a npm package.
-
-From your root folder
-
-#### Uninstall NocoDB package
-
-```bash
-npm uninstall nocodb
-```
-#### Install NocoDB package
-
-```bash
-npm install --save nocodb
-```
-
-## Homebrew
-
-Run following commands to upgrade Homebrew Nocodb version.
-
-```bash
-# Update the local homebrew formulas
-brew update
-# Upgrade nocodb package
-brew upgrade nocodb
-```
\ No newline at end of file
diff --git a/content/self-hosting/upstall.mdx b/content/self-hosting/upstall.mdx
new file mode 100644
index 00000000..724463d0
--- /dev/null
+++ b/content/self-hosting/upstall.mdx
@@ -0,0 +1,83 @@
+---
+title: 'Install with Upstall'
+icon: 'terminal'
+tags: ['Open Source']
+keywords : ['NocoDB installation', 'NocoDB one command installation', 'NocoDB prerequisites']
+---
+
+Upstall is the easiest way to install NocoDB with SSL in under 2 minutes.
+
+```bash
+curl --proto '=https' --tlsv1.2 -sSf -L 'https://raw.githubusercontent.com/nocodb/nocodb/refs/heads/develop/docker-compose/1_Auto_Upstall/noco.sh' | bash -s
+```
+
+This script automatically installs:
+
+- 📦 Docker
+* 🚀 NocoDB
+* 🐘 PostgreSQL
+* ⚡ Redis
+* 🗄 Minio (S3-compatible)
+* 🌐 nginx (reverse proxy)
+* 🔒 SSL certificates (auto-renewed)
+
+After installation you can then visit your nocodb instance at http://your-domain.com
+
+> Make sure your domain’s DNS points to the server where you are running Upstall.
+
+## Prerequisites
+
+* A Linux server (Ubuntu, Debian, CentOS, etc.)
+* A domain pointing to your server
+* Port 80 and 443 open
+
+## Video Walkthrough
+
+Want to see it in action? Watch this 2-minute video guide:
+
+
+
+## Step-by-Step Installation
+
+1. **Update DNS settings**
+ Point your domain (e.g. `nocodb.yourdomain.com`) to your server's public IP.
+
+
+2. **SSH into your server**
+
+ ```bash
+ ssh user@your-server-ip
+ ```
+
+3. **Run the Upstall install script**
+
+ ```bash
+ curl --proto '=https' --tlsv1.2 -sSf -L 'https://raw.githubusercontent.com/nocodb/nocodb/refs/heads/develop/docker-compose/1_Auto_Upstall/noco.sh' | bash -s
+ ```
+
+4. **Access NocoDB**
+ Open your browser at `http://your-domain.com`.
+
+> if your NocoDB instance is not immediately accessible wait few minutes for DNS propagation
+
+## Service Management Menu
+
+After installation, a menu is provided to manage your NocoDB instance:
+
+* Start NocoDB
+* Stop NocoDB
+* View logs
+* Restart NocoDB
+* Monitor NocoDB
+* Update NocoDB
+* Delete NocoDB
+
+
+
+> Backups are not automated. Make sure to manually back up your PostgreSQL or file data if needed.
+
+## Troubleshooting
+
+* **Ports not accessible?** Check firewall settings and make sure port 80 and 443 are open.
+* **SSL not working?** Double-check DNS and ensure the domain resolves correctly.
+* **Re-run script?** It's idempotent and safe to re-run if needed.
diff --git a/lib/iconMap.ts b/lib/iconMap.ts
index 7e461367..0ec26ecc 100644
--- a/lib/iconMap.ts
+++ b/lib/iconMap.ts
@@ -26,6 +26,8 @@ import XTwitter from '@/components/icons/XTwitter';
import Facebook from '@/components/icons/Facebook';
import Linkedin from '@/components/icons/Linkedin';
import Extension from '@/components/icons/Extension';
+import { Cog, BookHeart, Server } from 'lucide-react'
+import { SiNginx, SiApache, SiTraefikproxy, SiCloudron, SiRailway, SiDigitalocean, SiRender, SiKubernetes, SiUbuntu, SiNixos, SiDocker, SiCloudways } from '@icons-pack/react-simple-icons';
const iconMap = {
@@ -56,7 +58,22 @@ const iconMap = {
xTwitter: XTwitter,
facebook: Facebook,
linkedin: Linkedin,
- extension: Extension
+ extension: Extension,
+ docker: SiDocker,
+ nix: SiNixos,
+ ubuntu: SiUbuntu,
+ k8s: SiKubernetes,
+ render: SiRender,
+ digitalocean: SiDigitalocean,
+ aws: SiCloudways,
+ railway: SiRailway,
+ cloudron: SiCloudron,
+ nginx: SiNginx,
+ apache: SiApache,
+ traefik: SiTraefikproxy,
+ cog: Cog,
+ bookheart: BookHeart,
+ server: Server,
} as const;
type IconNameType = keyof typeof iconMap;
@@ -64,4 +81,4 @@ type IconNameType = keyof typeof iconMap;
const IconName = Object.keys(iconMap)
export {iconMap, IconName};
-export type {IconNameType};
\ No newline at end of file
+export type {IconNameType};
diff --git a/lib/source.ts b/lib/source.ts
index 21d7a0e9..dca1eca8 100644
--- a/lib/source.ts
+++ b/lib/source.ts
@@ -4,26 +4,28 @@ import {createMDXSource} from "fumadocs-mdx";
import {iconMap, IconNameType} from "@/lib/iconMap";
import {createElement} from "react";
+const icon = (icon?: string) => {
+
+ if (!icon) {
+ return;
+ }
+ if (icon in iconMap) {
+ return createElement(iconMap[icon as IconNameType], {
+ className: 'w-4 h-4',
+ width: 16,
+ height: 16,
+ });
+ } else {
+ return createElement(iconMap['book']);
+ }
+}
+
// See https://fumadocs.vercel.app/docs/headless/source-api for more info
export const source = loader({
// it assigns a URL to your pages
baseUrl: '/docs/product-docs',
source: docs.toFumadocsSource(),
- icon(icon?: string) {
-
- if (!icon) {
- return;
- }
- if (icon in iconMap) {
- return createElement(iconMap[icon as IconNameType], {
- className: 'w-4 h-4',
- width: 16,
- height: 16,
- });
- } else {
- return createElement(iconMap['book']);
- }
- },
+ icon: icon,
});
export const blogSource = loader({
@@ -39,6 +41,7 @@ export const scriptsSource = loader({
export const selfHostingSource = loader({
baseUrl: '/docs/self-hosting',
source: selfHosting.toFumadocsSource(),
+ icon: icon,
})
export const changelogSource = loader({
diff --git a/next.config.mjs b/next.config.mjs
index f6d21c28..4abd0285 100644
--- a/next.config.mjs
+++ b/next.config.mjs
@@ -5,38 +5,49 @@ const withMDX = createMDX();
/** @type {import('next').NextConfig} */
const config = {
reactStrictMode: true,
- images: {
- remotePatterns: [
- {
- protocol: 'https',
- hostname: 'user-images.githubusercontent.com',
- port: '',
- pathname: '**',
- },
- {
- protocol: 'https',
- hostname: 'elest.io',
- port: '',
- pathname: '**',
- },
- {
- protocol: 'https',
- hostname: 'd16t0pc4846x52.cloudfront.net',
- port: '',
- pathname: '**',
- },{
- protocol: 'https',
- hostname: 'media.tenor.com',
- port: '',
- pathname: '**',
- },{
- protocol: 'https',
- hostname: 'github.com',
- port: '',
- pathname: '**',
- }
- ],
- },
+
+ redirects: async () => {
+ return [
+ {
+ source: '/docs/self-hosting/installation/:path*',
+ destination: '/docs/self-hosting/:path*',
+ permanent: true,
+ },
+ ];
+ },
+
+ images: {
+ remotePatterns: [
+ {
+ protocol: 'https',
+ hostname: 'user-images.githubusercontent.com',
+ port: '',
+ pathname: '**',
+ },
+ {
+ protocol: 'https',
+ hostname: 'elest.io',
+ port: '',
+ pathname: '**',
+ },
+ {
+ protocol: 'https',
+ hostname: 'd16t0pc4846x52.cloudfront.net',
+ port: '',
+ pathname: '**',
+ }, {
+ protocol: 'https',
+ hostname: 'media.tenor.com',
+ port: '',
+ pathname: '**',
+ }, {
+ protocol: 'https',
+ hostname: 'github.com',
+ port: '',
+ pathname: '**',
+ }
+ ],
+ },
};
export default withMDX(config);
diff --git a/package.json b/package.json
index da19cb6a..20edca72 100644
--- a/package.json
+++ b/package.json
@@ -10,6 +10,7 @@
"syncIndex": "tsx scripts/syncIndex.ts"
},
"dependencies": {
+ "@icons-pack/react-simple-icons": "^13.0.0",
"@radix-ui/react-collapsible": "^1.1.8",
"@radix-ui/react-dialog": "^1.1.13",
"@radix-ui/react-dropdown-menu": "^2.1.7",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f11e28f4..e92cdf71 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,6 +8,9 @@ importers:
.:
dependencies:
+ '@icons-pack/react-simple-icons':
+ specifier: ^13.0.0
+ version: 13.0.0(react@19.1.0)
'@radix-ui/react-collapsible':
specifier: ^1.1.8
version: 1.1.11(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
@@ -487,6 +490,11 @@ packages:
resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
deprecated: Use @eslint/object-schema instead
+ '@icons-pack/react-simple-icons@13.0.0':
+ resolution: {integrity: sha512-Dmofr27ZlfBHS/2HDBKodKTUTnIjhH7cjw36WPt1CLg+1gytjr+LeabwWZ6khu/QUxmLjs3e1KrNPiuvOkEpJQ==}
+ peerDependencies:
+ react: ^16.13 || ^17 || ^18 || ^19
+
'@img/sharp-darwin-arm64@0.34.2':
resolution: {integrity: sha512-OfXHZPppddivUJnqyKoi5YVeHRkkNE2zUFT2gbpKxp/JZCFYEYubnMg+gOp6lWfasPrTS+KPosKqdI+ELYVDtg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
@@ -3718,6 +3726,10 @@ snapshots:
'@humanwhocodes/object-schema@2.0.3': {}
+ '@icons-pack/react-simple-icons@13.0.0(react@19.1.0)':
+ dependencies:
+ react: 19.1.0
+
'@img/sharp-darwin-arm64@0.34.2':
optionalDependencies:
'@img/sharp-libvips-darwin-arm64': 1.1.0
@@ -5241,8 +5253,8 @@ snapshots:
'@typescript-eslint/parser': 8.29.1(eslint@8.57.1)(typescript@5.8.3)
eslint: 8.57.1
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.1)
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.1)
+ eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1)
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1)
eslint-plugin-react: 7.37.5(eslint@8.57.1)
eslint-plugin-react-hooks: 5.2.0(eslint@8.57.1)
@@ -5261,7 +5273,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.1):
+ eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1):
dependencies:
'@nolyfill/is-core-module': 1.0.39
debug: 4.4.0
@@ -5272,22 +5284,22 @@ snapshots:
tinyglobby: 0.2.12
unrs-resolver: 1.4.1
optionalDependencies:
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.1)
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.12.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.1):
+ eslint-module-utils@2.12.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1):
dependencies:
debug: 3.2.7
optionalDependencies:
'@typescript-eslint/parser': 8.29.1(eslint@8.57.1)(typescript@5.8.3)
eslint: 8.57.1
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.1)
+ eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1)
transitivePeerDependencies:
- supports-color
- eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.1):
+ eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.8
@@ -5298,7 +5310,7 @@ snapshots:
doctrine: 2.1.0
eslint: 8.57.1
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.1)
+ eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1)
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3