下级分类
服务器与部署基础设施
服务器、部署、容器与运行环境。
专题分组
下级分类
服务器与部署自建仓库Docker 源与部署
这篇部署记录聚焦在自建私有 Docker Registry 的最小可用方案,将 registry:2 与 joxit/docker-registry-ui 通过 docker-compose 组合到同一个外部网络中运行,并把 Registry 数据持久化到本地目录。配置上的关键点是 Registry 只监听宿主机 127.0.0.1:5000,避免直接暴露服务,同时启用 REGISTRY_STORAGE_DELETE_ENABLED 以支持镜像删除;UI 则监听 127.0.0.1:18080,通过 NGINX_PROXY_PASS_URL=http://registry:5000 走容器内网代理,因此 Registry 侧不需要额外配置 CORS。外层 Nginx 分成两个 HTTPS 站点:一个面向 hub-ui.jacin.me 代理管理界面,一个面向 hub.jacin.me 代理仓库 API,并统一配置 Cloudflare 真实 IP、基础认证、转发头、长超时和 TLS 证书。仓库域名的 Nginx 配置额外设置 client_max_body_size 0,用于避免推送较大镜像层时被请求体大小限制拦截。验证部分使用一个基于 alpine:latest 的简单 Dockerfile 构建测试镜像,按 hub.jacin.me/test-project/hello-world:v1 的命名规则打标签,再通过 docker login 与 docker push 检查私有源是否可写。适合需要在个人服务器或小团队环境中快速搭建带 Web UI、HTTPS 入口、密码保护和删除能力的私有 Docker 镜像仓库的运维与后端开发者参考。
vps 测试常用命令
这份笔记聚焦 VPS 基础测试中的两个常用场景:运行 NodeQuality(nq)做机器质量检测,以及用 curl 粗略观察访问链路耗时。由于 nq 测试相对吃内存,命令示例选择放到 nohup 后台执行,并把标准输出和错误输出统一写入 nq.log,避免 SSH 断开或终端关闭导致任务中断。文中给出两种交互输入处理方式:一种用 yes 持续自动确认,适合全部按确认推进;另一种先 echo y 确认启动,再用 yes n 对后续选项默认拒绝,便于减少不必要的交互选择。测速部分使用 curl -w 输出 DNS 解析、TCP 连接、TLS 握手、首包时间和总耗时,并通过 -o /dev/null 与 -s 去掉页面内容和进度信息,使结果更适合快速查看网络阶段耗时。它更像一份面向 VPS 初步体检的命令备忘,适合需要临时评估服务器质量、后台跑测试脚本或排查基础访问延迟的运维和个人站点维护者使用。需要注意的是,笔记只给出命令用法和日志落盘方式,并未展开解释 NodeQuality 各项评分含义或 curl 时间指标的进一步诊断边界。
nginx 配置密码
这份配置记录面向那些 Docker 镜像本身没有账号密码、但又不适合直接开放给公网访问的服务,核心思路是在端口暴露和反向代理两层同时收紧入口。服务侧先在 docker-compose 的 ports 中使用 127.0.0.1:3033:8081 这种绑定方式,让容器端口只接受本机访问,避免外部绕过 Nginx 直接连到后端。随后在服务器上安装 apache2-utils,并通过 htpasswd -c /etc/nginx/.htpasswd admin 创建基础认证所需的账号密码文件。Nginx 配置部分则是在对应的 location / 代理块中加入 auth_basic 和 auth_basic_user_file,前者开启浏览器弹窗式的 Basic Auth,后者指定刚生成的密码文件。完成修改后执行 systemctl reload nginx 重新加载配置,即可让访问该反向代理路径的用户先通过密码验证。它适合临时保护管理后台、自用工具或轻量服务,但前提是请求确实都经过 Nginx,且后端端口不要再以 0.0.0.0 形式暴露。
服务器与部署部署搭建discourse
这份记录聚焦在更换 VPS 后重新部署 Discourse 时,如何基于官方 discourse_docker 仓库重新生成环境,而不是直接搬迁旧目录。配置核心集中在 containers/app.yml:只启用 Web 与限流模板,将容器 80 端口绑定到本机 127.0.0.1:37880,便于前面再由 Nginx 做反向代理,同时用 DISCOURSE_HOSTNAME 指定对外域名。数据库与缓存被拆分处理,PostgreSQL 通过外部地址连接,Redis 则放在 Docker 内网中,Discourse 需要通过 docker_args 加入同一个 mynetwork,Redis 未设置密码时可仅依赖内网访问。邮件服务也是部署前提之一,需要提前准备 SMTP 地址、端口、用户名、密码和 STARTTLS,否则 Discourse 的注册、通知等基础功能会受影响。文章特别指出反代 HTTPS 场景下要设置 DISCOURSE_FORCE_HTTPS,让容器内部仍走 HTTP 时也能生成正确的 HTTPS 外链,避免站点链接或资源地址异常。最后通过 after_code hook 安装 PostgreSQL 16 客户端,并强制修正 pg_dump、psql 软链接,用来匹配外部数据库版本,适合已经熟悉 Docker、Nginx 和基础服务拆分部署的站点维护者参考。
服务器与部署谷歌免费GCP配置防火墙
这篇记录聚焦 GCP 免费服务器启用后的两类容易被忽略的问题:免费额度相关扣费项检查,以及面向个人小服务场景的防火墙收紧。费用部分强调先确认是否存在 snapshots 快照,若有需到 disks 相关页面处理;同时检查磁盘类型、容量是否符合标准型 30GB 的免费配置,并留意实例区域选择,否则即使实例本身来自免费套餐,也可能因快照、磁盘或区域不匹配产生费用。网络策略上,作者采用较激进的最小暴露思路,入站只放行自己使用的三个 IP,其他访问全部禁止,且明确该机器只是挂载小服务,不承担代理用途。出站控制没有直接在 GCP 防火墙里细分,而是在实例内通过 ipset 与 iptables 建立 CUSTOM_OUT_BLOCK 链,将中国、澳大利亚以及 Cloudflare、Fastly、Akamai 等网段批量导入 out_block_list,并在 OUTPUT 链首匹配后丢弃。脚本执行前需要先借助其他节点代理完成下载,因为封锁列表来源本身可能依赖 CDN;运行后日志显示规则已挂载,并累计屏蔽约 26130 个出站网段。它更适合已经会使用 GCP 免费实例、希望减少误扣费并按个人访问范围加固服务器的用户参考,不应直接当作通用云防火墙模板套用。
服务器与部署3x-ui面板安装与使用
这篇记录围绕 3x-ui 面板的 Docker 部署与基础使用展开,目标是在服务器上快速搭建可管理 Trojan、SS 等入站节点的代理面板,并利用 3x-ui 查看流量使用情况。正文给出 docker-compose 配置示例,说明 host 网络模式、数据库与日志挂载、可选证书路径,以及 pull、down、up -d 等启动命令;由于新版不再直接在日志中输出管理账号信息,还演示了进入容器后安装 sqlite、apache2-utils,通过修改 x-ui.db 重置管理员用户名和密码,并用日志查看默认运行端口的做法。安全加固部分包括登录后修改语言、Web UI 监听端口和账号密码,也提供了可选的 Nginx HTTPS 反代配置,以及借助 Cloudflare 代理和防火墙规则限制面板访问来源的思路。节点配置部分分别展示 Trojan 入站、TLS、关闭 sniffing、提取 trojan:// 信息并转换为 Clash 配置的流程,SS 协议则以面板自动生成密码和常规入站配置为主。末尾对 Trojan、VLESS+TLS+WS、VLESS+TLS+Reality 在握手开销、传输封装、CPU 负载、DPI 难度、CDN/WAF 穿透、客户端支持和配置复杂度上作了对比,帮助已有服务器与 Docker 基础的读者在部署、加固和协议选择之间形成可执行判断。
服务器与部署rclone-webui使用与配置
这份记录聚焦 rclone WebUI 的容器化部署,以及把本地 MinIO public 桶同步到 Dropbox 的实际配置过程。文章先用 Docker Compose 启动 rclone/rclone 镜像,通过 rcd、--rc-web-gui、5572 端口和指定 rclone.conf 的方式开启 WebGUI,并把 rclone 配置目录、MinIO 数据目录和本地 data 目录挂载进容器。云端配置部分分别覆盖 S3、Dropbox 与 MinIO:S3 远端强调访问密钥、Secret 和 Endpoint 是关键字段;Dropbox 需要先在开发者后台创建应用、配置 OAuth 回调地址 http://localhost:53682/,并提前勾选文件夹权限和 Individual Scopes,否则生成的 token 可能缺少 list 权限。文章还给出通过 macOS 安装 rclone、执行 rclone authorize dropbox 获取授权 JSON,再写入容器挂载的 rclone.conf 的操作路径。MinIO 部分补充了包含 GetObject、PutObject、ListBucket、ListAllMyBuckets 等动作的 S3 策略示例,并提醒 Docker 环境下 endpoint 不能简单写 127.0.0.1,而应使用可访问的主机地址。最后,作者解释 bind mount 只是把宿主机目录映射进容器,不会复制数据或额外占用一份存储,并用 docker exec 调用 rclone sync,再配合 crontab 实现定时同步,适合需要在自建对象存储、容器环境和 Dropbox 之间搭建轻量同步链路的运维或个人服务器用户。
服务器与部署komari探针
这篇记录围绕 Komari 探针的服务端部署、反向代理和基础使用配置展开,适合已经有 Docker 与 Nginx 环境、想快速自建监控面板的用户参考。服务端部分给出 Docker Compose 启动方式,使用 ghcr.io/komari-monitor/komari:latest 镜像,将 25774 端口映射到宿主机并把 ./data 挂载到 /app/data,以便保留运行数据;默认管理员账号密码可通过 docker logs komari 查看,也可以用 ADMIN_USERNAME 和 ADMIN_PASSWORD 环境变量预设,首次登录后应立即修改。反向代理配置是重点,Nginx 需要把请求转发到 127.0.0.1:25774,并补齐 Host、真实 IP、转发协议等常见头,同时关闭代理缓冲、设置上传大小限制。文章特别强调 WebSocket 代理必须让上游使用 proxy_http_version 1.1,并携带 Upgrade 与 Connection: Upgrade,否则 Nginx 默认的 HTTP/1.0 上游请求可能丢失连接升级语义,导致握手失败。它还解释了 HTTP/2 与传统 WebSocket Upgrade 机制的不兼容:HTTP/2 废弃了 HTTP/1.1 的 Connection/Upgrade 流程,不能在同一连接上按这种方式动态切换协议。使用配置部分记录了延迟监测和系统信息保存周期的取舍示例,作者将线路延迟保留 15 天、系统信息保留 7 天,并提醒邮件通知在测试前必须先启用开关,否则测试不会成功。
服务器与部署gdrive同步linux文件夹
这篇记录聚焦在用 rclone 将 Linux 服务器上的 /root/minio 目录同步到 Google Drive,目标是把本地 MinIO 相关文件定时备份到云端的 minio 文件夹。配置部分先从 Google Cloud Console 启用 Drive API 入手,创建 OAuth 应用后获取 client_id 和 client_secret,再在服务器上执行 rclone config 新建名为 gdrive 的 drive 类型 remote,并将 scope 设为 drive。由于运行环境是服务器,rclone 的 auto config 需要选择 N,通过命令行输出的 URL 在浏览器中登录 Google 账号授权,再把返回的 code 粘贴回终端完成认证。实际同步命令使用 rclone sync /root/minio gdrive:minio,并加入 -P 显示进度、--size-only 按文件大小判断变化、--ignore-errors 忽略部分错误,同时排除 data/.minio.sys/** 目录,避免同步 MinIO 内部系统数据。定时任务通过 crontab 每小时执行一次同样的同步命令,并将输出追加到 /root/rclone-gdrive.log,方便后续查看运行情况。文末还指出 token 会自动刷新,因此完成初始授权后无需反复手动登录,适合需要给服务器目录做轻量级 Google Drive 备份的运维或个人服务维护场景。
服务器与部署dropbox同步linux文件夹(minio)
这篇实操记录围绕在 Linux 服务器上用 rclone 将 MinIO 数据目录同步到 Dropbox,适用于个人服务器或轻量对象存储需要做异地备份的场景。正文先给出 Debian/Ubuntu 安装 rclone 的方式,再说明配置 Dropbox remote 时如何在无浏览器的远程机器上选择手动授权,并借助本地有浏览器的电脑执行 rclone authorize 后把生成的 JSON token 粘贴回服务器。Dropbox 侧需要在开发者后台创建 App,出于安全考虑选择 App folder 而不是 Full Dropbox,并配置 localhost OAuth 回调地址;文章特别提醒文件夹权限和 Individual Scopes 必须在生成 token 前选好,否则 token 可能缺少 list 等权限,只能重新授权。同步命令使用 rclone sync /root/minio dropbox:minio,并通过 --size-only、时间戳思路和 --ignore-errors 避免哈希差异或临时文件导致任务中断,同时排除 data/.minio.sys 这类 MinIO 内部元数据目录。后续还说明 access_token、refresh_token 与 expiry 的关系,只要保留 refresh_token,rclone 可在访问令牌过期后自动刷新。最后通过 crontab 每小时执行同步并写入日志,读者可据此搭建一套简单、可检查、权限相对收敛的 MinIO 到 Dropbox 备份流程。