私人网盘搭建
NextCloud Docker Install
通过OwnCloud团队带来的全新产品:NextCloud,我们可以快速拥有自己的个人网盘。
docker搭建
话不多说,选用当下最新的版本
docker pull nextcloud:17.0.0
配置主目录、数据盘、配置文件夹
mkdir -p ~/docker_mnt/nextcloud ~/docker_mnt/nextcloud/custom_apps ~/docker_mnt/nextcloud/data ~/docker_mnt/nextcloud/config
启动容器
docker run -d -p 8090:80 --name=nextcloud -v ~/docker_mnt/nextcloud:/var/www/html --restart=always nextcloud:17.0.0
部署https
# 安装 certbot 以及 certbot nginx 插件
sudo yum install certbot python2-certbot-nginx -y
# 执行配置,中途会询问你的邮箱,如实填写即可
sudo certbot --nginx
# 自动续约
sudo certbot renew --dry-run
配置数据库
通过你的域名访问网页后,首次运行会让你输入数据库相关信息
如果你部署了https
编辑config文件
vim ~/docker_mnt/nextcloud/config/config.php
增加配置,避免某个CSP错误
`overwriteprotocol` => `https`
重启docker
docker container restart nextcloud
外挂SMB存储盘
进入容器内部
docker exec -t -i nextcloud /bin/bash
安装smbclient
apt-get update
apt-get install smbclient
如果你同时会异地组网的话,你甚至可以外挂你的所有笔记本、台式电脑里的内容,实现大一统。
外挂的存储后台任务
Nextcloud可能无法始终找出远程更改的内容(没有通过Nextcloud更改了文件),尤其是当它在外部存储的文件夹层次结构中非常深入时。 此时我们制定定时扫描任务:
docker exec --user www-data nextcloud php occ files:scan --all
网页性能不行?
优化一下吧,基本设置后台任务选择通过Cron后,创建定时任务服务执行下面的命令
docker exec --user www-data nextcloud php cron.php
具体实现:
在/etc/systemd/system/目录下创建nextcloudcron.service和nextcloudcron.timer两个文件
nextcloudcron.service
[Unit]
Description=Nextcloud cron.php job
[Service]
User=root
ExecStart=/usr/bin/docker exec --user www-data nextcloud php cron.php
[Install]
WantedBy=basic.target
nextcloudcron.timer
Description=Run Nextcloud cron.php every 5 minutes
[Timer]
OnBootSec=5min
OnUnitActiveSec=5min
Unit=nextcloudcron.service
[Install]
WantedBy=timers.targett
安装并启动服务
systemctl enable --now nextcloudcron.timer
卸载NextCloud
如果你的安装出了问题,快速卸载干净
docker stop nextcloud
docker rm nextcloud
删除image
#查出id
docker images ls
#执行删除
docker image rm IMAGEID