使用Docker部署 ONLYOFFICE 并启用 HTTPS 的完整指南

一、项目概述

ONLYOFFICE 是一个强大的在线文档编辑和协作平台。通过 Docker 部署 ONLYOFFICE 并启用 HTTPS,可以安全地访问和编辑文档。本文将通过逐步指导您完成这个过程。

二、流程概览

下面是实现 ONLYOFFICE Docker HTTPS 的步骤:

步骤 内容
1 安装 Docker 和 Docker Compose
2 创建 Docker Compose 文件
3 配置域名和获取 SSL 证书
4 启动 ONLYOFFICE
5 验证 HTTPS 是否成功

三、详细步骤

步骤 1:安装 Docker 和 Docker Compose

首先,您需要在您的服务器上安装 Docker 和 Docker Compose。您可以使用以下命令来安装它们。

# 更新您的包列表
sudo apt-get update

# 安装 Docker
sudo apt-get install -y docker.io

# 启动并使 Docker 在引导时自动启动
sudo systemctl start docker
sudo systemctl enable docker

# 安装 Docker Compose
sudo curl -L " -s  | grep tag_name | cut -d '\"' -f 2)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 验证安装
docker --version
docker-compose --version

这些命令首先更新了系统的包列表,然后安装 Docker 和 Docker Compose,并确保它们在系统启动时自动启动。最后,我们验证了它们的安装是否成功。

步骤 2:创建 Docker Compose 文件

我们需要创建一个 Docker Compose 文件,以便能够快速部署 ONLYOFFICE。创建一个新目录并进入:

# 创建目录
mkdir onlyoffice
cd onlyoffice

# 创建 docker-compose.yml 文件
touch docker-compose.yml

编辑 docker-compose.yml 文件如下:

version: '3.1'

services:
  onlyoffice:
    image: onlyoffice/documentserver
    depends_on:
      - mongo
      - redis
    environment:
      - JWT_ENABLED=true
      - JWT_SECRET=your_secret
      - DB_TYPE=mongodb
      - DB_DRIVER=mongo
      - DB_HOST=mongo
      - DB_PORT=27017
      - DB_USER=your_user
      - DB_PASS=your_password
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - onlyoffice_data:/var/www/onlyoffice/Data
      - onlyoffice_logs:/var/log/onlyoffice

  mongo:
    image: mongo
    volumes:
      - mongo_data:/data/db

  redis:
    image: redis
    volumes:
      - redis_data:/data

volumes:
  onlyoffice_data:
  mongo_data:
  redis_data:

在这个文件中,我们定义了 onlyofficemongoredis 三个服务,每个服务都有相应的配置。

步骤 3:配置域名和获取 SSL 证书

您需要一个域名来访问 ONLYOFFICE。您可以通过 Let’s Encrypt 获取免费的 SSL 证书。

安装 Certbot:

# 安装 Certbot
sudo apt-get install -y certbot

使用 Certbot 获取 SSL 证书:

# 替换 your-domain.com 为您的真实域名
sudo certbot certonly --standalone -d your-domain.com

证书将会存储在 /etc/letsencrypt/live/your-domain.com/ 目录下。请记下这条路径,后续步骤需要应用它们。

步骤 4:启动 ONLYOFFICE

在您当前目录中,使用以下命令来启动 ONLYOFFICE:

# 启动 ONLYOFFICE
sudo docker-compose up -d

这个命令会在后台启动 ONLYOFFICE 及其依赖项。您可以通过访问 ` 来验证。

步骤 5:验证 HTTPS 是否成功

接下来,您需要创建一个 Nginx 反向代理,来使 ONLYOFFICE 支持 HTTPS。首先,安装 Nginx:

# 安装 Nginx
sudo apt-get install -y nginx

然后编辑 Nginx 配置文件:

sudo nano /etc/nginx/sites-available/onlyoffice

添加以下内容:

server {
    listen 80;
    server_name your-domain.com;
    return 301 https://$host$request_uri;  # HTTP重定向到HTTPS
}

server {
    listen 443 ssl;
    server_name your-domain.com;

    ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;

    location / {
        proxy_pass   # ONLYOFFICE HTTP端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

保存并关闭文件后,创建符号链接到 sites-enabled

sudo ln -s /etc/nginx/sites-available/onlyoffice /etc/nginx/sites-enabled/

最后,重启 Nginx:

# 重启 Nginx
sudo systemctl restart nginx

至此,您可以通过 ` 访问 ONLYOFFICE。

类图

以下是系统的类图:

classDiagram
    class ONLYOFFICE {
        +start()
        +stop()
        +configure()
    }

    class MongoDB {
        +connect()
        +storeData()
    }

    class Redis {
        +cacheData()
        +fetchCache()
    }

    class Nginx {
        +redirectHTTP()
        +handleHTTPS()
    }

    ONLYOFFICE --> MongoDB : uses
    ONLYOFFICE --> Redis : uses
    Nginx --> ONLYOFFICE : proxies to

四、总结

通过以上步骤,您应该成功地在 Docker 上部署了 ONLYOFFICE 并启用了 HTTPS。确保域名解析正确,并使用 HTTPS 访问您部署的文档编辑服务。希望这篇文章能对您有所帮助,如果在实施过程中有任何疑问,请随时寻求更多支持。