Caddy官方升级到了2.0版,新版配置文件,不与旧版兼容。
毕竟迟早都要升级,于是参考官方文档,研究一下新版caddy设置。
虽然Caddy2官方推荐使用JSON配置文件,但这里还是在用Caddyfile。

基本用法

执行文件,直接从官方下载:
https://github.com/caddyserver/caddy/releases
配置文件名,默认为当前文件夹下面的“Caddyfile”。
启动caddy:

#前台启动
caddy run --config ./Caddyfile
#后台运行
caddy start --config ./Caddyfile
#格式化配置文件
caddy fmt -overwrite ./Caddyfile

##准备SSL证书
##生成rsa私钥,des3算法,1024位强度,ssl.key是秘钥文件名。
openssl genrsa -des3 -out ssl.key 1024
#去除密码
openssl rsa -in ssl.key -out ssl.key
#生成证书
openssl req -new -key ssl.key -out ssl.csr

配置文件示例:

http://localhost:5001 {
        encode gzip
        root /you/path/
}
localhost:5002 {
        encode gzip
        file_server browse {
                root /you/file/path
        }
}

caddy默认为https,需要http服务的话,需要明确地指定http。

编译caddy,添加 webdav 插件

使用官方工具 xcaddy,编译附带webdav插件。
有两个前提:
1. 本机已配置好golang环境。
2. 本机启用了go moudles。(GO111MODULE=”auto” 或 GO111MODULE=”on”)

#克隆代码
git clone https://github.com/caddyserver/xcaddy
#进入文件夹
cd xcaddy
#安装xcaddy工具
go get -u github.com/caddyserver/xcaddy/cmd/xcaddy
#编译caddy,指定版本为v2.0.0
xcaddy build v2.0.0  --with  github.com/mholt/caddy-webdav
#查看编译了什么模块,应该有http.handlers.webdav
./caddy list-modules
#把新版caddy,复制到系统路径
cp ./caddy /usr/local/bin/
#如果是windows的话
./caddy.exe list-modules

webdav配置示例

http://www.yumenaka.net {
    webdav {
        root /file/path
    }
    tls /Users/bai/Dropbox/Linux/ssl.crt /Users/bai/Dropbox/Linux/ssl.key
    # 密码不能为明文,可以使用自带的工具加密:
    # caddy hash-password  --plaintext sdderght
    basicauth {
        bai JDJhJDEwJG9FRzl5eDM4ZHBmNDVFOUUwQkZTcHU1QzlmVHN6OGFrYURXdi9PQ1FGb2VzTHZmWEN1MjRH
    }
}

参考文档

簡単にSSL証明書を取得可能&シンプルな設定ファイルでHTTP/3も利用できるGo製ウェブサーバー「Caddy」
服务器配置https协议,三种免费的方法
用RaspberryPi搭建Aria2+Caddy2下载站
Caddy 2 使用Caddyfile部署博客网站
用Caddy2反向代理地下城世界
reverse_proxy (Caddyfile directive) — Caddy Documentation

1.安装Android Studio
https://developer.android.com/studio
但这个自带Android SDK,官方各种flutter插件功能也很强大。
也可以用VSCode,比较轻量。

2、设置系统 环境变量
ANDROID_HOME D:\Android\sdk
PUB_HOSTED_URL https://pub.flutter-io.cn
FLUTTER_STORAGE_BASE_URL https://storage.flutter-io.cn

3、安装ADB驱动
http://adbdriver.com/downloads/

4、path
;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;D:\Android\flutter

安装软件

# Arch系
sudo pacman -S samba rsync nfs-utils aria2  transmission-cli

aurman -S lsyncd
# debian系
sudo apt install samba rsync hdparm aria2  transmission-cli

设定文件系统挂载

# 查看分区状况
sudo fdisk -a
# 编辑分区挂载分区文件
sudo nano /etc/fstab

在里面加入如下内容,详细设置参考ArchLinux Wiki

# nofail:外部设备在插入时挂载,在未插入时忽略。pass: 0 表示设备不会被 fsck 所检查
# <file system>        <dir>         <type>    <options>                    <dump> <pass>
/dev/sda1        /media/pi/ssd         auto     defaults,noatime,nofail        0      0
# 使用以下命令在所有父目录上添加"x"权限:
sudo chmod o+x /media /media/pi /media/pi/ssd
# 让挂载点生效
sudo mount -a 
# 测试读取速度
sudo hdparm -t --direct /dev/sda

设置Aria2

sudo mkdir /etc/aria2
sudo touch /etc/aria2/aria2.session
sudo chmod 777 /etc/aria2/aria2.session
sudo nano /etc/aria2/aria2.conf
# 后台运行,用SystemD时不需要这一句
# daemon=true
# 启用RPC, 默认:false
enable-rpc=true
# 允许所有来源, 默认:false
rpc-allow-origin-all=true
# 允许非外部访问, 默认:false
rpc-listen-all=true
#RPC端口, 仅当默认端口被占用时修改
#rpc-listen-port=6800
#最大同时下载数(任务数), 路由建议值: 3
max-concurrent-downloads=9
#断点续传
continue=true
#同服务器连接数
max-connection-per-server=5
#最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要
min-split-size=10M
#单文件最大线程数, 路由建议值: 5
split=10
#下载速度限制
max-overall-download-limit=0
#单文件速度限制
max-download-limit=0
#上传速度限制
max-overall-upload-limit=0
#单文件速度限制
max-upload-limit=0
#断开速度过慢的连接
#lowest-speed-limit=0
#验证用,需要1.16.1之后的release版本
#referer=*
#文件保存路径, 默认为当前启动位置  请自行填写
dir= /media/pi/ssd/Download/
#文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用, 需要1.16及以上版本
#disk-cache=0
#另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本(?)
#enable-mmap=true
#文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长
#所需时间 none < falloc ? trunc << prealloc, falloc和trunc需要文件系统和内核支持
file-allocation=falloc
# 从会话文件中读取下载任务
input-file=/etc/aria2/aria2.session
# 在Aria2退出时保存`错误/未完成`的下载任务到会话文件
save-session=/etc/aria2/aria2.session
# 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
save-session-interval=60
# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0
seed-ratio=2.0
# 本地节点查找, PT需要禁用, 默认:false
bt-enable-lpd=true
bt-tracker=udp://tracker.coppersurfer.tk:6969/announce,udp://tracker.internetwarriors.net:1337/announce,udp://tracker.opentrackr.org:1337/announce,udp://exodus.desync.com:6969/announceBT,http://nyaa.tracker.wf:7777/announce,udp://open.stealth.si:80/announce,udp://tracker.coppersurfer.tk:6969/announce,udp://exodus.desync.com:6969/announce
sudo vim /lib/systemd/system/aria.service
[Unit]
Description=Aria2 Service
After=network.target

[Service]
User=root
ExecStart=/usr/bin/aria2c --conf-path=/etc/aria2/aria2.conf

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable aria  && sudo systemctl restart aria
# 查看 aria 服务状态
sudo systemctl status aria

transmission

用来下载ed2k

# 查看配置
transmission-remote -si
sudo nano settings.json
//TODO transmission配置

caddy设置

CADDY_TELEMETRY=on curl https://getcaddy.com | bash -s personal http.forwardproxy,http.git,http.webdav,tls.dns.cloudflare
sudo vim /etc/CaddyFile.conf
:5001 {
    root /home/pi/soft/AriaNg/  #这里替换为你的网站文件目录
}
:5002 {
    root /media/pi/ssd/Download/ #这里替换为你的下载文件目录
    browse 
}
sudo vim /lib/systemd/system/caddy.service
[Unit]
Description=Caddy Service
After=network.target

[Service]
User=root
ExecStart=/usr/local/bin/caddy --conf /etc/CaddyFile.conf

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable caddy && sudo systemctl restart caddy
# 查看 aria 服务状态
sudo systemctl status caddy

Amule设置

下载ed2k连接用,编写中。

Samba设置

# 修改 /etc/samba/smb.conf
sudo vim /etc/samba/smb.conf

编辑smb.conf文件,改为以下内容

[global]
        workgroup = WORKGROUP
        # 设置出现在“网上邻居”中的主机名
        netbios name = neo4server
        server string = SambaServer
        security = user
        passdb backend = smbpasswd
        load printers = yes
        cups options = raw
[homes]
        comment = Home Directories
        browseable = no
        writable = yes
[nanopi-ssd]
        comment = ssd 
        path = /media/pi/ssd
        browseable = yes
        guest ok = no
        writable = yes
#  新建/etc/samba/smbpasswd文件
sudo touch /etc/samba/smbpasswd
# 根据之前设置的valid users,设置用户密码
# root 替换为你设置的用户名
sudo smbpasswd -a root
# 输入两次密码后,会提示 Added user gzd. 表示设置成功
#  若用户名非当前登录系统的用户名,可能会提示Failed
# 如果在[globa]中” passdb backend = tdbsam”的话,会需要使用” pdbedit” 来增加用户

sudo systemctl restart smbd  nmbd

通过mount和smbcount挂载远程共享文件夹

modprobe cifs
mkdir $HOME/samba_temp
mount -t cifs -o username=administrator,password=123456 //192.168.0.1/tmp $HOME/samba_temp

Rsync相关配置文件

Rsync

rsync [OPTION]… SRC DEST
目录SRC是否以斜杠结尾,会影响同步的结果:
以斜杠结尾:目录DEST里面有 [目录SRC本身]
不以斜杠结尾:目录DEST里面有 [目录SRC里面的文件]

Master端手动传输

# 手动传输文件(不同机器之间)
rsync -avzP 192.168.200.173::somedata /home/youname/somedata
# 手动传输文件(本地目录),留心源目录的“/”,加不加意思完全不同。目的地目录就随便了,反正意思一样。

rsync -avzP /home/username/somedata1/ /home/youname/somedata2/

# 从另一个笔记本的tocdata,通过SSH隧道拉取到本地(需要输入密码):
rsync -avzP root@192.168.1.20:/home/username/source/ /sharedfolders/localfolder

# -a   表示文件应被存档,这意味着他们的大部分特性被保留 (不包括ACLs, 硬链接或扩展属性,如capabilities)
# -v, --verbose 详细模式输出
# -P 显示进度
# -z, --compress 对备份的文件在传输时进行压缩处理
# -r --recursive 递归传输子文件夹
虽然还可以写自动备份脚本,但用第三方的lsyncd应该更好。

Slave端设置

sudo nano /etc/rsyncd.conf
uid = root
gid = root
pid file = /var/run/rsyncd.pid #pid文件的存放位置 
lock file = /var/run/rsync.lock #锁文件的存放位置 
log file = /var/log/rsyncd.log #日志记录文件的存放 
[node2] #模块名字,自己命名 
path = /data/node2 #指定文件目录所在位置,这是必须指定 
read only = no 
list = no #是否把rsync服务器上提供同步数据的目录显示 
hosts allow = 192.168.1.39 #允许访问的主机 hosts deny = * #拒绝访问的主机

启动服务

rsync --daemon --config=/etc/rsyncd.conf

通过Rsync同步文件

rsync -av 源目录 目标目录

拉取文件:

rsync -avzP 192.168.2.1::datagroup /home/youname/data

NFS共享

配置文件:

sudo nano  /etc/exports
# 加入这行
/root/data  *(rw)
# 重启服务
sudo systemctl  restart nfs-server

有个重大的问题就是中文会乱码。
虽然可以通过设置系统来支持UTF-8,但这样又会带来中文目录软件异常的问题。

参考文献:
树莓派3B+ aria配置
fstab (简体中文)- ArchWiki
配置 samba 服务器
rsync简明教程
rsync 的使用方法
服务器和本地的文件同步
Archlinux维基Samba条目
Lsyncd搭建同步镜像-用Lsyncd实现本地和远程服务器之间实时同步
【 rsync 】コマンド(その1)――ファイルやディレクトリを同期する
lsyncdで双方向同期するなら、delete=’running’ がいい
Config Layer 4: Default Config
Archlinux Wiki NFS条目

在墙内下载Youtube视频

设置工具与环境

如果在墙内

如果在墙内,下载Youtube显然需要代理。
能够生成一个本地Http代理就可以,具体使用什么工具,随你喜欢。

下载FFMPEG

ffmpeg官网 下载 ffmpeg,解压后放到任意目录 。
注意选择Windows版本。ffmpeg-20181225-7efe84a-win64-static.zip
比如 D:\ffmpeg,可以按照需要改成任意路径,以下按照“D:\ffmpeg”为例操作。

下载Youtube-DL

Youtube-DL官网下载youtube-dl.exe,然后放在上一步得到的”D:\ffmpeg\bin”目录下。

设置环境变量

将ffmpeg的bin文件夹(D:\ffmpeg\bin)路径加入系统PATH里面。

win10:

在“此电脑“图标上点右键>属性>高级系统设置>高级>系统变量>找到变量 Path,点击编辑>新建
https://www.pconline.com.cn/win10/1083/10833025.html

win7:

位置差不多,但是如果Path不为空、需要在Path原有内容结尾添加“英文”分号,再加在最后面。
https://jingyan.baidu.com/article/b0b63dbf001cdc4a49307062.html

测试ffmpeg与youtube-dl

打开命令行、输入以下两句,没报错就成功了。

ffmpeg -version
youtube-dl --version

升级ffmpeg与youtube-dl

升级ffmpeg,去官网按照系统下载最新版、替换即可:
https://ffmpeg.org/download.html
升级youtube-dl,只需要在命令行里面运行:

youtube-dl --proxy  "http://127.0.0.1:10800/"  -U

下载视频

查看视频信息

在任意文件夹内,按着右键点鼠标右键、打开命令行窗口、粘贴命令

youtube-dl --proxy  "http://127.0.0.1:10800/" --list-formats  https://www.youtube.com/watch?v=2Qockzb3MS8

手动youtube-dl下载、自动合并

根据上一步得到的视频信息、通过命令(格式:)下载指定编号的视频+音频,让。

# youtube-dl -f [format code] [url]
youtube-dl --proxy  "http://127.0.0.1:10800/" -f 137+140 https://www.youtube.com/watch?v=2Qockzb3MS8

命令示例

自动选择、下载、合并“质量最好的视频音频”:

youtube-dl --proxy  "http://127.0.0.1:10800/" -f bestvideo+bestaudio  https://www.youtube.com/watch?v=2Qockzb3MS8

质量最好的是MP4格式:

youtube-dl --proxy  "http://127.0.0.1:10800/" -f bestvideo+bestaudio --merge-output-format mp4  https://www.youtube.com/watch?v=2Qockzb3MS8

质量最好的是webm格式:

youtube-dl --proxy  "http://127.0.0.1:10800/" -f bestvideo+bestaudio --merge-output-format webm  https://www.youtube.com/watch?v=qLRIY2wAwig

“我才不管格式,交给你处理”(有ffmpeg帮助的情况下,自动下载质量最高的视频并合并。没有ffmpeg,只有youtube-dl.exe的情况下,自动下载最高1280*720的MP4):

youtube-dl --proxy  "http://127.0.0.1:10800/" https://www.youtube.com/watch?v=qLRIY2wAwig

“我已经全局代理啦,不光格式、连代理都不想指定”:

youtube-dl  https://www.youtube.com/watch?v=2Qockzb3MS8

参考:
https://www.jianshu.com/p/8817a7b0c8d6
原文现在被简书和谐掉了。

Windows

刷新DNS缓存

ipconfig /flushdns

设置CMD代理

set http_proxy= http://localhost:1080
set https_proxy= http://localhost:1080

windows 网络时间服务器

cn.pool.ntp.org

bat文件特殊字符含义

当前盘符:%~d0
当前路径:%cd%
当前执行命令行:%0
当前bat文件路径:%~dp0
当前bat文件短路径:%~sdp0

使用Ubuntu18.04 或 Archlinux

安装常用软件

有些软件本次没用到

#Ubuntu安装常用软件
sudo apt-get update  && apt install htop curl unzip \
byobu git zsh vim screenfetch neofetch python \
lsof psmisc bmon  net-tools 
#ArchLinuxCN源
sudo nano /etc/pacman.d/mirrorlist
#添加:
[archlinuxcn]
Server = https://cdn.repo.archlinuxcn.org/$arch
# 安装Key
sudo pacman -Syy && sudo pacman -S archlinuxcn-keyring
# Archlinux安装常用软件
pacman -S openssh proxychains fish curl unzip \
python3 python2  zsh git htop iftop screenfetch   \
neofetch emacs ntfs-3g vim sudo net-tools lsof psmisc bmon samba 
# zerotier,内网穿透
curl -s https://install.zerotier.com/ | sudo bash
# 设置时区为上海
sudo timedatectl set-timezone  Asia/Shanghai
# ohmyzsh,事前需要安装zsh、git
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

安装Docker

参考 https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce

# Ubuntu 18.04 安装Docker-ce
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Archlinux
sudo pacman -S docker
sudo groupadd docker
sudo usermod -aG docker $USER
sudo systemctl enable docker
sudo systemctl restart docker

# 创建docker本地文件存储文件夹,接下来会用到
mkdir /root/docker/ && mkdir /root/docker/wordpress \
&& mkdir /root/docker/nextcloud/ && mkdir /root/docker/nextcloud/config \
&& mkdir /root/docker/nextcloud/data  && mkdir /root/docker/gogs

Docker基本操作

#列出容器
docker ps
#进入某个容器
docker exec -it wordpress bash
# 解决wordpress文件权限不对、无法升级的问题,用户组与路径按实际情况情况,未必是“www-data”或 “/var/www/html”。
sudo chown -R www-data /var/www/html
sudo chmod +755 /var/www/html
#列出容器
docker ps
#进入某个docker容器
docker exec -it somedocker bash

安装Docker-compose

最新版本参照 https://github.com/docker/compose/releases

# 这里安装的是目前最新的1.24.1版
sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

配置Docker-compose

docker-compose.yml,把这个文件上传到/root/docker/ 文件夹下面

version: "3"
volumes:
  mariadb_data:
  phpmyadmin_data:
  nextcloud_data:
services:
  # 数据库 mariadb  
  mariadb_for_all:
    image: mariadb
    container_name: mariadb_for_all
    restart: always
    volumes:
      - mariadb_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: "替换为你想使用的密码"
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: 替换为你想使用的密码
  #数据库管理 phpMyAdmin https://hub.docker.com/r/phpmyadmin/phpmyadmin
  phpmyadmin:
    depends_on:
      - mariadb_for_all
    image: phpmyadmin/phpmyadmin
    container_name: phpmyadmin
    restart: always
    ports:
      - "9081:80"
    volumes:
      - phpmyadmin_data:/sessions
    environment:
      MYSQL_ROOT_PASSWORD: 替换为你想使用的密码
  # 博客 wordpress https://hub.docker.com/_/wordpress/
  wordpress:
    depends_on:
      - mariadb_for_all
    image: wordpress:latest
    container_name: wordpress
    volumes:
      # 数据卷挂载路径设置,需要事先建立宿主机路径 
      - /root/docker/wordpress:/var/www/html/
      # 修改PHP文件上传大小限制文件
      - /root/docker/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini 
    ports:
      - "127.0.0.1:1080:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: mariadb_for_all:3306
      # 需要进入手动mariadb,创建下面的用户+数据库(也可以自动创建)
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_PASSWORD: 替换为你想使用的密码
  #网盘 nextcloud  https://hub.docker.com/_/nextcloud/
  nextcloud:
    depends_on:
      - mariadb_for_all
    image: nextcloud
    container_name: nextcloud
    volumes:
      - nextcloud_data:/var/www/html
      # 数据卷挂载路径设置,需要事先建立宿主机路径 
      - /root/docker/nextcloud/config:/var/www/html/config
      - /root/docker/nextcloud/data:/var/www/html/data
    ports:
      - "127.0.0.1:2080:80"
    restart: always
    environment:
      MYSQL_HOST: mariadb_for_all:3306
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: 替换为你想使用的密码
      # 自动设定管理员账号密码
      NEXTCLOUD_ADMIN_USER: bai
      NEXTCLOUD_ADMIN_PASSWORD: 替换为你想使用的密码
  # 私人git gogs https://hub.docker.com/r/gogs/gogs/
  # 文档: https://gogs.io/docs/installation
  gogs:
    depends_on:
      - mariadb_for_all
    image: gogs/gogs
    container_name: gogs
    volumes:
      # 数据卷挂载路径设置,需要事先建立宿主机路径 
      - /root/docker/gogs:/data
    ports:
      - "10022:22"
      - "127.0.0.1:3000:3000"
    restart: always
sudo nano /root/docker/uploads.ini
# 加入以下内容
file_uploads = On
memory_limit = 500M
upload_max_filesize = 30M
post_max_size = 30M
max_execution_time = 600

运行所有容器

cd /root/docker
sudo docker-compose up
# 后台启动并运行所有的容器
sudo docker-compose up -d
# 停止所有容器
sudo docker-compose down
# docker-compose更新镜像, 然后启动容器
sudo docker-compose up -d --build

手动设置数据库

WordPress的数据库在docker-compose文件中,用定义environment的方式自动创建好了
剩下Nextcloud、Gogs需手动设置

# 进入miriadb容器
docker exec -it mariadb_for_all bash
# 进入mysql
mysql -uroot -p

# nextcloud
# 新建一个名为nextcloud的用户
CREATE USER 'nextcloud' IDENTIFIED BY '替换为你想使用的密码';
# 为nextcloud创建一个名为nextcloud_db数据库
CREATE DATABASE IF NOT EXISTS nextcloud_db;
# 给nextcloud用户权限
GRANT ALL PRIVILEGES ON nextcloud_db.* TO 'nextcloud' IDENTIFIED BY '替换为你想要的数据库密码';

# gogs
# 新建一个名为gogs的用户
CREATE USER 'gogs' IDENTIFIED BY '替换为你想使用的密码';
# 为gogs创建一个名为gogs_db数据库
CREATE DATABASE IF NOT EXISTS gogs_db;
# 给nextcloud用户权限
GRANT ALL PRIVILEGES ON gogs_db.* TO 'gogs' IDENTIFIED BY '替换为你想要的数据库密码';
#退出
quit
exit

Docker图形化管理

简单轻量的portainer

docker volume create portainer_data
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

数据库常用指令

#显示数据库
SHOW DATABASES;
# 使用某个数据库
USE nextcloud_db;
# 显示所有的表
SHOW TABLES;
#查看所有用户及权限
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
#删除某个数据库,当然有重要数据同时又没备份的话,最好不要这么做。
drop database nextcloud;

caddy安装与设置

简单的HTTP2服务器

# 安装caddy个人版与附加插件
curl https://getcaddy.com | bash -s personal http.filemanager,http.forwardproxy,http.geoip,http.git,http.webdav,tls.dns.cloudflare
# 第一次需手动确认
caddy --conf /root/CaddyFile.conf
# 后台运行
nohup caddy --conf /root/CaddyFile.conf

设置文件(CaddyFile.conf):

https://www.yumenaka.net, https://yumenaka.net {
gzip 
tls test@yumenaka.com
# log日志输出路径
log http2-access.log
#转发wordpress到主域名
proxy / localhost:1080 {
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Proto {scheme}
}
}
# 转发其他端口各种服务
# nextcloud
https://nextcloud.yumenaka.net {
gzip 
tls test@yumenaka.com
proxy / localhost:2080 {
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Proto {scheme}
    }
}
#转发gogs私人git
https://git.yumenaka.net {
gzip 
tls test@yumenaka.com
proxy / localhost:3000 {
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Proto {scheme}
    }
}
#转发portainer
https://portainer.yumenaka.net {
gzip 
tls test@yumenaka.com
proxy / localhost:9000 {
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Proto {scheme}
    }
}
#caddy的插件网盘
https://file.yumenaka.net {
gzip 
tls test@yumenaka.com
filemanager / {
    show   /root/caddy/file 
    database /root/caddy/filemanager.db
    allow_new      true
    allow_edit     true
    allow_commands true
    }
}
#HTTP链接,重定向到HTTPS
http://yumenaka.net  {
 timeouts none
 redir https://yumenaka.net{url}
}
http://www.yumenaka.net {
 timeouts none
 redir https://www.yumenaka.net{url}
}
http://portainer.yumenaka.net {
 timeouts none
 redir https://portainer.yumenaka.net{url}
}
http://nextcloud.yumenaka.net {
 timeouts none
 redir https://nextcloud.yumenaka.net{url}
}
http://file.yumenaka.net {
 timeouts none
 redir https://file.yumenaka.net{url}
}
http://git.yumenaka.net {
 timeouts none
 redir https://git.yumenaka.net{url}
}

网页配置与初始化

密码与端口,参考“docker-compose.yml”
详细略过、反正不难,而且都是中文页面

代理相关

密码保护:Linux环境下,安装设置各种代理