Skip to main content
Tutorials13 min read

Windmill auf einem VPS selbst hosten: Komplettanleitung 2026

Stellen Sie Windmill auf Ihrem eigenen VPS mit Docker Compose bereit. Erstellen Sie Skripte, Workflows und interne Tools in Python, TypeScript, Go.

Von AutomationVPS

Why Self-Host Windmill?

Windmill is an open-source developer platform for building scripts, workflows, and internal tools. It supports 15+ programming languages including Python, TypeScript, Go, Bash, Rust, PHP, Java, C#, and R. Windmill claims to be 13x faster than Apache Airflow for workflow execution, making it one of the most performant orchestration platforms available.

Recent 2026 updates have added AI agent support (OpenAI, Anthropic, Gemini, DeepSeek), Workflows as Code v2 with checkpoint-based orchestration, full-code React/Svelte apps, and data tables — making it a comprehensive platform that goes well beyond simple automation.

Self-hosting Windmill gives you unlimited script executions, full data privacy, and access to the Community Edition (AGPLv3) at no cost beyond your VPS hosting.

What You'll Need

Before we start, make sure you have:

  • A VPS with at least 4 GB RAM and 2 vCPU (we recommend Hostinger VPS KVM 1 at $6.49/mo or Contabo at $4.50/mo for 8 GB RAM)
  • A domain name pointed to your VPS IP address
  • Basic familiarity with Linux command line
  • SSH access to your server

Windmill is more resource-intensive than simpler tools like Node-RED. The official recommendation is 1 worker per vCPU and 1-2 GB RAM per worker. For a small setup with 1-2 workers, 4 GB RAM is the practical minimum. For running multiple concurrent jobs, 8 GB RAM with 4 vCPU is recommended.

Step 1: Prepare Your VPS

Connect to your VPS via SSH and update the system:

ssh root@your-server-ip
apt update && apt upgrade -y

Step 2: Install Docker and Docker Compose

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
apt install docker-compose-plugin -y

Step 3: Download the Official Docker Compose Files

Windmill provides an official Docker Compose setup. Download all required files:

mkdir -p /opt/windmill && cd /opt/windmill
curl -o docker-compose.yml https://raw.githubusercontent.com/windmill-labs/windmill/main/docker-compose.yml
curl -o .env https://raw.githubusercontent.com/windmill-labs/windmill/main/.env
curl -o Caddyfile https://raw.githubusercontent.com/windmill-labs/windmill/main/Caddyfile

Step 4: Configure Environment

Edit the .env file to set your database password and domain:

nano .env

Key settings to update:

DATABASE_URL=postgres://postgres:YOUR_SECURE_PASSWORD@db/windmill?sslmode=disable
WM_BASE_URL=https://windmill.yourdomain.com

The official Compose file includes these services:

  • PostgreSQL 16 — Stores all state, job queues, and configuration
  • Windmill Server — API and web UI (port 8000 internally)
  • Windmill Workers — Job execution (default: 3 replicas with 2 GB memory limit each)
  • Windmill Native Worker — Lightweight in-process jobs
  • Caddy — Reverse proxy (port 80/443)
  • Docker-in-Docker — Sidecar for running container-based tasks

Step 5: Start Windmill

docker compose up -d

The first startup pulls several images and initializes PostgreSQL. Monitor the progress:

docker compose logs -f windmill_server

Once ready, access Windmill at http://your-server-ip. The default login credentials are:

Change the default password immediately after your first login.

Step 6: Configure SSL

The official setup uses Caddy as the reverse proxy, which can automatically handle SSL certificates.

Edit the Caddyfile and replace the domain:

windmill.yourdomain.com {
    reverse_proxy windmill_server:8000
    
    @ws {
        path /ws/*
    }
    reverse_proxy @ws windmill_extra:3000
}

Update docker-compose.yml to expose port 443 on the Caddy service and set the BASE_URL environment variable.

Alternatively, if you prefer Nginx as your reverse proxy, remove the Caddy service and configure Nginx separately:

apt install nginx certbot python3-certbot-nginx -y
server {
    listen 80;
    server_name windmill.yourdomain.com;

    location / {
        proxy_pass http://localhost:8000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        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;
    }
}
certbot --nginx -d windmill.yourdomain.com

Step 7: Tune Worker Count for Your VPS

If your VPS has limited resources, reduce the worker count in docker-compose.yml:

windmill_worker:
  deploy:
    replicas: 1  # Reduce from 3 to 1 for small VPS
    resources:
      limits:
        memory: 1024M  # Reduce from 2048M

The rule of thumb: 1 worker per vCPU. A 2-vCPU VPS should run 1 standard worker + 1 native worker.

What Can You Build with Windmill?

Windmill is incredibly versatile:

  • ETL pipelines — Extract, transform, and load data from APIs and databases
  • Cron jobs — Schedule recurring scripts in any supported language
  • Internal tools — Build custom admin panels and dashboards
  • Webhooks — Create HTTP endpoints that trigger workflows
  • AI workflows — Chain LLM calls with OpenAI, Anthropic, or local models
  • Approval flows — Build human-in-the-loop workflows with suspend/resume

Optimization Tips

  • Use native workers for lightweight tasks — Native workers handle simple scripts with much less overhead than standard workers
  • Set up backups — Back up the PostgreSQL database regularly: docker exec windmill-db-1 pg_dump -U postgres windmill > /backups/windmill-$(date +%Y%m%d).sql
  • Monitor resources — Check worker utilization with docker stats and the built-in DB Health Diagnostic Dashboard in Instance Settings
  • Enable Git Sync — Use Windmill's Git Sync v2 feature to version-control your scripts and flows
  • Keep it updated — The main tag always points to the latest release: docker compose pull && docker compose up -d

Which VPS Should You Choose?

Based on our testing, here are our top recommendations for hosting Windmill:

  • Contabo — Best value for Windmill. 4 vCPU and 8 GB RAM at $4.50/mo lets you run 3+ workers comfortably.
  • Hostinger VPS — Great balance of price and performance. KVM 2 plan ($8.49/mo) with 8 GB RAM is ideal.
  • DigitalOcean — Best developer experience. The $24/mo Pro plan (2 vCPU, 4 GB) works for small setups.

Conclusion

Windmill is a powerhouse for developers who want a self-hosted platform that handles scripts, workflows, and internal tools in one place. With support for 15+ programming languages and blazing-fast execution, it's a serious alternative to both Retool and Temporal.

Get started with Contabo for the best resource-to-price ratio, or Hostinger if you want an easier setup experience. You'll have Windmill running in under 30 minutes.

Bereit zum Automatisieren? Holen Sie sich heute einen VPS.

Starten Sie noch heute mit Hostinger VPS-Hosting. Sonderpreise verfügbar.

Hostinger VPS holen

* Affiliate-Link — wir erhalten möglicherweise eine Provision ohne zusätzliche Kosten für Sie

#windmill#self-hosting#docker#automation