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!