Coolify Kurulumu: Self-Hosted PaaS ile Uygulama Deployment
Coolify kurulumu, Docker ve Git entegrasyonu, uygulama deployment, veritabanı yönetimi, SSL sertifikaları, environment variables ve Heroku/Netlify alternatifi self-hosted PaaS.
Uptime Kuma kurulumu Docker ile, HTTP/TCP/DNS/ping monitörleme, bildirim entegrasyonları (Telegram, Discord, email), status page oluşturma ve alert yapılandırması.
Uptime Kuma, servislerinizin ve web sitelerinizin çalışma durumunu izleyen, self-hosted bir uptime monitoring aracıdır. Güzel bir web arayüzü, çeşitli monitör türleri ve zengin bildirim entegrasyonlarıyla Uptime Robot'a harika bir alternatif sunar.
Uptime Kuma'nın öne çıkan özellikleri:
docker run -d \
--name uptime-kuma \
--restart=always \
-p 3001:3001 \
-v uptime-kuma:/app/data \
louislam/uptime-kuma:latest
Kurulum tamamlandıktan sonra:
http://SUNUCU_IP:3001
# docker-compose.yml
version: '3.8'
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
restart: unless-stopped
ports:
- "3001:3001"
volumes:
- uptime-kuma:/app/data
security_opt:
- no-new-privileges:true
volumes:
uptime-kuma:
docker compose up -d
# /etc/nginx/sites-available/uptime.example.com
server {
listen 80;
server_name uptime.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name uptime.example.com;
ssl_certificate /etc/letsencrypt/live/uptime.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/uptime.example.com/privkey.pem;
location / {
proxy_pass http://localhost:3001;
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;
proxy_cache_bypass $http_upgrade;
}
}
sudo ln -s /etc/nginx/sites-available/uptime.example.com /etc/nginx/sites-enabled/
sudo certbot --nginx -d uptime.example.com
sudo nginx -t && sudo systemctl reload nginx
Web arayüzüne ilk girişte admin hesabı oluşturun:
Web sitesi ve API endpoint'lerini izlemek için:
Monitor Type: HTTP(S)
Friendly Name: Ana Sayfa
URL: https://example.com
Heartbeat Interval: 60 saniye
Retries: 3
Accepted Status Codes: 200-299
Gelişmiş HTTP ayarları:
# Keyword monitoring (sayfada belirli metin arama)
Monitor Type: HTTP(S) - Keyword
Keyword: "Hoş geldiniz"
# JSON Query monitoring (API response kontrolü)
Monitor Type: HTTP(S) - JSON Query
JSON Path: $.status
Expected Value: ok
# Basic Auth gerektiren endpoint
Authentication: Basic Auth
Username: api_user
Password: api_password
Monitor Type: TCP Port
Friendly Name: MySQL Veritabanı
Hostname: db.example.com
Port: 3306
Heartbeat Interval: 120 saniye
Monitor Type: DNS
Friendly Name: DNS Kontrolü
Hostname: example.com
Resolver Server: 8.8.8.8
DNS Resolve Type: A
Expected Value: 1.2.3.4
Monitor Type: Ping
Friendly Name: Sunucu Ping
Hostname: 192.168.1.1
Heartbeat Interval: 60 saniye
# Docker container durumunu izle
Monitor Type: Docker Container
Container Name / ID: nginx
Docker Host: /var/run/docker.sock
Monitor Type: HTTP(S)
URL: https://example.com
# SSL sekmesinde:
Enable SSL Certificate Expiry Notification: ON
Notify Before (days): 30
# 1. BotFather'dan bot oluşturun
# /newbot komutuyla bot adı ve username belirleyin
# Bot Token alın: 1234567890:ABCdefGHIjklMNOpqrSTUvwxYZ
# 2. Chat ID öğrenin
# Bota mesaj gönderin, ardından:
curl https://api.telegram.org/bot<TOKEN>/getUpdates
# "chat":{"id":123456789} değerini not alın
Uptime Kuma'da Telegram ayarları:
Notification Type: Telegram
Bot Token: 1234567890:ABCdefGHIjklMNOpqrSTUvwxYZ
Chat ID: 123456789
Message Thread ID: (opsiyonel, grup konusu için)
# Discord'da Webhook oluşturma:
# Server Settings → Integrations → Webhooks → New Webhook
# Webhook URL kopyala
Notification Type: Discord
Discord Webhook URL: https://discord.com/api/webhooks/...
Username: Uptime Kuma
Prefix: [ALERT]
Notification Type: Slack
Slack Webhook URL: https://hooks.slack.com/services/...
Channel: #alerts
Username: Uptime Kuma
Icon Emoji: :warning:
Notification Type: Email (SMTP)
From Email: alerts@example.com
To Email: admin@example.com
SMTP Host: smtp.gmail.com
SMTP Port: 587
SMTP Username: alerts@example.com
SMTP Password: uygulama-sifresi
Security: STARTTLS
# Özel webhook ile herhangi bir servise bildirim gönder
Notification Type: Webhook
Post URL: https://api.example.com/alerts
Content Type: application/json
# Örnek payload:
{
"monitor": "{{monitorName}}",
"status": "{{status}}",
"message": "{{msg}}",
"time": "{{time}}"
}
status.example.com# Status Page ayarları:
Title: REXE Servis Durumu
Description: Tüm servislerimizin anlık durumu
Theme: Auto (Light/Dark)
Custom CSS: (özel stil)
Footer Text: © 2024 REXE Teknoloji
# Domain bağlama:
Custom Domain: status.example.com
# DNS: CNAME status.example.com → uptime.example.com
# Status page'de incident oluşturma:
# Status Pages → Edit → Incidents → Create Incident
Title: Planlı Bakım
Content: 02:00-04:00 arası bakım yapılacaktır.
Style: info / warning / danger
Planlı bakım sürelerinde yanlış alarm almamak için:
Maintenance → Add Maintenance
Title: Haftalık Bakım
Strategy: Recurring
Start Time: Pazar 02:00
End Time: Pazar 04:00
Timezone: Europe/Istanbul
Affected Monitors: Tüm monitörler
# Docker ile güncelleme
docker stop uptime-kuma
docker rm uptime-kuma
docker pull louislam/uptime-kuma:latest
# Yeniden başlat (veriler volume'da korunur)
docker run -d \
--name uptime-kuma \
--restart=always \
-p 3001:3001 \
-v uptime-kuma:/app/data \
louislam/uptime-kuma:latest
# Uptime Kuma verilerini yedekle
docker exec uptime-kuma tar -czf /tmp/backup.tar.gz /app/data
docker cp uptime-kuma:/tmp/backup.tar.gz ./uptime-kuma-backup-$(date +%Y%m%d).tar.gz
# Geri yükleme
docker cp ./uptime-kuma-backup.tar.gz uptime-kuma:/tmp/
docker exec uptime-kuma tar -xzf /tmp/backup.tar.gz -C /
REXE sunucularınızda çalışan tüm servisleri Uptime Kuma ile izleyebilirsiniz. Telegram bildirimleri sayesinde servis kesintilerinden anında haberdar olursunuz.
Firewall'da 3001 portunu açın: 'ufw allow 3001/tcp'. Container'ın çalıştığını 'docker ps | grep uptime-kuma' ile kontrol edin. Nginx reverse proxy kullanıyorsanız proxy_pass ayarlarını ve SSL sertifikasını kontrol edin.
Bot token'ın doğru olduğunu kontrol edin. Chat ID'yi doğrulamak için 'curl https://api.telegram.org/bot<TOKEN>/getUpdates' komutunu çalıştırın. Bota en az bir mesaj göndermiş olmanız gerekir. Grup kullanıyorsanız botu gruba ekleyin ve admin yapın. Test bildirimi göndermek için Notification ayarlarında 'Test' butonunu kullanın.
Accepted Status Codes ayarını kontrol edin (varsayılan: 200-299). Siteniz 301/302 redirect dönüyorsa bunu da ekleyin. SSL sertifika hatası varsa 'Ignore TLS/SSL error' seçeneğini etkinleştirin. Timeout süresini artırın. Uptime Kuma'nın çalıştığı sunucudan siteye erişilebildiğini doğrulayın.
Status page ayarlarında 'Custom Domain' alanına domain adınızı girin (örn: status.example.com). DNS'te CNAME kaydı oluşturun: status.example.com → uptime.example.com. Eğer Nginx reverse proxy kullanıyorsanız yeni bir server block ekleyin. Let's Encrypt ile SSL sertifikası alın.
Heartbeat interval'ı artırın (60 saniye yerine 120-300 saniye). Gereksiz monitörleri devre dışı bırakın. Uptime Kuma container'ına daha fazla kaynak tahsis edin. SQLite veritabanı büyüdüğünde yavaşlayabilir; düzenli olarak eski kayıtları temizleyin. 'Settings → Database → Shrink Database' seçeneğini kullanın.
HTTP(S) monitörü oluştururken veya düzenlerken 'SSL' sekmesine gidin. 'Enable SSL Certificate Expiry Notification' seçeneğini etkinleştirin. Kaç gün önce bildirim almak istediğinizi belirleyin (örn: 30 gün). Bildirim kanalınızın (Telegram, email vb.) yapılandırılmış olduğundan emin olun.
Coolify kurulumu, Docker ve Git entegrasyonu, uygulama deployment, veritabanı yönetimi, SSL sertifikaları, environment variables ve Heroku/Netlify alternatifi self-hosted PaaS.
Nextcloud kurulumu Docker ile, Apache/Nginx yapılandırması, veritabanı kurulumu, SSL sertifikası, dosya senkronizasyonu, uygulama mağazası ve performans optimizasyonu.
Portainer CE kurulumu, Docker ve Kubernetes yönetimi, stack deployment, volume/network yönetimi, kullanıcı yetkilendirme, webhook ve GitOps entegrasyonu.