Giriş
Günümüzde birçok organizasyon, hassas verileri üçüncü taraf bulut hizmetlerine (WeTransfer, Dropbox vb.) yüklemekten kaçınmak istemektedir. Erugo, bu ihtiyaca cevap veren, açık kaynaklı, kendi kendine barındırılabilen (self-hosted) ve tam kontrol sağlayan bir dosya transfer çözümüdür. Bu makale, Erugo'yu bir sunucuya kurma sürecini detaylandırmaktadır.
Ön Gereksinimler
Erugo'nun başarılı bir şekilde kurulabilmesi için aşağıdaki bileşenlerin hazır olması gerekmektedir:
- Linux tabanlı bir sunucu (Örn: Ubuntu 20.04/22.04).
- Docker ve Docker Compose kurulu olmalıdır. Erugo, konteynerleştirilmiş bir yapı kullanır.
- Sunucuda erişilebilir bir alan adı (domain) ve yapılandırılmış bir ters proxy (Nginx veya Caddy önerilir).
- Dosyaların depolanacağı kalıcı depolama alanı.
Adım 1: Docker ve Docker Compose Kurulumu
Erugo'yu çalıştırmak için Docker ekosistemine ihtiyacımız var. Eğer henüz kurulu değilse, aşağıdaki komutlarla kurulumu tamamlayın (Ubuntu örneği):
# Docker kurulumu
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y
# Docker Compose kurulumu (V2 önerilir)
sudo apt install docker-compose-plugin -y
Adım 2: Erugo Proje Yapısının Oluşturulması
Erugo yapılandırma dosyalarını tutmak için bir dizin oluşturun ve içerisine geçin.
mkdir erugo-deployment
cd erugo-deployment
Adım 3: Docker Compose Yapılandırması (docker-compose.yml)
Erugo'nun çalışması için gerekli olan servisleri (Erugo uygulaması ve veritabanı) tanımlayan docker-compose.yml dosyasını oluşturun. Aşağıdaki örnek temel bir kurulumu göstermektedir. Kalıcı depolama için ./data dizinini kullanıyoruz.
version: '3.8'
services:
erugo:
image: erugodev/erugo:latest
container_name: erugo
restart: unless-stopped
ports:
- "8080:8080" # Uygulama portu
environment:
# Veritabanı bağlantı ayarları (PostgreSQL önerilir)
- DATABASE_URL=postgres://erugo:securepassword@db:5432/erugo
# Maksimum dosya boyutu (örnek: 10 GB)
- MAX_FILE_SIZE=10737418240
# Erişim anahtarı (güvenlik için değiştirin)
- SECRET_KEY=supersecretkeythatmustbechanged
volumes:
- ./data/uploads:/app/uploads # Yüklenen dosyaların depolanacağı yer
depends_on:
- db
db:
image: postgres:14-alpine
container_name: erugo_db
restart: unless-stopped
environment:
- POSTGRES_USER=erugo
- POSTGRES_PASSWORD=securepassword
- POSTGRES_DB=erugo
volumes:
- ./data/postgres:/var/lib/postgresql/data
volumes:
uploads:
postgres:
ÖNEMLİ GÜVENLİK UYARISI:SECRET_KEY,DATABASE_URLşifresi ve veritabanı kullanıcı adı/şifresi mutlaka benzersiz ve güçlü değerlerle değiştirilmelidir. Üretim ortamında bu bilgileri asla varsayılan bırakmayın.
Adım 4: Erugo'nun Başlatılması
Yapılandırma dosyasını kaydettikten sonra, Docker Compose kullanarak servisleri başlatın. İlk çalıştırmada veritabanı ve uygulama imajları indirilecektir.
docker-compose up -d
Servislerin durumunu kontrol edin:
docker-compose ps
Adım 5: Ters Proxy ve SSL Yapılandırması
Erugo varsayılan olarak 8080 portunda çalışır. Güvenlik ve erişilebilirlik için, alan adınızı (örn: transfer.alanadiniz.com) 8080 portuna yönlendiren bir ters proxy (Nginx veya Caddy) kurmalısınız. Ayrıca, tüm trafiğin HTTPS üzerinden gitmesi için Let's Encrypt SSL sertifikası yapılandırılmalıdır.
Nginx ile temel bir proxy örneği (/etc/nginx/sites-available/erugo.conf):
server {
listen 80;
server_name transfer.alanadiniz.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name transfer.alanadiniz.com;
# SSL sertifika yollarını buraya ekleyin
ssl_certificate /etc/letsencrypt/live/transfer.alanadiniz.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/transfer.alanadiniz.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8080; # Docker host IP'si
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;
}
}
Sonuç
Tüm adımlar tamamlandıktan sonra, tarayıcınız üzerinden yapılandırdığınız alan adına (örn: https://transfer.alanadiniz.com) eriştiğinizde Erugo arayüzünü görmelisiniz. Artık verilerinizi üçüncü partilere göndermeden, kendi sunucunuzda güvenle yönetebilirsiniz.



