Ana içeriğe geç

Docker için ONLYOFFICE Docs Enterprise Edition'ı KylinOS'a kurma

Giriş​

Enterprise Edition, ONLYOFFICE Docs'u yerel sunucunuza kurmanızı ve çevrimiçi düzenleyicileri ONLYOFFICE işbirliği platformuyla veya diğer popüler sistemlerle entegre etmenizi sağlar.

ONLYOFFICE Docs, metin, e-tablo ve sunum görüntüleyicileri ve düzenleyicilerinden oluşan, Office Open XML biçimleriyle (.docx, .xlsx, .pptx) tam uyumlu ve gerçek zamanlı ortak düzenlemeyi sağlayan bir çevrimiçi ofis paketidir.

İşlevler

  • Belge Düzenleyici
  • E-Tablo Düzenleyici
  • Sunum Düzenleyici
  • Mobil web görüntüleyiciler
  • Mobil web düzenleyiciler
  • Ortak düzenleme
  • Hiyeroglif desteği
  • Tüm popüler biçimlerin desteği: DOC, DOCX, TXT, ODT, RTF, ODP, EPUB, ODS, XLS, XLSX, CSV, PPTX, HTML

ONLYOFFICE Docs Enterprise Edition için kullanılabilen özelliklerin ayrıntılı listesine bakın.

ONLYOFFICE Workspace içinde kullandığınızda şunları yapabilirsiniz:

  • dosyaları paylaşmak;
  • belgelere erişim yetkilerini yönetmek;
  • belgeleri bir web sitesine gömmek;
  • ONLYOFFICE'e bağlı Drive, Box, Dropbox, OneDrive, OwnCloud'da saklanan dosyaları görüntülemek ve düzenlemek.

v7.2 sürümünden itibaren ONLYOFFICE Docs Docker imajları Kylin Linux Advanced Server OS V10 sürümünde çalışacak şekilde yeniden düzenlenmiştir. Bu kılavuz, ONLYOFFICE Docs Enterprise Edition Docker sürümünü KylinOS'a nasıl kuracağınızı gösterir.

Sistem gereksinimleri​

  • CPU: çift çekirdekli 2 GHz veya daha iyi
  • RAM: 4 GB veya daha fazla
  • HDD: en az 40 GB boş alan
  • SWAP: en az 4 GB, ancak ana bilgisayar 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​

not

Docker varsayılan olarak Google DNS sunucularını belirtir. ONLYOFFICE Docs sunucunuzun İnternet erişimi olmayacaksa, varsayılan Docker DNS adresini yerel DNS sunucunuzun adresiyle değiştirmenizi öneririz. Bunun için /etc/default/docker dosyasını açın 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 sistemlerinde:

  1. Aşağıdaki içeriğe sahip /etc/docker/daemon.json yapılandırma dosyasını oluşturun:

    { "dns" : [ "8.8.8.8" ] }
  2. 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-ee
Önemli

7.2 sürümünden itibaren JWT sırrı rastgele oluşturulmaktadır. JWT sırrı 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 kendi değerinizi -e JWT_SECRET=my_jwt_secret parametresinde 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.

not

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 yerine başka bir bağlantı noktası kullanmayı planlıyorsanız ONLYOFFICE Docs için bağlantı noktasını değiştirebilirsiniz. Bunu kurulum sırasında eşlenen bağlantı noktasını değiştirerek kolayca yapabilirsiniz:

sudo docker run -i -t -d -p <PORT_NUMBER>:80 --security-opt seccomp=unconfined --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-ee

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 gereken tüm bağımlılıkları kurar (betiğin yaptığı işlemlerin listesine buradan ulaşabilirsiniz).

Güvenlik duvarı istisnası ekleme​

Ayrıca firewalld.service hizmetine bir istisna eklemeniz gerekir:

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

Yapılandırma tamamlandığında tarayıcınızın adres çubuğuna http://localhost girerek ONLYOFFICE Docs karşılama sayfasını açabilirsiniz. Bu sayfada belge örneklerini etkinleştirme veya sağlanan API ile çevrimiçi düzenleyicileri web uygulamanıza entegre etme hakkında ayrıntılı yönergeler bulabilirsiniz.

Verileri kapsayıcıların dışında saklama​

Tüm veriler, veri birimleri adı verilen ve özel olarak ayrılmış dizinlerde, aşağıdaki konumlarda saklanır:

  • /var/log/onlyoffice: ONLYOFFICE Docs günlükleri için
  • /var/www/onlyoffice/Data: sertifikalar için
  • /var/lib/onlyoffice: dosya önbelleği için
  • /var/lib/postgresql: veritabanı için
Öneri

Yeni sürüm yayımlandığında verilerinizi kaybetmeden ONLYOFFICE Docs'u kolayca güncelleyebilmeniz için verileri Docker kapsayıcılarının dışında, ana makinede saklamanızı önemle öneririz.

Kapsayıcının dışındaki 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-ee
not

Henüz oluşturulmamış klasörleri bağlamaya çalışırsanız bu klasörler oluşturulur, ancak erişim yetkileri kısıtlı olur. Erişim yetkilerini 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;
  • kapsayıcının dışında başlatılan PostgreSQL, Redis, RabbitMQ gibi 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-ee

ONLYOFFICE uygulamasına erişim, yetkisiz erişimi önlemek için SSL ile güvenceye alınabilir. CA onaylı bir SSL sertifikası güveni CA üzerinden doğrulamayı sağlarken, 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ğı aşağıda açıklanmıştır.

SSL ile güvenceye almak için temel olarak iki şey gerekir:

  • Özel anahtar (.key)
  • SSL sertifikası (.crt)

Bu nedenle aşağıdaki dosyaları oluşturmanız ve kurmanız gerekir:

/app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.crt

CA onaylı sertifikalar (ör. Let's Encrypt) kullanırken 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 girerek ç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-ee

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'a https://yourdomain.com adresinden erişebilirsiniz.

Kendinden imzalı sertifika oluşturma​

Kendinden imzalı SSL sertifikası oluşturma işlemi 3 basit adımdan oluşur:

ADIM 1: Sunucu özel anahtarını oluşturun

openssl genrsa -out onlyoffice.key 2048

ADIM 2: Sertifika imzalama isteğini (CSR) oluşturun

openssl req -new -key onlyoffice.key -out onlyoffice.csr

ADIM 3: Sertifikayı özel anahtar ve CSR ile 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üçlendirmek için yönergeler sunar.

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 gerekmesi ihtimaline karşı dosyanın yedeğini güvenli bir yerde saklayın.

onlyoffice uygulaması SSL sertifikalarını varsayılan olarak /var/www/onlyoffice/Data/certs yolunda arar. 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. Bu nedenle /app/onlyoffice/DocumentServer/data/ içinde certs adlı bir klasör oluşturmanız ve dosyaları bu klasöre kopyalamanız gerekir. Güvenlik önlemi olarak onlyoffice.key dosyasının izinlerini yalnızca sahibi tarafından okunabilecek şekilde güncelleyin.

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üvenceye almanıza yalnızca bir adım kaldı.

Kullanılabilir yapılandırma parametreleri​

not

Tüm gerekli ortam değişkenlerini tek bir dosyada belirtebileceğiniz --env-file bayrağı için docker run komut seçeneklerine bakın. Bu, potansiyel olarak uzun bir docker run komutu yazmaktan sizi kurtarır.

Ortam değişkenleriyle ayarlanabilecek parametrelerin tam listesi aşağıdadır.

  • ONLYOFFICE_HTTPS_HSTS_ENABLED: HSTS yapılandırmasını kapatmak için gelişmiş yapılandırma seçeneği. Yalnızca SSL kullanılırken geçerlidir. Varsayılan değer true.
  • ONLYOFFICE_HTTPS_HSTS_MAXAGE: onlyoffice NGINX vHost yapılandırmasında HSTS max-age değerini ayarlamak için gelişmiş yapılandırma seçeneği. Yalnızca SSL kullanılırken geçerlidir. Varsayılan değer 31536000.
  • SSL_CERTIFICATE_PATH: Kullanılacak SSL sertifikasının yolu. Varsayılan değer /var/www/onlyoffice/Data/certs/tls.crt.
  • SSL_KEY_PATH: SSL sertifikası özel anahtarının yolu. Varsayılan değer /var/www/onlyoffice/Data/certs/tls.key.
  • SSL_DHPARAM_PATH: Diffie-Hellman parametresinin yolu. Varsayılan değer /var/www/onlyoffice/Data/certs/dhparam.pem.
  • SSL_VERIFY_CLIENT: CA_CERTIFICATES_PATH file kullanarak istemci sertifikalarının doğrulanmasını etkinleştirir. Varsayılan değer false.
  • DB_TYPE: Veritabanı türü. Desteklenen değerler postgres, mariadb veya mysql. Varsayılan değer postgres.
  • DB_HOST: Veritabanı sunucusunun çalıştığı ana bilgisayarın 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ı yetkilerine sahip yeni kullanıcı adı.
  • DB_PWD: Veritabanı hesabı için belirlenen parola.
  • AMQP_URI: Mesaj aracısı sunucusuna bağlanmak için kullanılan AMQP URI.
  • AMQP_TYPE: Mesaj aracısı türü. Desteklenen değerler rabbitmq veya activemq. Varsayılan değer rabbitmq.
  • REDIS_SERVER_HOST: Redis sunucusunun çalıştığı ana bilgisayarın 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 sırrı belirler. Varsayılan değer random string.
  • JWT_ENABLED: ONLYOFFICE Docs tarafından JSON web belirteci doğrulamasının etkinleştirilip etkinleştirilmeyeceğini belirler. Varsayılan değer true.
  • 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 üstbilgisini belirler. Varsayılan değer Authorization.
  • JWT_IN_BODY: ONLYOFFICE Docs'a gönderilen istekte belirteç doğrulamasının istek gövdesinde etkinleştirilip etkinleştirilmeyeceğini belirler. Varsayılan değer false.
  • WOPI_ENABLED: wopi işleyicilerinin etkinleştirilip etkinleştirilmeyeceğini belirler. Varsayılan değer false.
  • USE_UNAUTHORIZED_STORAGE: Depolama sunucunuz için (ör. Nextcloud) kendinden imzalı sertifikalar kullanıyorsanız true olarak ayarlayın. Varsayılan değer false.
  • GENERATE_FONTS: true olduğunda yazı tipi listesini, yazı tipi küçük resimlerini vb. her başlatmada yeniden oluşturur. Varsayılan değer true.
  • METRICS_ENABLED: ONLYOFFICE Docs için StatsD'nin etkin olup olmadığını belirler. Varsayılan değer false.
  • METRICS_HOST: StatsD dinleme ana bilgisayarını belirler. Varsayılan değer localhost.
  • METRICS_PORT: StatsD dinleme bağlantı noktasını belirler. Varsayılan değer 8125.
  • METRICS_PREFIX: Arka uç hizmetleri için StatsD metrik önekini belirler. Varsayılan değer ds..
  • 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.

Enterprise Edition sürümünüzü kaydetme​

Enterprise 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ı 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-ee

Bundan sonra Enterprise Edition sürümünüz kayıtlı ve tam işlevli olur.