前置条件:Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz 1 Virtual Core;Debian 12 bookworm;Caddy v2;docker 和 docker compose
owncloud使用docker compose部署,首先创建一个你自己喜欢的目录,等下我们把这个docker容器中的文件映射到这个目录。命令:mkdir whatever/path/to/owncloud && cd whatever/path/to/owncloud
编辑一下dockerfile:nano docker-compose.yml
,模板来自官方:
1 | volumes: |
然后 docker 启动! docker compose up -d
接下来就是把域名owncloud.mydomain.org解析到服务器ip地址,(这个时候编辑caddyfile并重启caddy也可以,不过我们装完onlyoffice再一起改)等下的onlyoffice也需要一个域名,所以解析的时候顺便把office.mydomain.org也解析到服务器的ip地址吧。
可以使用docker ps
查看owncloud和依赖有没有正常运行,如果不行,看一下docker compose logs -f
,排查原因。如果行,登录你刚刚在docker-compose.yml里面设置的owncloud管理员账户,进行基础设置,然后到owncloud的应用市场market里面下载onlyoffice这个应用。
owncloud设置大功告成,可以开始设置onlyoffice了:
我们在你喜欢的端口(比如12345)上面跑一个onlyoffice的docker 容器:
1 | docker run -i -t -d -p 12345:80 --restart=always onlyoffice/documentserver |
这个时候运行一下docker ps
,查看刚刚创建的这个容器id,然后运行:
1 | docker exec <onlyoffice-container-id> /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json ' |
可能就有人要问了:这个命令是干嘛的呢?
运行之后返回的字符串是我们onlyoffice的JWT secret key,等下在owncloud里面设置要用。把这个字符串记下来,下文中我们会用
好了,现在我们来设置Caddy吧。之所以在这一步设置Caddy,是因为onlyoffice(以及collabora online)要求服务端和客户端使用同样的协议,比如同为https或者同为http。我们使用Caddy进行反代,Caddy会自动给域名申请证书,这样owncloud客户端和onlyoffice服务端都是https协议的了。
如果你用的是nginx或者apache,也是一样的,如果需要https,请给两个域名手动申请证书,这里就不详细展开了。
我们编辑一下caddyfile吧:nano /etc/caddy/Caddyfile
加上下面这两行:
1 | owncloud.mydomain.org { |
保存并退出,重载一下caddy:systemctl reload caddy
现在通过owncloud.mydomain.org可以以https访问我们的owncloud实例了。
进入owncloud设置,左菜单栏下滑到底部选择“额外的”,在这里你可以设置onlyoffice服务器。
我们在ONLYOFFICE Docs地址那里填入office.mydomain.org,在秘钥那里填入
点击保存,大功告成!
尝试在owncloud文件中打开一个.docx结尾的文档,你会看到onlyoffice加载并启动。
好了,结束了!
吐槽一下:
这篇文章是在Logseq上面写的。Logseq也太难用了吧,这个块状排版真的不适合习惯普通段落式的人……尤其是代码块难用得蛋疼,一旦把一个块变为代码块就无法回到文本编辑模式了……
Logseq的多端同步也很糟糕,使用git自动commit让我不得不每分钟看见一次错误信息,而且iOS的git客户端Working Copy也比较贵。目前我的做法是Syncthing 在 Android手机和Linux PC之间同步,38块钱买一个iOS的Syncthing客户端Möbius Sync高级版(当然由于iOS的后台机制,功能是残废的)把iPad也加入同步链。Syncthing没有中心服务器,我又不能保证有一台设备24小时运行且可访问(这个问题在我整了台小主机之后解决了。我要试试用小主机当中心服务器看看是否改善),所以经常在同步后出现文件冲突,非常烦人。
iOS用户需要注意:Logseq只能打开本地文件夹,而且是在Logseq的iOS应用沙盒中的文件夹,这个问题没办法通过挂载云存储解决。要想和其他设备同步,只能在你的同步软件上面下功夫,让同步软件能够访问Logseq的应用沙盒,Möbius Sync如此,Working Copy应该也是如此(没用过)。