跳转到内容

Nextcloud部署

Nextcloud 是目前最流行的开源协作平台和个人云存储方案,支持文件同步、日历、联系人以及丰富的插件生态。

推荐使用 Docker Compose 进行一键式部署,方便维护和升级。

services:
nextcloud-app:
image: nextcloud:apache
container_name: nextcloud-app
restart: always
volumes:
- nextcloud_data:/var/www/html
ports:
- 8888:80
environment:
# 数据库配置 (PostgreSQL)
- POSTGRES_HOST=db # 外部 Postgres 的 IP 或域名
- POSTGRES_DB=nextcloud # 数据库名
- POSTGRES_USER=[DB_USER] # 数据库用户名
- POSTGRES_PASSWORD=[DB_PASS] # 数据库密码
# Redis 缓存配置
- REDIS_HOST=redis # 外部 Redis 的 IP 或域名
#- REDIS_HOST_PASSWORD=[REDIS_PASS] # 如果 Redis 有密码则开启
# 初始化管理员账户
- NEXTCLOUD_ADMIN_USER=admin
- NEXTCLOUD_ADMIN_PASSWORD=[ADMIN_PASSWORD]
# 域名与协议配置
- NEXTCLOUD_TRUSTED_DOMAINS=[nxcloud.example.com]
- OVERWRITEHOST=[nxcloud.example.com]
- OVERWRITEPROTOCOL=https
networks:
- nextcloud_network
volumes:
nextcloud_data:
networks:
nextcloud_network:
external: true

Nextcloud 提供了强大的命令行工具 occ。在容器环境中,需通过 docker exec 调用。

Terminal window
# 重置管理员密码
docker exec -u www-data -it nextcloud-app php occ user:resetpassword admin
# 列出所有用户
docker exec -u www-data -it nextcloud-app php occ user:list
# 查看当前已信任的域名
docker exec -u www-data -it nextcloud-app php occ config:system:get trusted_domains
# 添加新的信任域名
docker exec -u www-data -it nextcloud-app php occ config:system:set trusted_domains 1 --value=127.0.0.1:8888
docker exec -u www-data -it nextcloud-app php occ config:system:set trusted_domains 2 --value=[nxcloud.example.com]
# 手动触发文件扫描(适用于直接将文件放入宿主机 data 目录的情况)
docker exec -u www-data nextcloud-app php /var/www/html/occ files:scan --path="/admin/files/Books"

为了确保后台任务(如文件同步、预览图生成)能正常运行,建议在宿主机设置 crontab。

# 每 5 分钟执行一次 Nextcloud 后台任务
*/5 * * * * docker exec -u www-data nextcloud-app php -f /var/www/html/cron.php
# (可选) 定期扫描特定路径下的文件
*/5 * * * * docker exec -u www-data nextcloud-app php /var/www/html/occ files:scan --path="/admin/files/Books"