Ana içeriğe geç

ONLYOFFICE Docs'u Docker ile yerel sunucuya kurma

Giriş​

Developer Edition, ONLYOFFICE Docs'u yerel sunucunuza kurmanıza ve çevrimiçi editörleri web uygulamanızla bütünleştirmenize olanak tanır.

ONLYOFFICE Docs, metin, e-tablo ve sunum görüntüleyicileri ile editörlerinden oluşan, Office Open XML biçimleriyle (.docx, .xlsx, .pptx) tam uyumlu ve gerçek zamanlı ortak çalışmayı destekleyen bir çevrimiçi ofis paketidir.

İşlevler

  • Belge Düzenleyici
  • E-Tablo Düzenleyici
  • Sunum Düzenleyici
  • Mobil web görüntüleyicileri
  • Mobil web editörleri
  • 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 Developer Edition için kullanılabilen özelliklerin ayrıntılı listesine bakın.

Bu kılavuz, ONLYOFFICE Docs Developer Edition Docker sürümünü makinenize 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ın 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ı
  • Ek gereksinimler
    • Docker: Docker ekibi tarafından desteklenen herhangi bir sürüm

ONLYOFFICE Docs'u kurma​

not

Docker'ın en son sürümünün kurulu olması gerekir. Kurulu değilse, nasıl edineceğinizi öğrenmek için Docker web sitesindeki Kurulum bölümüne bakın.

not

Docker varsayılan olarak Google DNS sunucularını belirtir. ONLYOFFICE Docs'unuzun İnternet 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:

  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

Docker'ı kurduktan sonra çalıştırın ve aşağıdaki komutu yürütün:

sudo docker run -i -t -d -p 80:80 --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
Önemli

7.2 sürümünden itibaren JWT gizli anahtarının rastgele üretilmesini ekledik. JWT gizli anahtarı ortam değişkeniyle belirtilmezse, sanal makineler veya fiziksel sunucu her yeniden başladığında yeniden üretilir 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.

not

ONLYOFFICE Docs varsayılan olarak 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 eşlenen bağlantı noktasını değiştirerek kolayca yapılabilir:

sudo docker run -i -t -d -p <PORT_NUMBER>:80 --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de

Burada <PORT_NUMBER>, ONLYOFFICE Docs'un kullanmasını istediğiniz bağlantı noktası numarasıdır.

Bu, ONLYOFFICE Docs'u ve ihtiyaç duyduğu tüm bağımlılıkları kurar (betiğin neler yaptığının listesine buradan ulaşabilirsiniz).

Önemli

İmaj, Kubernetes kurulumuyla uyumlu değildir. ONLYOFFICE Docs'u Kubernetes'e kurma hakkında daha fazla bilgi için şu kılavuza bakın.

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

Tüm veriler, veri birimleri adı verilen özel olarak ayrılmış dizinlerde, aşağıdaki 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
Önerimiz

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ışında bulunan verilerinize erişmek için birimleri bağlamanız gerekir. Bu, docker run komutunda -v seçeneği belirtilerek yapılabilir.

sudo docker run -i -t -d -p 80:80 --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
not

Henüz oluşturulmamış klasörleri bağlamaya çalışırsanız bu klasörler oluşturulur, ancak erişim izinleri kısıtlı olur. Erişim haklarını elle değiştirmeniz gerekir.

Kapsayıcının çalışması durumuna bağlı olmadığı için 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 --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 ile güvence altına alınabilir. CA onaylı bir SSL sertifikası güvenin CA aracılığıyla doğrulanmasını sağlarken, her istemci web sitenizin kimliğini doğrulamak için bazı ek adımlar attığı sürece kendinden imzalı sertifikalar da eşdeğer düzeyde güven doğrulaması sağlayabilir. Bunun nasıl yapılacağına ilişkin yönergeler aşağıda verilmiştir.

Uygulamayı SSL ile güvence altına almak 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 onaylı 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 --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 tarafından imzalanan sertifika otomatik olarak oluşturulur ve sunucunuza kurulur. Artık ONLYOFFICE Docs'unuza https://yourdomain.com adresinden erişilebilir.

Kendinden imzalı sertifikaların oluşturulması​

Kendinden imzalı SSL sertifikaları oluşturmak 3 adımlık basit bir işlemdir:

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 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 sağlar.

Bunun için daha güçlü DHE parametreleri oluşturmanız gerekir.

openssl dhparam -out dhparam.pem 2048

SSL sertifikalarının kurulumu​

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 yeniden ihtiyaç duymanız ihtimaline karşı dosyanın yedeğini güvenli bir yerde sakladığınızdan emin olun.

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. Yani /app/onlyoffice/DocumentServer/data/ içinde certs adında bir klasör oluşturmanız, 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

Ve Docker kapsayıcısını yeniden başlatın:

sudo docker restart {{DOCUMENT_SERVER_ID}}

Uygulamamızı güvence altına almanıza yalnızca bir adım kaldı.

Kullanılabilen yapılandırma parametreleri​

not

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, uzun bir docker run komutu yazmaktan kurtarır.

Aşağıda, ortam değişkenleriyle ayarlanabilen parametrelerin tam listesi verilmiştir.

  • 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ı izinlerine 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ı.
  • REDIS_SERVER_PASS: Redis sunucusunun parolası. Varsayılan olarak parola ayarlanmamıştır.
  • NGINX_WORKER_PROCESSES: NGINX çalışan işlemlerinin sayısını belirler.
  • NGINX_WORKER_CONNECTIONS: Bir NGINX çalışan işleminin açabileceği eşzamanlı bağlantıların azami 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.
  • JWT_ENABLED: ONLYOFFICE Docs tarafından JSON web belirteci doğrulamasının etkinleştirilmesini belirler. Varsayılan değer true.
  • JWT_SECRET: ONLYOFFICE Docs'a gönderilen istekteki JSON web belirtecini doğrulamak için 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 yapılmasını belirler. Varsayılan değer false.
  • ALLOW_META_IP_ADDRESS: Meta IP adresine bağlanmaya izin verilip verilmediğini belirler. Varsayılan değer false.
  • ALLOW_PRIVATE_IP_ADDRESS: Özel IP adresine bağlanmaya izin verilip verilmediğini belirler. Varsayılan değer false.
  • WOPI_ENABLED: wopi işleyicilerinin etkinleştirilmesini belirler. Varsayılan değer false.
  • USE_UNAUTHORIZED_STORAGE: Depolama sunucunuz için (örneğin Nextcloud) kendinden imzalı sertifikalar kullanıyorsanız true olarak ayarlayın. Varsayılan değer false.
  • GENERATE_FONTS: true olduğunda yazı tipi listesini ve 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 etkinleştirilmesini belirler. Varsayılan değer false.
  • METRICS_HOST: StatsD'nin dinleyeceği ana bilgisayarı belirler. Varsayılan değer localhost.
  • METRICS_PORT: StatsD'nin dinleyeceği 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.

ONLYOFFICE Docs ipv6 kurulumu​

not

Yalnızca Linux ana bilgisayarlarda çalışır ve desteklenir

Docker şu anda kapsayıcılara varsayılan olarak ipv6 adresi sağlamaz. Bu işlev şu anda deneyseldir.

ipv6 üzerinden etkileşimi ayarlamak için Docker'ınızda bu özellik desteğini etkinleştirmeniz gerekir. Bunun için:

  • aşağıdaki içeriğe sahip /etc/docker/daemon.json dosyasını oluşturun:

    {
    "ipv6": true,
    "fixed-cidr-v6": "2001:db8:abc1::/64"
    }
  • docker'ı şu komutla yeniden başlatın: systemctl restart docker

Bundan sonra çalışan tüm kapsayıcılar bir ipv6 adresi alır ve inet6 arayüzüne sahip olur.

Varsayılan köprü ağınızı kontrol edebilir ve orada EnableIPv6=true alanını görebilirsiniz. Ayrıca yeni bir ipv6 alt ağı da eklenir.

Daha fazla bilgi için resmi Docker kılavuz sitesini ziyaret edin.

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

Developer Edition satın alıp 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 (örneğin /app/onlyoffice/DocumentServer/data/license.lic) yerleştirilebilir, ancak kapsayıcı başlatılırken bu klasörü bağlamanız gerekir:

sudo docker run -i -t -d -p 80:80 --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 kayıtlı olur ve tüm işlevleri kullanılabilir hale gelir.