Affine Kurulumu: Notion'a Açık Kaynak Alternatif
Self-hosted bir sistemin asıl amacı aslında kişisel verilerini de bir noktada kendi hakimiyetinin olduğu yerlerde serve etmektir. Şifrelerini saklama, notlarını saklama, kişisel projelerini keyfine göre deploy etme rahatlığı gibi bir çok artının sonucudur. Bunlardan not kısmı için olan opensource notion alternatifi Affine de şuan inceleyeceğimiz proje olacak.
Affine Nedir?
Affine'ı basitçe şöyle özetleyebiliriz: Notion + Miro'nun açık kaynak versiyonu. Markdown desteği var, whiteboard özelliği var, blok tabanlı editör var. Üstelik verileriniz tamamen sizin kontrolünüzde.
Projede TypeScript ve Rust kullanılmış. GitHub'da oldukça aktif bir geliştirme süreci var.
Not: Ufak bir handikapı var. Mobile app yok ve mobile browserdan girildiğinde only read olarak gözüküyor. Mobil browserdan masaüstü check e tıklayınca editleyebiliyorsunuz fakat direkt mobil de edit yok. Bunun amacı nedir, geliştirme aşamasında da ileri de mi düzeltecekler bir fikrim yok.
Kurulum Seçenekleri
Affine'ı kullanmanın birkaç yolu var:
1. Web Versiyonu affine.pro adresinden doğrudan kullanabilirsiniz. Kurulum falan yok, hesap açıp başlıyorsunuz.
2. Desktop Uygulaması Windows, macOS ve Linux için masaüstü uygulamaları mevcut. GitHub releases sayfasından indirebilirsiniz.
3. Self-Hosted (Kendi Sunucunuzda) Bu kısma odaklanacağız çünkü açık kaynak projelerin asıl gücü buradan geliyor. (Bizi ilgilendiren kısım burası)
Docker ile Kurulum
En pratik yöntem Docker kullanmak. Şöyle yapıyoruz:
Gereksinimler
- Docker ve Docker Compose kurulu olmalı
- En az 2GB RAM
- 10GB disk alanı
Adım 1: Dosyaları Hazırlama
Bir klasör oluşturup içine girelim:
mkdir affine-app cd affine-app
docker-compose.yml dosyası oluşturun:
version: '3' services: affine: image: ghcr.io/toeverything/affine-graphql:stable container_name: affine command: ['sh', '-c', 'node ./scripts/self-host-predeploy && node ./dist/index.js'] ports: - '3010:3010' depends_on: redis: condition: service_healthy postgres: condition: service_healthy volumes: - ./config:/root/.affine/config - ./storage:/root/.affine/storage environment: - NODE_OPTIONS="--import=./scripts/register.js" - AFFINE_CONFIG_PATH=/root/.affine/config - REDIS_SERVER_HOST=redis - DATABASE_URL=postgres://affine:affine@postgres:5432/affine - NODE_ENV=production - [email protected] - AFFINE_ADMIN_PASSWORD=changeme123 restart: unless-stopped redis: image: redis:latest container_name: affine-redis volumes: - ./redis:/data healthcheck: test: ['CMD', 'redis-cli', 'ping'] interval: 5s timeout: 3s retries: 5 restart: unless-stopped postgres: image: postgres:16 container_name: affine-postgres volumes: - ./postgres:/var/lib/postgresql/data healthcheck: test: ['CMD-SHELL', 'pg_isready -U affine'] interval: 5s timeout: 3s retries: 5 environment: POSTGRES_USER: affine POSTGRES_PASSWORD: affine POSTGRES_DB: affine restart: unless-stopped
Adım 2: Çalıştırma
docker-compose up -d
Logları kontrol etmek isterseniz:
docker-compose logs -f affine
Adım 3: Erişim
Tarayıcınızdan http://localhost:3010 adresine gidin. İlk girişte admin hesabınızı oluşturacaksınız.
Önemli: AFFINE_ADMIN_EMAIL ve AFFINE_ADMIN_PASSWORD değerlerini mutlaka değiştirin!
Manuel Kurulum (Docker Olmadan)
Docker kullanamıyorsanız manuel kurulum da yapabilirsiniz ancak bu biraz daha zahmetli:
Gereksinimler
- Node.js 18 veya üzeri
- PostgreSQL 14+
- Redis
- pnpm
# Repo'yu klonlayın git clone https://github.com/toeverything/AFFiNE.git cd AFFiNE # Bağımlılıkları kurun pnpm install # Build edin pnpm build # Veritabanını hazırlayın pnpm -r --filter @affine/server prisma migrate deploy # Çalıştırın pnpm -r --filter @affine/server start
Soluk soluga kaldıysanız Docker yöntemini öneririm.
İlk Ayarlar
Kurulumdan sonra yapmanız gerekenler:
- Admin hesabınızı oluşturun - İlk girişte size sorulacak
- Workspace oluşturun - Projeniz, notlarınız için ayrı çalışma alanları
- Kullanıcı ekleyin - Takım arkadaşlarınızı davet edebilirsiniz
- Yedekleme ayarlayın -
./storageve./postgresklasörlerini düzenli yedekleyin
Güncelleme
Yeni versiyon çıktığında güncelleme yapmak için:
docker-compose pull docker-compose up -d
Karşılaşabileceğiniz Sorunlar
Port zaten kullanımda hatası 3010 portunu başka bir uygulama kullanıyorsa docker-compose.yml'de portu değiştirin.
Container başlamıyor
Loglara bakın: docker-compose logs affine
Çoğunlukla veritabanı bağlantı sorunu oluyor.
Yavaş çalışıyor RAM'i artırın veya daha az container çalıştırın.
Notion'dan Veri Aktarımı
Notion'dan çıkartmak isterseniz Notion'un export özelliğini kullanıp Markdown dosyalarını Affine'a içe aktarabilirsiniz. Tam otomatik değil ama çalışıyor.
Sonuç
Affine henüz Notion kadar olgun değil açıkçası. Bazı özellikler eksik, bazı yerler hantal. Ama açık kaynak olması, verilerinize sahip olmanız ve aktif geliştiriliyor olması büyük artılar.