首先通过onlyoffice仓
git clone https://github.com/ONLYOFFICE/Docker-CommunityServer.git onlyoffice
cd onlyoffice
cp docker-compose.workspace.yml docker-compose.yml将下述的mail配置删除,准备使用外部邮件服务器
services:
onlyoffice-mysql-server:
container_name: onlyoffice-mysql-server
image: mysql:8.0.29
environment:
- MYSQL_ROOT_PASSWORD=my-secret-pw
networks:
- onlyoffice
stdin_open: true
tty: true
restart: always
volumes:
- ./config/mysql/conf.d:/etc/mysql/conf.d
- ./config/mysql/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
- mysql_data:/var/lib/mysql
onlyoffice-community-server:
container_name: onlyoffice-community-server
image: onlyoffice/communityserver:12.6.0.1900
depends_on:
- onlyoffice-mysql-server
- onlyoffice-document-server
# - onlyoffice-mail-server
- onlyoffice-elasticsearch
environment:
- ONLYOFFICE_CORE_MACHINEKEY=core_secret
- CONTROL_PANEL_PORT_80_TCP=80
- CONTROL_PANEL_PORT_80_TCP_ADDR=onlyoffice-control-panel
- DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-document-server
- DOCUMENT_SERVER_JWT_ENABLED=true
- DOCUMENT_SERVER_JWT_SECRET=jwt_secret
- DOCUMENT_SERVER_JWT_HEADER=AuthorizationJwt
- MYSQL_SERVER_ROOT_PASSWORD=my-secret-pw
- MYSQL_SERVER_DB_NAME=onlyoffice
- MYSQL_SERVER_HOST=onlyoffice-mysql-server
- MYSQL_SERVER_USER=onlyoffice_user
- MYSQL_SERVER_PASS=onlyoffice_pass
# - MAIL_SERVER_API_PORT=8081
# - MAIL_SERVER_API_HOST=onlyoffice-mail-server
# - MAIL_SERVER_DB_HOST=onlyoffice-mysql-server
# - MAIL_SERVER_DB_PORT=3306
# - MAIL_SERVER_DB_NAME=onlyoffice_mailserver
# - MAIL_SERVER_DB_USER=mail_admin
# - MAIL_SERVER_DB_PASS=Isadmin123
- ELASTICSEARCH_SERVER_HOST=onlyoffice-elasticsearch
- ELASTICSEARCH_SERVER_HTTPPORT=9200
networks:
- onlyoffice
ports:
- '11080:80'
- '11443:443'
- '5222:5222'
stdin_open: true
tty: true
restart: always
privileged: true
cgroup: host
volumes:
- community_data:/var/www/onlyoffice/Data
- community_log:/var/log/onlyoffice
- community_letsencrypt:/etc/letsencrypt
- document_data:/var/www/onlyoffice/DocumentServerData
- /sys/fs/cgroup:/sys/fs/cgroup:rw
- ./certs:/var/www/onlyoffice/Data/certs
onlyoffice-elasticsearch:
image: onlyoffice/elasticsearch:7.16.3
container_name: onlyoffice-elasticsearch
restart: always
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms1g -Xmx1g -Dlog4j2.formatMsgNoLookups=true"
- "indices.fielddata.cache.size=30%"
- "indices.memory.index_buffer_size=30%"
- "ingest.geoip.downloader.enabled=false"
networks:
- onlyoffice
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65535
hard: 65535
volumes:
- es_data:/usr/share/elasticsearch/data
expose:
- "9200"
- "9300"
onlyoffice-document-server:
container_name: onlyoffice-document-server
image: onlyoffice/documentserver:8.1
stdin_open: true
tty: true
restart: always
environment:
- JWT_ENABLED=true
- JWT_SECRET=jwt_secret
- JWT_HEADER=AuthorizationJwt
networks:
- onlyoffice
expose:
- '80'
- '443'
volumes:
- document_data:/var/www/onlyoffice/Data
- document_log:/var/log/onlyoffice
- ./document_fonts:/usr/share/fonts/truetype/custom
- document_forgotten:/var/lib/onlyoffice/documentserver/App_Data/cache/files/forgotten
# onlyoffice-mail-server:
# container_name: onlyoffice-mail-server
# image: onlyoffice/mailserver:1.6.75
# depends_on:
# - onlyoffice-mysql-server
# hostname: ${MAIL_SERVER_HOSTNAME}
# environment:
# - MYSQL_SERVER=onlyoffice-mysql-server
# - MYSQL_SERVER_PORT=3306
# - MYSQL_ROOT_USER=mail_admin
# - MYSQL_ROOT_PASSWD=Isadmin123
# - MYSQL_SERVER_DB_NAME=onlyoffice_mailserver
# networks:
# - onlyoffice
# restart: always
# privileged: true
# ports: ['25:25','143:143','587:587']
# stdin_open: true
# tty: true
# expose:
# - '8081'
# - '3306'
# volumes:
# - mail_data:/var/vmail
# - mail_certs:/etc/pki/tls/mailserver
# - mail_log:/var/log
onlyoffice-control-panel:
container_name: onlyoffice-control-panel
depends_on:
- onlyoffice-document-server
# - onlyoffice-mail-server
- onlyoffice-community-server
image: onlyoffice/controlpanel:3.5.2.530
environment:
- ONLYOFFICE_CORE_MACHINEKEY=core_secret
expose:
- '80'
- '443'
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- controlpanel_data:/var/www/onlyoffice/Data
- controlpanel_log:/var/log/onlyoffice
networks:
- onlyoffice
stdin_open: true
tty: true
networks:
onlyoffice:
driver: 'bridge'
volumes:
# mail_data:
# mail_certs:
# mail_log:
# mail_mysql:
document_data:
document_log:
document_forgotten:
community_mysql:
community_data:
community_log:
community_letsencrypt:
controlpanel_data:
controlpanel_log:
mysql_data:
es_data:
配置邮件服务器
按照一下配置STMP邮件服务器
Docker 重新部署完成后,OnlyOffice 并不自动知道你的 Mailcow 存在,你需要手动配置 SMTP 以便系统发送通知邮件:
登录 OnlyOffice 门户: 以管理员身份登录。
进入设置: 点击顶部的“设置”图标(齿轮),选择 系统设置 (System Management) -> SMTP 设置 (SMTP Settings)。
填写 Mailcow 信息:
Host: 填写 Mailcow 服务器的 IP 或域名(如果 Mailcow 在同一台宿主机的 Docker 网络中,请使用 Mailcow 的内部网络 IP 或确保网络互通;如果是公网域名,直接填域名)。
Port: 通常是
587(STARTTLS) 或465(SSL)。Authentication: 开启。
Login/Password: 输入 Mailcow 中创建的一个用来发信的邮箱账号和密码。
Sender Email: 与 Login 保持一致。
Sender Name: 自定义(如 "OnlyOffice Notification")。
测试: 点击“发送测试邮件”确保配置成功,然后保存。
配置demo:
主机: mail.hopo.dev 端口: 587 ----邮件服务器域名地址
身份验证: 对勾
主机登录: office@hopo.dev ------ 创建的邮件账号名
主机密码: *********** ------ 创建的邮件密码
Auth via NTLM: 不勾选
发件人显示名称:按需修改
发件人电邮地址: office@hopo.dev ------ 创建的邮件账号名
启动SSL: 打对勾
完成上述配置后,保存并发送测试邮件完成配置