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               # 创建数据库,名为 nextcloudMYSQL_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.mzph.cn/bicheng/68793.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ThinkPHP 8的多对多关联

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…

Spring Boot 整合 Knife4j:打造更优雅的 API 文档

在现代 Web 应用开发中,API 文档的重要性不言而喻。清晰、准确、易用的 API 文档不仅可以方便开发者理解和使用 API,还能提高团队协作效率。Knife4j 是一个基于 Swagger 的增强型 API 文档工具,它可以为 Spring Boot 项目生成美观、易于交互的…

计算机网络 (53)互联网使用的安全协议

一、SSL/TLS协议 概述: SSL(Secure Sockets Layer)安全套接层和TLS(Transport Layer Security)传输层安全协议是工作在OSI模型应用层的安全协议。SSL由Netscape于1994年开发,广泛应用于基于万维网的各种网络…

如何利用边缘节点服务打造极致用户体验?

随着互联网和数字化技术的飞速发展,用户对网络访问速度和服务体验的要求也在不断提高。在一个信息快速传播的时代,延迟过高或访问卡顿的问题会直接影响用户体验,甚至导致用户流失。因此,企业如何优化网络性能、提升用户访问速度&a…

React的应用级框架推荐——Next、Modern、Blitz等,快速搭建React项目

在 React 企业级应用开发中,Next.js、Modern.js 和 Blitz 是三个常见的框架,它们提供了不同的特性和功能,旨在简化开发流程并提高应用的性能和扩展性。以下是它们的详解与比较: Next、Modern、Blitz 1. Next.js Next.js 是由 Ve…

如何在龙蜥 OS(AliOS)上安装极狐GitLab?

本文分享如何在龙蜥操作系统(AliOS)(包括 RHCK 和 ANCK 两种,两种方式的安装流程一样)上安装极狐GitLab? 前提条件 一个安装了龙蜥操作系统的云服务器 可以查看 /etc/os-release中的信息,确认…

if_yellow_only_restart_upgrading_nodes_with_unassigned_replicas

目录标题 遇事不决,上githubif_yellow_only_restart_upgrading_nodes_with_unassigned_replicas问题分析如何解决并使集群恢复到正常状态1. **检查和分配未分配的副本分片**2. **查看节点日志**3. **检查资源配置**4. **手动升级节点**5. **修改 if_yellow_only_res…

springboot中DTO、VO、Entity相互转换

在我们平时开发中,dto、vo、entity之间的相互转换是很频繁的操作,这篇就简单记录一下我在平时开发中转换的方法。 在这之前先简单描述一下dto、vo、entity DTO:一般我们在开发中会定义数据传输对象(Data Transfer Object, DTO&am…

第四十七章 Spring之假如让你来写MVC——闪存管理器篇

Spring源码阅读目录 第一部分——IOC篇 第一章 Spring之最熟悉的陌生人——IOC 第二章 Spring之假如让你来写IOC容器——加载资源篇 第三章 Spring之假如让你来写IOC容器——解析配置文件篇 第四章 Spring之假如让你来写IOC容器——XML配置文件篇 第五章 Spring之假如让你来写…

Python 脚本-扫描当前目录和所有子目录并显示它们的大小。

目录 1.Python 代码实现 2.Python 代码解释(部分) 1. 模块导入 2. ANSI 颜色编码 3. format_size 函数 4.get_directory_size 函数 5. scan_directory 函数 6. display_progress 函数 7. main 函数 3.运行脚本 3.1 基本用法 3.2 使用详…

基于微信小程序高校订餐系统的设计与开发ssm+论文源码调试讲解

第4章 系统设计 一个成功设计的系统在内容上必定是丰富的,在系统外观或系统功能上必定是对用户友好的。所以为了提升系统的价值,吸引更多的访问者访问系统,以及让来访用户可以花费更多时间停留在系统上,则表明该系统设计得比较专…

C语言基本知识

基础 存储类 auto:用完即丢。其实就是局部变量。 static:本文件的全局变量。 extern:只声明,不定义,引用外部变量。 register:放在寄存器而不是内存。 //auto {auto int month; // 等于int mount; …

使用批处理文件清除系统垃圾

第一步:打开记事本,里面的命令如下 echo off echo 正在清理临时文件,请稍候...:: 清理系统临时文件 echo 清理系统临时文件... del /q /f /s "%TEMP%\*.*" del /q /f /s "%WINDIR%\Temp\*.*" rd /s /q "%WINDIR%\T…

更新布局元素的属性

每个布局元素都有一组可以通过编程来更新的属性.布局元素有很多种不同的类型,如图例,图形,文本,地图整饰等等. 操作方法: 1.打开目标活动地图文档 2.打开python窗口 3.导入arcpy模块 import arcpy.mapping as mapping 4.引用当前活动地图文档,把该引用赋值给变量 mxd map…

计算最接近的数

计算最接近的数 真题目录: 点击去查看 E B卷 100分题型 题目描述 给定一个数组X和正整数K,请找出使表达式: X[i] - X[i 1] - … - X[i K - 1] 结果最接近于数组中位数的下标 i ,如果有多个 i 满足条件,请返回最大的 i. 其中&…

Linux——信号量和(环形队列消费者模型)

Linux——线程条件变量(同步)-CSDN博客 文章目录 目录 文章目录 前言 一、信号量是什么? 二、信号量 1、主要类型 2、操作 3、应用场景 三、信号量函数 1、sem_init 函数 2、sem_wait 函数 3、sem_post 函数 4、sem_destroy 函数 ​​​​​​…

简识JVM私有内存区域栈、数据结构

前记:JVM稀有内存区域栈包含:虚拟机栈、本地方法栈、程序计数器; 在JVM(Java虚拟机)中,私有内存区域栈主要指的是虚拟机栈(VM Stack)和本地方法栈(Native Method Stack&…

垂直供排水抢险车:守护城市,抗击洪涝|深圳鼎跃

我国面积幅员辽阔,其灾害种类多样,而洪涝灾害是其中最常见的灾害,其容易受强降雨的影响,严重影响人民群众的日常生活。而在洪水肆虐的场景中,快速、高效地排涝和供水是防止次生灾害、保护人民生命财产安全的关键环节。…

Social LSTM:Human Trajectory Prediction in Crowded Spaces | 文献翻译

概要 行人遵循不同轨迹以避免障碍物和容纳同行者。任何在这种场景中巡航的自动驾驶车辆都需要能够遇见行人的未来位置并相应地调整其路线以避免碰撞。轨迹预测问题能够被看作一个顺序生成任务,其中我们对基于行人过去的位置预测其未来的轨迹感兴趣。根据最近RNN&am…

React+AntDesign实现类似Chatgpt交互界面

以下是一个基于React和Ant Design搭建的简单ChatGPT风格前端交互界面代码框架示例,该示例实现了基本的用户输入、发送请求以及展示回复的功能。假设后端有一个模拟接口来处理请求并返回回复。 1. 项目初始化: 确保你已经安装了Node.js和npm。通过以下命…