Takip et

Seafile’ı Ubuntu 12.04 VPS Üzerine Kurulumu ve Yapılandırması

Seafile’ı Ubuntu 12.04 VPS Üzerine Kurulumu ve Yapılandırması Giriş Günümüzde dijital verilerimiz hayatımızın ayrılmaz bir parçası ha

Seafile’ı Ubuntu 12.04 VPS Üzerine Kurulumu ve Yapılandırması

Giriş

Günümüzde dijital verilerimiz hayatımızın ayrılmaz bir parçası haline gelmiştir. Bu verilerin güvenli bir şekilde saklanması, senkronize edilmesi ve paylaşılması hem bireysel kullanıcılar hem de işletmeler için kritik öneme sahiptir. Dropbox, Google Drive gibi popüler bulut depolama hizmetleri yaygın olarak kullanılsa da, veri gizliliği ve kontrolü konusunda endişeler taşıyan birçok kullanıcı kendi “kişisel bulut” çözümlerini tercih etmektedir. İşte tam da bu noktada, açık kaynaklı ve kendi sunucunuzda barındırabileceğiniz bir dosya senkronizasyon ve paylaşım platformu olan Seafile devreye giriyor.

Seafile, yüksek performanslı dosya senkronizasyonu, sürüm kontrolü, dosya şifreleme ve web tabanlı arayüzü ile dikkat çeken güçlü bir alternatiftir. Kendi sunucunuzda çalıştırdığınızda, verilerinizin fiziksel olarak nerede depolandığını tam olarak bilir ve üçüncü taraf sağlayıcılara bağımlılığınızı ortadan kaldırırsınız. Bu makalede, Seafile’ın Ubuntu 12.04 işletim sistemi kurulu bir Sanal Özel Sunucu (VPS) üzerine nasıl kurulacağını ve yapılandırılacağını adım adım detaylı bir şekilde ele alacağız. Ubuntu 12.04, eski bir Uzun Süreli Destek (LTS) sürümü olsa da, talep doğrultusunda bu sürüm üzerinde kurulumu gerçekleştireceğiz. Bu rehberdeki temel adımlar, daha yeni Ubuntu sürümleri için de küçük adaptasyonlarla geçerli olacaktır.

Ön Gereksinimler

Kuruluma başlamadan önce aşağıdaki ön gereksinimleri karşıladığınızdan emin olun:

* Ubuntu 12.04 VPS: Temiz bir Ubuntu 12.04 sunucu kurulumu önerilir. Sunucuya root erişimi veya sudo yetkilerine sahip bir kullanıcı hesabınız olmalıdır.
* Donanım Kaynakları:
* RAM: Küçük bir kurulum için en az 1GB RAM önerilir. Daha fazla kullanıcı veya yoğun kullanım için 2GB veya daha fazla RAM idealdir.
* Disk Alanı: Seafile yazılımı için birkaç GB yeterli olsa da, kullanıcı verileriniz için yeterli depolama alanına sahip olmanız gerekir. Bu, Seafile’ı kuracağınız disk bölümünde boş alan anlamına gelir.
* Alan Adı (Domain Name): Seafile sunucunuza erişmek için bir alan adına sahip olmanız ve bu alan adının A kaydının (veya CNAME kaydının) VPS’inizin IP adresine yönlendirilmiş olması gerekir. Örneğin: cloud.alanadiniz.com.
* Temel Linux Bilgisi: Komut satırı (CLI) kullanımı, dosya sisteminde gezinme ve temel metin düzenleyicileri (nano, vi) kullanma becerisi.
* İnternet Bağlantısı: Sunucunun paketleri indirebilmesi ve güncellemeleri yapabilmesi için aktif bir internet bağlantısı.

Sistem Güncellemesi ve Temel Bağımlılıkların Kurulumu

Kuruluma başlamadan önce sunucunuzdaki paket listesini güncellemeli ve yüklü paketleri en son sürümlerine yükseltmelisiniz. Ardından, Seafile’ın düzgün çalışması için gerekli olan bağımlılıkları kuracağız.

İlk olarak, sistem paketlerini güncelleyelim:

sudo apt-get update
sudo apt-get upgrade -y

Bu komutlar, paket listelerini yeniler ve mevcut tüm paketleri günceller. Şimdi, Seafile için gerekli olan Python kütüphanelerini ve diğer bağımlılıkları kuralım. Ubuntu 12.04, Python 2.7 ile birlikte gelir ve Seafile’ın bu sürümü için tasarlanmış eski bir sürümünü kullanacağız.

sudo apt-get install -y python2.7 python-setuptools python-imaging python-mysqldb python-memcache python-ldap python-urllib3 python-requests python-dev libmysqlclient-dev libffi-dev libssl-dev build-essential

Bu paketler şunları sağlar:
* python2.7: Seafile’ın çalıştığı Python yorumlayıcısı.
* python-setuptools: Python paket yönetimi için gerekli.
* python-imaging: Resim önizlemeleri ve diğer medya işlevleri için.
* python-mysqldb: Seafile’ın MySQL veritabanı ile iletişim kurması için.
* python-memcache: Önbellekleme için (performansı artırır).
* python-ldap: LDAP entegrasyonu için (isteğe bağlı, ancak bağımlılık olarak kurulabilir).
* python-urllib3, python-requests: HTTP istekleri için kütüphaneler.
* python-dev: Python geliştirmesi için başlık dosyaları ve statik kütüphaneler.
* libmysqlclient-dev: MySQL istemci kütüphaneleri için geliştirme dosyaları.
* libffi-dev, libssl-dev: Bazı Python modüllerinin derlenmesi için gerekli olan kütüphaneler.
* build-essential: Derleme araçları (GCC, make vb.).

Veritabanı Kurulumu ve Yapılandırması

Seafile, kullanıcı verileri, kütüphane bilgileri ve sistem ayarları gibi kritik bilgileri depolamak için bir veritabanına ihtiyaç duyar. Bu rehberde, yaygın olarak kullanılan ve güvenilir bir seçenek olan MySQL’i kullanacağız.

MySQL Kurulumu

MySQL sunucusunu ve istemcisini kuralım:

sudo apt-get install -y mysql-server mysql-client

Kurulum sırasında MySQL root kullanıcısı için bir parola belirlemeniz istenecektir. Bu parolayı güvenli bir yerde sakladığınızdan emin olun.

MySQL Güvenlik Ayarları

MySQL kurulumunu daha güvenli hale getirmek için aşağıdaki komutu çalıştırın:

sudo mysql_secure_installation

Bu komut size birkaç soru soracaktır:
* Enter current password for root (enter for none): MySQL root parolanızı girin.
* Change the root password? [Y/n]: Daha önce belirlediyseniz “n” seçeneğini seçebilirsiniz.
* Remove anonymous users? [Y/n]: “Y” seçeneğini seçerek anonim kullanıcıları kaldırın.
* Disallow root login remotely? [Y/n]: “Y” seçeneğini seçerek root kullanıcısının uzaktan erişimini engelleyin (güvenlik için önemlidir).
* Remove test database and access to it? [Y/n]: “Y” seçeneğini seçerek test veritabanını kaldırın.
* Reload privilege tables now? [Y/n]: “Y” seçeneğini seçerek değişiklikleri uygulayın.

Seafile Veritabanlarının Oluşturulması

Seafile, üç ayrı veritabanı kullanır: ccnet-db, seafile-db ve seahub-db. Bu veritabanlarını ve Seafile için özel bir MySQL kullanıcısını oluşturalım.

MySQL komut satırı istemcisine root kullanıcısı olarak bağlanın:

mysql -u root -p

İstendiğinde MySQL root parolanızı girin.

Şimdi, veritabanlarını ve seafile adlı bir kullanıcıyı oluşturalım. your_password kısmını güçlü ve benzersiz bir parola ile değiştirin:

CREATE DATABASE ccnet-db CHARACTER SET utf8;
CREATE DATABASE seafile-db CHARACTER SET utf8;
CREATE DATABASE seahub-db CHARACTER SET utf8;

CREATE USER 'seafile'@'localhost' IDENTIFIED BY 'your_password';

GRANT ALL PRIVILEGES ON ccnet-db.* TO 'seafile'@'localhost';
GRANT ALL PRIVILEGES ON seafile-db.* TO 'seafile'@'localhost';
GRANT ALL PRIVILEGES ON seahub-db.* TO 'seafile'@'localhost';

FLUSH PRIVILEGES;
EXIT;

Bu komutlar, Seafile için gerekli veritabanlarını oluşturur, seafile adlı bir MySQL kullanıcısı oluşturur ve bu kullanıcıya ilgili veritabanları üzerinde tüm yetkileri verir. FLUSH PRIVILEGES komutu, yetki tablolarını yeniden yükleyerek değişikliklerin hemen etkili olmasını sağlar.

Seafile Sunucu Yazılımının İndirilmesi ve Kurulumu

Şimdi Seafile sunucu yazılımını indirip sunucumuza kurma zamanı. Ubuntu 12.04 ve Python 2.7 uyumluluğu nedeniyle, Seafile’ın eski bir sürümünü (örneğin 6.x serisinden bir sürüm) kullanmamız gerekecek. En güncel sürümler genellikle Python 3 gerektirir. Seafile’ın resmi indirme sayfasının arşiv bölümünden veya GitHub üzerinden uygun bir sürümü bulmanız gerekebilir. Bu rehber için genel bir örnek kullanacağız, ancak siz indirirken sürüm numarasını kontrol etmelisiniz.

Dizin Oluşturma

Seafile’ı kurmak için bir dizin oluşturalım. Genellikle /opt dizini altında veya ayrı bir kullanıcı için /home/seafile altında bir dizin oluşturulur. Biz /opt/seafile dizinini kullanalım:

sudo mkdir -p /opt/seafile
sudo chown -R $USER:$USER /opt/seafile # Kendi kullanıcınıza yetki verin veya seafile adında bir kullanıcı oluşturun
cd /opt/seafile

Önemli Not: Üretim ortamlarında Seafile’ı ayrı, yetkisiz bir kullanıcı (örneğin seafile kullanıcısı) altında çalıştırmak güvenlik açısından daha iyidir. Bu durumda, chown komutunu o kullanıcıya göre ayarlamanız ve tüm kurulum adımlarını o kullanıcı ile gerçekleştirmeniz gerekir (örneğin sudo -u seafile bash komutu ile). Bu rehberde kolaylık açısından mevcut kullanıcınızla devam edeceğiz, ancak bu güvenlik prensibini aklınızda bulundurun.

İndirme

Seafile’ın uygun bir sürümünü indirin. Örneğin, seafile-server_6.3.2_x86-64.tar.gz gibi bir sürüm Python 2.7 ile uyumlu olabilir. Resmi Seafile sitesinin arşiv bölümünü kontrol etmelisiniz. (Örnek bir URL, gerçek URL’yi kendiniz bulmalısınız):

wget https://download.seafile.com/d/xxxx/files/seafile-server_6.3.2_x86-64.tar.gz

xxxx ve 6.3.2 kısımlarını bulduğunuz güncel ve Python 2.7 uyumlu sürümle değiştirin.

Paketi Açma

İndirdiğiniz tar.gz dosyasını açın:

tar -xzf seafile-server_6.3.2_x86-64.tar.gz

Bu işlem, seafile-server-6.3.2 gibi bir dizin oluşturacaktır.

Sembolik Bağlantı Oluşturma

Gelecekteki güncellemeleri kolaylaştırmak için latest adında bir sembolik bağlantı oluşturalım:

ln -s seafile-server-6.3.2 latest

Artık /opt/seafile/latest dizini, Seafile sunucusunun aktif sürümünü gösterecektir.

Seafile İlk Kurulum ve Yapılandırma

Şimdi Seafile’ın ilk kurulum scriptini çalıştırarak temel yapılandırmayı yapalım.

Seafile dizinine gidin:

cd /opt/seafile/latest

Kurulum scriptini çalıştırın:

./setup-seafile.sh

Script size çeşitli sorular soracaktır:

1. Server Name: Sunucunuz için bir isim girin (örn: My Cloud).
2. IP Address or Domain Name: Seafile sunucunuza erişmek için kullanacağınız alan adını girin (örn: cloud.alanadiniz.com). Bu, SERVICE_URL olarak kullanılacaktır.
3. Seafile data directory: Veri dizininin konumunu onaylayın veya değiştirin. Varsayılan olarak /opt/seafile/seafile-data gibi bir yer olacaktır, bu genellikle uygundur.
4. Ports: Varsayılan HTTP (8000) ve File Server (8082) portlarını onaylayın veya değiştirin. Nginx kullanacağımız için varsayılanları bırakmak iyidir.
5. Database Type: 1 (MySQL) seçeneğini seçin.
6. MySQL Host: localhost (varsayılan)
7. MySQL Port: 3306 (varsayılan)
8. MySQL User: seafile (daha önce oluşturduğumuz kullanıcı)
9. MySQL Password: your_password (daha önce belirlediğiniz parola)
10. MySQL ccnet-db Name: ccnet-db (varsayılan)
11. MySQL seafile-db Name: seafile-db (varsayılan)
12. MySQL seahub-db Name: seahub-db (varsayılan)

Tüm soruları doğru yanıtladığınızdan emin olun. Kurulum scripti gerekli dizinleri ve yapılandırma dosyalarını oluşturacaktır.

Yapılandırma Dosyalarının Ayarlanması

Kurulum scripti çoğu şeyi halletse de, Nginx ile düzgün çalışması için bazı ek yapılandırmalar yapmamız gerekiyor.

1. ccnet/ccnet.conf:
SERVICE_URL satırını kontrol edin. Doğru alan adınızla başladığından emin olun (örn: https://cloud.alanadiniz.com). Eğer HTTPS kullanacaksanız (ki şiddetle önerilir), https olarak ayarlandığından emin olun.

nano /opt/seafile/seafile-data/ccnet/ccnet.conf

İçeriği şöyle görünmelidir (alan adınızı güncelleyin):

[General]
    SERVICE_URL = https://cloud.alanadiniz.com

2. conf/seahub_settings.py:
Bu dosya, Seahub (web arayüzü) için önemli ayarları içerir. Özellikle FILE_SERVER_ROOT ve SECRET_KEY ayarlarını yapmamız gerekiyor.

nano /opt/seafile/latest/conf/seahub_settings.py

Dosyanın sonuna aşağıdaki satırları ekleyin (alan adınızı güncelleyin ve güçlü bir SECRET_KEY oluşturun):

# -- coding: utf-8 --
    # Django settings for seahub project.

    # ... (mevcut ayarlar) ...

    # For Nginx/Apache with https
    FILE_SERVER_ROOT = 'https://cloud.alanadiniz.com/seafhttp'

    # Generate a strong SECRET_KEY: https://docs.djangoproject.com/en/1.8/ref/settings/#secret-key
    SECRET_KEY = 'buraya_cok_guclu_bir_gizli_anahtar_yazin'

    # Time zone
    TIME_ZONE = 'Europe/Istanbul' # Kendi zaman diliminizi ayarlayın

    # Email settings (isteğe bağlı, parola sıfırlama vb. için)
    # EMAIL_USE_TLS = True
    # EMAIL_HOST = 'smtp.example.com'
    # EMAIL_HOST_USER = 'your-email@example.com'
    # EMAIL_HOST_PASSWORD = 'your-email-password'
    # EMAIL_PORT = 587
    # DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
    # SERVER_EMAIL = EMAIL_HOST_USER

SECRET_KEY için rastgele ve uzun bir karakter dizisi kullanın. Python kabuğunda import os; os.urandom(24).encode('hex') gibi bir komutla oluşturabilirsiniz.

Seafile Sunucusunu Başlatma ve Durdurma

Yapılandırmaları tamamladıktan sonra Seafile sunucusunu başlatabiliriz. Seafile, seafile.sh (çekirdek hizmet) ve seahub.sh (web arayüzü) olmak üzere iki ana script ile yönetilir. Nginx kullanacağımız için Seahub’ı fastcgi modunda başlatmalıyız.

Seafile dizininde olduğunuzdan emin olun:

cd /opt/seafile/latest

Seafile çekirdek hizmetini başlatın:

./seafile.sh start

Çıktı şöyle bir şey olmalıdır: Starting seafile server, please wait ... Seafile server started

Şimdi Seahub web arayüzünü fastcgi modunda başlatın:

./seahub.sh start-fastcgi

Bu komutu ilk kez çalıştırdığınızda, sizden bir yönetici hesabı oluşturmanızı isteyecektir. E-posta adresinizi ve güçlü bir parola girerek yönetici hesabını oluşturun.

* Please choose a ccnet server role: 1) slave 2) master [2]: (Enter’a basarak varsayılan master’ı seçin)
* Now create admin account
* Admin E-mail: (Yönetici e-posta adresinizi girin)
* Admin Password: (Yönetici parolanızı girin)
* Admin Password (again): (Parolayı tekrar girin)

Başarılı bir başlangıçtan sonra şöyle bir çıktı göreceksiniz: Seahub is started. Stop it by run ./seahub.sh stop

Seafile ve Seahub’ı durdurmak için:

./seahub.sh stop
./seafile.sh stop

Nginx ile Reverse Proxy Yapılandırması

Seafile sunucusu varsayılan olarak 8000 (Seahub) ve 8082 (dosya sunucusu) portlarında çalışır. Bu portları doğrudan internete açmak yerine, daha iyi performans, güvenlik ve HTTPS desteği için bir ters proxy (reverse proxy) olarak Nginx kullanacağız.

Nginx Kurulumu

Nginx web sunucusunu kuralım:

sudo apt-get install -y nginx

Nginx Yapılandırma Dosyası Oluşturma

Seafile için yeni bir Nginx yapılandırma dosyası oluşturalım:

sudo nano /etc/nginx/sites-available/seafile.conf

Aşağıdaki yapılandırmayı dosyaya yapıştırın. your_domain.com kısmını kendi alan adınızla değiştirmeyi unutmayın. Ayrıca, HTTPS bölümündeki sertifika ve anahtar yollarını da kendi dosyalarınızla eşleştirmeniz gerekecektir.

server {
    listen 80;
    server_name cloud.alanadiniz.com; # Alan adınızı buraya yazın

    # HTTP'den HTTPS'ye yönlendirme (şiddetle önerilir)
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name cloud.alanadiniz.com; # Alan adınızı buraya yazın

    # SSL Sertifika Yolları (kendi sertifika dosyalarınızla değiştirin)
    ssl_certificate /etc/nginx/ssl/cloud.alanadiniz.com.crt; # Sertifika yolu
    ssl_certificate_key /etc/nginx/ssl/cloud.alanadiniz.com.key; # Anahtar yolu

    # SSL Ayarları (güvenliği artırmak için)
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;

    # Seahub (Web Arayüzü) için Proxy
    location / {
        proxy_pass         http://127.0.0.1:8000; # Seahub'ın çalıştığı port
        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;
        proxy_read_timeout 1200s; # Büyük dosya yüklemeleri için timeout süresi

        client_max_body_size 0; # Dosya boyutu sınırı kaldırma (isteğe bağlı, dikkatli kullanın)
    }

    # Seafile Dosya Sunucusu için Proxy
    location /seafhttp {
        rewrite ^/seafhttp(.*)$ $1 break;
        proxy_pass http://127.0.0.1:8082; # Seafile dosya sunucusu portu
        client_max_body_size 0; # Dosya boyutu sınırı kaldırma
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_connect_timeout  36000s; # Uzun süreli bağlantılar için timeout
        proxy_send_timeout  36000s;
        proxy_read_timeout  36000s;
        send_timeout  36000s;
    }

    # Seahub Statik Dosyaları (CSS, JS, resimler vb.)
    location /media {
        root /opt/seafile/latest/seahub; # Seahub statik dosyalarının bulunduğu dizin
    }
}

Nginx Yapılandırma Dosyasını Etkinleştirme

Oluşturduğumuz yapılandırma dosyasını etkinleştirmek için sites-enabled dizinine sembolik bir bağlantı oluşturalım ve varsayılan Nginx yapılandırmasını kaldıralım:

sudo ln -s /etc/nginx/sites-available/seafile.conf /etc/nginx/sites-enabled/seafile.conf
sudo rm /etc/nginx/sites-enabled/default

Nginx Test ve Yeniden Başlatma

Nginx yapılandırmanızda herhangi bir hata olup olmadığını kontrol edin:

sudo nginx -t

Eğer syntax is ok ve test is successful mesajlarını görüyorsanız, Nginx’i yeniden başlatın:

sudo service nginx restart

HTTPS (SSL/TLS) Kurulumu

Verilerinizin güvenliği için HTTPS kullanmak kritik öneme sahiptir. Bu, sunucunuz ile kullanıcılarınız arasındaki tüm iletişimi şifreler.

Sertifika Alma

Ubuntu 12.04 üzerinde Certbot (Let’s Encrypt) kurulumu biraz zorlu olabilir, çünkü eski Python sürümleri ve paket bağımlılıkları nedeniyle doğrudan apt-get ile kurulamayabilir. Bu durumda, manuel olarak bir sertifika oluşturabilir (test amaçlı kendinden imzalı) veya başka bir yöntemle (örneğin, bir sertifika sağlayıcısından satın alarak) bir sertifika alıp sunucunuza aktarabilirsiniz.

Kendinden İmzalı Sertifika Oluşturma (Sadece Test Amaçlıdır!):
Üretim ortamları için CA tarafından imzalanmış geçerli bir sertifika kullanmalısınız. Ancak test etmek isterseniz:

sudo mkdir -p /etc/nginx/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/cloud.alanadiniz.com.key -out /etc/nginx/ssl/cloud.alanadiniz.com.crt

Bu komut size sertifika bilgileri hakkında sorular soracaktır. Alan adınızı Common Name (CN) olarak girdiğinizden emin olun.

Let’s Encrypt (Certbot) Alternatifi (Daha Yeni Sistemler İçin Önerilir, 12.04 İçin Zorlu):
Eğer Ubuntu 12.04 üzerinde Certbot’u çalıştırmayı başarırsanız (manuel kurulum veya Snapcraft üzerinden), aşağıdaki gibi komutları kullanabilirsiniz:

# Certbot kurulumu (12.04 için farklı olabilir, örneğin pip ile veya manuel)

sudo apt-get install software-properties-common

sudo add-apt-repository ppa:certbot/certbot

sudo apt-get update

sudo apt-get install python-certbot-nginx

Sertifika alma

sudo certbot --nginx -d cloud.alanadiniz.com

Certbot, Nginx yapılandırmanızı otomatik olarak güncelleyebilir ve sertifikaları yerleştirebilir. Ancak 12.04’te bu zorlu olabileceği için yukarıdaki Nginx yapılandırmasında sertifika yollarını manuel olarak belirtmeniz ve sertifikaları o yollara kopyalamanız gerekecektir.

Sertifika dosyalarınızı /etc/nginx/ssl/ dizinine yerleştirdikten sonra, Nginx yapılandırma dosyasındaki (yukarıdaki örnekte gösterildiği gibi) ssl_certificate ve ssl_certificate_key yollarının doğru olduğundan emin olun ve Nginx’i yeniden başlatın.

Seafile’ı Sistem Başlangıcında Çalışacak Şekilde Ayarlama

Sunucu yeniden başlatıldığında Seafile’ın otomatik olarak başlaması için init.d scriptleri oluşturmamız gerekmektedir. Ubuntu 12.04, systemd yerine Upstart veya SysVinit kullanır. Biz SysVinit tabanlı bir init.d scripti oluşturacağız.

Öncelikle Seafile’ı çalıştıracak bir kullanıcı oluşturalım (eğer daha önce root kullanıcısıyla kurulum yaptıysanız ve güvenlik için ayrı bir kullanıcıya geçmek istiyorsanız). Bu örnekte seafile adında bir kullanıcı oluşturalım:

sudo adduser --system --group --home /opt/seafile/seafile-data seafile
sudo chown -R seafile:seafile /opt/seafile

Bu adımdan sonra, Seafile’ı seafile kullanıcısı altında başlatmak için aşağıdaki init.d scriptlerini düzenlemeniz gerekecektir.

Seafile için init.d Scripti

/etc/init.d/seafile-server adında bir dosya oluşturun:

sudo nano /etc/init.d/seafile-server

Aşağıdaki içeriği dosyaya yapıştırın:

#!/bin/bash
### BEGIN INIT INFO

Provides: seafile-server

Required-Start: $local_fs $remote_fs $network mysql

Required-Stop: $local_fs $remote_fs $network

Default-Start: 2 3 4 5

Default-Stop: 0 1 6

Short-Description: Start and stop Seafile server

Description: Seafile server init script

### END INIT INFO

Change the value of "user" to your seafile user

USER="seafile"

Change the value of "seafile_dir" to your

seafile installation directory. For example:

seafile_dir=/opt/seafile

INSTALL_DIR="/opt/seafile"

The name of the directory that contains the seafile-server package

For example, if seafile-server_6.3.2_x86-64 is your package, then directory name is seafile-server-6.3.2

SERVER_DIR="seafile-server-6.3.2" # Kendi sürümünüze göre güncelleyin SCRIPT_PATH=${INSTALL_DIR}/${SERVER_DIR} SEAFILE_INIT_SCRIPT=${SCRIPT_PATH}/seafile.sh SEAHUB_INIT_SCRIPT=${SCRIPT_PATH}/seahub.sh case "$1" in start) echo "Starting Seafile server..." sudo -u ${USER} ${SEAFILE_INIT_SCRIPT} start sudo -u ${USER} ${SEAHUB_INIT_SCRIPT} start-fastcgi # Nginx kullandığımız için fastcgi echo "Seafile server started" ;; stop) echo "Stopping Seafile server..." sudo -u ${USER} ${SEAHUB_INIT_SCRIPT} stop sudo -u ${USER} ${SEAFILE_INIT_SCRIPT} stop echo "Seafile server stopped" ;; restart) echo "Restarting Seafile server..." sudo -u ${USER} ${SEAHUB_INIT_SCRIPT} stop sudo -u ${USER} ${SEAFILE_INIT_SCRIPT} stop sleep 3 sudo -u ${USER} ${SEAFILE_INIT_SCRIPT} start sudo -u ${USER} ${SEAHUB_INIT_SCRIPT} start-fastcgi echo "Seafile server restarted" ;; *) echo "Usage: /etc/init.d/seafile-server {start|stop|restart}" exit 1 ;; esac exit 0

USER ve SERVER_DIR değişkenlerini kendi ortamınıza göre güncellemeyi unutmayın! Eğer kurulumu root kullanıcısı olarak yaptıysanız ve seafile kullanıcısına geçiş yapmadıysanız, sudo -u ${USER} kısımlarını kaldırabilir veya USER değişkenini root olarak ayarlayabilirsiniz. Ancak güvenlik için ayrı bir kullanıcı önerilir.

Dosyayı kaydedin ve çalıştırılabilir yapın:

sudo chmod +x /etc/init.d/seafile-server

Sistemin başlangıcında otomatik olarak başlaması için kaydedin:

sudo update-rc.d seafile-server defaults

Şimdi sunucunuzu yeniden başlattığınızda Seafile otomatik olarak başlayacaktır.

Güvenlik Duvarı Ayarları (UFW)

Sunucunuzu yetkisiz erişimden korumak için bir güvenlik duvarı yapılandırmak çok önemlidir. Ubuntu’da UFW (Uncomplicated Firewall) kullanımı kolay ve etkili bir araçtır.

UFW’yi kuralım (eğer kurulu değilse):

sudo apt-get install -y ufw

Gerekli portlara izin verelim:
* SSH (22): Sunucuya uzaktan erişim için.
* HTTP (80): Nginx’in HTTP trafiğini yönlendirmesi için.
* HTTPS (443): Nginx’in HTTPS trafiğini yönlendirmesi için.

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

Şimdi güvenlik duvarını etkinleştirin:

sudo ufw enable

Command may disrupt existing ssh connections. Proceed with operation (y|n)? sorulduğunda y yazıp Enter’a basın.

sudo ufw status komutu ile güvenlik duvarı durumunu kontrol edebilirsiniz.

Ekstra Yapılandırmalar ve İpuçları

Güncelleme

Seafile’ı güncellemek genellikle yeni sürüm paketini indirip mevcut latest sembolik bağlantısını yeni sürüme yönlendirmek ve ardından upgrade_*.sh scriptini çalıştırmakla yapılır. Veritabanı yükseltmeleri ve yapılandırma değişiklikleri için Seafile’ın resmi yükseltme rehberlerine dikkatlice uyun.

Yedekleme

Verileriniz kritik olduğu için düzenli yedekleme yapmak hayati önem taşır. Yedeklemeniz gerekenler:
* Seafile Veri Dizini: /opt/seafile/seafile-data (veya kurulum sırasında belirlediğiniz dizin).
* MySQL Veritabanları: ccnet-db, seafile-db, seahub-db.
mysqldump -u root -p ccnet-db > ccnet-db.sql gibi komutlarla yedekleyebilirsiniz.
* Yapılandırma Dosyaları: /opt/seafile/latest/conf dizinindeki dosyalar.

İzleme

Sunucunuzun kaynak kullanımını (CPU, RAM, Disk I/O) düzenli olarak izleyin. Seafile log dosyalarını (/opt/seafile/seafile-data/logs dizininde bulunur) hataları ve uyarıları kontrol etmek için inceleyin.

Kullanıcı Yönetimi

Seafile’ın web arayüzüne yönetici hesabınızla giriş yaptıktan sonra, kullanıcıları yönetebilir, gruplar oluşturabilir, kütüphaneler paylaşabilir ve diğer yönetimsel görevleri yerine getirebilirsiniz.

Sonuç

Tebrikler! Bu detaylı rehberi takip ederek Seafile’ı Ubuntu 12.04 VPS’nize başarıyla kurmuş ve yapılandırmış olmalısınız. Artık kendi kişisel bulut depolama çözümünüze sahipsiniz. Verilerinizin kontrolü tamamen sizde ve Dropbox, Google Drive gibi üçüncü taraf hizmetlere olan bağımlılığınız azalmıştır.

Seafile, güçlü özellik setine sahip, güvenli ve esnek bir platform sunar. Kurulumun ardından, Seafile istemcilerini (masaüstü, mobil) indirip kurarak dosyalarınızı senkronize etmeye başlayabilir, kütüphaneler oluşturabilir ve diğer kullanıcılarla güvenli bir şekilde paylaşabilirsiniz. Unutmayın, herhangi bir sunucu yönetiminde olduğu gibi, sisteminizi güncel tutmak ve düzenli yedeklemeler almak en iyi güvenlik uygulamalarındandır. Kendi bulutunuzun keyfini çıkarın!

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.