Docker kullanarak ONLYOFFICE Docs'u KylinOS'a kurma
Giriş
Developer Edition, ONLYOFFICE Docs'u yerel sunucunuza kurmanıza ve çevrimiçi düzenleyicileri web uygulamanızla, ONLYOFFICE işbirliği platformuyla veya diğer popüler sistemlerle entegre etmenize olanak tanır.
ONLYOFFICE Docs, metin, e-tablo ve sunum görüntüleyicileri ile düzenleyicilerinden oluşan, Office Open XML biçimleriyle (.docx, .xlsx, .pptx) tam uyumlu ve gerçek zamanlı ortak düzenlemeye imkan tanıyan çevrimiçi bir ofis paketidir.
İşlevsellik
- Belge Düzenleyici
- E-Tablo Düzenleyici
- Sunum Düzenleyici
- Mobil web görüntüleyicileri
- Mobil web düzenleyicileri
- Ortak düzenleme
- Hiyeroglif desteği
- Tüm popüler biçimler için destek: DOC, DOCX, TXT, ODT, RTF, ODP, EPUB, ODS, XLS, XLSX, CSV, PPTX, HTML
ONLYOFFICE Docs Developer Edition için sunulan özelliklerin ayrıntılı listesine bakın.
ONLYOFFICE Workspace içinde kullanarak şunları yapabilirsiniz:
- dosya paylaşma;
- belgelere erişim haklarını yönetme;
- belgeleri web sitesine gömme;
- ONLYOFFICE'e bağlı Drive, Box, Dropbox, OneDrive, OwnCloud üzerinde depolanan dosyaları görüntüleme ve düzenleme.
v7.2'den itibaren ONLYOFFICE Docs Docker imajları, Kylin Linux Advanced Server OS sürüm V10 üzerinde çalışacak şekilde yeniden hazırlanmıştır. Bu kılavuz, ONLYOFFICE Docs Developer Edition Docker sürümünü KylinOS'a nasıl kuracağınızı gösterir.
Sistem gereksinimleri
- CPU: çift çekirdekli 2 GHz veya daha hızlı işlemci
- RAM: 4 GB veya daha fazlası
- HDD: en az 40 GB boş alan
- SWAP: en az 4 GB, ancak ana işletim sistemine bağlıdır. Daha fazlası daha iyidir
- OS: çekirdek sürümü 3.10 veya üzeri olan amd64 Linux dağıtımı
- Docker: KylinOS tarafından desteklenen herhangi bir sürüm
ONLYOFFICE Docs'u kurma
Docker varsayılan olarak Google DNS sunucularını belirtir. ONLYOFFICE Docs'unuzun İnternet'e erişimi olmayacaksa varsayılan Docker DNS adresini yerel DNS sunucunuzun adresiyle değiştirmenizi öneririz. Bunun için /etc/default/docker dosyasına gidin ve aşağıdaki satırdaki IP adresini yerel ağınızdaki bir DNS sunucusunun IP adresiyle değiştirin:
docker_OPTS="--dns 8.8.8.8"
CentOS gibi RPM tabanlı işletim sistemleri için:
-
Aşağıdaki içeriğe sahip
/etc/docker/daemon.jsonyapılandırma dosyasını oluşturun:{ "dns" : [ "8.8.8.8" ] } -
Docker hizmetini yeniden başlatın:
sudo systemctl restart docker.service
SELinux'u devre dışı bırakma
/etc/selinux/config yapılandırma dosyasında SELinux'u devre dışı bırakmanız gerekir.
/etc/selinux/config dosyasını herhangi bir metin düzenleyiciyle açın, SELINUX=enforcing veya SELINUX=permissive satırını SELINUX=disabled ile değiştirin ve değişiklikleri kaydedin.
Değişikliklerin geçerli olması için sunucunuzu yeniden başlatın. SELinux'un devre dışı olduğundan emin olun:
[root@test ~]# sestatus
SELinux status: disabled
ONLYOFFICE Docs'u kurma
ONLYOFFICE Docs'u kurmak için aşağıdaki komutu yürütün:
sudo docker run -i -t -d -p 80:80 --security-opt seccomp=unconfined --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
Sürüm 7.2'den itibaren JWT gizli anahtarının rastgele oluşturulmasını ekledik. JWT gizli anahtarı ortam değişkeniyle belirtilmezse sanal makineler veya fiziksel sunucu her yeniden başlatıldığında yeniden oluşturulur ve bu durum entegrasyonlarda sorunlara yol açabilir. Bu sorunu önlemek için -e JWT_SECRET=my_jwt_secret içinde kendi değerinizi belirtin.
Kurulumunuzda JWT kullanmayacaksanız -e JWT_ENABLED=false kullanın.
--security-opt seccomp=unconfined anahtarı, kapsayıcı için güvenlik profillerini devre dışı bırakmak üzere gereklidir. Daha fazla ayrıntıya buradan ulaşabilirsiniz.
Özel güvenlik profilimizi de kullanabilirsiniz: kylin-seccomp7.json.
Varsayılan olarak ONLYOFFICE Docs gelen bağlantıları 80 numaralı bağlantı noktasından dinler. 4.3 sürümünden itibaren, varsayılan bağlantı noktası yerine başka bir bağlantı noktası kullanmayı planlıyorsanız ONLYOFFICE Docs için bağlantı noktasını değiştirebilirsiniz. Bu, kurulum sırasında bağlantı noktası eşlemesini değiştirerek kolayca yapılabilir:
sudo docker run -i -t -d -p <PORT_NUMBER>:80 --security-opt seccomp=unconfined --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
Burada <PORT_NUMBER>, ONLYOFFICE Docs'un kullanmasını istediğiniz bağlantı noktasının numarasıdır.
Bu işlem ONLYOFFICE Docs'u ve ihtiyaç duyduğu tüm bağımlılıkları kurar (betiğin yaptığı işlemlerin listesine buradan ulaşabilirsiniz).
Güvenlik duvarı istisnası ekleme
firewalld.service hizmetine de bir istisna eklemeniz gerekir:
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload
Yapılandırma tamamlandıktan sonra ONLYOFFICE Docs karşılama sayfasını açmak için tarayıcınızın adres çubuğuna http://localhost yazabilirsiniz. Bu sayfada belge örneklerini nasıl etkinleştireceğinize veya çevrimiçi düzenleyicileri sağlanan API ile web uygulamanıza nasıl entegre edeceğinize dair ek talimatları bulabilirsiniz.
Verileri kapsayıcıların dışında saklama
Tüm veriler, veri birimleri adı verilen özel dizinlerde şu konumlarda saklanır:
- ONLYOFFICE Docs günlükleri için
/var/log/onlyoffice - sertifikalar için
/var/www/onlyoffice/Data - dosya önbelleği için
/var/lib/onlyoffice - veritabanı için
/var/lib/postgresql
Yeni sürüm yayımlandığında verilerinizi kaybetmeden ONLYOFFICE Docs'u kolayca güncelleyebilmek için verileri Docker kapsayıcılarının dışında, ana makinede saklamanızı önemle öneririz.
Kapsayıcının dışında bulunan verilerinize erişmek için birimleri bağlamanız gerekir. Bunu docker run komutunda -v seçeneğini belirterek yapabilirsiniz.
sudo docker run -i -t -d -p 80:80 --security-opt seccomp=unconfined --restart=always \
-v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
-v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \
-v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
Henüz oluşturulmamış klasörleri bağlamaya çalışırsanız bu klasörler oluşturulur, ancak erişimleri kısıtlı olur. Erişim haklarını elle değiştirmeniz gerekir.
Kapsayıcının çalışması durumuna bağlı olmadığından normalde kapsayıcı verilerini saklamanız gerekmez. Verileri saklamak şu durumlarda yararlıdır:
- günlükler gibi kapsayıcı verilerine kolayca erişmek için;
- kapsayıcı içindeki veri boyutu sınırını kaldırmak için;
- PostgreSQL, Redis, RabbitMQ gibi kapsayıcının dışında başlatılan hizmetleri kullanırken.
ONLYOFFICE Docs'u HTTPS ile çalıştırma
sudo docker run -i -t -d -p 443:443 --security-opt seccomp=unconfined --restart=always \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
Onlyoffice uygulamasına erişim, yetkisiz erişimi önlemek için SSL kullanılarak güvenli hale getirilebilir. Bir CA tarafından onaylanmış SSL sertifikası güveni CA aracılığıyla doğrulamaya olanak tanırken, kendinden imzalı sertifikalar da her istemcinin web sitenizin kimliğini doğrulamak için bazı ek adımlar atması koşuluyla eşdeğer düzeyde güven doğrulaması sağlayabilir. Bunun nasıl yapılacağına ilişkin talimatlar aşağıda verilmiştir.
Uygulamayı SSL ile güvenli hale getirmek için temel olarak iki şey gerekir:
- Özel anahtar (.key)
- SSL sertifikası (.crt)
Bu nedenle aşağıdaki dosyaları oluşturup kurmanız gerekir:
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.crt
CA tarafından onaylanmış sertifikalar kullanırken (örneğin Let's Encrypt) bu dosyalar size CA tarafından verilir. Kendinden imzalı sertifikalar kullanıyorsanız bu dosyaları kendiniz oluşturmanız gerekir.
certbot kullanarak ONLYOFFICE Docs'u HTTPS'e geçirme
ONLYOFFICE Docs'u HTTPS'e geçirmenin en kolay yolu, certbot kullanarak Let's Encrypt SSL sertifikalarını otomatik olarak almaktır.
ONLYOFFICE Docs Docker kapsayıcısını 80 ve 443 numaralı bağlantı noktalarını belirterek ve değişkenler için kendi değerlerinizi ayarlayarak çalıştırın:
sudo docker run -i -t -d -p 80:80 -p 443:443 --security-opt seccomp=unconfined --restart=always \
-e LETS_ENCRYPT_DOMAIN=yourdomain.com -e LETS_ENCRYPT_MAIL=email@example.com -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
Burada:
- LETS_ENCRYPT_DOMAIN - sertifika için kullanılacak alan adı.
- LETS_ENCRYPT_MAIL - kayıt ve kurtarma iletişimi için kullanılan e-posta adresi.
letsencrypt.org CA imzalı sertifika otomatik olarak oluşturulur ve sunucunuza kurulur. Artık ONLYOFFICE Docs'unuza https://yourdomain.com adresinden erişilebilir olmalıdır.
Kendinden imzalı sertifikaları oluşturma
Kendinden imzalı SSL sertifikalarının oluşturulması 3 adımlı basit bir yordamdır:
1. ADIM: Sunucu özel anahtarını oluşturun
openssl genrsa -out onlyoffice.key 2048
2. ADIM: Sertifika imzalama isteğini (CSR) oluşturun
openssl req -new -key onlyoffice.key -out onlyoffice.csr
3. ADIM: Sertifikayı özel anahtarı ve CSR'yi kullanarak imzalayın
openssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt
Artık 365 gün geçerli bir SSL sertifikası oluşturdunuz.
Sunucu güvenliğini güçlendirme
Bu bölüm sunucu güvenliğinizi güçlendirmeniz için talimatlar içerir.
Bunun için daha güçlü DHE parametreleri oluşturmanız gerekir.
openssl dhparam -out dhparam.pem 2048
SSL sertifikalarını kurma
Yukarıda oluşturulan dört dosyadan onlyoffice.key, onlyoffice.crt ve dhparam.pem dosyalarını onlyoffice sunucusuna kurmanız gerekir. CSR dosyası gerekli değildir, ancak ileride yeniden gerekirse diye bu dosyayı güvenli bir yere yedeklediğinizden emin olun.
Onlyoffice uygulaması SSL sertifikalarını varsayılan olarak /var/www/onlyoffice/Data/certs yolunda arayacak şekilde yapılandırılmıştır. Bu yol SSL_KEY_PATH, SSL_CERTIFICATE_PATH ve SSL_DHPARAM_PATH yapılandırma seçenekleriyle değiştirilebilir.
/var/www/onlyoffice/Data/ yolu veri deposunun yoludur. Yani /app/onlyoffice/DocumentServer/data/ içinde certs adlı bir klasör oluşturup dosyaları bu klasöre kopyalamanız ve güvenlik önlemi olarak onlyoffice.key dosyasının izinlerini yalnızca sahibi tarafından okunabilecek şekilde güncellemeniz gerekir.
mkdir -p /app/onlyoffice/DocumentServer/data/certs
cp onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/
cp onlyoffice.crt /app/onlyoffice/DocumentServer/data/certs/
cp dhparam.pem /app/onlyoffice/DocumentServer/data/certs/
chmod 400 /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
Ardından Docker kapsayıcısını yeniden başlatın:
sudo docker restart {{DOCUMENT_SERVER_ID}}
Uygulamanızı güvenli hale getirmenize yalnızca bir adım kaldı.
Kullanılabilir yapılandırma parametreleri
Gerekli tüm ortam değişkenlerini tek bir dosyada belirtebileceğiniz --env-file bayrağı için docker run komutu seçeneklerine bakın. Bu sayede uzun bir docker run komutu yazmak zorunda kalmazsınız.
Ortam değişkenleri kullanılarak ayarlanabilen parametrelerin tam listesi aşağıdadır.
- ONLYOFFICE_HTTPS_HSTS_ENABLED: HSTS yapılandırmasını kapatmaya yönelik gelişmiş yapılandırma seçeneği. Yalnızca SSL kullanılırken geçerlidir. Varsayılan değer
true'dur. - ONLYOFFICE_HTTPS_HSTS_MAXAGE: onlyoffice NGINX vHost yapılandırmasında HSTS max-age değerini ayarlamaya yönelik gelişmiş yapılandırma seçeneği. Yalnızca SSL kullanılırken geçerlidir. Varsayılan değer
31536000'dir. - SSL_CERTIFICATE_PATH: Kullanılacak SSL sertifikasının yolu. Varsayılan değer
/var/www/onlyoffice/Data/certs/tls.crt'dir. - SSL_KEY_PATH: SSL sertifikası özel anahtarının yolu. Varsayılan değer
/var/www/onlyoffice/Data/certs/tls.key'dir. - SSL_DHPARAM_PATH: Diffie-Hellman parametresinin yolu. Varsayılan değer
/var/www/onlyoffice/Data/certs/dhparam.pem'dir. - SSL_VERIFY_CLIENT: İstemci sertifikalarının
CA_CERTIFICATES_PATH filekullanılarak doğrulanmasını etkinleştirir. Varsayılan değerfalse'tur. - DB_TYPE: Veritabanı türü. Desteklenen değerler
postgres,mariadbveyamysql'dir. Varsayılan değerpostgres'tir. - DB_HOST: Veritabanı sunucusunun çalıştığı ana makinenin IP adresi veya adı.
- DB_PORT: Veritabanı sunucusunun bağlantı noktası numarası.
- DB_NAME: İmaj başlatılırken oluşturulacak veritabanının adı.
- DB_USER: Veritabanı hesabı için süper kullanıcı izinlerine sahip yeni kullanıcı adı.
- DB_PWD: Veritabanı hesabı için belirlenen parola.
- AMQP_URI: İleti aracısı sunucusuna bağlanmak için kullanılan AMQP URI.
- AMQP_TYPE: İleti aracısı türü. Desteklenen değerler
rabbitmqveyaactivemq'dir. Varsayılan değerrabbitmq'dur. - REDIS_SERVER_HOST: Redis sunucusunun çalıştığı ana makinenin IP adresi veya adı.
- REDIS_SERVER_PORT: Redis sunucusunun bağlantı noktası numarası.
- NGINX_WORKER_PROCESSES: NGINX çalışan işlemlerinin sayısını belirler.
- NGINX_WORKER_CONNECTIONS: Bir NGINX çalışan işlemi tarafından açılabilecek en fazla eşzamanlı bağlantı sayısını belirler.
- SECURE_LINK_SECRET: nginx yapılandırma yönergesi secure_link_md5 için gizli anahtarı belirler. Varsayılan değer
random string'dir. - JWT_ENABLED: ONLYOFFICE Docs tarafından JSON web belirteci doğrulamasının etkinleştirilmesini belirler. Varsayılan değer
true'dur. - JWT_SECRET: ONLYOFFICE Docs'a gelen istekteki JSON web belirtecini doğrulamak için kullanılan gizli anahtarı belirler. Varsayılan değer rastgele bir değerdir.
- JWT_HEADER: JSON web belirtecini göndermek için kullanılacak HTTP üst bilgisini belirler. Varsayılan değer
Authorization'dır. - JWT_IN_BODY: ONLYOFFICE Docs'a gönderilen isteğin gövdesinde belirteç doğrulamasının etkinleştirilmesini belirler. Varsayılan değer
false'tur. - WOPI_ENABLED: wopi işleyicilerinin etkinleştirilmesini belirler. Varsayılan değer
false'tur. - USE_UNAUTHORIZED_STORAGE: Depolama sunucunuz için (örneğin Nextcloud) kendinden imzalı sertifikalar kullanıyorsanız
trueolarak ayarlayın. Varsayılan değerfalse'tur. - GENERATE_FONTS:
trueolduğunda yazı tipi listesini, yazı tipi küçük resimlerini vb. her başlatmada yeniden oluşturur. Varsayılan değertrue'dur. - METRICS_ENABLED: ONLYOFFICE Docs için StatsD'nin etkinleştirilmesini belirler. Varsayılan değer
false'tur. - METRICS_HOST: StatsD'nin dinleyeceği ana makineyi belirler. Varsayılan değer
localhost'tur. - METRICS_PORT: StatsD'nin dinleyeceği bağlantı noktasını belirler. Varsayılan değer
8125'tir. - METRICS_PREFIX: Arka uç hizmetleri için StatsD ölçüm öneklerini belirler. Varsayılan değer
ds.'tir. - LETS_ENCRYPT_DOMAIN: Let's Encrypt sertifikası için alan adını belirler.
- LETS_ENCRYPT_MAIL: Let's Encrypt sertifikası için alan adı yöneticisinin e-posta adresini belirler.
Developer Edition sürümünüzü kaydetme
Developer Edition satın aldıysanız ve license.lic dosyasını aldıysanız, yazılımın tam sürümünü elde etmek için bu dosyayı kurulumunuza yerleştirebilirsiniz.
Docker kapsayıcısını kullanırken license.lic dosyası herhangi bir klasöre yerleştirilebilir (örneğin /app/onlyoffice/DocumentServer/data/license.lic), ancak kapsayıcı başlatılırken bu klasörü bağlamanız gerekir:
sudo docker run -i -t -d -p 80:80 --security-opt seccomp=unconfined --restart=always \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
-e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
Bundan sonra Developer Edition sürümünüz kaydedilmiş olur ve tüm özellikleriyle çalışır.