外观
Docker安装记录
大部分都是 N1-Openwrt[arm]下的安装命令
- 容器中的默认端口更改 docker\overlay2[id]\ 中可修改对应的设置 之后重启容器
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Image}}\t{{.Status}}"
portainer 容器管理
photoprism 照片管理
rclone
# 挂载阿里云网盘到本地
# 1.配置rclone
rclone config --config rclone.conf
# 2.选择
输入挂载名 => 选择Webdav => 输入挂载的webdav地址 => 选择other
# 挂载命令 alyunwebdav:上面新建的挂载名; / /mnt/sda1/aliyundrive:映射地址 映射到本地
rclone mount alyunwebdav:/ /mnt/sda1/aliyundrive --allow-non-empty --vfs-cache-mode writes --config /etc/rclone/rclone.confmysql
docker run -d --net host -p 3306:3306 --name mysql -v /mnt/sda1/mysql/log:/var/log/mysql -v /mnt/sda1/mysql/data:/var/lib/mysql -v /mnt/sda1/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=yuchen@123 arm64v8/mysql:latest
# 需要加一个密码之类的参数-e 否则无法正常启动
docker run -d --network archive --network-alias addrmysql -p 3306:3306 --name mysql --restart always -v /opt/mysql/data:/var/lib/mysql -v /opt/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai arm64v8/mysql:latest --lower_case_table_names=1nginx
docker run --name nginx --restart always -v /opt/nginx/html:/usr/share/nginx/html -d -p 8080:80 nginx:1.22server {
listen 80;
listen [::]:80;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}jellyfin
docker run -itd --name jellyfin -p 8096:8096 -v /mnt/sda1/jellyfin/config:/config -v /mnt/sda1/jellyfin/cache:/cache -v /mnt/aliyundrive:/media jellyfin/jellyfin
docker run -itd --name jellyfin --net host -p 8096:8096 -v /mnt/jellyfin/config:/config -v /mnt/jellyfin/cache:/cache -v /mnt/aliyundrive:/media jellyfin/jellyfinplex
docker run -itd --name=plex --net host -p 32400:32400 -e VERSION=docker -e TZ=Asia/Shanghai -e PLEX_CLAIM="claim-_X6ySQp8Y8rXsL6VwF7G" -v /mnt/sda1/myplex/config:/config -v /mnt/sda1/source:/source -v /mnt/sda1/CloudNAS/CloudDrive/阿里云盘:/data --restart unless-stopped linuxserver/plex:arm64v8-latest
docker pull linuxserver/plex:arm64v8-latest
#https://www.plex.tv/zh/claim/qbittorrent
docker pull linuxserver/qbittorrent:arm64v8-latest
docker run -d --name=qbittorrent -e PUID=1000 -e PGID=1000 -e TZ=Asia/Shanghai -e WEBUI_PORT=8080 -p 8080:8080 -p 6881:6881 -p 6881:6881/udp -v /mnt/mmcblk2p4/qbittorrent/config:/config -v /mnt/sda1/downloads:/downloads --restart unless-stopped linuxserver/qbittorrent:arm64v8-latestnextcloud 网盘 要求较高
docker pull linuxserver/nextcloud:latest
docker run -d --name=nextcloud --net host -e TZ=Asia/Shanghai -p 8085:80 -v /mnt/sda1/nextcloud:/var/www/html arm64v8/nextcloud
docker exec --user www-data -it c145 php occ files:scan --all
#-v /mnt/sda1/nextclound/apps:/var/www/html/custom_apps -v /mnt/sda1/nextclound/config:/var/www/html/config -v /mnt/sda1/nextclound/data:/var/www/html/data -v /mnt/sda1/nextclound/theme:/var/www/html/themescloudreve 简略网盘
# 先创建配置文件等
mkdir -vp cloudreve/{uploads,avatar} \
&& touch cloudreve/conf.ini \
&& touch cloudreve/cloudreve.db
docker run -d -p 5212:5212 --name cloudreve --net host --mount type=bind,source=/mnt/sda1/cloudreve/conf.ini,target=/cloudreve/conf.ini --mount type=bind,source=/mnt/sda1/cloudreve/cloudreve.db,target=/cloudreve/cloudreve.db -v /mnt/sda1/cloudreve/uploads:/cloudreve/uploads -v /mnt/sda1/cloudreve/avatar:/cloudreve/avatar cloudreve/cloudreve:latestnavidrome 音乐管理
docker run -d --name navidrome --net host -p 4533:4533 -v /mnt/sda1/navidrome/music:/music -v /mnt/sda1/navidrome/data:/data -e ND_LOGLEVEL=info deluan/navidrome:latestqinglong 签到面板
docker run -dit --net host -v /mnt/sda1/qinglong:/ql/data -p 5700:5700 --name qinglong --hostname qinglong --restart unless-stopped whyour/qinglong:latest
docker exec -it qinglong bash
ql check
ql updateclouddrive 网盘挂载
mount --make-shared /mnt/mmcblk2p4
docker run -d \
--name clouddrive -p 9798:9798 \
--restart unless-stopped \
-v /mnt/sda1/CloudNAS/:/CloudNAS:shared \
-v /mnt/sda1/CloudNAS/config:/Config \
-v /mnt/sda1/CloudNAS/media:/media:shared \
--network host \
--pid host \
--privileged \
--device /dev/fuse:/dev/fuse \
cloudnas/clouddriveHomepage 导航页
docker run -d --net host --name homepage -p 3333:3000 \
-v /mnt/sda1/Homepage/config:/app/config \
-v /mnt/sda1/homepage/images:/app/public/images \
-v /var/run/docker.sock:/var/run/docker.sock ghcr.io/benphelps/homepage:latestaudiobooks 听书
docker run -d --name audiobookshelf --net host -p 13378:80 -v /mnt/sda1/audiobooks/config:/config -v /mnt/sda1/audiobooks/metadata:/metadata -v /mnt/sda1/audiobooks/audiobooks:/audiobooks ghcr.io/advplyr/audiobookshelftypecho 博客
docker run -d --name=typecho --restart always --mount type=tmpfs,destination=/tmp -v /mnt/sda1/typechoblog:/data -e PHP_TZ=Asia/Shanghai -e PHP_MAX_EXECUTION_TIME=600 -p 99:80 80x86/typecho:latestnpm
# 自带证书 自动续期
docker run -d -p 81:81 -p 9443:443 -p 9080:80 -v /mnt/sda1/npm/data:/data -v /mnt/sda1/npm/letsencrypt:/etc/letsencrypt --name nginxproxymanager docker.io/jc21/nginx-proxy-manager:latestacme.sh 证书申请
# 以 docker 守护进程的身份运行 acme.sh
docker run -itd -v "$(pwd)/out":/acme.sh --net=host --name=acme.sh neilpang/acme.sh daemon
# 之后可使用执行任何 acme.sh 命令
docker exec acme.sh --help
docker exec acme.sh --issue -d example.com --standalone
# ....
# 步骤
# 1.注册
acme.sh --register-account -m [email protected]
# 2.获取dnspod的api秘钥
export DP_Id="123435"
export DP_Key="6412bd76*********"
# 3.申请证书
acme.sh --issue --dns dns_dp -d domian.com -d *.domian.com
acme.sh --issue --dns dns_dp -d cheu.com.cn -d *.cheu.com.cn
# dns_dp为dnspod ,如果是阿里云dns则为 dns_ali
# 前面-d参数指定根域名,后面-d指定子级泛域名
# 执行之后等待几分钟出现绿色文字提示key,cer证书所在位置就完成
# 更新证书 一般3个月一次,可以使用定时任务
./acme.sh --renew -d cheu.com.cn -d *.cheu.com.cn
# 输出到container/out
# npm中add证书,选择custom 傻姑娘穿这个证书
#威联通中 无法通过控制台UI中的浏览器来操作,因为浏览器找的是浏览器内部的文件
#证书密钥:[域名].key 证书:[域名].crt/[域名].cerlazydocker docker 图像界面
docker run -it -p 3338:3000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /mnt/sda1/lazydocker:/.config/jesseduffield/lazydocker \
lazyteam/lazydockerv2ray2
docker run -d \
--restart=always \
--privileged \
--network=host \
--name v2raya \
-e V2RAYA_LOG_FILE=/tmp/v2raya.log \
-v /share/Container/v2ray/lib/modules:/lib/modules:ro \
-v /share/Container/v2ray/etc/resolv.conf:/etc/resolv.conf \
-v /share/Container/v2ray/etc/v2raya:/etc/v2raya \
mzz2017/v2rayadocker run -d --name v2raya -p 2017:2017 -v /etc/localtime:/etc/localtime:ro teddysun/v2rayaVaultWarden
docker pull vaultwarden/server:latest
docker run -d --name vaultwarden -v /mnt/sda1/warden/vw-data/:/data/ -p 8989:80 vaultwarden/server:latest- 自动填充 说明,需要匹配端口号的,用主机的方式就行 URI 的使用 | Bitwarden 帮助中心中文版
vnStat 流量监控
vnstat --iflist #查看所有接口列表
vnstat -i <网卡名称> --add #添加网卡到监控
vnstat -i eno3 --setalias "别名" #网卡别名
vnstat -i br-4bf327714e64 --add --setalias "Jenkins" #添加与重命名结合
vnstat -i br-20f8582bfc70 --remove --force #移除网卡监控dozzle:docker 日志监控
![[docker-compose_dozzle.yml]]
Easy-NET
FROM node:16
RUN apt-get update && apt-get install -y git
WORKDIR /app
RUN git clone https://github.com/786744873/easy-dotnet /app \
&& cd /app
RUN npm install --registry=https://repo.huaweicloud.com/repository/npm/
EXPOSE 3456
CMD ["npm","run","dev"]docker build -t easynet:1.0 .
docker run -d -p 3456:8080 --name easynet easynet:1.0it-tools
docker run -d -p 8200:80 --name it-tools corentinth/it-toolsdocker run -d -p 8200:80 --name it-tools corentinth/it-tools:2023.12.21-5ed3693docker run -d -p 8200:80 --name it-tools qingfeng2336/it-tools:latest
Syncthing
[[JustDoIT/dockercompose/syncthing/docker-compose.yml|docker-compose.yml]] 互相添加设备 id -> 文件夹共享;
stirling-pdf
默认中文:extraConfigs/setting.yml
system:
defaultLocale: 'zh-CN' # Set the default language (e.g. 'de-DE', 'fr-FR', etc)字体乱码:docker-compose.yml
volumes:
- ./trainingData:/usr/share/tessdata #Required for extra OCR languages
- ./extraConfigs:/configs
- ./fonts:/usr/share/fonts/opentype #映射字体,否者容易乱码
environment:
- LANGS=zh_CN #默认界面语言在映射的fonts文件夹中新建noto文件夹,把C:/Windows/fonts中的中文字体放进去
Lobe-chat
sudo docker run -d -p 13210:3210 -e ACCESS_CODE=abaaba --name lobe-chat lobehub/lobe-chat
书籍管理阅读类,目前没满意的
Calibre
麻烦
Calibre-Web
作为Calibre的展示端,需要使用Calibre的数据库,样式还可以 就是要依赖Calibre
gitea
- 如果安装了actrunner需要注意生成时候的容器是独立的,注意网络配置或者防火墙开放端口否则访问不到gitea的访问
在使用cloudflare橙色云代理https后,开启ssh git的连同
需要公网ip的服务器用作frp转发
现状,环境
- 没有公网 IPv4,只有内网 IPv6

- 必须用 Cloudflare 代理 让外网访问
- Caddy 监听 https_port 11443
- Cloudflare Origin Rules 把 *所有 *.csoyi.xyz 转发到 11443

- Caddy 再根据子域名转发到不同内网端口
- git.csoyi.xyz → 8883(Gitea)
实现
- 在cloudflare中配置dns => `gitssh.csoyi.xyz:灰色云 → 指向 FRP 公网 IP
- 在frp中配置tcp转发,remote_port 22222 转发到 local_port22
- 在gitea app.ini中配置
SSH_DOMAIN = git-ssh.csoyi.xyz;SSH_PORT = 2222;SSH_LISTEN_PORT = 22
#测试通断
yuche@defang MINGW64 ~/source/repos/testgit
$ ssh -T [email protected] -p 22222
Hi there, yuchen! Youve successfully authenticated with the key named yuchen@cz_df.com, but Gitea does not provide shell access.
If this is unexpected, please log in with password and setup Gitea under another user.
#clone
yuche@defang MINGW64 ~/source/repos/testgit
$ git clone ssh://[email protected]:22222/yuchen/vuepress.git
Cloning into 'vuepress'...
The authenticity of host '[git-ssh.csoyi.xyz]:22222 ([47.11.11.111]:22222)' can't be established.
ED25519 key fingerprint is SHA2565:zXU119xRcS2f71231vjfiCB/9tYH4URM42DU5123vldybtfeTtW9FldNE.网页走 CF,SSH 走 FRP 直连,互不干扰,完美!
tailscale
- TS_STATE_DIR=/var/lib/tailscale# 存储tailscale的状态目录映射到宿主机, 确保容器重启配置不变- 需要注意挂载
/var/lib/tailscale TS_AUTHKEY=tskey-auth-key格式
幻兽帕鲁 palworld
- 外网访问只需要代理upd端口 8211
未装
- 多平台直播自动录制系统
bililive-go - Hoarder 离线网页收集
- fooololo/aipan-netdisk-search 电影
