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

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

效果
在这里插入图片描述

相关文章:

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

准备 Ubuntu 24.04 LTSUbuntu 空闲硬盘挂载Ubuntu 安装 Docker DesktopUbuntu 24.04 LTS 安装 tailscale [我的Ubuntu服务器折腾集](https://blog.csdn.net/jh1513/article/details/145222679。 安装 nextcloud 参考 Ubuntu24.04系统Docker安装NextcloudOnlyoffice _。 更…...

RabbitMQ1-消息队列

目录 MQ的相关概念 什么是MQ 为什么要用MQ MQ的分类 MQ的选择 RabbitMQ RabbitMQ的概念 四大核心概念 RabbitMQ的核心部分 各个名词介绍 MQ的相关概念 什么是MQ MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出&am…...

Open3D计算点云粗糙度(方法一)【2025最新版】

目录 一、Roughness二、代码实现三、结果展示博客长期更新,本文最近更新时间为:2025年1月18日。 一、Roughness 通过菜单栏的Tools > Other > Roughness找到该功能。 这个工具可以估计点云的“粗糙度”。 选择一个或几个点云,然后启动这个工具。 CloudCompare只会询问…...

算法6(力扣148)-排序链表

1、问题 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 2、采用例子 输入:head [4,2,1,3] 输出:[1,2,3,4] 3、实现思路 将链表拆分成节点,存入数组使用sort排序,再用reduce重建链接 4、具…...

一文大白话讲清楚webpack基本使用——9——预加载之prefetch和preload以及webpackChunkName的使用

文章目录 一文大白话讲清楚webpack基本使用——9——预加载之prefetch和preload1. 建议按文章顺序从头看,一看到底,豁然开朗2. preload和prefetch的区别2. prefetch的使用3. preload的使用4. webpackChunkName 一文大白话讲清楚webpack基本使用——9——…...

【大数据2025】MapReduce

MapReduce 基础介绍 起源与发展:是 2004 年 10 月谷歌发表的 MAPREDUCE 论文的开源实现,最初用于大规模网页数据并行处理,现成为 Hadoop 核心子项目之一,是面向批处理的分布式计算框架。基本原理:分为 map 和 reduce …...

Windows图形界面(GUI)-QT-C/C++ - Qt List Widget详解与应用

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 QListWidget概述 使用场景 常见样式 QListWidget属性设置 显示方式 (Display) 交互行为 (Interaction) 高级功能 (Advanced) QListWidget常见操作 内容处理 增加项目 删除项目…...

深度学习python基础(第二节) 分支语句和循环语句

本节主要介绍分支语句和循环语句的基本语法。 注意:在python中的作用域以缩进为准。有语言基础的很好理解,了解语法格式就可以。 布尔类型和比较运算符 # True真,False假 a True print(f"布尔变量a的内容是:{a},类型是:{type(a)}") 比较运算…...

Gin 源码概览 - 路由

本文基于gin 1.1 源码解读 https://github.com/gin-gonic/gin/archive/refs/tags/v1.1.zip 1. 注册路由 我们先来看一段gin代码,来看看最终得到的一颗路由树长啥样 func TestGinDocExp(t *testing.T) {engine : gin.Default()engine.GET("/api/user", f…...

第6章 ThreadGroup详细讲解(Java高并发编程详解:多线程与系统设计)

1.ThreadGroup 与 Thread 在Java程序中, 默认情况下, 新的线程都会被加入到main线程所在的group中, main线程的group名字同线程名。如同线程存在父子关系一样, Thread Group同样也存在父子关系。图6-1就很好地说明了父子thread、父…...

CentOS 7乱码问题如何解决?

1.使用超级用户操作: sudo su2.修改i18n配置文件: vi /etc/sysconfig/i18n将文件修改或添加为以下内容: LANG"zh_CN.UTF8" LC_ALL"zh_CN.UTF8"保存并退出(按Esc键,输入:wq,然后回车&#xff09…...

JavaScript语言的多线程编程

JavaScript语言的多线程编程 JavaScript是一种广泛使用的编程语言,主要用于网页开发。由于其单线程的特性,JavaScript 一直以来都有“无法进行多线程编程”的印象。尽管如此,随着技术的发展,JavaScript也逐渐引入了多线程的概念&…...

OpenSeaOtter使用手册-变更通知和持续部署

我们在OpenSeaOtter Server 0.1.1版本增加的镜像变更通知功能。通过镜像变更通知和OpenSeaOtter Agent就可以轻松获得持续部署能力。 镜像变更通知是通过push的方式下发到Agent的,Agent所在机器不需要外网地址。在Agent收到镜像变更通知后,就会调用对应的…...

(2)STM32 USB设备开发-USB虚拟串口

例程:STM32USBdevice: 基于STM32的USB设备例子程序 - Gitee.com 本篇为USB虚拟串口教程,没有知识,全是实操,按照步骤就能获得一个STM32的USB虚拟串口。本例子是在野火F103MINI开发板上验证的,如果代码中出现一些外设的…...

他把智能科技引入现代农业领域

江苏田倍丰农业科技有限公司(以下简称“田倍丰”)是一家专注于粮油种植的农业科技公司,为拥有300亩以上田地的大户提供全面的解决方案。田倍丰通过与当地政府合作,将土地承包给大户,并提供农资和技术,实现利…...

ingress-nginx代理tcp使其能外部访问mysql

一、helm部署mysql主从复制 helm repo add bitnami https://charts.bitnami.com/bitnami helm repo updatehelm pull bitnami/mysql 解压后编辑values.yaml文件,修改如下(storageclass已设置默认类) 117 ## param architecture MySQL archit…...

麒麟操作系统服务架构保姆级教程(十三)tomcat环境安装以及LNMT架构

如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情 之前咱们学习了LNMP架构,但是PHP对于技术来说确实是老掉牙了,PHP的市场占有量越来越少了,我认识一个10年的PHP开发工程师,十年工资从15k到今天的6k&am…...

亚博microros小车-原生ubuntu支持系列:4-手部检测

一 准备工作 在学习手部检测之前,有2个准备工作。 1 确保小车的摄像头能显示画面 参见:亚博microros小车-原生ubuntu支持系列:2-摄像头控制-CSDN博客 启动图传代理: docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm …...

关于回调函数(callback)

简介 在C中,回调函数是一种常见的编程技术,它允许你将一个函数作为参数传递给另一个函数,并在适当的时候调用它。回调函数通常用于事件处理、异步编程和模块化设计中。 1、函数指针:在C中,回调函数通常是通过函数指针…...

Linux Bash 中使用重定向运算符的 5 种方法

注:机翻,未校。 Five ways to use redirect operators in Bash Posted: January 22, 2021 | by Damon Garn Redirect operators are a basic but essential part of working at the Bash command line. See how to safely redirect input and output t…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中,如何在保障应用高可用的同时有效地管理资源,一直是运维人员和开发者关注的重点。随着微服务架构的普及,集群内各个服务的负载波动日趋明显,传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...

大数据驱动企业决策智能化的路径与实践

📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:数据驱动的企业竞争力重构 在这个瞬息万变的商业时代,“快者胜”的竞争逻辑愈发明显。企业如何在复杂环…...

【学习记录】使用 Kali Linux 与 Hashcat 进行 WiFi 安全分析:合法的安全测试指南

文章目录 📌 前言🧰 一、前期准备✅ 安装 Kali Linux✅ 获取支持监听模式的无线网卡 🛠 二、使用 Kali Linux 进行 WiFi 安全测试步骤 1:插入无线网卡并确认识别步骤 2:开启监听模式步骤 3:扫描附近的 WiFi…...

mq安装新版-3.13.7的安装

一、下载包,上传到服务器 https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.13.7/rabbitmq-server-generic-unix-3.13.7.tar.xz 二、 erlang直接安装 rpm -ivh erlang-26.2.4-1.el8.x86_64.rpm不需要配置环境变量,直接就安装了。 erl…...

EC2安装WebRTC sdk-c环境、构建、编译

1、登录新的ec2实例,证书可以跟之前的实例用一个: ssh -v -i ~/Documents/cert/qa.pem ec2-user70.xxx.165.xxx 2、按照sdk-c demo中readme的描述开始安装环境: https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c 2…...