1. 介绍
官方列举的特点
- Nextcloud 让您的数据触手可及,尽在您的掌控之中。将您的文档、日历、联系人和照片存储在家里的服务器、我们的供应商之一或您信任的数据中心。
- Nextcloud 仪表板是您一天的起点,为您提供即将到来的约会、紧急电子邮件、聊天消息、收到的票证、最新推文等等的概览!用户可以设置他们的状态,以便其他人知道他们在做什么。
- 简单的 Web 界面允许您与服务器上的其他用户共享文件,创建和发送受密码保护的公共链接,让其他人将文件上传到您的云,并在另一个云服务器上的用户共享时在您的手机和桌面上获得通知文件直接与你。您也可以从桌面或移动客户端执行所有这些操作。
- 运行您自己的服务器需要工作,但 Nextcloud 可以尽可能轻松地为您和您的家人运行可靠、安全的服务。我们在设置屏幕中为您提供提示和建议,警告您更新并让您在 Web 界面中单击几下即可运行更新,提供 Web 安装程序和超级易于管理的 Snap 和 VM 映像等等。
- 高效、易于使用的界面是 Nextcloud 在竞争中脱颖而出的主要因素之一。设计不仅仅是漂亮。目标是让用户以最少的努力完成工作,使如何完成任务变得一目了然,并减少了完成任务所需的步骤数。良好的设计可以在整个用户界面中看到,每个版本都会向前迈进。
- 适用于 Android、iOS 和桌面系统的免费 Nextcloud 客户端允许您通过加密连接以完全安全的方式同步和共享文件。移动客户端具有自动上传您拍摄的照片和视频的功能,并且可以同步选择的文件和文件夹。客户端可以处理多个帐户,显示您服务器上发生的所有活动,并通知您新事件,例如新共享的可用性。
- 等等…
总结一下就是美观,方便,安全,多平台,扩展性强
常用地址
Github:https://github.com/nextcloud
官方DockerHub:https://hub.docker.com/_/nextcloud/
本次使用的镜像仓库:https://hub.docker.com/r/crazymax/nextcloud
2. 安装
1. 镜像简介
本次使用的NextCloud并不是官方仓库镜像
使用的是由crazy-max大佬制作的NextCloud镜像
2. 安装
创建文件夹
mkdir -p /root/data/docker_data/nextcloud
cd /root/data/docker_data/nextcloud
下载docker-compose和env环境文件
wget https://raw.githubusercontent.com/DDSRem/nextcloud-docker-compose/main/crazymax/docker-compose.yml
wget https://raw.githubusercontent.com/DDSRem/nextcloud-docker-compose/main/crazymax/.env
wget https://raw.githubusercontent.com/DDSRem/nextcloud-docker-compose/main/crazymax/msmtpd.env
wget https://raw.githubusercontent.com/DDSRem/nextcloud-docker-compose/main/crazymax/nextcloud.env
所有文件都是开源的,可以去我的Github查看,也可以自行修改
下载完成会出现4个文件,分别是docker-compose.yml
.env
msmtpd.env
nextcloud.env
docker-compose.yml
version: "3.2"
services:
## mariadb数据库
db:
image: mariadb:10.5
container_name: nextcloud_db
volumes:
- "./db:/var/lib/mysql"
environment:
- "MYSQL_ALLOW_EMPTY_PASSWORD=yes"
- "MYSQL_DATABASE"
- "MYSQL_USER"
- "MYSQL_PASSWORD"
restart: always
## redis缓存数据库
redis:
image: redis:6-alpine
container_name: nextcloud_redis
volumes:
- "./redis:/data"
environment:
- "TZ"
restart: always
command: redis-server --requirepass 'nextcloud'
expose:
- "6379"
## msmtpd邮件服务
msmtpd:
image: crazymax/msmtpd:latest
container_name: nextcloud_msmtpd
env_file:
- "./msmtpd.env"
environment:
- "TZ"
restart: always
## nextcloud主体
nextcloud:
image: crazymax/nextcloud:latest
container_name: nextcloud
depends_on:
- db
- redis
- msmtpd
ports:
- target: 8000
published: 8000
protocol: tcp
volumes:
- "./nextcloud:/data"
env_file:
- "./nextcloud.env"
environment:
- "TZ"
- "PUID"
- "PGID"
- "DB_TYPE=mysql"
- "DB_HOST=db"
- "DB_NAME=${MYSQL_DATABASE}"
- "DB_USER=${MYSQL_USER}"
- "DB_PASSWORD=${MYSQL_PASSWORD}"
restart: always
## cron模式运行
cron:
image: crazymax/nextcloud:latest
container_name: nextcloud_cron
depends_on:
- nextcloud
volumes:
- "./nextcloud:/data"
env_file:
- "./nextcloud.env"
environment:
- "TZ"
- "PUID"
- "PGID"
- "DB_TYPE=mysql"
- "DB_HOST=db"
- "DB_NAME=${MYSQL_DATABASE}"
- "DB_USER=${MYSQL_USER}"
- "DB_PASSWORD=${MYSQL_PASSWORD}"
- "SIDECAR_CRON=1"
- "CRON_PERIOD=*/5 * * * *"
restart: always
## 预览生成器
previewgen:
image: crazymax/nextcloud:latest
container_name: nextcloud_previewgen
depends_on:
- nextcloud
volumes:
- "./nextcloud:/data"
env_file:
- "./nextcloud.env"
environment:
- "TZ"
- "PUID"
- "PGID"
- "DB_TYPE=mysql"
- "DB_HOST=db"
- "DB_NAME=${MYSQL_DATABASE}"
- "DB_USER=${MYSQL_USER}"
- "DB_PASSWORD=${MYSQL_PASSWORD}"
- "SIDECAR_PREVIEWGEN=1"
- "PREVIEWGEN_PERIOD=0 * * * *"
restart: always
## 更新服务
news_updater:
image: crazymax/nextcloud:latest
container_name: nextcloud_news_updater
depends_on:
- nextcloud
volumes:
- "./nextcloud:/data"
env_file:
- "./nextcloud.env"
environment:
- "TZ"
- "PUID"
- "PGID"
- "DB_TYPE=mysql"
- "DB_HOST=db"
- "DB_NAME=${MYSQL_DATABASE}"
- "DB_USER=${MYSQL_USER}"
- "DB_PASSWORD=${MYSQL_PASSWORD}"
- "SIDECAR_NEWSUPDATER=1"
- "NC_NEWSUPDATER_THREADS=10"
- "NC_NEWSUPDATER_TIMEOUT=300"
- "NC_NEWSUPDATER_INTERVAL=900"
- "NC_NEWSUPDATER_LOGLEVEL=error"
restart: always
#volumes:
# db:
# nextcloud:
.env
# 默认环境变量设置
TZ=Asia/Shanghai
PUID=1000
PGID=1000
MYSQL_DATABASE=nextcloud
MYSQL_USER=nextcloud
MYSQL_PASSWORD=nextcloud
msmtpd.env
# https://github.com/crazy-max/docker-msmtpd
# SMPT服务器设置
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_TLS=on
SMTP_STARTTLS=on
SMTP_TLS_CHECKCERT=on
SMTP_AUTH=on
SMTP_USER=foo
SMTP_PASSWORD=bar
SMTP_FROM=foo@gmail.com
nextcloud.env
# nextcloud环境变量设置
MEMORY_LIMIT=512M
UPLOAD_MAX_SIZE=512M
OPCACHE_MEM_SIZE=128
APC_SHM_SIZE=128M
REAL_IP_FROM=0.0.0.0/32
REAL_IP_HEADER=X-Forwarded-For
LOG_IP_VAR=remote_addr
HSTS_HEADER=max-age=15768000; includeSubDomains
RP_HEADER=strict-origin
SUBDIR=
设置完成就可以启动了
docker-compose up -d
3. 简单配置和解决问题
1. 初始化
设置用户名和密码
安装推荐应用
2. 解决问题
进入概览会发现有这些问题
解决你还没有设置或验证你的电子邮件服务器配置。请前往基本设置,以便进行设置。之后,使用表单下方的 "发送电子邮件 "按钮来验证您的设置问题
cd /root/data/docker_data/nextcloud/nextcloud/config
nano config.php
在倒数第二行添加这条
'default_phone_region' => 'CN',
再次刷新,发现解决了
解决你还没有设置或验证你的电子邮件服务器配置。请前往基本设置,以便进行设置。之后,使用表单下方的 "发送电子邮件 "按钮来验证您的设置问题
进入设置-管理-基本设置
添加自己的SMPT服务就可以解决了
解决**通过 HTTP 不安全访问站点。强烈建议你将服务器设置为要求 HTTPS,参考步骤见 安全小贴士 ↗**问题
自己配置SSL
配置完成后会遇见这个问题
cd /root/data/docker_data/nextcloud/nextcloud/config
nano config.php
加入
1 => 'nextcloud.rcbczd.ga',
nextcloud.rcbczd.ga改为你的域名
更改'overwrite.cli.url' => 'xxxxxxxx',
为
'overwrite.cli.url' => 'https://xxxx.xxxx.xxxx',
'overwriteprotocol' => 'https',
全部解决
3. 配置
解决完成问题后我们开始配置
基本设置 选择Cron
配置redis
修改config.php
// 'memcache.local' => '\\OC\\Memcache\\APCu', //注释这一行,默认是没有注释的
'memcache.local' => '\\OC\\Memcache\\Redis',
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' => array(
'host' => 'redis',
'port' => 6379,
'password' => 'nextcloud'
),
'filelocking.enabled' => 'true',
docker-compose restart
重启
4. 安装OnlyOffice(自选,非必要)
安装OnlyOffice连接器
选择应用
搜索OnlyOffice
下载并启用
安装documentserver_community
wget https://github.com/nextcloud/documentserver_community/releases/download/v0.1.12/documentserver_community.tar.gz -P /root/data/docker_data/nextcloud/nextcloud/userapps
tar -zxvf /root/data/docker_data/nextcloud/nextcloud/userapps/documentserver_community.tar.gz -C /root/data/docker_data/nextcloud/nextcloud/userapps
rm -rf /root/data/docker_data/nextcloud/nextcloud/userapps/documentserver_community.tar.gz
chown -R 1000:1000 /root/data/docker_data/nextcloud/nextcloud/userapps/documentserver_community
选择启用
再次启用
完成
来到OnlyOffice,发现地址已经自动填写
可以正常使用了