Independent testing Updated August 2026 387 self-hosting guides 5 VPS providers tested

guide

Windmill'i VPS'te Kendiniz Barındırma (Eksiksiz Rehber)

Retool ve Temporal'ın açık kaynaklı alternatifi Windmill'i resmî compose yığınıyla bir VPS'e kurun. Gerçek işçi boyutlandırması, Caddy ile TLS, yedekleme ve ölçeklendirme.

Windmill, betikleri webhook’lara, iş akışlarına, cron görevlerine ve dahili arayüzlere dönüştürür - Retool ve Temporal’ın açık kaynaklı alternatifi. Kendiniz barındırmak zor değil, ama başlamadan önce bilinmesi gereken bir püf noktası var: Redis kullanmaz, internetteki birçok rehber aksini söylese de.

Windmill’i Neden Kendiniz Barındırmalısınız?

Bulut planı hem kişi başına hem de çalıştırma başına faturalandırılır. Kendiniz barındırmak iki sayacı da kaldırır ve bu bir otomasyon platformunda önemlidir, çünkü zamanlanmış olarak çalıştırmak isteyeceğiniz işler tam da çalıştırma ücretlerini biriktirecek olanlardır. Ayrıca betiklerinizi, kimlik bilgilerinizi ve iş günlüklerinizi kendi makinenizde tutar; o betikler çalıştırdığınız her şeyin API anahtarlarını taşır.

Topluluk sürümü AGPL-3.0 lisanslıdır. Kurumsal derleme bir lisans anahtarının ve farklı bir imaj etiketinin arkasındadır; platformu çalıştırmak için ona ihtiyacınız yok.

Doğru VPS’i Seçmek

Windmill uygulamaya göre değil işçiye göre boyutlandırılır. Pratik kural, vCPU başına bir işçi ve her birine 1-2 GB RAM, üstüne Postgres ile sunucu sürecinin payıdır.

SağlayıcıPlanvCPU / RAM / DiskFiyatNotlarBağlantı
ContaboCloud VPS 44 / 8 GB / 100 GB SSD5.50 EUR/ay netDört çekirdek, dört işçilik paralellik demekContabo
Hetzner CloudCX232 / 4 GB / 40 GB NVMe5.49 EUR/ay netVarsayılan iki işçili yığına uyarHetzner
DigitalOceanBasic 4 GB2 / 4 GB / 80 GB SSD24 USD/ayCX23 ile aynı özellikler, dört katı fiyatDigitalOcean
VultrRegular 4 GB2 / 4 GB / 80 GB SSD20 USD/ayEn geniş bölge seçimiVultr
LinodeLinode 4 GB2 / 4 GB / 80 GB SSD24 USD/ayÖngörülebilir performansLinode

İş hacmi işçi sayısıyla ölçeklendiği için burada çekirdek sayısı saat hızından önemlidir. Ayrıntılı karşılaştırma için tam VPS karşılaştırmamıza bakın.

Ön Koşullar

Adım 1: VPS’i Hazırlayın

Bağlanın ve güncelleyin:

ssh root@sunucu-ip-adresiniz
apt update && apt upgrade -y

Docker’ı ve Compose eklentisini kurun:

apt install -y docker.io docker-compose-v2
systemctl enable --now docker
docker compose version

Caddy’nin kullanacağı portları açın:

ufw allow OpenSSH && ufw allow 80 && ufw allow 443
ufw enable

Adım 2: Resmî Compose Yığınını İndirin

Windmill için elle compose dosyası yazmayın. Proje kendi dosyasını yayımlar ve işçileri, indeksleyiciyi ve dil sunucularını doğru biçimde birbirine bağlar:

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

İndirdiğiniz yığın yedi servis çalıştırır:

Bu listede Redis yok ve sizinkinde de olmamalı.

Adım 3: Parolanızı ve Alan Adınızı Ayarlayın

Yayımlanan .env bilinçli olarak zayıf bir varsayılan içerir:

DATABASE_URL=postgres://postgres:changeme@db/windmill?sslmode=disable
WM_IMAGE=ghcr.io/windmill-labs/windmill:main

Veritabanı ilk açılışta oluşturulduğu için changeme değerini o açılıştan önce üretilmiş bir sırla değiştirin:

openssl rand -hex 24

Aynı dosyada BASE_URL değerini alan adınıza ayarlayın. Caddy sertifika istemek için onu okur.

Adım 4: Başlatın

docker compose up -d
docker compose ps

İlk açılış birkaç imaj çeker ve veritabanı göçlerini uygular, bu yüzden ona bir dakika tanıyın. Alan adınızı açıp ilk hesabı oluşturun - o hesap örneğin süper yöneticisi olur.

Adım 5: İhtiyaç Duydukça İşçi Ekleyin

Windmill’i çoğu self-hosting uygulamasından ayıran kısım burası. Tek bir süreci büyüterek değil, işçi konteyneri ekleyerek ölçeklenirsiniz. docker-compose.yml içindeki windmill_worker bloğunu kopyalayın, yeni bir servis adı verin, aynı DATABASE_URL ve MODE=worker değerlerini koruyun, sonra uygulayın:

docker compose up -d

İşçiler Postgres üzerinden koordine olur, başka bir yapılandırma değişmez. Her biri için kabaca bir vCPU ve 1-2 GB RAM ayırın.

Adım 6: Veritabanını Yedekleyin

Önemli olan her şey - betikler, akışlar, zamanlamalar, kaynaklar, iş geçmişi - Postgres’te durur. Bağımlılık önbelleği birimi türetilmiş veridir ve kendini yeniden oluşturur.

docker compose exec db pg_dump -U postgres windmill | gzip > windmill-$(date +%F).sql.gz

Dosyayı sunucudan dışarı kopyalayın. Windmill diğer sistemlerinizin kimlik bilgilerini sakladığı için o dökümü bir sır olarak görün ve şifreli saklayın.

İnsanların Takıldığı Yerler

Bir blogdan Redis’li compose dosyası kopyalamak. Windmill’in ona hiç ihtiyacı olmadı. Konteyner açılır ve boş boş bekler, siz de kuyruğun onu neden kullanmadığını merak edersiniz.

Durağan hâle göre boyutlandırmak. Bellek zirvesi bağımlılık kurulumunda yaşanır. pandas içe aktaran bir Python işi ilk çalıştırmada sonrakilerin çok üstünde RAM ister, yani boştayken sorunsuz görünen bir yığın soğuk bir işte çökebilir.

changeme değerini olduğu gibi bırakmak. Bu, yayımlanan .env dosyasındaki Postgres parolasıdır ve 5432 portunu bir gün dışarı açarsanız fırsatçı bir taramanın ilk deneyeceği şeydir.

Windmill, hızlı çekirdekten çok sayıda çekirdeği ödüllendirir; ucuz Avrupa çok çekirdekli planlarını onun için alışılmadık biçimde iyi bir seçenek yapan da budur. Aynı anda kaç iş çalıştırmak istediğinize göre boyutlandırın, Postgres dökümünü şifreli bir yerde tutun; gerisi rahat yaşanan bir servistir.

Daha fazla self-hosting projesi ve ipucu için awesome-selfhosted listesine veya r/selfhosted topluluğuna göz atın.

Frequently asked questions

Windmill'i kendim barındırmak için Redis gerekiyor mu?

Hayır ve bu pek çok kişinin ayağını kaydırıyor. Windmill hem veritabanı hem de iş kuyruğu olarak PostgreSQL kullanır, dolayısıyla resmî compose dosyasında Redis servisi de REDIS_URL değişkeni de yoktur. Buna rağmen birkaç üçüncü taraf rehber bir tane ekler. İçinde Redis konteyneri olan bir compose dosyası kopyaladıysanız, Windmill'in hiç bağlanmadığı bir servisi çalıştırıyorsunuz ve onu güvenle kaldırabilirsiniz.

Çalışan bir Windmill kurulumuna nasıl işçi eklerim?

Compose dosyasına aynı DATABASE_URL adresini gösteren ve MODE=worker taşıyan bir windmill_worker servisi daha ekleyin, ardından docker compose up -d çalıştırın. İşçiler Postgres üzerinden koordine olur, dolayısıyla başka hiçbir ayarı değiştirmeniz gerekmez. Pratik sınır çekirdek sayınızdır: her standart işçi aynı anda tek bir iş yürütür ve kabaca bir vCPU ile 1-2 GB RAM ister.

Windmill'i HTTPS arkasına nasıl alırım?

Yığın zaten Caddy ile gelir ve varsayılan olarak 80 portunda düz HTTP sunar. Otomatik TLS için BASE_URL değerini alan adınıza ayarlayın, ardından yayımlanan .env dosyasındaki açıklamaların tarif ettiği gibi Caddyfile ile caddy servisini 443'ü açacak biçimde düzenleyin. Sertifikanın ilk açılışta üretilebilmesi için DNS'i sunucuya başlatmadan önce yönlendirin.