Railway
Railway, Dockerfile’ı doğrudan GitHub’dan derler; HTTPS ve WebSocket desteği hazır gelir ve servise kalıcı bir disk (volume) bağlayabilirsiniz. Bu rehber, kendi Oyla kurulumunuzu kendi alan adınızla Railway’de yayına almayı anlatıyor. Railway’in Hobby planında aylık yaklaşık 5 dolar ödemeyi bekleyin.
Başlamadan önce
Bölüm başlığı “Başlamadan önce”- Bir Railway hesabı.
- Oyla deposunun, Railway’in erişebildiği bir GitHub hesabında bulunması.
mftnakrsu/oyladeposunun bir fork’u iş görür ve güncellemeleri ne zaman alacağınıza siz karar verirsiniz. - Kendi alan adınızı kullanacaksanız alan adınızın DNS ayarlarına erişim.
1. Servisi oluşturun
Bölüm başlığı “1. Servisi oluşturun”- Railway’de yeni bir proje oluşturun ve Deploy from GitHub repo’yu seçin.
- Oyla deposunu seçin.
Railway Dockerfile’ı bulur ve derler. Depodaki railway.json dosyası Railway’e Dockerfile’ı
kullanmasını söyler ve sağlık kontrolü (healthcheck) yolunu /api/health olarak ayarlar; böylece
yeni bir sürüm ancak sunucu cevap verdiğinde yayına girer.
PORT değişkenini ayarlamanız gerekmez: Railway bu değişkeni kendisi verir, Oyla da onu dinler.
2. Volume ekleyin
Bölüm başlığı “2. Volume ekleyin”Volume olmadan her yeni sürüm boş bir veritabanıyla başlar.
- Oyla servisine bir Volume ekleyin.
- Bağlama yolunu (mount path)
/dataolarak ayarlayın.
İmaj veritabanını /data/oyla.db konumunda tuttuğu için başka bir şeyi değiştirmeniz gerekmez.
3. Değişkenleri ayarlayın
Bölüm başlığı “3. Değişkenleri ayarlayın”Servisin Variables sekmesine şunları ekleyin:
| Değişken | Değer | Neden |
|---|---|---|
OYLA_TRUST_PROXY |
true |
Oyla’nın önünde Railway’in proxy’si var. Bu ayar sayesinde hız sınırları proxy’nin değil, her ziyaretçinin kendi adresine göre uygulanır. |
OYLA_CREATE_PASSWORD |
uzun bir şifre | İsteğe bağlı. Yalnızca şifreyi bilenler sunum oluşturabilir; katılım herkese açık kalır. |
Değişken değişiklikleri bir sonraki dağıtımda (deploy) geçerli olur; Railway önerdiğinde değişiklikleri dağıtın.
RAILWAY_RUN_UID ayarına gerek yok. Railway volume’ları root kullanıcısına ait olarak bağlar;
imajın giriş betiği açılışta /data klasörünü yetkisiz node kullanıcısına devreder ve sunucuyu
bu kullanıcıyla çalıştırır.
4. Alan adınızı ekleyin
Bölüm başlığı “4. Alan adınızı ekleyin”Railway, ilk deneme için kullanışlı olan bir *.up.railway.app adresi üretebilir. Kendi alan
adınız için, örneğin oyla.example.com:
- Servisin Settings bölümünü açın ve Networking kısmına gidin.
- Özel alan adı (custom domain) ekleyin ve adresi girin.
- Railway size bir CNAME kaydı gösterir. Bu kaydı DNS sağlayıcınızda oluşturun: ad alt alan
adıdır (
oyla), değer ise Railway’in gösterdiği hedeftir. - Railway alan adını etkin gösterene kadar bekleyin. HTTPS sertifikasını kendisi alır.
Sunum ekranı hangi adreste açıldıysa onu gösterir. … adresine gidin ve … kodunu girin yazısında ve QR kodda kendi alan adınızın görünmesi için sunum ekranını o adreste açın.
5. Kurulumu kontrol edin
Bölüm başlığı “5. Kurulumu kontrol edin”https://alan-adiniz/api/healthadresi{"status":"ok"}döndürüyor olmalı.- Bir sunum oluşturun, sunum ekranını açın ve telefonunuzdan katılın. Herkese açık yolu denemek için aynı Wi-Fi yerine mobil veriyi kullanın.
- Servisi bir kez yeniden dağıtın ve sunumun hâlâ yerinde olduğunu kontrol edin. Kaybolduysa
volume
/datayoluna bağlı değildir.
Güncellemeler
Bölüm başlığı “Güncellemeler”Railway, bağlı dal (branch) değiştiğinde servisi yeniden dağıtır. Fork kullanıyorsanız yeni sürümü almak için fork’unuzu asıl depoyla eşitleyin. Veriler volume’da kalır, veritabanı geçişleri (migration) yeni sürüm başlarken çalışır.
Diğer barındırma seçenekleri
Bölüm başlığı “Diğer barındırma seçenekleri”Railway seçeneklerden yalnızca biri. Oyla şu koşulları sağlayan her ortamda çalışır:
- Docker imajı derleyip çalıştırabiliyor (ya da Node.js 24 sunuyor),
- WebSocket destekliyor ve
/dataiçin kalıcı bir disk sağlıyor.
Fly.io, Render, Docker kurulu küçük bir VPS ya da ters proxy arkasındaki bir ev sunucusu bu
koşulları karşılar. Hangisini seçerseniz seçin tek bir kopya çalıştırın, HTTPS kullanın ve
OYLA_TRUST_PROXY değerini önündeki
proxy sayısına göre ayarlayın. Ters proxy örneklerini İngilizce
Docker sayfasında bulabilirsiniz.