Kendi kendine barındırma, kontrol, gizlilik ve özelleştirme arayan geliştiriciler ve homelab kullanıcıları arasında popüler bir tercih haline geldi. Modern Web uygulamaları geliştirmek ve yönetmek için tasarlanmış açık kaynaklı platform Windmill, etkili bir şekilde VPS üzerinde barındırılabilir. Bu kılavuz, Windmill’ı VPS’nize kurmak ve çalıştırmak için kapsamlı, pratik bir yaklaşım sunar; kolaylık ve ölçeklenebilirlik için Docker dağıtımına vurgu yapar.
Neden Windmill’ı Kendiniz Host Edin?
Windmill, web uygulamaları geliştirme ve dağıtma için zengin özelliklere sahip düşük kod platformu sağlar. Kendiniz barındırmanız şunları sağlar:
- Tam veri gizliliği ve kontrol
- Özelleştirme esnekliği
- Uygun fiyatlı VPS sağlayıcılarında maliyet etkin dağıtım
Doğru VPS Seçimi
Windmill’ı barındırmak için yeterli CPU, RAM ve bant genişliği olan temel bir VPS yeterlidir. Popüler bütçe VPS sağlayıcıları şunlardır:
| Sağlayıcı | Fiyat | Öne Çıkan Özellikler | Ortağı Linki |
|---|---|---|---|
| Contabo VPS | 5.99 EUR/ay | Cömert kaynaklar, dünya çapında veri merkezleri | Contabo VPS |
| Hetzner Cloud | 4.15 EUR/ay | Güçlü bulut altyapısı, esnek ölçeklenebilirlik | Hetzner Cloud |
| DigitalOcean | 6 USD/ay | Geliştirici dostu, basit API | DigitalOcean |
| Vultr | 6 USD/ay | Çoklu konumlar, kolay dağıtım | Vultr |
| Linode | 5 USD/ay | İyi performans, uygun fiyatlı | Linode |
Detaylı karşılaştırma için [tam VPS karşılaştırmamıza] bakabilirsiniz.
Ön Koşullar
- VPS örneği (Ubuntu 22.04 LTS önerilir)
- SSH erişimi ve root yetkileri
- Linux komutları hakkında temel bilgi
- Docker ve Docker Compose kurulumu
Adım 1: VPS’nizi Hazırlayın
SSH ile bağlanın:
ssh root@sunucu-vps-ip'niz
Sistem güncelleyin:
apt update && apt upgrade -y
Docker ve Docker Compose’u yükleyin:
apt install -y docker.io docker-compose
systemctl enable --now docker
Kurulumu doğrulayın:
docker --version
docker-compose --version
Adım 2: Windmill’ı Docker ile Dağıtın
Windmill kurulumunuz için bir dizin oluşturun:
mkdir -p ~/windmill
cd ~/windmill
Bir docker-compose.yml dosyası oluşturun:
version: '3'
services:
windmill:
image: windmillfoundation/windmill:latest
container_name: windmill
environment:
- SECRET_KEY=your-secret-key
- DATABASE_URL=postgres://windmill:password@db:5432/windmill
- REDIS_URL=redis://redis:6379
ports:
- "80:8000"
depends_on:
- db
- redis
db:
image: postgres:14
environment:
- POSTGRES_DB=windmill
- POSTGRES_USER=windmill
- POSTGRES_PASSWORD=password
volumes:
- windmill_db_data:/var/lib/postgresql/data/
redis:
image: redis:6
volumes:
- windmill_redis_data:/data
volumes:
windmill_db_data:
windmill_redis_data:
your-secret-key yerine güçlü ve benzersiz bir anahtar koyun; bu anahtarı openssl rand -hex 32 komutuyla oluşturabilirsiniz.
Adım 3: Windmill’ı Yapılandırın ve Çalıştırın
Konteynerleri başlatın:
docker-compose up -d
Hata olup olmadığını kontrol edin:
docker-compose logs -f
Tüm konteynerler çalıştıktan sonra, Windmill’a sunucunuzun IP adresi ve port 80 üzerinden erişin:
http://sunucu-ipniz
İlk kurulum sihirbazını takip ederek yapılandırmayı tamamlayın.
Adım 4: Dağıtımınızı Güvence Altına Alın
- SSL ile ters proxy yapılandırması (Let’s Encrypt ile Nginx kullanarak).
- Varsayılan şifreleri ve gizlilik anahtarlarını değiştirin.
- Sistem ve konteynerleri düzenli olarak güncelleyin.
Örnek Nginx SSL Ters Proxy
Nginx’i kurun:
apt install -y nginx
Certbot ile SSL sertifikası alın:
apt install -y certbot python3-certbot-nginx
certbot --nginx -d yourdomain.com
/etc/nginx/sites-available/windmill dosyasını yapılandırın:
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
location / {
proxy_pass http://localhost:80;
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;
}
}
Nginx yapılandırmasını etkinleştirin:
ln -s /etc/nginx/sites-available/windmill /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
SSS (Sıkça Sorulan Sorular)
1. Windmill’ı ücretsiz tier VPS üzerinde kendi kendine host edebilir miyim?
Teknik olarak mümkün olsa da, ücretsiz VPS planları genellikle CPU, RAM ve depolama gibi kaynaklarda sınırlıdır ve Windmill gibi uygulamalar için yeterli olmayabilir. Ayrıca, ücretsiz katmanlar genellikle uptime ve bant genişliği konusunda kısıtlamalara sahiptir. Kararlı bir deneyim için Hetzner Cloud veya Contabo gibi düşük maliyetli bir VPS önerilir. Kaynakların düzgün tahsis edilmesi Windmill’ın sorunsuz çalışmasını sağlar, özellikle de yük altında. Seçtiğiniz sağlayıcının şartlarını kontrol ederek beklenmedik kesintilerden kaçının.
2. VPS üzerinde Windmill dağıtımının güvenliği ne kadar sağlıklıdır?
Güvenlik, doğru yapılandırmaya bağlıdır. Ortam değişkenleri için güçlü ve benzersiz gizlilik anahtarları kullanın. Certbot ile SSL sertifikası kurarak HTTPS’yi zorunlu kılın. Sunucunuzu ve Docker imajlarınızı düzenli olarak güncelleyin. SSH erişimini sınırlandırın ve mümkünse root girişini devre dışı bırakın. Güvenlik duvarı veya fail2ban gibi araçlar brute-force saldırılarına karşı koruma sağlar. Daha fazla güvenlik uygulaması için [r/selfhosted] ve [awesome-selfhosted] sitelerindeki kendi kendine barındırma güvenlik yönergelerine göz atabilirsiniz.
3. Windmill’ı VPS üzerinde kurarken en sık karşılaşılan sorunlar nelerdir?
Yaygın sorunlar arasında yanlış çevresel değişkenler nedeniyle konteyner başlatma hataları, port çatışmaları veya kaynak yetersizlikleri bulunur. Docker’in düzgün kurulduğundan ve konteynerlere yeterli kaynak ayrıldığından emin olun. Her zaman docker-compose logs ile logları kontrol edin. Gizlilik anahtarlarının yanlış yapılandırılması veya ağ sorunları da sorunlara neden olabilir. Sorunu çözmek için konteyner sağlığını, ağ ayarlarını ve ortam değişkenlerini doğrulayın; Windmill belgelerinden belirli yapılandırma seçeneklerine bakın.
Son Düşünceler
Windmill’ı kendiniz barındırmak, web uygulaması geliştirme ortamınız üzerinde tam kontrol sağlar. Docker kullanımı, çeşitli VPS sağlayıcılarında dağıtmayı ve ölçeklendirmeyi basitleştirir. En iyi sonuçlar için güvenilir ve düşük maliyetli bir sağlayıcı seçin, kurulumu SSL ile güvence altına alın ve düzenli güncellemeleri takip edin. Bu yaklaşım, kendi kendine barındırılan, açık kaynaklı yazılımların ruhuyla uyumludur ve [r/selfhosted] ile [awesome-selfhosted] topluluğu tarafından desteklenmektedir.
İyi kendi kendine barındırma! --- End ---