Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesiTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
The dependable way to self-host NocoDB on a Linux VPS is to run its official Docker Compose stack on a single server, put it behind HTTPS, and back up three separate things: PostgreSQL, file attachments, and the stack’s configuration. NocoDB’s published baseline is 2 vCPU, 2 GB RAM, and 10 GB of disk; for a production workload, plan for 4 vCPU, 8 GB RAM, and at least 50 GB of disk, with additional capacity for growth.
This guide takes you from a new Linux VPS to a secured deployment using the single-server installer, then covers custom reverse proxies, persistence, disaster recovery, upgrades, and the failure modes that most often interrupt a self-hosted installation.
What the deployment includes
NocoDB’s official single-server deployment is a Docker Compose project. It runs four services:
- nocodb: the web application and API.
- worker: background jobs.
- PostgreSQL: the application database in the bundled setup.
- Redis: queueing and supporting application state.
The installer generates a docker-compose.yml, a docker.env file, nocodb/db.json, an update.sh helper, and a letsencrypt/ directory. The Compose project uses named Docker volumes for PostgreSQL data, Redis data, and NocoDB application and attachment data. Those volumes survive container restarts and docker compose down, but they remain on the same VPS and therefore are not a backup.
#1 Best Overall
- Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
- With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
- Wide Application: attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
- Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
- Economical &Reusable: Built durable materials with a long-lasting battery,our CAGIWIRU air duster it's a sustainable alternative to disposable air cans.
For one public VPS, the single-server installer is the simplest supported path. Use the custom-infrastructure examples instead when PostgreSQL is managed elsewhere, when Redis is external, when you already operate nginx, Caddy, Traefik, or a cloud load balancer, or when you need multiple application replicas.
Choose the VPS size before installing
NocoDB’s current documentation gives these baseline figures:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
| Use case | vCPU | RAM | Disk | What the figure means |
|---|---|---|---|---|
| Published minimum | 2 | 2 GB | 10 GB | NocoDB’s stated minimum, not a capacity guarantee for a particular workload. |
| Recommended production starting point | 4 | 8 GB | 50 GB or more | NocoDB’s production guidance; add space for attachments, database growth, backups, logs, and Docker image layers. |
The minimum can be appropriate for evaluation or a small internal project. A public instance with concurrent users, automations, imports, or large attachments benefits from the recommended size. Disk consumption is often the first limit: uploaded files and PostgreSQL growth are separate from the container images themselves. Leave free space for an upgrade and for a temporary database dump.
Prepare the Linux VPS
Install a supported Linux distribution and Docker
Provision a current, maintained Linux distribution with a static public IP address. Log in over SSH with an administrative account, apply operating-system updates, and install Docker Engine with the Docker Compose plugin. Confirm both commands before proceeding:
docker --version
docker compose version
The installer expects Docker Engine on Linux. If docker compose is unavailable, install the Compose plugin rather than substituting the older standalone docker-compose command.
Point a domain at the VPS
Create an A record for the hostname you will use, such as nocodb.example.com, pointing to the VPS address. Wait for DNS to resolve publicly before requesting a certificate. If you use an AAAA record, ensure IPv6 is actually routed and permitted by the firewall; an unreachable IPv6 address can make certificate validation appear intermittent.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Rank #2
- Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
- Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
- Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
- Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
- Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
Open only the ports you need
For a public HTTPS deployment, the host normally needs SSH on port 22 and web traffic on ports 80 and 443. For example, with UFW:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose
Do not expose PostgreSQL or Redis directly to the internet. The Compose network lets the application reach those services internally.
Install NocoDB with the official single-server installer
Review the installer first
Do not blindly pipe an unfamiliar script into a shell. Download the installer, inspect it, and then execute the reviewed file:
curl -fsSL https://install.nocodb.com/noco.sh -o noco.sh
less noco.sh
bash noco.sh --quick
The --quick option is useful for evaluation. For a public production VPS, follow the installer’s single-server flow so it can configure the domain-aware stack, Traefik, and Let’s Encrypt. Keep the generated project in a directory you can protect and back up.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Run the generated Compose project
From the directory containing docker-compose.yml, start the services:
docker compose up -d
Check service state and follow the NocoDB application log:
Rank #3
- 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
- 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
- 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
- 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
- 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
docker compose ps
docker compose logs -f nocodb
The first start may take time while images are downloaded and the database is initialized. A healthy deployment eventually shows the application listening and the supporting services running. If the installer created a domain/HTTPS configuration, browse to the domain rather than to the server’s private container address.
Understand the generated files
docker-compose.ymldefines services, networks, volumes, ports, and image references.docker.envcontains environment settings, connection details, and secrets used by the stack.nocodb/db.jsonstores NocoDB configuration and must be protected like a secret-bearing configuration file.update.shis a convenience helper generated by the installer.letsencrypt/holds certificate-management state when the domain-aware Traefik mode is used.
Keep these files together. Losing the Compose definition or environment values can make a database dump and attachment archive difficult to use during recovery.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Put NocoDB behind HTTPS
Let the single-server installer manage Traefik
When you supply a real domain in the single-server flow, the generated stack uses Traefik and ports 80 and 443. Traefik obtains and renews Let’s Encrypt certificates, while port 80 remains necessary for HTTP-to-HTTPS redirects and certificate challenges. Ensure DNS resolves to the VPS and that the firewall allows both ports before starting the stack.
After startup, test the HTTPS URL in a private browser window, verify that the certificate name matches the hostname, and confirm that the application does not redirect you to a localhost address.
Use an existing nginx, Caddy, Traefik, or cloud load balancer
If another service already terminates TLS, run NocoDB behind that proxy on port 8080 and do not publish the application directly to the internet. The proxy must preserve the original public URL by forwarding both headers:
Host: nocodb.example.com
X-Forwarded-Proto: https
The exact directive syntax differs by proxy, but the effect must be the same: NocoDB needs the original host and protocol to build links, redirects, and OAuth callback URLs. A missing or incorrect X-Forwarded-Proto commonly causes HTTP/HTTPS redirect loops. A missing Host or incorrect public URL can produce links pointing at localhost and failed OAuth callbacks.
Rank #4
- 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
- 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
- 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
- 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
- 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
Choose one TLS owner. Do not run the installer’s public Traefik listener on the same host ports that an existing proxy already occupies. Either let the generated Traefik instance own ports 80/443 or configure the Compose project for the proxy’s internal 8080 path.
Protect persistent data
Know what is stored where
A recoverable NocoDB deployment has three backup targets:
- PostgreSQL: tables, users, metadata, and application records.
- Attachments: files stored in the NocoDB attachments volume, or in the S3-compatible bucket if you configured object storage.
- Configuration:
docker-compose.yml,docker.env, andnocodb/db.json, plus any proxy and certificate configuration required to recreate the public endpoint.
Backing up only the VPS disk or only the PostgreSQL volume is incomplete. A volume on the same server can be destroyed by disk failure, accidental deletion, or a compromised host.
Create a PostgreSQL dump
For the bundled database service, run the dump from the Compose directory:
docker compose exec db pg_dump -U nocodb nocodb > backup-YYYYMMDD.sql
Replace the date text with the actual backup date. Check that the file is non-empty and copy it off the VPS immediately. A logical dump is also the correct migration method when changing PostgreSQL major versions; raw data-directory copying is compatible only within the same PostgreSQL major version.
Archive attachments and configuration
Identify the named Docker volume used for attachments with docker volume ls, then create a read-only archive of that volume using a temporary container or your established backup system. If attachments use an S3-compatible bucket, protect and back up the bucket according to that provider’s versioning and retention settings instead.
Best Value
- 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
- 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
- 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
- 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
- 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
Store the SQL dump and attachment archive outside the VPS. Keep the Compose file and non-secret configuration in a private repository; keep secrets in a separate protected repository or secret-management workflow. Never commit docker.env or credentials to a public repository.
Recommended Free Tools
Test that a backup can be read
A successful file copy is not proof of recoverability. Periodically verify that the SQL file can be inspected with PostgreSQL tooling, that the attachment archive lists expected files, and that the configuration contains the image tags, volume names, domains, and environment settings needed for a clean installation. The most useful test is a restore on a temporary replacement VPS.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Restore after a host failure
Use this order when rebuilding on a replacement Linux VPS:
- Provision the operating system, install Docker Engine and the Compose plugin, and configure DNS and firewall access.
- Restore the same
docker-compose.yml,docker.env, andnocodb/db.json. Restore proxy configuration if TLS is terminated outside the Compose stack. - Start the project far enough to create the required volumes, then stop NocoDB and the worker so no writes occur during the database restore.
- Restore the PostgreSQL dump into the bundled database service, or point the stack at the restored managed PostgreSQL instance.
- Restore the attachment volume archive, or reconnect the configured S3-compatible bucket.
- Start all services with
docker compose up -dand followdocker compose logs -f nocodb. - Test login, a representative table, an attachment download, HTTPS redirects, and any OAuth callback before directing users to the restored host.
Keep the original domain pointed at the old server until the replacement passes these checks, then update DNS and monitor the new host.
Harden the installation
- Restrict the firewall: allow SSH and, for a public HTTPS deployment, ports 80 and 443 only. Use a source IP allowlist or VPN for SSH when practical.
- Protect secrets: run
chmod 600 docker.env nocodb/db.jsonand ensure ownership prevents untrusted users from reading them. - Handle SELinux correctly: on an enforcing SELinux system, add
:Zto affected bind mounts when SELinux denies access. Do not disable SELinux as the first response. - Set mandatory environment variables: complete every variable marked mandatory in NocoDB’s current reference. These settings affect security, performance, and core functions.
- Keep secrets private: do not put passwords, tokens, database URLs, or
docker.envin a public repository or paste them into support requests. - Schedule maintenance: plan updates for NocoDB, the worker, PostgreSQL, and Redis rather than allowing images to change unexpectedly.
Upgrade safely and pin versions
Do not track latest in production. Pin a specific NocoDB image tag; the upgrade documentation uses nocodb/nocodb:2026.06.0 as an example. Record the current Compose file and image versions before changing anything.
- Create and verify a PostgreSQL dump, attachment backup, and configuration backup.
- Read the release notes and check compatibility with your PostgreSQL and Redis versions.
- Change the image tag in the Compose configuration, then pull the new images:
docker compose pull
- Recreate services and watch the application log:
docker compose up -d
docker compose logs -f nocodb
If the release is unsuitable, stop the stack and restore the previous image tag. Do not downgrade by copying PostgreSQL data directories between different PostgreSQL major versions. Use pg_dump and restore for a major-version migration.
Troubleshoot the common failures
| Symptom | First checks | Likely correction |
|---|---|---|
| NocoDB container exits during startup | docker compose logs -f nocodb; then inspect database and worker logs. |
Check required environment variables, database credentials, and whether the PostgreSQL volume is mismatched or corrupt. |
| Port 443 is unavailable | sudo lsof -i :443 |
Stop or reconfigure the other listener, or use the existing proxy’s internal 8080 path instead of starting a second public Traefik listener. |
| Certificate issuance fails | Confirm public DNS, ports 80/443, and that no proxy blocks the ACME challenge. | Correct the DNS record and firewall, then restart the certificate-owning proxy. |
| Redirects point to localhost or loop forever | Check the configured public URL and the proxy’s Host and X-Forwarded-Proto headers. |
Forward the original host and HTTPS protocol, and use the domain/HTTPS configuration rather than local 8080 mode for a public URL. |
| Attachments are missing after a rebuild | Confirm that the attachment volume or configured object-storage bucket was restored. | Restore the attachment data separately from the SQL dump; PostgreSQL does not contain the uploaded files. |
| The stack worked until an upgrade | Review the pinned image tag, Compose changes, and database major version. | Restore the previous tag, recover from backup if necessary, and use logical dump/restore for PostgreSQL major-version changes. |
Understand the self-hosting license
NocoDB’s self-hosting guidance distinguishes running the software for your own organization from offering it as a hosted or managed service to third parties. Internal organizational use is listed under the Fair Code Sustainable Use License, while reselling access or operating NocoDB as a service may require a commercial license. Review the current license text before offering a hosted service; licensing terms can change independently of the Docker deployment.
Operational checklist
Use this checklist before calling the VPS production-ready:
Quick Recap
- DNS resolves to the intended VPS and the HTTPS certificate covers the chosen hostname.
- Docker Engine and the Compose plugin are installed and report current versions.
- The official generated files are stored in a protected directory.
- The VPS meets at least 2 vCPU, 2 GB RAM, and 10 GB disk; production workloads have the recommended 4 vCPU, 8 GB RAM, and 50 GB or more, plus growth headroom.
- Only required firewall ports are open.
docker.envandnocodb/db.jsonhave mode 600 and are excluded from public repositories.- PostgreSQL, attachments, and configuration are backed up off-server.
- A restore has been tested on a separate host or isolated environment.
- NocoDB images are pinned to an intentional version and upgrades are scheduled after a backup.
- Proxy headers preserve the public host and protocol when TLS terminates outside the Compose stack.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

