Ana içeriğe geç

ONLYOFFICE Mail'i Docker ile yerel sunucuya kurma

Giriş​

ONLYOFFICE Mail, iRedMail paketi temel alınarak geliştirilmiş, şu bileşenleri içeren eksiksiz bir posta sunucusu çözümüdür: Postfix, Dovecot, SpamAssassin, ClamAV, OpenDKIM, Fail2ban.

ONLYOFFICE Workspace ile bütünleşik çalışan ONLYOFFICE Mail şunları yapmanızı sağlar:

  • kendi alan adınızı bağlama;
  • posta kutuları oluşturma;
  • her posta kutusu için takma adlar ekleme;
  • posta kutusu grupları oluşturma.

Bu kılavuz, ONLYOFFICE Mail'in Docker sürümünün sunucunuza nasıl kurulacağını açıklar.

Sistem gereksinimleri​

  • CPU: çift çekirdekli 2 GHz veya daha hızlı
  • RAM: 4 GB veya daha fazla
  • HDD: en az 20 GB boş alan
  • SWAP: en az 4 GB, ancak ana bilgisayarın işletim sistemine bağlıdır. Daha fazlası daha iyidir
  • İşletim sistemi: ç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
not

Ubuntu 20.04'te ONLYOFFICE Mail'i kurarken varsayılan ufw güvenlik duvarını devre dışı bırakmanız gerekir.

Kuruluma başlamadan önce​

ONLYOFFICE Mail'i kurmaya başlamadan önce, ONLYOFFICE Mail'in kurulacağı sunucuyu posta sunucusu için seçilen alan adıyla ilişkilendirmeniz gerekir. Posta sunucusu bilgisayarının A kaydı için mx.yourdomain.com gibi bir ad seçmenizi öneririz. Bu, Alan Adı Sistemi'ndeki (DNS) A kaydının ONLYOFFICE Mail'in kurulacağı bilgisayarın IP adresini göstermesi ve bu bilgisayardaki İşaretçi (PTR) kaydının, A kaydının tersine, bilgisayarın IP adresini tam nitelikli bir alan adına (FQDN) çözümlemesi gerektiği anlamına gelir.

A kaydı ayarlarının doğruluğunu denetlemek için şu komutu kullanın:

dig -t A mx.yourdomain.com

Ayarlar doğruysa çıktı şuna benzer satırlar içerir:

...
;; ANSWER SECTION:
mx.yourdomain.com. IN A {your IP address}
...

{your IP address} yerine sunucunun gerçek IP adresi gösterilir.

PTR kaydını başka bir komutla denetleyin:

dig -x {your IP address}

Çıktıda diğer satırların yanı sıra şuna benzer satırlar bulunmalıdır:

...
;; ANSWER SECTION:
{your IP address} IN PTR mx.yourdomain.com.
...

Tüm ayarların doğru olduğundan emin olduktan sonra sonraki adımlara geçebilirsiniz.

not

ONLYOFFICE Mail'i kurduktan sonra yourdomain.com için, mx.yourdomain.com adresini gösteren bir MX kaydı da eklemeniz gerekir. E-postaların @yourdomain.com adreslerine ulaşması için bu gereklidir.

ONLYOFFICE Mail'i otomatik betik komutuyla kurma​

ONLYOFFICE Mail'i otomatik olarak kurmak için indirme sayfasındaki veya aşağıdaki doğrudan bağlantıdaki Docker betiğini kullanın:

wget https://download.onlyoffice.com/install/workspace-install.sh

İndirme bittiğinde ONLYOFFICE Mail'i kurmak için şu komutu çalıştırın:

bash workspace-install.sh -ics false -ids false -icp false -ims true -md yourdomain.com -es true

ONLYOFFICE Mail'i elle kurma​

Kurulum üzerinde tam denetimi korumak için kurulumu elle yapın. Bunun için aşağıdaki adımları izleyin.

Ön koşulları kurma​

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 Workspace'inizin internete 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 sistemlerinde:

  1. Aşağıdaki içerikle /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

Kuruluma başlamadan önce şu klasörleri oluşturmanız gerekir:

  1. MySQL sunucusu için

    sudo mkdir -p "/app/onlyoffice/mysql/conf.d";
    sudo mkdir -p "/app/onlyoffice/mysql/data";
    sudo mkdir -p "/app/onlyoffice/mysql/initdb";
  2. ONLYOFFICE Mail verileri ve günlükleri için

    sudo mkdir -p "/app/onlyoffice/MailServer/data/certs";
    sudo mkdir -p "/app/onlyoffice/MailServer/logs";

Ardından onlyoffice ağını oluşturun:

sudo docker network create --driver bridge onlyoffice

MySQL'i kurma​

Şimdi MySQL sunucusu Docker kapsayıcısını oluşturun. Önce yapılandırma dosyasını oluşturun:

echo "[mysqld]
sql_mode = 'NO_ENGINE_SUBSTITUTION'
max_connections = 1000
max_allowed_packet = 1048576000
group_concat_max_len = 2048" > /app/onlyoffice/mysql/conf.d/onlyoffice.cnf

Kullanıcıları oluşturacak ve onlara yetki verecek SQL betiğini oluşturun. onlyoffice_user ONLYOFFICE Community Server için, mail_admin ise kurulacaksa ONLYOFFICE Mail için gereklidir:

echo "ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'my-secret-pw';
CREATE USER IF NOT EXISTS 'onlyoffice_user'@'%' IDENTIFIED WITH mysql_native_password BY 'onlyoffice_pass';
CREATE USER IF NOT EXISTS 'mail_admin'@'%' IDENTIFIED WITH mysql_native_password BY 'Isadmin123';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'onlyoffice_user'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'mail_admin'@'%';
FLUSH PRIVILEGES;" > /app/onlyoffice/mysql/initdb/setup.sql
not

Yukarıdaki betiğin SQL sunucusuna her alan adından (%) erişim izni verdiğini unutmayın. Erişimi sınırlamak istiyorsanız SQL sunucusuna erişebilecek ana bilgisayarları belirtebilirsiniz.

MySQL 8.0.29 sürümüyle MySQL kapsayıcısını oluşturun:

sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-mysql-server \
-v /app/onlyoffice/mysql/conf.d:/etc/mysql/conf.d \
-v /app/onlyoffice/mysql/data:/var/lib/mysql \
-v /app/onlyoffice/mysql/initdb:/docker-entrypoint-initdb.d \
-e MYSQL_ROOT_PASSWORD=my-secret-pw \
-e MYSQL_DATABASE=onlyoffice \
mysql:8.0.29
not

Harici bir veritabanı kullanmak istiyorsanız onu yapılandırmanız (yani bir kullanıcı eklemeniz) gerekir:

CREATE USER 'mail_admin'@'localhost' IDENTIFIED BY 'Isadmin123';
GRANT ALL PRIVILEGES ON * . * TO 'mail_admin'@'%' IDENTIFIED BY 'Isadmin123';
FLUSH PRIVILEGES;

ONLYOFFICE Mail'i kurma​

Tüm ön koşullar hazır olduğunda şu komutu çalıştırın:

sudo docker run --init --net onlyoffice --privileged -i -t -d --restart=always --name onlyoffice-mail-server -p 25:25 -p 143:143 -p 587:587 -p 8081:8081 \
-e MYSQL_SERVER=onlyoffice-mysql-server \
-e MYSQL_SERVER_PORT=3306 \
-e MYSQL_ROOT_USER=root \
-e MYSQL_ROOT_PASSWD=my-secret-pw \
-e MYSQL_SERVER_DB_NAME=onlyoffice_mailserver \
-v /app/onlyoffice/MailServer/data:/var/vmail \
-v /app/onlyoffice/MailServer/data/certs:/etc/pki/tls/mailserver \
-v /app/onlyoffice/MailServer/logs:/var/log \
-h yourdomain.com \
onlyoffice/mailserver

Burada yourdomain.com posta sunucusunun ana bilgisayar adıdır.

not

Yazışmalar için kullanılacak alan adınız geçerli olmalı ve bu makine için yapılandırılmış olmalıdır (yani DNS ayarlarında, alan adınızı ONLYOFFICE Mail'in kurulu olduğu makinenin IP adresine yönlendiren uygun bir A kaydı bulunmalıdır).

Yukarıdaki komutta "yourdomain.com" parametresi ONLYOFFICE Mail için hizmet alan adı olarak anlaşılmalıdır. Bu ad genellikle yazışmalar için kullanılacak alan adının MX kaydında belirtilir. Kural olarak "yourdomain.com", mx1.onlyoffice.com gibi görünür.

Bu yapılandırmada posta sunucusu, e-postaları bu sunucuda barındırılan iç adreslere teslim eder.

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

Tüm veriler, veri birimleri olarak bilinen ve şu konumlarda bulunan ayrılmış dizinlerde depolanır:

  • /var/log: ONLYOFFICE Mail günlükleri için
  • /var/lib/mysql: MySQL veritabanı verileri için
  • /var/vmail: posta depolaması için
  • /etc/pki/tls/mailserver: sertifikalar için
Önerimiz

Verileri Docker kapsayıcılarının dışında, ana makinede depolamak, ONLYOFFICE Mail'i veri kaybı olmadan yeni sürümlere güncellemenizi sağlar.

Kapsayıcının dışındaki verilerinize erişmek için birimleri bağlamanız gerekir. Bunun için docker run komutunda -v seçeneğini belirtin.

sudo docker run --privileged -i -t -d -p 25:25 -p 143:143 -p 587:587 -p 8081:8081 \
-v /app/onlyoffice/MailServer/logs:/var/log \
-v /app/onlyoffice/MailServer/mysql:/var/lib/mysql \
-v /app/onlyoffice/MailServer/data:/var/vmail \
-v /app/onlyoffice/MailServer/data/certs:/etc/pki/tls/mailserver -h yourdomain.com onlyoffice/mailserver
not

Henüz var olmayan klasörleri bağlamaya çalışırsanız bu klasörlerin oluşturulacağını, ancak erişimin sınırlı olacağını unutmayın. Erişim haklarını elle değiştirmeniz gerekir.

Verileri ana makinede depolamak, yeni sürüm yayımlandığında ONLYOFFICE Mail'i verilerinizi kaybetmeden kolayca güncellemenizi sağlar.

Docker imajını yapılandırma​

E-postaların hem iç adreslere hem de harici sunucuların adreslerine teslim edilmesi için kendi alan adınızı edinmeniz ve bir DNS sunucusunu yapılandırmanız gerekir.

Şu DNS kayıtları gereklidir:

  • A kaydı (bir alan adını bu Docker imajının dağıtıldığı ana bilgisayarın IP adresine yönlendirmek için kullanılır).
  • İşaretçi (PTR) kaydı veya ters DNS kaydı (bir ağ arayüzünü (IP) bir ana bilgisayar adıyla eşlemek için kullanılır).
sudo docker run --privileged -i -t -d -p 25:25 -p 143:143 -p 587:587 \
-v /app/onlyoffice/MailServer/data/certs:/etc/pki/tls/mailserver -h yourdomain.com onlyoffice/mailserver

Burada yourdomain.com posta sunucunuzun ana bilgisayar adıdır.

SSL sertifikalarını kurma​

Docker kapsayıcısı çalıştırılırken alan adınız için varsayılan olarak otomatik imzalı sertifikalar oluşturulur. Bir sertifika yetkilisi (CA) tarafından imzalanmış sertifikalar kullanmak istiyorsanız, imajı çalıştırmadan önce bunları yeniden adlandırıp /app/onlyoffice/MailServer/data/certs dizinine kopyalamanız gerekir. Şu dosyalar gereklidir:

  • /app/onlyoffice/MailServer/data/certs/mail.onlyoffice.key
  • /app/onlyoffice/MailServer/data/certs/mail.onlyoffice.crt
  • /app/onlyoffice/MailServer/data/certs/mail.onlyoffice.ca-bundle

SSL sertifikalarını imajı çalıştırdıktan sonra da /app/onlyoffice/MailServer/data/certs dizinine kopyalayabilirsiniz. Ancak bu durumda Docker kapsayıcısını yeniden başlatmanız gerekir.

Kullanılabilir yapılandırma parametreleri​

not

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

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

  • STORAGE_BASE_DIR: Posta deposunun yolu. Varsayılan değer /var/vmail.
  • FIRST_DOMAIN: Postmaster adresinin barındırılacağı ilk sanal alan adı. Bu alan adı, ana posta sunucusu alan adıyla aynı olmamalıdır. Varsayılan değer mailserver.onlyoffice.com.
  • DOMAIN_ADMIN_PASSWD: Postmaster parolası. Varsayılan postmaster adresi postmaster@mailserver.onlyoffice.com.

ONLYOFFICE Mail'i ONLYOFFICE Docs ile bütünleşik kurma​

ONLYOFFICE Mail, ONLYOFFICE Docs, ONLYOFFICE Control Panel ve ONLYOFFICE Community Server'ı da içeren ONLYOFFICE Workspace'in bir parçasıdır. Tüm bileşenleri kurup birbirleriyle bütünleştirmek için şu yönergelere bakın.

ONLYOFFICE Mail'i kurmanın alternatif yolları​

Alternatif olarak, tüm Workspace'i tek seferde kurmak için otomatik kurulum betiğini kullanabilirsiniz. Posta sunucusunun doğru çalışması için yourdomain.com ana bilgisayar adını belirtin.

1. ADIM: Kurulum betiği dosyasını indirin

Şu komutu çalıştırın:

wget https://download.onlyoffice.com/install/workspace-install.sh

2. ADIM: Workspace'i kurun

Bunun için şu komutu çalıştırın:

bash workspace-install.sh -md yourdomain.com