Beiyuan

A place where I share the things I want to share

《F1:狂飙飞车》影评:献给所有人的速度与激情

就算你对F1一窍不通,也绝对会被《F1: 狂飙飞车》点燃。由《壮志凌云2:独行侠》导演约瑟夫·科辛斯基携手布拉德·皮特,这部电影用极致的视听语言,包裹了一个关于第二次机会、师徒情谊与团队精神的普世故事。它证明,一部优秀的商业大片,足以超越题材的壁垒,直抵人心。 ...

八月 25, 2025 · 3 分钟 · 1136 字 · Beiyuan

乌鸦:黑羽之下的文明镜像——祥瑞与不祥的千年辩证

在人类文明的星空中,乌鸦始终是一面被多重光谱折射的镜子。它曾是东方神话中托举太阳的“日御神鸟”,是儒家伦理里“反哺孝亲”的道德图腾,却在西方哥特文学中化为不祥的预言者。这种截然对立的文化解读背后,隐藏着“乌鸦”二字深刻的历史密码与文明辩证。 ...

八月 20, 2025 · 3 分钟 · 1393 字 · Beiyuan

自言自语的歌曲分享-Hey My Sweetie

最新很爱听的歌,不知道都是谁在听呢 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 45 46 47 48 49 50 51 Hey, my sweetie 我不知道 还适不适合这样地叫妳 既然妳已经说了 妳要喘息 Hey, my baby 我不知道 还能不能够这样抱著妳 妳淡淡地提起了 妳要空气 Timing is the strangest thing 当妳觉得还很久 突然就过去 同样地爱著妳 奢侈的甜蜜 时间都忘记 同样地爱著妳 现在的妳 只是想著如何能够离去 我是否真的做错了 错在没有好好地把握妳 错在理所当然般地太习惯 一分一秒地经过妳 Sometimes it’s hard to say yes or no Hey, my sweetie 我不知道 还适不适合这样地叫妳 既然妳已经说了 妳要喘息 Hey, my baby 我不知道 还能不能够这样抱著妳 妳淡淡地提起了 妳要空气 Timing is the strangest thing 当妳觉得还很久 突然就过去 同样地爱著妳 奢侈的甜蜜 时间都忘记 同样地爱著妳 现在的妳 只是想著如何能够离去 我是否真的做错了 错在没有好好地把握妳 错在理所当然般地太习惯 一分一秒地经过妳 Sometimes it’s hard to say yes or no 妳真的没有做错的 只是我有天也会渐渐长大的 太多的讯息 我需要自己能了解我自己 Sometimes it’s hard to say yes or no 同样地爱著妳 奢侈的甜蜜 时间都忘记 同样地爱著妳 现在的妳 只是想著如何能够离去 我是否真的做错了 错在没有好好地把握妳 错在理所当然般地太习惯 一分一秒经过妳 Sometimes it’s hard to say yes or no 我还是爱妳的 我还是爱妳的

八月 4, 2025 · 2 分钟 · 524 字 · Beiyuan

个人大模型API管理工具UNI-API部署

Github 面板 配置生成 1 2 3 mkdir -p /opt/uniapi && cd /opt/uniapi nano api.yaml nano docker-compose.yaml 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 services: #主程序 uniapi: image: yym68686/uni-api:latest restart: unless-stopped ports: - "8001:8000" volumes: - ./api.yaml:/home/api.yaml - ./data:/home/data #面板服务 uniapi-frontend: image: ghcr.io/melosbot/uni-api-status:latest restart: unless-stopped ports: - "3000:3000" environment: - NODE_ENV=production - PORT=3000 # 以下为容器内的路径,与 volumes 挂载点对应 - API_YAML_PATH=/app/config/api.yaml - STATS_DB_PATH=/app/data/stats.db volumes: # 将宿主机的 api.yaml 挂载到容器内,需要【读写】权限 - ./api.yaml:/app/config/api.yaml # 将宿主机包含 stats.db 的目录挂载到容器内,建议只读【:ro】 - ./data:/app/data:ro 1 docker compose up -d 最小可启动配置模板 1 2 3 4 5 6 7 8 providers: - provider: provider_name # 服务提供商名称, 如 openai、anthropic、gemini、openrouter,随便取名字,必填 base_url: https://api.your.com/v1/chat/completions # 后端服务的API地址,必填 api: sk-YgS6GTi0b4bEabc4C # 提供商的API Key,必填,自动使用 base_url 和 api 通过 /v1/models 端点获取可用的所有模型。 # 这里可以配置多个提供商,每个提供商可以配置多个 API Key,每个提供商可以配置多个模型。 api_keys: - api: sk-Pkj60Yf8JFWxfgRmXQFWyGtWUddGZnmi3KlvowmRWpWpQxx # API Key,用户请求 uni-api 需要 API key,必填 # 该 API Key 可以使用所有模型,即可以使用 providers 下面设置的所有渠道里面的所有模型,不需要一个个添加可用渠道。

七月 6, 2025 · 1 分钟 · 409 字 · Beiyuan · 

Docker部署Openwebui加Ollama

Github Github 1 2 mkdir /opt/openwebui && cd /opt/openwebui nano docker-compose.yaml 单独安装 1 2 3 4 5 6 7 8 services: openwebui: image: ghcr.io/open-webui/open-webui:main ports: - "8080:8080" volumes: - ./data/open-webui:/app/backend/data restart: unless-stopped 搭配Ollama 这里同时安装了Ollama和Openwebui这样Openwebui能自动识别出来Ollama,直接使用即可 ...

六月 13, 2025 · 1 分钟 · 157 字 · Beiyuan · 

Linux安装qBittorrent-Enhanced-Edition

Github 下载可执行文件 1 2 3 4 5 6 7 8 9 10 11 12 #x86_64 download_url=$(curl -s https://api.github.com/repos/c0re100/qBittorrent-Enhanced-Edition/releases/latest | jq -r '.assets[] | select(.name | test("qbittorrent-enhanced-nox_x86_64-linux-musl_static.zip")) | .browser_download_url') && \ curl -L $download_url -o /usr/bin/qbittorrent-nox.zip && \ unzip /usr/bin/qbittorrent-nox.zip -d /usr/bin/ && \ chmod +x /usr/bin/qbittorrent-nox && \ rm /usr/bin/qbittorrent-nox.zip #arm64 download_url=$(curl -s https://api.github.com/repos/c0re100/qBittorrent-Enhanced-Edition/releases/latest | jq -r '.assets[] | select(.name | test("qbittorrent-enhanced-nox_aarch64-linux-musl_static.zip")) | .browser_download_url') && \ curl -L "$download_url" -o /usr/bin/qbittorrent-nox.zip && \ unzip /usr/bin/qbittorrent-nox.zip -d /usr/bin/ && \ chmod +x /usr/bin/qbittorrent-nox && \ rm /usr/bin/qbittorrent-nox.zip 创建system服务 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 cat > /etc/systemd/system/qbittorrent.service <<EOF [Unit] Description=qBittorrent Daemon Service After=network-online.target [Service] Type=simple User=root Group=root UMask=007 ExecStart=/usr/bin/qbittorrent-nox ExecStop=/bin/kill -s SIGTERM $MAINPID Restart=on-failure [Install] WantedBy=multi-user.target EOF 启动 1 2 3 systemctl enable qbittorrent systemctl start qbittorrent systemctl status qbittorrent # 查看登录密码,默认登录端口8080 下载完后上传网盘 1 2 3 4 #创建日志文件夹 mkdir -p /root/rclone_logs #下载完成后执行命令,bt:/bt自行修改为你设置rclone remote名和上传到网盘的路径 rclone move "%F" "bt:/bt/%N" --create-empty-src-dirs --transfers=4 --checkers=4 Nginx反代 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #安装所需程序 sudo apt install certbot python3-certbot-nginx python3-certbot-dns-cloudflare nginx #手动编辑 sudo nano /etc/nginx/sites-available/bt #这里是nginx配置路径为conf.d的配置,下面启用配置命令不用 sudo nano /etc/nginx/conf.d/bt.conf #启用配置 sudo ln -s /etc/nginx/sites-available/bt /etc/nginx/sites-enabled/ #从Cloudflare获取区域DNS API sudo nano /etc/letsencrypt/cloudflare.ini dns_cloudflare_api_token = 你的API #赋予权限 sudo chmod 600 /etc/letsencrypt/cloudflare.ini #使用CF-DNS申请证书,你不想关小黄云用这个,全程y就行 sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini -d example.com #直接申请证书,上面的申请完后可以用这个命令自动配置HTTPS,选1 sudo certbot --nginx -d example.com 配置示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 server { listen 80; # 端口可以随意修改 listen [::]:80; # IPv6 监听,同样可修改 #server_name _; server_name example.com; # 也可以写多个域名,用空格分隔 location / { proxy_pass http://127.0.0.1:8080; # 代理到本地 8080 端口 proxy_set_header Host $host; # 保留原始 Host 头 proxy_set_header X-Real-IP $remote_addr; # 真实客户端 IP proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 协议(http/https) } } 内存占用解决办法 在设置高级中将磁盘 IO 类型设置为遵循 POSIX ...

六月 8, 2025 · 2 分钟 · 606 字 · Beiyuan · 

手搓Nginx反代开启HTTPS

Nginx Documents 安装Nginx 1. 安装依赖项 1 2 3 4 5 #我只用Debian和Ubuntu,需要centos的自行去nginx官网查找 #Debian sudo apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring -y #Ubuntu sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring -y 2 . 导入 Nginx 官方签名密钥 1 2 curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null 3 . 验证密钥 1 gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg 应看到如下输出中的指纹: ...

五月 30, 2025 · 2 分钟 · 686 字 · Beiyuan · 

Sing-box 1.11后配置示例

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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 { "log": { "disabled": false, "level": "info", "output": "/root/box.log", "timestamp": true }, "inbounds": [ { "type": "socks", "tag": "socks-in", "listen": "::", "listen_port": 443, "tcp_fast_open": true, "tcp_multi_path": true, "sniff": true, "sniff_override_destination": true, "users": [ { "username": "fangxi", "password": "fangxi" } ] }, { "type": "shadowsocks", "tag": "ss-in", "listen": "::", "listen_port": 80, "method": "aes-128-gcm", "password": "", //sing-box generate rand 16 --base64 "tcp_multi_path": true, "tcp_fast_open": true, "sniff": true, "sniff_override_destination": true, "udp_disable_domain_unmapping": true, "multiplex": { "enabled": true, "padding": true } } ], "outbounds": [ { "type": "direct", "tag": "direct" } ], "route": { "rules": [ { "action": "sniff" }, { "protocol": [ "bittorrent" ], "action": "reject", "method": "default" }, { "inbound": [ "ss-in" ], "outbound": "direct" }, { "inbound": [ "ss-in" ], "outbound": "direct" }, { "rule_set": [ "geoip-cn", "geosite-geolocation-cn", "privateip", "ads" ], "action": "reject", "method": "default" }, { "domain": [ "www.gstatic.com" ], "outbound": "direct" } ], "rule_set": [ { "type": "remote", "tag": "privateip", "format": "binary", "url": "https://raw.githubusercontent.com/DustinWin/ruleset_geodata/sing-box-ruleset/privateip.srs", "download_detour": "direct" }, { "type": "remote", "tag": "geosite-geolocation-cn", "format": "binary", "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-geolocation-cn.srs", "download_detour": "direct" }, { "type": "remote", "tag": "geoip-cn", "format": "binary", "url": "https://raw.githubusercontent.com/SagerNet/sing-geoip/rule-set/geoip-cn.srs", "download_detour": "direct" }, { "type": "remote", "tag": "geoip-jp", "format": "binary", "url": "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/srs/jp.srs", "download_detour": "direct" }, { "type": "remote", "tag": "geosite-abema", "format": "binary", "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-abema.srs", "download_detour": "direct" }, { "type": "remote", "tag": "geosite-dmm", "format": "binary", "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-dmm.srs", "download_detour": "direct" }, { "type": "remote", "tag": "geosite-dmm-porn", "format": "binary", "url": "https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-dmm-porn.srs", "download_detour": "direct" }, { "type": "remote", "tag": "ads", "format": "binary", "url": "https://raw.githubusercontent.com/DustinWin/ruleset_geodata/sing-box-ruleset/ads.srs", "download_detour": "direct" } ] } }

五月 15, 2025 · 1 分钟 · 393 字 · Beiyuan · 

Realm端口转发

获取执行文件 1 2 3 4 5 6 7 sudo mkdir -p /root/realm && \ curl -s https://api.github.com/repos/zhboner/realm/releases/latest | \ jq -r '.assets[] | select(.name | test("realm-x86_64-unknown-linux-gnu.tar.gz")) | .browser_download_url' | \ wget -O /root/realm/realm.tar.gz && \ sudo tar -xvf /root/realm/realm.tar.gz -C /root/realm && \ sudo chmod +x /root/realm/realm && \ sudo rm /root/realm/realm.tar.gz #可执行文件位于/root/realm 新建 config.toml 文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 cat > /root/realm/config.toml <<EOF [network] no_tcp = false use_udp = true [[endpoints]] listen = "[::]:443" #监听v6,你的中转机,端口自行修改,以下类似 remote = "0.0.0.0:443 #监听v4,你的落地机 [[endpoints]] listen = "0.0.0.0:80" #监听v4,你的中转机 remote = "[::]:80#监听v6,你的落地机 EOF 写入Service 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 cat > /etc/systemd/system/realm.service <<EOF [Unit] Description=realm After=network-online.target Wants=network-online.target systemd-networkd-wait-online.service [Service] Type=simple User=root Restart=on-failure RestartSec=5s DynamicUser=true WorkingDirectory=/root ExecStart=/root/realm/realm -c /root/realm/config.toml [Install] WantedBy=multi-user.target EOF 启动服务 1 2 3 4 5 systemctl daemon-reload systemctl enable realm systemctl start realm systemctl restart realm systemctl status realm

五月 15, 2025 · 1 分钟 · 261 字 · Beiyuan · 

Rclone挂载Onedrive

获取 client_id 首先访问 Microsoft Azure应用注册,登录账号后点击应用注册 点击注册后可以看到你的应用的相关信息,复制好 应用程序 (客户端) ID,这个就是 client_id 获取 client_secret 依次点击证书和密码,新客户端密码,在截止期限中将时间选择为最长(即两年)然后就可以看见值和机密 ID,我们只需要记录下 值 就可以,这个就是client_secret 。 ...

五月 15, 2025 · 1 分钟 · 255 字 · Beiyuan ·