当前位置: 首页 > article >正文

Ubuntu 24.04 LTS 通过 docker 安装 nextcloud 搭建个人网盘

准备

  • Ubuntu 24.04 LTS
  • Ubuntu 空闲硬盘挂载
  • Ubuntu 安装 Docker Desktop
  • Ubuntu 24.04 LTS 安装 tailscale

[我的Ubuntu服务器折腾集](https://blog.csdn.net/jh1513/article/details/145222679。

安装 nextcloud

参考 Ubuntu24.04系统Docker安装Nextcloud+Onlyoffice _。

  • 更新系统包
sudo apt update
sudo apt upgrade -y
  • Ubuntu 安装 Docker
    如果还没有安装 Docker 和 Docker Compose,可以按照以下命令安装:

安装 Docker:

sudo apt install -y docker.io

启动并启用 Docker:

sudo systemctl enable --now docker

安装 Docker Compose:

sudo apt install -y docker-compose
  • 拉取 Nextcloud 镜像
sudo docker pull nextcloud
  • 创建 Docker Compose 配置文件

我把nextcloud安装在ubuntu外置硬盘,其挂载在 /media/mydisk 目录,参考Ubuntu 24.04 LTS 空闲硬盘挂载。在 /media/mydisk 下创建一个文件夹 nextcloud,来来存放 Docker Compose。在 nextcloud 文件夹下载创建 db_data 和 nextcloud_data 两个文件夹.

mkdir -p /media/mydisk/nextcloud
cd /media/mydisk/nextcloud
mkdir db_data
mkdir nextcloud_data

然后创建 docker-compose.yml 文件:

vim docker-compose.yml

然后粘贴进去下面配置文件。注意参考博文Ubuntu24.04系统Docker安装Nextcloud+Onlyoffice _中间配置文件第一句 version: '3.8',我给删除了,不然后面运行会给警报消息 WARN[0000] /media/mydisk/nextcloud/docker-compose.yml: the attribute version is obsolete, it will be ignored, please remov

services:
  # 数据库服务
  db:
    image: mysql:latest                       # 使用最新版本的 MySQL 镜像
    container_name: nextcloud_mysql           # 自定义容器名称
    restart: always                           # 容器异常退出时自动重启
    environment:
      MYSQL_ROOT_PASSWORD: your_root_password # 定义 MySQL 的 root 用户密码
      MYSQL_PASSWORD: your_password           # 定义 Nextcloud 用户的密码
      MYSQL_DATABASE: nextcloud               # 创建数据库,名为 nextcloud
      MYSQL_USER: nextcloud                   # 定义 MySQL 用户名
      TZ: Asia/Shanghai                       # 设置时区为上海
    volumes:
      - /media/mydisk/nextcloud/db_data:/var/lib/mysql  # 将 MySQL 数据存储在主机的指定目录,实现持久化存储
    networks:
      - nextcloud_network                     # 连接到指定的网络

  # Nextcloud 应用服务
  app:
    image: nextcloud:latest                   # 使用最新版本的 Nextcloud 镜像
    container_name: nextcloud                 # 自定义容器名称
    restart: always                           # 容器异常退出时自动重启
    depends_on:
      - db                                     # 确保 db 服务先启动
    environment:
      MYSQL_DATABASE: nextcloud               # 使用与数据库服务相同的数据库名称
      MYSQL_USER: nextcloud                   # 使用与数据库服务相同的用户名
      MYSQL_PASSWORD: your_password           # 使用与数据库服务相同的密码
      MYSQL_HOST: db                          # 数据库主机名为 db(即 db 服务)
      TZ: Asia/Shanghai                       # 设置时区为上海
    volumes:
      - /media/mydisk/nextcloud/nextcloud_data:/var/www/html  # 将 Nextcloud 数据存储在主机的指定目录,实现持久化存储
    ports:
      - "8080:80"                             # 将容器的 80 端口映射到主机的 8080 端口
    networks:
      - nextcloud_network                     # 连接到指定的网络

  # OnlyOffice 文档服务
  onlyoffice:
    image: onlyoffice/documentserver:7.1.0     # 使用指定版本的 OnlyOffice 镜像
    container_name: nextcloud_onlyoffice       # 自定义容器名称
    restart: always                           # 容器异常退出时自动重启
    environment:
      JWT_ENABLED: 'false'                    # 关闭 JWT(无需密钥)
      JWT_SECRET:                             # 不设置 JWT 密钥
      TZ: Asia/Shanghai                       # 设置时区为上海
    ports:
      - "8081:80"                             # 将容器的 80 端口映射到主机的 8081 端口
    networks:
      - nextcloud_network                     # 连接到指定的网络

# 网络定义
networks:
  nextcloud_network:                          # 定义一个名为 nextcloud_network 的网络

# 卷定义,用于持久化存储数据
volumes:
  mysql_data:                                 # 定义 MySQL 数据的卷
  nextcloud_data:                             # 定义 Nextcloud 数据的卷

  • 启动 Nextcloud 和 MariaDB 服务
sudo docker compose up -d
  • 然后查看运行中的容器
docker ps -a
  • 打开浏览器通过 本地IP访问,192.168.x.xx:8080,并设置好用户名和密码。
    在这里插入图片描述

配置 Tailscale 访问

  • Ubuntu 24.04 安装 tailscale

  • Ubuntu 安装 Tailscale 后,通过Tailscale IP访问会提示不被信任的域名访问。

在这里插入图片描述

  • 修改 trusted_domains
'trusted_domains' =>
  array (
    0 => '本地192.168.XXX.XXX',
    1 => '100.XXX.XXX.XXX',  // 添加你的 Tailscale IP 地址
    2 => 'Tailscale domain',  // 添加Tailscale 域名
  ),

在这里插入图片描述

至此,可以通过 本地 IP,Tailscale IP,Tailscale 域名访问 nextcloud。

配置预览苹果HEIC图片

参考

  • Can’t preview HEIC images
  • Image Previews only working for HEIC photos

config.php 在哪

下面代码查找 config.php 文件

find /media/mydisk/nextcloud/nextcloud_data -name config.php

新增预览代码

        'enabled_previews' => true,
        'enabledPreviewProviders' => array (
                0 => 'OC\\Preview\\BMP',
                1 => 'OC\\Preview\\GIF',
                2 => 'OC\\Preview\\JPEG',
                3 => 'OC\\Preview\\MarkDown',
                4 => 'OC\\Preview\\MP3',
                5 => 'OC\\Preview\\PNG',
                6 => 'OC\\Preview\\TXT',
                7 => 'OC\\Preview\\XBitmap',
                8 => 'OC\\Preview\\OpenDocument',
                9 => 'OC\\Preview\\Krita',
                10 => 'OC\\Preview\\WebP',
                11 => 'OC\\Preview\\HEIC',
        ),

在这里插入图片描述
重启ubuntu

sudo reboot

效果
在这里插入图片描述


http://www.kler.cn/a/514022.html

相关文章:

  • 【3GPP】【5G】注销流程(Deregistration procedures)
  • 2024年博客之星主题创作|从零到一:我的技术成长与创作之路
  • 学习第七十四行
  • 【Day23 LeetCode】贪心算法题
  • 麒麟系统中删除权限不够的文件方法
  • 【计算机视觉】人脸识别
  • 3D 模型格式转换之 STP 转 STL 深度解析
  • Springboot应用开发配置类整理
  • 如何配置安全的香港邮件服务器?
  • Solana 套利机器人原理
  • VScode 开发 Springboot 程序
  • xml中根据传入值动态设置查询表的表名
  • SELF-RAG: 通过自我反思学习检索、生成和批判——图文并茂总结
  • Unity环境搭建
  • 2024嵌入式系统的未来发展与技术洞察分享
  • C语言程序设计十大排序—插入排序
  • 深度学习笔记——循环神经网络RNN
  • 详解Redis的Hash类型及相关命令
  • Linux 安装gitlab
  • Windows图形界面(GUI)-QT-C/C++ - Qt QGroupBox详解教程
  • JJJ:arm64架构下的asid相关
  • ubuntu24.04安装mysql 5.7.44版本
  • 第35天:安全开发-JavaEE应用原生反序列化重写方法链条分析触发类类加载
  • Android 自定义 View _ 扭曲动效
  • 【WebGL】-02 绘制动态点
  • 【经验总结】ShardingSphere5.2.1 + Springboot 分库分表 快速开始