...
πŸš€ how to deploy directus on ubuntu vps
Learn how to deploy directus on ubuntu vps!

This guide details the steps required to deploy Directus on Ubuntu VPS server. Our guide walks through deploying Directus on a fresh Ubuntu VPS with PostgreSQL, PM2, and Nginx.

What is Directus?

Directus is an open-source headless CMS and data platform that sits on top of a SQL database (like PostgreSQL or MySQL) and instantly turns it into a real-time API + admin app.

Core Concept

Instead of creating its own database structure, Directus:

  • Connects directly to your existing database
  • Adds a no-code admin interface
  • Automatically generates:
  • REST API
  • GraphQL API
  • Realtime data access

What It Does (In Plain Terms)

  • You create tables β†’ Directus turns them into content collections
  • You add fields β†’ Directus gives you forms/UI automatically
  • Your data β†’ instantly available via API for apps, websites, or services

Key Features

  • Headless CMS
    • Manage content without being tied to a frontend
    • Use with:
    • WordPress frontends
    • Next.js / React apps
    • Mobile apps
    • Static sites
  • Database-First Approach
    • Works with:
    • PostgreSQL
    • MySQL
    • SQLite
    • No proprietary schema lock-in
  • Auto-Generated APIs
    • REST + GraphQL out of the box
    • No backend coding required
  • Admin Dashboard
    • Clean UI for:
    • Content editing
    • User roles & permissions
    • File uploads
    • Workflows
  • Authentication & Permissions
    • Fine-grained access control
    • JWT-based auth
    • Role-based permissions
  • Extensions & Automation
    • Webhooks
    • Flows (automation builder)
    • Custom endpoints

How It Compares

Tool Type Key Difference
WordPress Traditional CMS Tied to frontend
Strapi Headless CMS Own schema system
Directus Data platform Uses your existing DB

Typical Use Cases

  • SaaS backends (admin + API)
  • Website content management
  • Internal dashboards
  • Multi-tenant applications
  • Data management layer for apps

Why People Use It

  • No vendor lock-in
  • Works with existing databases
  • Fast to deploy
  • Developer + non-technical friendly

Simple Architecture

Database (PostgreSQL)
        ↓
    Directus
        ↓
 REST / GraphQL API
        ↓
Frontend (Website / App)

System Requirements

In order to deploy Directus on Ubuntu VPS, ensure your environment meets the following prerequisite conditions:

Launch 100% ssd ubuntu vps from $3. 19/mo!

How to Deploy Directus on Ubuntu VPS (Production-Ready Guide)

To deploy Directus on Ubuntu VPS, follow the steps provided below:

  1. Update System

    apt update && apt upgrade -y
    
  2. Install Node.js (LTS)

    curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
    apt install -y nodejs
    

    Verify:

    node -v
    npm -v
    
  3. Install PostgreSQL

    apt install -y postgresql postgresql-contrib
    

    Switch to postgres user:

    sudo -u postgres psql
    

    Create DB + user:

    CREATE DATABASE directus;
    CREATE USER directus_user WITH PASSWORD 'strongpassword';
    ALTER ROLE directus_user SET client_encoding TO 'utf8';
    ALTER ROLE directus_user SET default_transaction_isolation TO 'read committed';
    ALTER ROLE directus_user SET timezone TO 'UTC';
    GRANT ALL PRIVILEGES ON DATABASE directus TO directus_user;
    \q
    
  4. Install Directus

    mkdir -p /opt/directus
    cd /opt/directus
    
    npm init -y
    npm install directus
    
  5. Configure Environment

    Create .env file:

    nano /opt/directus/.env
    
    HOST=0.0.0.0
    PORT=8055
    
    KEY=your-random-secret-key
    SECRET=your-random-secret
    
    DB_CLIENT=pg
    DB_HOST=127.0.0.1
    DB_PORT=5432
    DB_DATABASE=directus
    DB_USER=directus_user
    DB_PASSWORD=strongpassword
    
    ADMIN_EMAIL=admin@example.com
    ADMIN_PASSWORD=StrongAdminPassword123
    
  6. Initialize Directus

    npx directus bootstrap
    
  7. Test Run

    npx directus start
    

    Access:

    http://YOUR_SERVER_IP:8055
    
  8. Install PM2 (Process Manager)

    npm install -g pm2
    

    Start Directus:

    pm2 start "npx directus start" --name directus
    pm2 save
    pm2 startup
    
  9. Install Nginx (Reverse Proxy)

    apt install -y nginx
    

    Create config:

    nano /etc/nginx/sites-available/directus
    
    server {
        listen 80;
        server_name yourdomain.com;
    
        location / {
            proxy_pass http://127.0.0.1:8055;
            proxy_http_version 1.1;
    
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
    
            proxy_cache_bypass $http_upgrade;
        }
    }
    

    Enable site:

    ln -s /etc/nginx/sites-available/directus /etc/nginx/sites-enabled/
    nginx -t
    systemctl restart nginx
    
  10. Enable HTTPS (Let’s Encrypt)

    Install Certbot:

    apt install -y certbot python3-certbot-nginx
    

    Run:

    certbot --nginx -d yourdomain.com
    
  11. Firewall Setup

    ufw allow OpenSSH
    ufw allow 'Nginx Full'
    ufw enable
    
  12. Useful PM2 Commands

    pm2 status
    pm2 logs directus
    pm2 restart directus
    pm2 stop directus
    
  13. Optional: Storage (Uploads)

    Add to .env:

    STORAGE_LOCATIONS=local
    STORAGE_LOCAL_ROOT=./uploads
    

    Create directory:

    mkdir /opt/directus/uploads
    
  14. Production Hardening (Recommended)

    • Use strong secrets
    • Move .env permissions:
      chmod 600 /opt/directus/.env
    
    • Enable PostgreSQL remote restrictions
    • Set up backups (cron + pg_dump)
    • Use Cloudflare or WAF
    • Monitor with PM2 + logs
  15. Auto Backup Script (Optional)

    crontab -e
    
    0 2 * * * pg_dump -U directus_user directus > /opt/backups/directus_$(date +\%F).sql
    

Done

You now have a production-ready Directus deployment:

  • API: https://yourdomain.com
  • Admin Panel: same URL

Launch 100% ssd ubuntu vps from $3. 19/mo!

Conclusion

You now know how to deploy Directus on Ubuntu VPS.


Compare Ubuntu VPS Plans

KVM-SSD-1
KVM-SSD-8
KVM-SSD-16
KVM-SSD-32
CPU
1 Core
2 Cores
4 Cores
8 Cores
Memory
1 GB
8 GB
16 GB
32 GB
Storage
16 GB NVMe
128 GB NVMe
256 GB NVMe
512 GB NVMe
Bandwidth
1 TB
4 TB
8 TB
16 TB
Network
1 Gbps
1 Gbps
1 Gbps
1 Gbps
Delivery Time
⏱️ Instant
⏱️ Instant
⏱️ Instant
⏱️ Instant
Location
US/FR
US/FR
US/FR
US/FR
Price
$7.58*
$39.50*
$79.40*
$151.22*
KVM-SSD-1
CPU: 1 Core
Memory: 2 GB
Storage: 16 GB NVMe
1 TB
KVM-SSD-8
CPU: 2 Cores
Memory: 8 GB
Storage: 128 GB NVMe
4 TB
KVM-SSD-16
CPU: 4 Cores
Memory: 16 GB
Storage: 256 GB NVMe
8 TB
KVM-SSD-32
CPU: 8 Cores
Memory: 32 GB
Storage: 512 GB NVMe
16 TB

Avatar of editorial staff

Editorial Staff

Rad Web Hosting is a leading provider of web hosting, Cloud VPS, and Dedicated Servers in Dallas, TX.
lg