NextCloud最佳实践记录

这篇文章记录一下使用docker搭建NextCloud的过程。

特点:简洁高效,无侵入性,容易迁移,自动从Let’sEncrypt申请、更新SSL证书,不需要自己写nginx.conf。

环境:GreenCloudVPS大阪33.6刀/年大盘鸡 1G内存200G硬盘。

首先安装docker:

1
bash <(curl -s -L https://get.docker.io)

安装docker-compose:

1
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

https://hub.docker.com/_/nextcloud“按图索骥”来到https://github.com/nextcloud/a/tree/master/.examples/docker-compose/with-nginx-proxy-self-signed-ssl/mariadb/fpm,将该页面文件下载到VPS,下载后目录结构如下。

1
2
3
4
5
6
7
8
9
nextcloud
├── db.env
├── docker-compose.yml
├── proxy
│   ├── Dockerfile
│   └── uploadsize.conf
└── web
├── Dockerfile
└── nginx.conf

修改docker-compose.yml中的如下字段

1
2
3
4
- MYSQL_ROOT_PASSWORD=your_mysql_password
- VIRTUAL_HOST=domain.com
- LETSENCRYPT_HOST=domain.com
- [email protected]

修改db.env中的字段

1
2
3
MYSQL_PASSWORD=your_mysql_password
MYSQL_DATABASE=nextcloud
MYSQL_USER=nextcloud

部署

1
docker-compose up -d

修改目录权限

1
2
docker-compose exec app chown -R www-data:www-data /var/www/html/config/
docker-compose exec app chown -R www-data:www-data /var/www/html/data/

此时,即可通过浏览器打开 https://domain.com 开始nextcloud的初始化设置。

遇到的问题

NextCloud App不能通过授权的方式登录。经过爬贴,最终解决:

1
2
docker exec -it nextcloud_app_1 sh # 进入容器
vi config/config.php # 编辑config.php

http替换为https

1
2
3
4
5
6
<?php
$CONFIG = array (
...
'overwrite.cli.url' => 'https://domain.com',
'overwriteprotocol' => 'https',
...

修改后,退出容器,运行docker-compose restart,app授权登录无限循环问题解决。

NextCloud最佳实践记录

https://oxo.red/bestwayfornextcloud/

作者

Han

发布于

2020-10-29

更新于

2021-08-20

许可协议

评论