ownCloud 部署教程(Ubuntu + Nginx + Docker Compose,支持 HTTPS)

ownCloud 部署教程(Ubuntu + Nginx + Docker Compose,支持 HTTPS)

本教程介绍如何在 Ubuntu 20.04/22.04 上,使用 Docker Compose 快速部署 ownCloud,并通过 Nginx + HTTPS 提供安全访问。


一、准备工作

  • 服务器:Ubuntu 20.04 / 22.04
  • 域名cloud.abc.xyz(已解析到服务器 IP)
  • 已有证书(由 acme.sh 签发,自行申请即可):
    • fullchain:/root/.acme.sh/cloud.abc.xyz_ecc/fullchain.cer
    • privkey:/root/.acme.sh/cloud.abc.xyz_ecc/cloud.abc.xyz.key

👉 提示:证书路径请根据自己实际申请路径修改。


二、安装 Docker + Docker Compose

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 移除旧版本
sudo apt remove -y docker.io containerd containerd.io
sudo apt autoremove -y

# 更新并安装依赖
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release

# 添加 Docker 官方 GPG key
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 添加 Docker 官方源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装 Docker & Compose
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# 查看版本
docker --version
docker compose version

👉 说明:本文使用 docker compose(新插件方式),如果你系统里只能用 docker-compose,可以替换命令。


三、安装配置 ownCloud

1
2
3
4
5
6
# 创建部署目录
sudo mkdir -p /opt/owncloud/{data,db}
cd /opt/owncloud

# 编辑 docker-compose.yml
sudo micro /opt/owncloud/docker-compose.yml

docker-compose.yml 内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
version: '3.7'

services:
db:
image: mariadb:10.6
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
environment:
- MYSQL_ROOT_PASSWORD=secret # 请修改为安全密码
- MYSQL_PASSWORD=owncloud # 请修改为安全密码
- MYSQL_DATABASE=owncloud
- MYSQL_USER=owncloud
volumes:
- ./db:/var/lib/mysql

owncloud:
image: owncloud/server:10.13
restart: always
ports:
- 8080:8080
depends_on:
- db
environment:
- OWNCLOUD_DOMAIN=cloud.abc.xyz
- OWNCLOUD_DB_TYPE=mysql
- OWNCLOUD_DB_NAME=owncloud
- OWNCLOUD_DB_USERNAME=owncloud
- OWNCLOUD_DB_PASSWORD=owncloud
- OWNCLOUD_DB_HOST=db
- OWNCLOUD_ADMIN_USERNAME=admin # 请结合实际修改
- OWNCLOUD_ADMIN_PASSWORD=adminpass # 请结合实际修改
- OWNCLOUD_MYSQL_UTF8MB4=true
volumes:
- ./data:/var/www/html

启动容器:

1
docker compose up -d

此时 ownCloud 运行在 http://127.0.0.1:8080,访问公网IP+端口即可


四、配置 Nginx 反向代理 + HTTPS

新建配置文件:

1
sudo micro /etc/nginx/sites-available/owncloud.conf

owncloud.conf 内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
server {
listen 80;
server_name cloud.abc.xyz;

# 80端口自动跳转HTTPS
location / {
return 301 https://$host$request_uri;
}
}

server {
listen 443 ssl http2;
server_name cloud.abc.xyz;

# 使用现成的证书(请根据实际路径修改)
ssl_certificate /root/.acme.sh/cloud.abc.xyz_ecc/fullchain.cer;
ssl_certificate_key /root/.acme.sh/cloud.abc.xyz_ecc/cloud.abc.xyz.key;

# 推荐 SSL 配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;

location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

}

启用站点并重启 Nginx:

1
2
3
sudo ln -s /etc/nginx/sites-available/owncloud.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

五、访问 ownCloud

打开浏览器访问:

👉 https://cloud.abc.xyz

初始账号密码:

  • 用户名:admin
  • 密码:adminpass

进入后台后即可使用 ownCloud。

👉 如果访问失败,请检查:

  • Nginx 是否正确代理
  • 防火墙或云服务器安全组是否放行 80、443 端口


ownCloud 部署教程(Ubuntu + Nginx + Docker Compose,支持 HTTPS)
http://example.com/2025/09/18/owncloud安装配置教程/
Author
John Doe
Posted on
September 18, 2025
Licensed under