ONLYOFFICE là nền tảng mã nguồn mở cho phép chỉnh sửa trực tuyến các định dạng văn bản, bảng tính và trình chiếu — tương thích cao với chuẩn Office Open XML. Phiên bản cộng đồng cung cấp đầy đủ chức năng cơ bản như biên tập thời gian thực, theo dõi thay đổi, lịch sử phiên bản và tích hợp API mạnh mẽ. Trong bài viết này, chúng ta triển khai phiên bản 7.1.1 đã được tùy chỉnh để loại bỏ giới hạn kết nối và kích thước tệp, chạy trên môi trường Docker với cấu hình HTTP/HTTPS linh hoạt.
Chuẩn bị hình ảnh Docker
Nếu không có khả năng pull trực tiếp từ registry công cộng, bạn có thể tải về gói image offline dưới dạng tệp nén:
docker load -i onlyoffice-custom-7.1.1.tar.gz
Cấu hình docker-compose.yml
Dưới đây là hai mẫu cấu hình phổ biến: một cho giao thức HTTP đơn giản (phù hợp môi trường nội bộ), một cho HTTPS với chứng chỉ SSL tùy chỉnh.
Phiên bản HTTP (không yêu cầu chứng chỉ)
services:
doc-editor:
image: custom/onlyoffice:7.1.1-zh
container_name: onlyoffice-core
restart: unless-stopped
ports:
- "8015:80"
environment:
- TZ=Asia/Shanghai
- JWT_ENABLED=false
volumes:
- ./logs:/var/log/onlyoffice
- ./data:/var/www/onlyoffice/Data
- ./lib:/var/lib/onlyoffice
- ./postgres:/var/lib/postgresql
networks:
- internal-net
Phiên bản HTTPS (yêu cầu chứng chỉ SSL)
services:
doc-editor:
image: custom/onlyoffice:7.1.1-zh
container_name: onlyoffice-core
restart: unless-stopped
ports:
- "8015:443"
environment:
- TZ=Asia/Shanghai
- JWT_ENABLED=false
- USE_UNAUTHORIZED_STORAGE=true
volumes:
- ./logs:/var/log/onlyoffice
- ./data:/var/www/onlyoffice/Data
- ./lib:/var/lib/onlyoffice
- ./postgres:/var/lib/postgresql
- ./certs:/mnt/certs
- ./nginx/conf/ds.conf:/etc/nginx/conf.d/ds.conf
networks:
- internal-net
Cấu hình Nginx cho HTTPS
Tệp ds.conf cần được gắn vào container để định nghĩa virtual host với hỗ trợ TLS. Nội dung tiêu biểu gồm:
- Chuyển hướng toàn bộ truy cập HTTP sang HTTPS.
- Khai báo khối server lắng nghe cổng 443 với đường dẫn chứng chỉ SSL.
- Áp dụng chính sách bảo mật TLS hiện đại (chỉ hỗ trợ TLSv1.2+, cipher mạnh, HSTS).
- Bao gồm các file cấu hình con cho dịch vụ Document Server (
ds-*.conf).
Ví dụ đoạn cấu hình SSL trong ds.conf:
server {
listen 443 ssl http2;
server_name docs.example.com;
ssl_certificate /mnt/certs/docs.example.com.crt;
ssl_certificate_key /mnt/certs/docs.example.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
location / {
proxy_pass http://localhost:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Khởi động dịch vụ
docker-compose -f docker-compose.yaml up -d
Sau khi khởi tạo thành công, truy cập https://docs.example.com:8015 để kiểm tra giao diện người dùng — màn hình chào mừng xác nhận dịch vụ đã hoạt động.
Tinh chỉnh tự động lưu và lịch sử phiên bản
Để kích hoạt cơ chế lưu tự động và đảm bảo dữ liệu được ghi nhận đầy đủ vào hệ thống backend, chỉnh sửa cấu hình bên trong container:
- Vào container:
docker exec -it onlyoffice-core bash - Chỉnh sửa tệp
/etc/onlyoffice/documentserver/local.json - Cập nhật phần
autoAssemblynhư sau:
"autoAssembly": {
"enable": true,
"interval": "3000",
"step": "1000"
}
Lưu lại và khởi động lại container để áp dụng cấu hình mới. Lưu ý rằng local.json luôn ưu tiên hơn default.json, nên không cần can thiệp vào file mặc định.