· 技术备忘录  · 9 min read

Docker部署速查手册:我常用的10个自托管服务

密码管理、文件同步、监控告警、自动化工作流...10个开箱即用的Docker Compose配置,复制粘贴就能跑。VPS利用率从10%到90%,只需要这一篇。

密码管理、文件同步、监控告警、自动化工作流...10个开箱即用的Docker Compose配置,复制粘贴就能跑。VPS利用率从10%到90%,只需要这一篇。

你买了一台 VPS,搭了个博客,然后 90% 的资源都在闲着?

别浪费了。一台 1核2G 的小机器,就能跑 10+ 个自托管服务。 密码管理、文件同步、监控告警、自动化工作流——全给你安排上。

这篇是我的 Docker 部署速查手册。所有配置都是我实际在用的,复制粘贴就能跑。

前置准备

在开始之前,确保你的 VPS 上已经装好了:

  • Docker
  • Docker Compose
  • 一个域名(可选,但强烈推荐)
  • Nginx Proxy Manager 或 Traefik(做反向代理和 SSL)

我习惯用以下目录结构:

/opt/docker/
├── vaultwarden/
│   └── docker-compose.yml
├── uptime-kuma/
│   └── docker-compose.yml
├── n8n/
│   └── docker-compose.yml
└── ...

每个服务一个目录,数据都挂载在 ./data 下,备份方便。


1. Vaultwarden — 自建密码管理器

用途:替代 1Password / Bitwarden 付费版 内存占用:约 100MB 推荐指数:⭐⭐⭐⭐⭐

# vaultwarden/docker-compose.yml
services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    ports:
      - "8080:80"
    volumes:
      - ./data:/data
    environment:
      - SIGNUPS_ALLOWED=false      # 自己注册完后关掉
      - WEBSOCKET_ENABLED=true     # 启用实时同步
      - ADMIN_TOKEN=your_admin_token_here  # 管理后台token

访问http://your-ip:8080 相关阅读《密码管理的”斩杀线”:为什么我自建 Vaultwarden》

小贴士:注册完自己的账号后,把 SIGNUPS_ALLOWED 设为 false,防止路人蹭你的库。


2. Uptime Kuma — 服务监控

用途:监控你的网站、服务器、端口是否在线 内存占用:约 80MB 推荐指数:⭐⭐⭐⭐⭐

# uptime-kuma/docker-compose.yml
services:
  uptime-kuma:
    image: louislam/uptime-kuma:latest
    container_name: uptime-kuma
    restart: always
    ports:
      - "3001:3001"
    volumes:
      - ./data:/app/data
      - /var/run/docker.sock:/var/run/docker.sock  # 可选,监控Docker容器

访问http://your-ip:3001 相关阅读《Uptime Kuma 监控部署指南》

能监控什么

  • HTTP/HTTPS 网站
  • TCP 端口
  • Ping(ICMP)
  • DNS 解析
  • Docker 容器状态
  • 数据库连接

通知方式:Telegram、邮件、Discord、Slack、Webhook… 几十种集成。


3. n8n — 自动化工作流

用途:替代 Zapier / Make 内存占用:约 200MB 推荐指数:⭐⭐⭐⭐⭐

# n8n/docker-compose.yml
services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    restart: always
    ports:
      - "5678:5678"
    volumes:
      - ./data:/home/node/.n8n
    environment:
      - N8N_HOST=n8n.yourdomain.com
      - N8N_PROTOCOL=https
      - GENERIC_TIMEZONE=Asia/Shanghai

访问http://your-ip:5678 相关阅读《自动化的代价:为什么我抛弃 Zapier 选择了自建 n8n》

常用工作流

  • RSS → AI 摘要 → Telegram 频道
  • 表单提交 → 自动发邮件 → 写入 Notion
  • 价格监控 → 降价提醒 → 发通知

4. Nextcloud — 私有云盘

用途:替代百度网盘 / Google Drive 内存占用:约 300MB 推荐指数:⭐⭐⭐⭐

# nextcloud/docker-compose.yml
services:
  nextcloud:
    image: nextcloud:latest
    container_name: nextcloud
    restart: always
    ports:
      - "8081:80"
    volumes:
      - ./data:/var/www/html
      - ./data/apps:/var/www/html/custom_apps
      - ./data/config:/var/www/html/config
      - ./data/data:/var/www/html/data
    environment:
      - PHP_MEMORY_LIMIT=512M
      - PHP_UPLOAD_LIMIT=10G
      - TZ=Asia/Shanghai

  db:
    image: mariadb:latest
    container_name: nextcloud-db
    restart: always
    volumes:
      - ./db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=your_root_password
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_PASSWORD=your_db_password

访问http://your-ip:8081

小贴士

  • 建议用 MariaDB,不要用 SQLite(性能差)
  • 大文件上传记得改 PHP 上传限制
  • 配合 OnlyOffice 可以实现在线编辑文档

5. Portainer — Docker 可视化管理

用途:图形化管理 Docker 容器 内存占用:约 50MB 推荐指数:⭐⭐⭐⭐⭐

# portainer/docker-compose.yml
services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: always
    ports:
      - "9000:9000"
      - "9443:9443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data:/data

访问http://your-ip:9000

能做什么

  • 可视化查看所有容器状态
  • 一键启动/停止/重启/删除容器
  • 查看日志、进入终端
  • 管理镜像、卷、网络
  • 部署 Stack(Docker Compose)

对于不熟悉命令行的人,Portainer 是 Docker 的最佳入门工具。


6. AdGuard Home — 全网广告拦截

用途:替代 Pi-hole,全网去广告 内存占用:约 80MB 推荐指数:⭐⭐⭐⭐

# adguard-home/docker-compose.yml
services:
  adguard-home:
    image: adguard/adguardhome:latest
    container_name: adguard-home
    restart: always
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "3000:3000/tcp"
      - "8082:80/tcp"
    volumes:
      - ./work:/opt/adguardhome/work
      - ./conf:/opt/adguardhome/conf

访问http://your-ip:3000(首次配置) DNS 端口:53(UDP/TCP)

用法

  1. 把你的路由器 DNS 改成这台 VPS 的 IP
  2. 家里所有设备自动去广告
  3. 还能屏蔽追踪器、恶意网站
  4. 看统计数据,知道谁在访问什么

7. Miniflux — RSS 阅读器

用途:替代 Feedly / Inoreader 内存占用:约 50MB 推荐指数:⭐⭐⭐⭐

# miniflux/docker-compose.yml
services:
  miniflux:
    image: miniflux/miniflux:latest
    container_name: miniflux
    restart: always
    ports:
      - "8083:8080"
    depends_on:
      - db
    environment:
      - DATABASE_URL=postgres://miniflux:your_password@db/miniflux?sslmode=disable
      - RUN_MIGRATIONS=1
      - CREATE_ADMIN=1
      - ADMIN_USERNAME=admin
      - ADMIN_PASSWORD=your_admin_password
      - POLLING_FREQUENCY=30

  db:
    image: postgres:15-alpine
    container_name: miniflux-db
    restart: always
    volumes:
      - ./db:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=miniflux
      - POSTGRES_PASSWORD=your_password
      - POSTGRES_DB=miniflux

访问http://your-ip:8083 相关阅读《RSS 极简主义:Miniflux 与我的信息节食》

优点

  • 极简,没有花里胡哨的功能
  • 支持 Fever API,可以用 Reeder 等客户端
  • 支持集成 Wallabag、Notion、Pocket
  • 能自动抓取全文(不用点原文跳转)

8. Wallabag — 稍后阅读

用途:替代 Pocket / Instapaper 内存占用:约 100MB 推荐指数:⭐⭐⭐

# wallabag/docker-compose.yml
services:
  wallabag:
    image: wallabag/wallabag:latest
    container_name: wallabag
    restart: always
    ports:
      - "8084:80"
    volumes:
      - ./data:/var/www/wallabag/data
      - ./images:/var/www/wallabag/web/assets/images
    environment:
      - SYMFONY__ENV__DOMAIN_NAME=https://wallabag.yourdomain.com
      - SYMFONY__ENV__FOSUSER_REGISTRATION=false

访问http://your-ip:8084

用法

  1. 看到好文章,点一下 Wallabag 浏览器扩展
  2. 文章自动保存,去掉广告和干扰元素
  3. 有空的时候慢慢读
  4. 支持导出为 ePub、Mobi、PDF

9. Gitea — 私有 Git 仓库

用途:替代 GitHub 私有仓库 内存占用:约 100MB 推荐指数:⭐⭐⭐⭐

# gitea/docker-compose.yml
services:
  gitea:
    image: gitea/gitea:latest
    container_name: gitea
    restart: always
    ports:
      - "3000:3000"
      - "2222:22"
    volumes:
      - ./data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=sqlite3

访问http://your-ip:3000 SSH 端口:2222

小贴士

  • 个人用 SQLite 足够,不用单独跑 MySQL
  • 记得开两步验证
  • 配合 Drone CI 可以做持续集成

10. Duplicati — 自动备份

用途:备份你的 Docker 数据到云端 内存占用:约 80MB 推荐指数:⭐⭐⭐⭐⭐

# duplicati/docker-compose.yml
services:
  duplicati:
    image: duplicati/duplicati:latest
    container_name: duplicati
    restart: always
    ports:
      - "8200:8200"
    volumes:
      - ./config:/config
      - /opt/docker:/source:ro      # 要备份的源目录
      - /tmp/restore:/restore       # 恢复时用的目录
    environment:
      - TZ=Asia/Shanghai
      - DUPLICATI_PASS=your_admin_password

访问http://your-ip:8200

支持的备份目标

  • Backblaze B2
  • S3 兼容存储(R2、阿里云 OSS 等)
  • Google Drive
  • WebDAV
  • SFTP
  • 本地文件夹

备份策略建议

  • 每天自动备份一次
  • 保留 30 天的备份
  • 备份加密(AES-256)
  • 定期测试恢复

一键部署脚本

如果你想一次把这些都装上,可以用这个脚本:

#!/bin/bash
# 安装 Docker
curl -fsSL https://get.docker.com | sh
systemctl enable docker

# 创建基础目录
mkdir -p /opt/docker/{vaultwarden,uptime-kuma,n8n,portainer,duplicati}

# 启动 Portainer(先装这个,后面可视化管理)
cd /opt/docker/portainer
cat > docker-compose.yml << 'EOF'
services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: always
    ports:
      - "9000:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data:/data
EOF
docker compose up -d

echo "Portainer 已启动:http://$(curl -s ifconfig.me):9000"
echo "接下来可以在 Portainer 里部署其他服务"

资源占用汇总

服务内存占用端口推荐指数
Portainer~50MB9000⭐⭐⭐⭐⭐
Vaultwarden~100MB8080⭐⭐⭐⭐⭐
Uptime Kuma~80MB3001⭐⭐⭐⭐⭐
n8n~200MB5678⭐⭐⭐⭐⭐
Duplicati~80MB8200⭐⭐⭐⭐⭐
Miniflux~50MB8083⭐⭐⭐⭐
AdGuard Home~80MB3000/53⭐⭐⭐⭐
Gitea~100MB3000⭐⭐⭐⭐
Nextcloud~300MB8081⭐⭐⭐⭐
Wallabag~100MB8084⭐⭐⭐
合计~1140MB

1核2G 的 VPS 完全跑的下。 甚至还有富余。

安全提醒

自托管很爽,但安全第一:

  1. 一定要开 HTTPS:用 Nginx Proxy Manager 或 Traefik 自动申请 Let’s Encrypt 证书
  2. 改默认端口:别用 8080、3000 这种默认端口,容易被扫
  3. 开防火墙:只开放必要的端口,其他全关掉
  4. 定期备份:用 Duplicati 自动备份到云端
  5. 关注安全更新:用 Watchtower 自动更新镜像

一句话总结

Docker 让 VPS 的利用率从 10% 升到 90%。

一台 $20/年的小 VPS,能跑 10+ 个自托管服务。 省下的 SaaS 订阅费,一年就是几百美元。

但记住:自托管的成本不是服务器钱,是你的时间。 选你真正需要的,别为了”折腾”而折腾。

把这篇收藏起来,下次部署新服务直接抄作业。

Back to Blog

Related Posts

View All Posts »
群晖NAS安全加固清单 - 2026版防勒索指南

群晖NAS安全加固清单 - 2026版防勒索指南

2026年NAS勒索病毒频发,你的数据真的安全吗?从关闭高危服务到配置防火墙规则,再到3-2-1备份策略落地,这份完整清单帮你守住数字资产的最后防线。包含LockBit 4.0防护建议。