Kutup

Kendin barındır

Dakikalar içinde kendi Kutup’unuzu çalıştırın

Kutup tasarımı gereği kendin barındırılır. Üretim dağıtımı bir Docker Compose yığınıdır — arka uç, veritabanı, şifreli depolama ve Nginx. İşte hızlı başlangıç; tam rehber belgelerde.

Ön koşullar

  • Docker 24+ ve Docker Compose v2 (docker compose komutu).
  • En az 1 GB RAM’e sahip bir Linux sunucusu.
  • Bir alan adı — HTTPS ve federasyonun doğru çalışması için gerekli.

1. Klonlayın ve yapılandırın

Depoyu klonlayın ve ortam dosyanızı oluşturun:

sh
git clone https://github.com/kutupbulut/kutup.git
cd kutup
cp .env.example .env

.env dosyasını düzenleyin ve her değeri güçlü gizli değerlerle doldurun:

.env
# PostgreSQL — use a strong random password
POSTGRES_PASSWORD=<strong-random-password>

# JWT secret — generate with: openssl rand -hex 64
JWT_SECRET=<64-byte-hex-string>

# SeaweedFS S3 credentials — must match seaweedfs-s3.json
S3_ACCESS_KEY=kutup
S3_SECRET_KEY=<strong-random-secret>
S3_BUCKET=kutup-files

# Public URL — used to build federation invite links
SERVER_URL=https://kutup.example.com

# Break-glass admin bootstrap — a single email:username:password triple.
# This account can never be demoted, disabled, or deleted; promote any
# further admins from inside the app.
ADMIN_ACCOUNT=admin@example.com:admin:<strong-admin-password>

seaweedfs-s3.json içindeki S3 gizli anahtarı S3_SECRET_KEY ile eşleşmelidir.

2. Yığını başlatın

Tüm servisleri derleyin ve başlatın — Postgres, SeaweedFS, arka uç, ön yüz ve Nginx:

sh
docker compose up -d --build

3. İlk giriş

Loglarda yönetici bootstrap onayını bulun, ardından alan adınızı açıp giriş yapın:

sh
docker compose logs backend | grep -i "admin\|bootstrap"

İlk girişte 24 kelimelik kurtarma ifadenizi oluşturursunuz (bir yere yazın — hesabınızı kurtarmanın tek yolu budur ve asla sunucuya gönderilmez) ve isterseniz 2FA’yı etkinleştirebilirsiniz.

4. TLS ekleyin

Paketle gelen Nginx 80 numaralı portu dinler. Certbot ile bir sertifika alın, fullchain.pem ve privkey.pem dosyalarını nginx/certs/ dizinine koyun, bir 443 sunucu bloğu ekleyin ve yeniden yükleyin:

sh
certbot certonly --standalone -d kutup.example.com
cp /etc/letsencrypt/live/kutup.example.com/fullchain.pem nginx/certs/
cp /etc/letsencrypt/live/kutup.example.com/privkey.pem  nginx/certs/
docker compose exec nginx nginx -s reload

Sunucunuzu işletmek

Yedekler

PostgreSQL’in dökümünü alın ve SeaweedFS veri dizinlerini arşivleyin. Dosya parçaları yalnızca şifreli metindir — çalınan bir yedek, kullanıcı anahtarları olmadan işe yaramaz.

Güncelleme

git pull, ardından docker compose up -d --build. Veritabanı geçişleri arka uç açılışında otomatik çalışır.

Ters proxy

Hâlihazırda Nginx veya Caddy mi çalıştırıyorsunuz? Yığını 127.0.0.1:8080 adresine bağlayın ve ona proxy’leyin (büyük yüklemeler için istek arabelleğini kapatın).

Sıkılaştırma

Tüm .env varsayılanlarını değiştirin, yalnızca 80/443’ü dışarı açın ve JWT_SECRET değerini openssl rand -hex 64 ile üretin. Bootstrap hesabı korumalı bir acil durum (break-glass) yöneticisidir — ona güçlü bir şifre verin.

OnlyOffice kurulumu, yaşam döngüsü/sürümleme yapılandırması, federasyon ve tam başvuru kaynağı için belgelere ↗ bakın.

Kutup’u zaten mi çalıştırıyorsunuz?

Sunucunuzu herkese açık sunucu dizininde listeleyin ki başkaları da bulabilsin.