威联通qnap 453dmini nas 部署docker+nextcloud+onlyoffice+https

2022-01-17 10:38:47 17点赞 126收藏 10评论

威联通qnap 453dmini nas 部署docker+nextcloud+onlyoffice+https

1.概览

1.前言

本教程针对的宿主机为威联通qnap 453dmini nas,理论上其他威联通品牌的x86 nas是通用的,由于qnap系统是定制化的linux,很多ubuntu或者centos有的功能他没有,所以有些地方只能采用迂回处理的方式。

本教程不是小白教程,基础教程请自行百度,例如docker,ssh,nginx等等

2.缘由

全网基本很难找到一篇nas+docker+nextcloud+onlyoffice+https的完整教程,自己摸索了一整天才算部署到能正常使用,虽然有些地方的配置还是不如我意,唉,心累。遂打算抽点时间发个教程,有缘人看到了希望能为你节省点时间。

3.要求

会使用linux命令,docker和docker-compose,nginx,这些基础教程没法写一起,耦合度太高了,本篇内容仅针对nextcloud部署

4.整体思路

nextcloud部署为http请求方式,通过nginx反向代理实现https,onlyoffice直接配置https

2.环境

1.网络环境

网络拓扑图网络拓扑图

以上为简单的网络拓扑图,旁路由设置了我的域名ip为nas内网ip,方便同一域名地址下外网走公网、内网走局域网

2.nas环境

已安装container station,已安装nginx且配好证书,打开ssh

3.教程

1.提示

防止隐私泄露,以下所有abc.com代指我的公网域名,192.168.0.103代指我的局域网nas ip

所有的账号密码自己都可以改,注意可能会需要改多个地方

所有vi命令都是把代码块cv进去,具体vi操作请百度,这里写个简单的示例:vi a.txt,按一下i,复制文本,shift+insert粘贴,按下esc,输入:wq回车。

CACHEDEV1_DATA指的是我的nas中的存储目录,你们的会不会是这个名字我不清楚,请自行查看

2.教程正文

ssh连接nas

mkdir -p /share/CACHEDEV1_DATA/docker/docker/docker-script/nextcloud

mkdir -p /share/CACHEDEV1_DATA/docker/docker/docker-volumes

cd /share/CACHEDEV1_DATA/docker/docker/docker-script/nextcloud

vi docker-compose.yml


version: '3'
services:
nextcloud:
container_name: nextcloud
image: nextcloud
environment:
- UID=0
- GID=0
- UPLOAD_MAX_SIZE=10G
- APC_SHM_SIZE=128M
- OPCACHE_MEM_SIZE=128
- CRON_PERIOD=15m
- TZ=Aisa/Shanghai
- NEXTCLOUD_ADMIN_USER=admin
- NEXTCLOUD_ADMIN_PASSWORD=admin
- MYSQL_HOST=mariadb
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=nextcloud
- MYSQL_DATABASE=nextcloud
- REDIS_HOST=redis
- REDIS_HOST_PORT=6379
volumes:
- ${NEXTCLOUD_DIR}/data:/var/www/html
ports:
- 8000:80
restart: always
extra_hosts:
- "abc.com:192.168.0.103" #按照自己的修改
links:
- mariadb
- redis
depends_on:
- mariadb
- redis
deploy:
resources:
limits:
cpus: 4
memory: 2G
mariadb:
container_name: mariadb
image: mariadb
ports:
- 3306:3306
restart: always
command: --skip-innodb-read-only-compressed --transaction-isolation=READ-COMMITTED --binlog-format=ROW --lower_case_table_names=1
volumes:
- ${MYSQL_DIR}/data:/var/lib/mysql
- ${MYSQL_DIR}/conf:/etc/mysql/conf.d
- ${MYSQL_DIR}/script:/docker-entrypoint-initdb.d
environment:
- TZ=Asia/Shanghai
- MYSQL_ROOT_PASSWORD=root
- MYSQL_PASSWORD=nextcloud
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
logging:
options:
max-size: 1G
deploy:
resources:
limits:
cpus: 4
memory: 2G
redis:
container_name: redis
image: redis
ports:
- 6379:6379
environment:
TZ: Asia/Shanghai
volumes:
- ${REDIS_DIR}/data:/data
restart: always
logging:
options:
max-size: 1G
deploy:
resources:
limits:
cpus: 2
memory: 1G
onlyoffice:
container_name: onlyoffice
image: onlyoffice/documentserver
ports:
- "8001:443"
environment:
- TZ=Asia/Shanghai
volumes:
- ${ONLYOFFICE_DIR}/data:/var/www/onlyoffice/Data
- ${ONLYOFFICE_DIR}/logs:/var/log/onlyoffice
- ${ONLYOFFICE_DIR}/lib:/var/lib/onlyoffice
- ${ONLYOFFICE_DIR}/db:/var/lib/postgresql
- ${ONLYOFFICE_DIR}/fonts:/usr/share/fonts
privileged: true
restart: always
extra_hosts:
- "abc.com:192.168.0.103" #按照自己的修改
logging:
options:
max-size: 1G
deploy:
resources:
limits:
cpus: 2
memory: 4G


vi .env


MYSQL_ROOT_HOST=%
MYSQL_ROOT_PASSWORD=root
MYSQL_DIR=/share/CACHEDEV1_DATA/docker/docker-volumes/mariadb
NEXTCLOUD_DIR=/share/CACHEDEV1_DATA/docker/docker-volumes/nextcloud
REDIS_DIR=/share/CACHEDEV1_DATA/docker/docker-volumes/redis
ONLYOFFICE_DIR=/share/CACHEDEV1_DATA/docker/docker-volumes/onlyoffice


docker-compose —compatibility up

至此第一步部署成功,接下来需要更改文件配置

1.修改/share/CACHEDEV1_DATA/docker/docker-volumes/nextcloud/data/config/config.php中’trusted_domains’的值,并添加下面两行配置,格式按照以下示例,10.0.5.1指的是docker0的地址,默认都是这个,如果你不是,进入container station看下属性里的docker0


'trusted_domains' =>
array (
0 => '192.168.0.103:8000',
1 => 'abc.com:9000',
2 => '10.0.5.1:8000',
),
'overwriteprotocol' => 'https',
'allow_local_remote_servers' => true,


2./share/CACHEDEV1_DATA/docker/docker-volumes/onlyoffice/data文件夹中创建certs文件夹,把证书放入certs文件夹并重命名为onlyoffice.crt和onlyoffice.key

3.nginx配置反向代理:


server {
listen 9000 ssl http2;
listen [::]:9000 ssl http2;
#server_name请输入自己的域名
server_name abc.com;
root /usr/share/nginx/html;

#证书crt路径
ssl_certificate /etc/nginx/conf.d/ssl/server.crt;
#证书key路径
ssl_certificate_key /etc/nginx/conf.d/ssl/SSLprivatekey.key;

ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m; # about 40000 sessions
ssl_session_tickets off;

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;

# HSTS (ngx_http_headers_module is required) (63072000 seconds)
add_header Strict-Transport-Security "max-age=63072000" always;

# OCSP stapling
ssl_stapling on;
ssl_stapling_verify on;

#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

client_max_body_size 10g;

location / {
proxy_buffering off;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8000;
}
}


4.端口8001和9000开放给公网(有公网ip就设路由器转发端口,像我这样走frp内网穿透的就配置下穿透端口,尽量保证端口一致避免未知问题)

5.访问https://apps.nextcloud.com/apps/onlyoffice ,下载对应版本压缩包

6.解压后放入/share/CACHEDEV1_DATA/docker/docker-volumes/nextcloud/data/apps中

7.访问https://abc.com:9000 ,登录后点下右上角头像下拉框,进入应用,选择已禁用的应用,启用onlyoffice

8.进入设置->ONLYOFFICE,第一行填https://abc.com:8001/ ,第二行留空,更多设置点开,第三行填https://abc.com:8001/ ,第四行填http://10.0.5.1:8000/

9.选择基本设置,后台任务设置为Webcron

10.连上ssh,输入crontab -e ,加一行 /5 * curl http://192.168.0.103:8000/cron.php ,保存退出

11.重启cron,输入/etc/init.d/crond.sh restart 回车

12.接触上传速度限制:docker exec -u www-data -it nextcloud php occ config:app:set files max_chunk_size —value 0

完成

4.结语

部署这套应用的目的就是为了能有一个属于个人的云流程图和云思维导图,方便win+mac+ios+android都可以不用安装相应的软件使用,并且不会受商业化的免费在线流程图和思维导图的限制,这俩插件直接下载解压就可以用了。onlyoffice我可能只会做预览使用,真要编辑office还是在本地更顺手。

由于我内网设置了域名ip为内网ip,没有考虑过内网通过ip访问,实测通过ip直接访问是有问题的,不想折腾了

如果教程有什么地方有问题麻烦评论下说一下,我看到会回复并且修改教程。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2599元起

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

3199元起

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

1999元起

QNAP 威联通 TS-464C2 4盘位NAS(赛扬N5095、8GB)

QNAP 威联通 TS-464C2 4盘位NAS(赛扬N5095、8GB)

2699元起

QNAP 威联通 TS-216 双盘位NAS (ARM Cortex A55、2GB)

QNAP 威联通 TS-216 双盘位NAS (ARM Cortex A55、2GB)

1199元起

QNAP 威联通 TS-462C 4盘位NAS(赛扬N4505、4GB)

QNAP 威联通 TS-462C 4盘位NAS(赛扬N4505、4GB)

1899元起

QNAP 威联通 TS-564 五盘位NAS (N5105、8GB)

QNAP 威联通 TS-564 五盘位NAS (N5105、8GB)

2000元起

QNAP 威联通 TS-416 四盘位NAS(Cortex-A55、4GB)

QNAP 威联通 TS-416 四盘位NAS(Cortex-A55、4GB)

1599元起

QNAP 威联通 TS-262C 双盘位NAS(赛扬N4505、4GB)

QNAP 威联通 TS-262C 双盘位NAS(赛扬N4505、4GB)

1699元起

QNAP 威联通 TS-264C-4G 双盘位 NAS存储(N5105、4GB)

QNAP 威联通 TS-264C-4G 双盘位 NAS存储(N5105、4GB)

1899元起

QNAP 威联通 TS-464C 4盘位NAS 黑色(赛扬N5095、8GB)

QNAP 威联通 TS-464C 4盘位NAS 黑色(赛扬N5095、8GB)

3499元起

QNAP 威联通 TS-464C 4盘位8G内存四核心处理器网络存储服务器内置双M.2插槽NAS(含企

QNAP 威联通 TS-464C 4盘位8G内存四核心处理器网络存储服务器内置双M.2插槽NAS(含企

2099元起

QNAP 威联通 TS-264C 宇宙魔方 8G内存2盘位四核心处理器网络存储服务器内置双 M.2 插槽NAS私有云

QNAP 威联通 TS-264C 宇宙魔方 8G内存2盘位四核心处理器网络存储服务器内置双 M.2 插槽NAS私有云

1899元起

QNAP 威联通 TS-212P3 双盘位NAS(Realtek RTD1295、1GB)

QNAP 威联通 TS-212P3 双盘位NAS(Realtek RTD1295、1GB)

799元起

QNAP 威联通 TS-453Bmini 4盘位NAS(J3455、4GB)

QNAP 威联通 TS-453Bmini 4盘位NAS(J3455、4GB)

1899元起

QNAP 威联通 TS-873A 8盘NAS(V1500B、8GB)

QNAP 威联通 TS-873A 8盘NAS(V1500B、8GB)

7480元起
10评论

  • 精彩
  • 最新
  • NextCloud + Onlyoffice,能实现什么功能呢?本地云的在线办公文档吗?

    校验提示文案

    提交
    准确说的话是私有云的在线文档编辑吧,协作文档功能我没尝试过,不过搭建了这么久,唯一有用的就是draw..io在线画流程图,各个设备都能直接网页在线看到最新的文档,onlyoffice弄好了就没用过…..感觉没本地编辑流畅,有点鸡肋

    校验提示文案

    提交
    收起所有回复
  • https 每次都要手动加s 直接输域名打不开怎么办

    校验提示文案

    提交
    反向代理配置监听80端口重定向到https

    校验提示文案

    提交
    收起所有回复
  • 赞大佬,我之前也折腾过,最后发现openoffice不支持ipv6公网,最后申请了ipv4公网ip后就迎刃而解了….咳

    校验提示文案

    提交
  • 写的好棒哦 [么么哒] [么么哒]

    校验提示文案

    提交
  • 准确说的话是私有云的在线文档编辑吧,协作文档功能我没尝试过,不过搭建了这么久,唯一有用的就是draw..io在线画流程图,各个设备都能直接网页在线看到最新的文档,onlyoffice弄好了就没用过…..感觉没本地编辑流畅,有点鸡肋

    校验提示文案

    提交
  • 哇好复杂的感觉,公司用的可道云,在线编辑office、流程图啥的都有。

    校验提示文案

    提交
  • 我使用类似组合:可道云+onlyoffice(第三方插件),Windows一样的操作和快捷键,很高效很方便

    校验提示文案

    提交
  • 不错的

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章

cocobolor

Ta还没有介绍自己

关注 打赏
最新文章 热门文章
126
扫一下,分享更方便,购买更轻松