Kurulum (self-host)
Docker Compose ile PostgreSQL üzerinde kurulum.
MyWay, Next.js uygulaması + PostgreSQL veritabanından oluşur. En hızlı yol Docker Compose ile ayağa kaldırmaktır.
Gereksinimler
- Docker Engine 24+ ve Docker Compose v2
- 2 vCPU / 2 GB RAM (önerilen 4 GB)
- 10 GB boş disk; yükseltme sırasında geçici olarak ~1 GB fazlası
- Alan adı (opsiyonel: iç ağda sunucunun IP adresiyle de kurulur)
Adımlar
- 1Satın alma e-postandaki paketi indir ve sunucuna çıkart.
- 2./scripts/install.sh çalıştır. Hazır imajları yükler (derleme yok) ve üç şey sorar: adres, yayın portu, LİSANS ANAHTARI.
- 3Adres: alan adın varsa onu yaz. Yoksa Enter’a bas; kurulum sunucunun IP adresini bulup onu kullanır.
- 4Port: varsayılan 80/443 için Enter. O portları başka bir servis kullanıyorsa 8080/8443 gibi bir çift verebilirsin.
- 5Uygulama başlar; migrasyonlar otomatik uygulanır.
- 6Tarayıcıdan adrese gir ve kaydol. Kaydolan ilk kullanıcı otomatik yönetici (superadmin) olur.
# extract the package, then:
cd myway-onprem
./scripts/install.sh # asks for domain + LICENSE_KEY, loads images, startsİç ağa kurulum (alan adı olmadan)
Sunucunun alan adı yoksa kurulum sunucunun IP adresiyle yapılır; betik adresi kendisi bulup önerir. Bu durumda Let’s Encrypt devreye girmez (bir sertifika otoritesi IP adresini doğrulayamaz) ve uygulama kendi ürettiği sertifikayla yayınlanır. Tarayıcı ilk girişte bir kez uyarı gösterir; kalıcı olarak kaldırmak için kurulum dizinine bırakılan myway-root-ca.crt dosyasını istemci bilgisayarlara güvenilen kök sertifika olarak kurun.
Adres olarak myway.localhost gibi bir ad KULLANMAYIN. Bu adresler her bilgisayarda o bilgisayarın kendisine çözülür; ağdaki başka bir makineden yazıldığında sunucuya hiç ulaşmaz ve tarayıcı bağlantı hatası verir. Yalnız kurulumu yaptığınız makinede denemek için uygundur.
Portu değiştirme
Kurulum 80 ve 443 portlarını kullanır. Sunucuda bu portları başka bir servis tutuyorsa kurulumda farklı bir çift verebilirsiniz; seçim saklanır ve sonraki güncellemelerde yeniden sorulmaz. Standart dışı portta Let’s Encrypt doğrulama yapamayacağı için kurulum kendi sertifikasına geçer: güvenilir sertifika istiyorsanız ya 80/443’te kalın ya da MyWay’i TLS’i kendisi sonlandıran mevcut proxy’nizin arkasına alın.
# soruları görmeden kurmak / installing without the prompts
DOMAIN=myway.company.com HTTP_PORT=8080 HTTPS_PORT=8443 ./scripts/install.shLisans anahtarı ZORUNLUDUR: geçerli anahtar olmadan uygulama kilitli açılır. Anahtar 1 yıl geçerlidir; süre dolunca kısa bir ek süre (grace) çalışır, sonra kilitlenir. Kullanmaya devam için yenilenir.
E-posta gönderimi (opsiyonel)
Kurulum e-posta olmadan da tam çalışır; varsayılan budur. Bu durumda davet bağlantısı ekranda gösterilir ve parolayı Ayarlar → Üyeler’den yönetici sıfırlar. E-posta göndermek istersen .env.onprem dosyasına kendi SMTP sunucunu tanımlarsın: Exchange, Postfix, Google Workspace, AWS SES; hepsi SMTP konuşur. Dışarıya bağlanan bir servis eklemiş olmazsın, mail kendi sunucundan çıkar.
MAIL_DRIVER=smtp
MAIL_FROM="MyWay <no-reply@yourcompany.com>"
MAIL_SMTP_HOST=smtp.yourcompany.com
MAIL_SMTP_PORT=587 # 465 = implicit TLS, 587/25 = STARTTLS
MAIL_SMTP_USER=username
MAIL_SMTP_PASSWORD=passwordEnv değişikliği restart ile okunmaz; konteyneri yeniden oluşturman gerekir. Ardından davet e-postası, parola sıfırlama, e-posta adresi doğrulama ve bildirim e-postaları kendiliğinden çalışır. Bağlantılar PUBLIC_URL üzerinden üretilir; bu adresin kullanıcılarınca erişilebilir olduğundan emin ol.
docker compose -f docker-compose.onprem.yml --env-file .env.onprem up -dZamanlanmış görevler
Bazı işler bir kullanıcı isteğiyle tetiklenmez, birinin saate bakması gerekir. Son tarihin gelmesi bir olay değildir: kimse bir şey yapmadığı için uygulamaya ulaşan bir istek de olmaz. MyWay bu tür üç iş çalıştırır ve v1.32.6 sürümünden beri bunları KURULUM BETİĞİ kendisi kurar; elle crontab girdisi yazmanız gerekmez.
| Zamanlanmış iş | Ne yapar |
|---|---|
| Son tarih bildirimleri | Bitiş tarihi yarın olan ve tarihi geçmiş açık görevleri bulur, ilgililere bildirim gönderir. "Son tarih gibi davransın" işaretli özel tarih alanları da buna dahildir. |
| Gözden geçirme hatırlatmaları | Son tarihi yaklaşan bir gözden geçirmede henüz yorum yazmamış katılımcıları uyarır. |
| Olay temizliği | GitLab entegrasyonu kullanan kurulumlarda saklanan webhook gövdelerini 90 gün sonra siler. Temizlenmezse bu tablo sürekli büyür. |
Kurulum betiği girdileri yazar, kurulum sonunda işi bir kez deneyip sonucu ekrana bildirir ve ek yapılandırma istemez: gereken sır tanımlı değilse mevcut kurulum anahtarlarınızdan türetilir. Güncellemede girdiler tazelenir, çiftlenmez; sunucudaki başka zamanlanmış işlere dokunulmaz. Yapılandırmanın sağlıklı olduğunu izleme sisteminizden görmek isterseniz sağlık ucundaki cronConfigured alanına bakın.
# zamanlanmış görevler kuruldu mu / are the scheduled jobs configured
curl -s https://myway.company.com/api/health | grep cronConfiguredGÜNCELLERKEN kurulum betiğini çalıştırın. Yalnız docker compose pull && up -d yaparsanız uygulama güncellenir ama zamanlanmış görevler kurulmaz; bildirimler hiçbir hata görünmeden sessizce gönderilmemeye başlar. Ayrıntı için Yedekleme & yükseltme sayfasına bakın.