跳到主要内容

用途专题

Docker VPS 与自建应用专题

想在一台 VPS 上运行笔记、RSS、代码仓库或访问统计,先确定应用组合,再一起计算内存、数据库、磁盘增长和异机备份。这里按选配置、接域名、保存数据的顺序连接现有教程。

服务器与 Docker 环境

常用自建应用

数据与故障处理

配置与使用

先列出要保存的数据,再选配置

个人笔记、密码库、RSS、代码仓库和访问统计的负担不同。先选确实要用的应用,再把数据库、附件和保留时间放进同一张资源账,别用容器数量代替需求。

  • Memos 默认使用 SQLite,数据目录还保存附件;Vaultwarden 除数据库外还要保留附件、配置和密钥。轻量使用也需要完整备份。
  • Miniflux 和这里的 Umami 部署示例另有 PostgreSQL;订阅历史、访问记录的增长取决于使用量和保留策略。Gitea 的仓库、附件和备份也会占磁盘。
  • 先按下面三个阅读阶段确定组合。已有服务能满足需求时,不必一次装齐所有工具。

2GB 与 4GB 是比较起点,容量还要留余量

下方 2GB、4GB 代表套餐用来比较配置,不能保证某套应用一定够用。操作系统、反向代理、应用和数据库共用内存,更新、导入和备份时还可能出现额外峰值。

  • 准备同时运行 RSS、统计或代码仓库时,把各服务和数据库一起估算;单个应用空闲时的占用不能直接乘成整机预算。部署后再观察常用负载、内存压力和磁盘增长。
  • Docker 默认不会替容器设置 CPU 与内存上限。限制要结合真实负载;限额过低会导致进程被 OOM 终止,交换空间也不能替代所需内存。
  • 本页讨论常见个人自建应用,不用这两档配置承诺大型数据库、模型推理或多人高负载服务的性能。

数据盘同时容纳日常增长和维护空间

镜像之外,还要计算数据库、笔记附件、Git 仓库、RSS 历史、访问记录和日志。导出数据库、保存升级前副本时,也需要临时空间。

  • 先决定哪些数据必须保留、保留多久,再估计增长。给数据库导出、文件归档和升级留空间,别等盘满后才备份。
  • 系统盘、额外数据盘和扩容是否收费,要看所选套餐及订单;不能把所有云盘当作免费随附。扩容后还要按实际分区和文件系统处理。
  • 空间紧张先区分数据、日志、镜像缓存和 inode。未被运行容器使用的卷仍可能装着重要数据,不要靠批量删除卷给数据库腾空间。

多个应用共用入口,端口各有用途

宿主机代理通常连接本机映射端口,容器内代理通常连接服务名称与内部端口。用统一的反向代理按域名接入,各应用保留各自的数据和访问权限。

  • 这里的 Gitea 与 Uptime Kuma 教程都给过宿主机 3001 端口示例,同机部署时必须改成不同映射端口,不能原样同时占用。容器内部端口相同不代表宿主机端口也能重复。
  • 公网网站使用配置好的 HTTPS 域名,数据库优先留在容器内部网络。限制发布端口时,还要核对 Docker 版本、网络模式、防火墙和实际可达路径,不能只凭写了 127.0.0.1 就推断所有版本都安全。
  • 应用登录、注册开关和权限仍需单独设置;域名接通并不表示密码库、笔记或监控面板已经适合公开访问。

备份预算包含另一份可恢复的数据

容器和镜像可以重新创建,数据库、上传文件、配置及恢复所需密钥要保存在持久化目录或卷。备份还需要与运行盘分开的保存位置。

  • SQLite 与 PostgreSQL 的备份方式不同。按应用文档停止相关写入或使用一致性备份;PostgreSQL 使用匹配版本的正常数据库导出,不直接打包正在写入的数据目录冒充可恢复备份。
  • 数据库、附件和配置要对应同一恢复点,记录软件版本。更新镜像前保留可用副本;数据库大版本变化按软件支持的迁移流程操作。
  • 把异机存储、保留份数、传输费用和恢复所需临时空间一起计入。文件存在或校验成功,只能证明保存状态;能否恢复还要在隔离环境实际验证。

比较总费用,不只看主机首期价格

把主机、可能另收的磁盘与流量、异机备份放在同一预算中。按年优惠、首购限制和续费价格要在对应商家详情与订单核对。

  • 代表套餐详情保留各自的报价日期、地区、资源和购买条件。报价日期对应当时记录,当前库存、结账价格和账户优惠资格以所选套餐及订单为准。
  • 只有实际收费的额外磁盘、IP、流量及备份传输才计入对应费用;先看计费规则,别把月付预算与年付实付混在一起。
  • 同一台 VPS 上的 Uptime Kuma 能监测部分应用,但整机或网络断开时也可能无法发送通知。需要独立监测视角时,把另一处监测与通知服务的成本另算。

代表套餐

全部套餐 →