BY xzllll

Podman安装部署Nextcloud | 开源自托管个人云存储共享协作方案

指南 | Guides 2024年12月27日

1.First | 序

1.1.What is nextcloud? | 什么是 nextcloud ?

Nextcloud 是一个开源的文件同步与共享平台,可以自建私有云服务

类似于

  • Google Drive
  • Dropbox
  • OneDrive

但数据完全由用户掌控,部署在自己的服务器或 VPS 上。

1.1.1.主要功能

  1. 文件存储与同步

    • 支持多设备(PC、手机、平板)之间的文件同步。
    • 可以通过 Web 界面访问,支持桌面和移动客户端。
  2. 共享与协作

    • 文件夹或文件可以与其他用户或外部用户共享,设置访问权限(只读、可编辑等)。
    • 内置文档协作工具(支持文档在线编辑,例如使用 Collabora Online 或 OnlyOffice)。
  3. 扩展插件系统

    • 提供大量插件(Calendar、Mail、Notes、Talk 视频会议等),可以扩展成一个完整的协同办公平台。
  4. 数据安全

    • 端到端加密,保证数据安全性。
    • 支持 LDAP、二次认证等用户认证方式。
  5. 跨平台

    • 支持 Linux、Windows、macOS 服务器端部署,客户端覆盖 Android 和 iOS。

1.1.2.为什么选择 Nextcloud ?

  • 隐私与控制权:所有数据都保存在自己掌控的服务器上,不依赖第三方服务。
  • 灵活性:根据需求选择不同的功能插件,打造专属云服务。
  • 成本节约:自建云存储可以节省长期的云服务费用。

如果你有一台 VPS 或服务器,可以考虑部署 Nextcloud 自建一个私有云,实现文件同步、备份和协作办公

以上总结来自ChatGPT

1.2.OS&APP Version | * 版本

1.2.1.OS

1.2.2.Podman

1.2.3.Nextcloud

1.2.4.PHP&MYSQL

2.Knowledgebase | 知识库

此篇示例使用容器部署 Nextcloud 且为 Podman(Quadlet)
Docker 用户完全可参考
可点击以下链接详细了解 Podman(Quadlet)

Quadlet | 结合Systemd优雅启动容器(containers)
Quadlet---启动容器从未如此优雅

考虑到 Nextcloud 应用于生产需要配置外部数据库(本篇示例使用Mysql)

所以我们使用到的容器镜像如下

  • lscr.io/linuxserver/nextcloud:latest
  • docker.io/library/mysql:8.0

2.1.Parameters | 参数

首先介绍容器参数以便理解 .container 文件

2.1.1.Nextcloud

  • PublishPort=127.0.0.1:30001:80

    • 功能:WebUI 端口映射
  • Environment=PUID=1000

    • 功能:用户 ID(UserID)
  • Environment=PGID=1000

    • 功能:用户组 ID(GroupID)
  • Environment=TZ=Etc/UTC

  • Volume=/home/nextcloud/config:/config

    • 功能:持久化配置文件存储路径
  • Volume=/home/nextcloud/data:/data

    • 功能:存储个人数据的路径

2.1.2.MYSQL

  • IP=10.88.255.1

    • 功能: 将MYSQL容器的IP地址指定为 10.18.255.1
  • Environment="MYSQL_ROOT_PASSWORD=xzllll.com"

    • 功能: MYSQL Root 用户密码赋值为 xzllll.com
  • Environment="MYSQL_USER=nextcloud"

    • 功能: MYSQL 用户名
  • Environment="MYSQL_PASSWORD=09ms22xc"

    • 功能: MYSQL 用户密码赋值为 09ms22xc
  • Environment="MYSQL_DATABASE=nextcloud"

    • 功能: MYSQL 数据库名称
  • Environment="MYSQL_ROOT_HOST=%"

    • 功能: 允许远程访问

3.Procedure | 步骤

了解完一些参数后即可部署容相应容器,步骤如下

  1. 部署 Mysql
  2. 部署 Nextcloud
  3. 初始化容器

3.1.Deployment MYSQL | 部署 Mysql

  1. 在/usr/share/containers/systemd目录下创建 nextcloud-mysql.container 文件

    编辑 nextcloud-mysql.container 文件

    [Unit]
    Description=MySQL is a widely used, open-source relational database management system (RDBMS)
    After=network-online.target
    Wants=network-online.target
    Before=shutdown.target
    
    [Container]
    IP=10.88.255.1
    ContainerName=nextcloud-mysql
    Image=docker.io/library/mysql:8.0
    Environment="MYSQL_ROOT_PASSWORD=xzllll.com" "MYSQL_USER=nextcloud" "MYSQL_PASSWORD=09ms22xc" "MYSQL_DATABASE=nextcloud"  "MYSQL_ROOT_HOST=%"
    Volume=/home/nextcloud/mysql:/var/lib/mysql
    
    [Install]
    WantedBy=default.target
    
  2. 重置 systemd

    systemctl daemon-reload
    
  3. 启动 nextcloud-mysql 容器

    systemctl start nextcloud-mysql
    
  4. 验证上述配置和 MYSQL 容器运行状态

3.2.Deployment Nextcloud | 部署 Nextcloud

  1. 在/usr/share/containers/systemd目录下创建 nextcloud.container 文件

    编辑 nextcloud.container 文件

    [Unit]
    Description=Nextcloud gives you access to all your files wherever you are
    After=network-online.target
    Wants=network-online.target
    Before=shutdown.target
    
    [Container]
    ContainerName=nextcloud
    Environment=PUID=20001 PGID=100 TZ=Asia/Shanghai
    Image=lscr.io/linuxserver/nextcloud:latest
    PublishPort=127.0.0.1:30001:80
    Volume=/home/nextcloud/config:/config
    Volume=/home/nextcloud/data:/data
    
    [Service]
    Restart=always
    
    [Install]
    WantedBy=default.target
    
  2. 重置 systemd

    systemctl daemon-reload
    
  3. 启动 Nextcloud 容器

    systemctl start nextcloud
    
  4. 验证上述配置和 Nextcloud 容器运行状态

3.3.Initialization | 初始化

Nextcloud 启动完成以后

根据配置中映射的地址直接连接或配置 Cloudflare Tunnels 以打开 Nextcloud 界面

  1. 创建管理员账号并配置数据库

    确认配置无误后点击安装

  2. 推荐应用选择

    根据自身需要选择即可
    我这里直接跳过

  3. 欢迎界面

  4. 主界面

  5. PHP&MYSQL 详情

4.Example | 示例

4.1.Demo File | 演示文件

Nextcloud 官方内置了以下文件做演示

  • PNG
  • MP4
  • PDF
  • MD

可以做到在线预览及简单编辑修改

  1. PNG

    在线预览PNG文件

    调整PNG文件大小

    过滤器

  2. MP4

    在线观看MP4

  3. PDF

    在线预览PDF并做简单标注

  4. MD

    Markdown 在线编辑

5.Ex | 拓展

5.1.Android Client | 安卓客户端

此节描述安卓客户端如何连接

Nextcloud 有官方的 Android 客户端

GooglePlay 即可下载

Nextcloud - Apps on Google Play
The Nextcloud Android app allows you to access all your files on your Nextcloud.
  1. APP 下载完成后打开网页依次转至 个人中心 → 安全 → 设备和活动链接

  2. 输入用户名后点击 添加新应用

  3. 确认密码

  4. 点击为移动程序显示二维码

  5. 使用 Nextcloud Android APP 扫描此二维码即可登录

6.Thanks & Copy

6.1.Nextcloud

Introduction — Nextcloud latest Administration Manual latest documentation

标签

xzllll

三分钟热度三分钟收获