Skip to content

Installing Twenty CRM on Hetzner

This guide walks you through deploying Twenty CRM on a Hetzner server. It assumes you have already completed the Coolify + Hetzner Deployment with Docker and NGINX Proxy Manager installed.

Prerequisites

  • A Hetzner server with Docker and NGINX Proxy Manager installed
  • A domain name (we'll use Porkbun in this example)
  • Basic command line knowledge

🌐 1. Point DNS to Your Server

On Porkbun:

Type Host Answer (IP Address) TTL
A crm your.server.ip 300

📝 This will resolve crm.yourdomain.com to your VPS.


📁 2. Clone and Configure Twenty CRM

Here are the offical install docs to Twenty CRM:

Official Twenty CRM Docs

One-line Docker Install

Install the latest stable version of Twenty with a single command:

bash <(curl -sL https://git.new/20)
To install a specific version or branch:

VERSION=vx.y.z BRANCH=branch-name bash <(curl -sL https://git.new/20)
- Replace x.y.z with the desired version number. - Replace branch-name with the name of the branch you want to install.

Alternatively, Clone the repo:

git clone https://github.com/TwentyHQ/twenty-docker.git
cd twenty-docker

Create a .env file:

nano .env

Example contents:

PG_DATABASE_USER=postgres
PG_DATABASE_PASSWORD=your_password
PG_DATABASE_HOST=db
PG_DATABASE_PORT=5432

NODE_PORT=3000
SERVER_URL=https://crm.yourdomain.com

REDIS_URL=redis://redis:6379

STORAGE_TYPE=local

APP_SECRET=your_random_secret

Generate a secure secret:

openssl rand -hex 32

Add restart: always to docker-compose.yml

Add this line under each service in your docker-compose.yml:

restart: always


🧱 3. Start Twenty CRM

docker compose up -d

🔁 4. Configure NGINX Proxy Manager

  1. Open http://your.server.ip:81
  2. Go to Proxy Hosts > Add Proxy Host
  3. Fill in:
  4. Domain Names: crm.yourdomain.com
  5. Forward Hostname / IP: localhost
  6. Forward Port: 3000
  7. ✅ Websockets Support
  8. ✅ Block Common Exploits
  9. Go to the SSL tab:
  10. Enable SSL
  11. Request a new Let's Encrypt certificate
  12. Accept terms and enter a valid email
  13. Save

✅ 5. Test Your Installation

Visit:

https://crm.yourdomain.com

You should see the live Twenty CRM instance with a green padlock ✅


📋 Post-Installation Checklist

  • All containers are running (docker ps)
  • DNS is resolving properly
  • SSL certificate is working
  • .env file and secrets are backed up securely
  • All services have restart: always set

🔧 Troubleshooting

If you encounter issues:

  1. Check container logs:
    docker logs twenty-docker-web-1
    
  2. Verify all services are running:
    docker compose ps
    
  3. Ensure DNS has propagated:
    dig crm.yourdomain.com
    

Author: Wesley Ordonez Last updated: April 14, 2025