PeaceSheep's blog PeaceSheep's blog
首页
  • 分类
  • 标签
  • 归档
相关链接
提建议&咨询&赞赏
GitHub (opens new window)

PeaceSheep

以最简洁、易懂的话解决问题
首页
  • 分类
  • 标签
  • 归档
相关链接
提建议&咨询&赞赏
GitHub (opens new window)
  • web

    • element-plus滚动条滚动到底部
    • mac使用docker部署nextcloud-aio并为本地域名添加https支持(未成功)
      • 直接使用docker-compose文件
      • 失败原因
    • 前端处理POST类型的sse请求
    • 网站域名迁移的百度和谷歌SEO优化
    • 使用腾讯云OSS作为个人网站文件处理的存储库
    • 使用cloudflare-r2搭建webdav
  • 物联网与路由器

  • 操作系统

  • 错误解决

  • 使用技巧

  • 教程
  • web
PeaceSheep
2024-02-06
目录

mac使用docker部署nextcloud-aio并为本地域名添加https支持(未成功)

请注意这是一次未成功的经历。想要在本地部署一个nextcloud talk,奈何nextcloud talk必须使用https,因此必须使用域名。如果不管https,直接在本地添加hosts或者使用本地DNS也不行,必须要用合法的SSL证书。

注意

请注意这是一次未成功的经历

基本原理是使用Caddy进行一个本地的反向代理。Caddy服务器是一个开源的,使用 Golang 编写,支持 HTTP/2 的 Web 服务端。它使用Golang 标准库提供HTTP 功能。 Caddy 一个显著的特性是默认启用HTTPS。它是第一个无需额外配置即可提供HTTPS 特性的Web 服务器。

  1. 假设域名为 peacecloud.local 或者你想一个局域网用的名称,必须含.号。

  2. 生成证书,在当前文件夹执行命令

openssl req -x509 -newkey rsa:2048 -nodes -keyout test.key -out test.pem -days 3650

注意会提示需要输入必要的信息,执行完毕会在当前路径生成test.key和test.pem。

  1. 配置代理

在当前文件夹中,新建一个文件命名为Caddyfile,文件内容如下,注意替换其中的域名为你的域名,localhost:11000为实际需要访问的地址:

https://peacecloud.local:443 {
tls /etc/caddy/pem.pem /etc/caddy/key.key
reverse_proxy localhost:11000
}
1
2
3
4
  1. 通过docker启动candy,安装代理

docker run -d --name caddy --network host --restart always -v $PWD/Caddyfile:/etc/caddy/Caddyfile -v $PWD/test.pem:/etc/caddy/pem.pem -v $PWD/test.key:/etc/caddy/key.key -v caddy_data:/data caddy

  1. 启动nextcloud-aio
 docker run --init --sig-proxy=false --name nextcloud-aio-mastercontainer --restart always --publish 8080:8080 --env APACHE_PORT=11000 --env APACHE_IP_BINDING=0.0.0.0 --env SKIP_DOMAIN_VALIDATION=true --volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config --volume /var/run/docker.sock:/var/run/docker.sock:ro nextcloud/all-in-one:latest
1

注意以上命令并不适用于MACOS,如果是MAC,需要把/var/run/docker.sock替换为/var/run/docker.sock.raw。

注意

特别注意: docker desktop mac版和windows版不支持network_mode: host。

# 直接使用docker-compose文件

version: "3.8"

services:
  caddy:
    image: caddy:alpine
    restart: unless-stopped
    container_name: caddy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./caddydata:/data
      - ./pem.pem:/etc/caddy/pem.pem
      - ./key.key:/etc/caddy/key.key 
    networks:
      - nextcloud-aio
   

  nextcloud:
    image: nextcloud/all-in-one:latest
    restart: unless-stopped
    container_name: nextcloud-aio-mastercontainer
    ports:
      - "8080:8080"
    environment:
      - APACHE_PORT=11000
      - APACHE_IP_BINDING=0.0.0.0 
      - SKIP_DOMAIN_VALIDATION=true
    volumes:
      - nextcloud_aio_mastercontainer:/mnt/docker-aio-config
      - /var/run/docker.sock.raw:/var/run/docker.sock:ro
    depends_on:
      - caddy

volumes:
  nextcloud_aio_mastercontainer:
    name: nextcloud_aio_mastercontainer


networks:
  nextcloud-aio:
    external: true

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

# 失败原因

nextcloud必须要有https证书,且不支持自签证书。使用自签证书之后,加入talk的时候会说internal error,查看日志一堆curl的错误,都是说证书的问题。

参考链接

nextcloud aio 局域网部属方式-cat650 (opens new window)

编辑 (opens new window)
上次更新: 2025/04/15, 10:52:45
element-plus滚动条滚动到底部
前端处理POST类型的sse请求

← element-plus滚动条滚动到底部 前端处理POST类型的sse请求→

最近更新
01
ubuntu安装g++显示已有但是输入g++又找不到命令
04-15
02
使用cloudflare-r2搭建webdav
04-08
03
LLM聚合平台客户端对比
03-29
更多文章>
Theme by Vdoing | Copyright © 2022-2025 PeaceSheep
冀ICP备2022004632号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式