自学内容网 自学内容网

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

准备

[我的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 访问

在这里插入图片描述

  • 修改 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图片

参考

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

效果
在这里插入图片描述


原文地址:https://blog.csdn.net/jh1513/article/details/145283643

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!