我的truenas设置在内网环境,由于国内家宽条件下是不会给443以及80端口的,我自己选择了一个高位端口,以下以12345这个端口为例。
Part 1 安装
首先, truenas-core版本自带了官方插件(plugins),直接可以自动部署,只需设置一个内网ip。
当然,装过nextcloud的人都知道,这玩意安装从来都不是最坑人的地方,而是各种后续毛病。。。
装完之后,访问他第一个会跳非信任的域名。
在jail的shell窗口进入命令行,在
/usr/local/www/nextcloud/config/config.php
中的trusted domain中加入给定的内网IP,即可访问。
在系统给的默认账号下登录,然后添加自定义的账号,删掉默认账号。
Part 2 域名,ssl以及nginx反代
之后,我自己是使用了一个home assistant插件库里面的nginx proxy manager。 然后 路由器转发端口 12345(以此为例)到nginx proxy manager所在ip的12345端口。再使用nginx 反代到nextcloud。添加trusted_proxies
'trusted_proxies' =>
array (
0 => '10.0.0.0/24',
),
当然怎样设置动态域名这些这边就不讲了,建议使用软路由的插件。至于ssl证书方面,现在免费的只能用几个月续签一次的lets encrypt,这是nginx proxy manager可以自动续签的,前提是使用dns challenge,而非传统验证(你没有443 80端口是怎么也验证不了的)。
这样以nextcloud.mydomain.com的动态域名和证书就都有了,现在如果你指向nextcloud,外网访问他第一个会跳不信任的域名,如刚开始那样把"域名:12345"加入信任域名即可。
同时新版本应该还是不行,这篇文章在写的时候是22.0.0_1版本,还需要使用occ命令设定跳转地址,即
sudo -u www php occ config:system:set overwritehost --value="nextcloud.mydomain.com:12345"
提示没有sudo就 apt install 或者yum或者pkg install 安装sudo,这几个总有一款适合你
更改config.php文件前最好装个nano,自带的vi太难用了。。。
此时应该还有登陆回车之后不会自动跳转的问题,即必须重新刷新一下才能进主页,此时在/usr/local/www/nextcloud/config/config.php
文件中最后添加一行
'overwriteprotocol' => 'https',
Part 3 文件夹挂载
当然,你还需要设置外部一个data文件夹挂载到jail内(将旧的data文件夹命名为dataold,然后复制内部文件到新的挂载的data文件夹,注意data文件夹内有俩隐藏文件.ocdata 和 .htaccess),即便你外部的文件夹权限设置成了任何用户都能读写,jail内的智障nextcloud依旧不能读写。。。
此时你需要在jail内
chmod -R 777 你的新data文件夹
此时才可正常使用
你以为完了吗,还需要在config.php里加上
'check_data_directory_permissions' => false,
这一行。。不然他会报错说其他用户能读取你文件,然后不让你登录。。。
现在应该是能正常进系统了,但据我两年前玩nextcloud的印象,这玩意问题应该会特别多。。。希望后面不再碰到吧。
Part 4 后台任务不能执行
进系统发现后台任务不能执行,果断切换成cron,
在jail中输入以下命令
crontab -u www -e
在打开的文件中输入:
*/5 * * * * php -f /usr/local/www/nextcloud/cron.php
可以用手动命令执行看看有没有问题:
sudo -u www php -f /usr/local/www/nextcloud/cron.php
Part 5 让视频显示缩略图
源自https://www.cnblogs.com/blackelk/p/nextcloud.html
首先在jail中安装ffmpeg
pkg install ffmpeg
然后
nano /usr/local/www/nextcloud/config/config.php
中最后加入
'enable_previews' => true,
'enabledPreviewProviders' =>
array (
0 => 'OC\\Preview\\Image',
1 => 'OC\\Preview\\Movie',
2 => 'OC\\Preview\\TXT',
),
这部分就完成了。