docs: 记录玩过的 docker 项目(searxng/paopao-ce/misskey)
This commit is contained in:
@@ -1,3 +1,27 @@
|
|||||||
# docker-playground
|
# 🐳 Docker Playground
|
||||||
|
|
||||||
玩过的 Docker 自部署项目记录(searxng/paopao-ce/misskey)
|
玩过的 Docker 自部署项目记录。
|
||||||
|
|
||||||
|
> 目的:沉淀部署经验、踩坑记录,方便复盘和重新部署。
|
||||||
|
|
||||||
|
## 项目总览
|
||||||
|
|
||||||
|
| 项目 | 类型 | 状态 | 端口 | 部署日期 |
|
||||||
|
|------|------|------|------|----------|
|
||||||
|
| [searxng](searxng.md) | 元搜索引擎 | 🟢 运行中 | 8888 | 2026-07 部署 |
|
||||||
|
| [paopao-ce](paopao-ce.md) | 微社区平台 | ⚫ 已清理 | - | 2026-08-04 体验后删除 |
|
||||||
|
| [misskey](misskey.md) | 社交平台 | 🟢 运行中 | 3000 | 2026-08-04 部署 |
|
||||||
|
|
||||||
|
## 环境
|
||||||
|
|
||||||
|
- VPS:Ubuntu 22.04,3.8G 内存 / 29G 磁盘
|
||||||
|
- Docker + Docker Compose
|
||||||
|
- 端口安全策略:业务端口按需暴露,基础设施端口(DB/Redis)只走容器内网
|
||||||
|
|
||||||
|
## 通用经验
|
||||||
|
|
||||||
|
1. **compose 里的镜像 tag 要验证**:官方 compose 默认 tag 可能不存在(如 paopao-ce 的 `0.6-alpha` 404),改成 `latest` 或查询 Docker Hub 实际 tag
|
||||||
|
2. **端口冲突先查**:`ss -tlnp` 检查宿主机端口占用,冲突就改映射(`localhost:3307:3306` 之类)
|
||||||
|
3. **基础设施端口只绑内网**:MySQL/PostgreSQL/Redis 等不要暴露到 「全接口」,用 `internal_network` 或绑定 localhost
|
||||||
|
4. **官方示例配置常带占位账号**:复制 `example.yml` 后必须把 db 账号密码改成实际值,否则启动报 auth 失败
|
||||||
|
5. **数据持久化**:挂载到宿主机目录或命名 volume,容器删了数据还在
|
||||||
|
|||||||
+50
@@ -0,0 +1,50 @@
|
|||||||
|
# Misskey — 开源社交平台
|
||||||
|
|
||||||
|
> 部署于 2026-08-04,运行中 🟢
|
||||||
|
|
||||||
|
## 简介
|
||||||
|
|
||||||
|
[misskey-dev/misskey](https://github.com/misskey-dev/misskey):日系开源社交平台(类微博/推特),界面颜值天花板,支持联邦宇宙(ActivityPub)。玩法丰富:笔记(嘟文)、反应表情、画板、主题帖等。
|
||||||
|
|
||||||
|
## 技术栈
|
||||||
|
|
||||||
|
- 后端:Node.js(NestJS)+ TypeScript
|
||||||
|
- 数据库:PostgreSQL(默认)/ 其他可选
|
||||||
|
- 缓存/队列:Redis
|
||||||
|
- 搜索:SQL Like(默认)/ Meilisearch 可选
|
||||||
|
|
||||||
|
## 部署记录(Docker Compose)
|
||||||
|
|
||||||
|
服务组成:`misskey/misskey:latest` + `postgres:18-alpine` + `redis:7-alpine`
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
services:
|
||||||
|
web:
|
||||||
|
image: misskey/misskey:latest
|
||||||
|
ports: ["3000:3000"]
|
||||||
|
volumes: ["./files:/misskey/files", "./.config:/misskey/.config:ro"]
|
||||||
|
depends_on: { db: {condition: service_healthy}, redis: {condition: service_healthy} }
|
||||||
|
db:
|
||||||
|
image: postgres:18-alpine
|
||||||
|
env_file: .config/docker.env # POSTGRES_USER/PASSWORD/DB
|
||||||
|
redis:
|
||||||
|
image: redis:7-alpine
|
||||||
|
|
||||||
|
networks:
|
||||||
|
internal_network: { internal: true } # db/redis 只走内网
|
||||||
|
external_network: {}
|
||||||
|
```
|
||||||
|
|
||||||
|
关键配置:`.config/default.yml`(复制自 `docker_example.yml`)中 `url` 必须设为对外访问地址,**启动后不可更改**;首次启动自动跑数据库迁移。
|
||||||
|
|
||||||
|
## 🕳️ 踩坑记录
|
||||||
|
|
||||||
|
1. **数据库认证失败(auth_failed)**:官方 `docker_example.yml` 里 db 账号是占位符 `example-misskey-user/example-misskey-pass`,复制后忘记改,与 docker.env 里生成的随机账号不一致,web 启动时 PG 认证失败。修复:把 `default.yml` 的 `db.user/pass` 改成与 `docker.env` 一致,`docker compose restart web`
|
||||||
|
2. **首启动迁移耗时**:web 容器启动要跑 `pnpm migrate && pnpm start`,健康检查从 starting 到 healthy 需要约 1 分钟,别急着判失败
|
||||||
|
|
||||||
|
## 备注
|
||||||
|
|
||||||
|
- 端口策略:3000 对外,PostgreSQL/Redis 全走 `internal_network`,外部不可达
|
||||||
|
- 第一个注册的账号自动成为管理员,后台可管理站点
|
||||||
|
- 若只想自己玩,可关闭开放注册或改邀请制
|
||||||
|
- 数据在 `/tmp/misskey/`(files/、db/、redis/、.config/),容器删了数据还在
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
# paopao-ce — 开源微社区平台
|
||||||
|
|
||||||
|
> 部署于 2026-08-04,体验后已清理 ⚫(容器、镜像、数据、目录全部移除)
|
||||||
|
|
||||||
|
## 简介
|
||||||
|
|
||||||
|
[rocboss/paopao-ce](https://github.com/rocboss/paopao-ce):Go + Vue 3 全栈开源微社区平台,主打自部署 + 模块化裁剪(Features 特性开关)。
|
||||||
|
|
||||||
|
## 技术栈
|
||||||
|
|
||||||
|
- 后端:Go 1.24 + Gin + GORM
|
||||||
|
- 前端:Vue 3 + Naive UI(可嵌入二进制)
|
||||||
|
- 数据库:MySQL(默认)/ PostgreSQL / SQLite
|
||||||
|
- 搜索:Meilisearch;缓存:Redis;存储:LocalOSS/MinIO/云 OSS
|
||||||
|
|
||||||
|
## 部署记录(Docker Compose)
|
||||||
|
|
||||||
|
服务组成:`mysql:8.0` + `redis-stack` + `meili` + `backend`
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# 核心服务(简化)
|
||||||
|
services:
|
||||||
|
db: image: mysql:8.0 # 初始化脚本 scripts/paopao-mysql.sql
|
||||||
|
redis: image: redis/redis-stack # 缓存 + RediSearch
|
||||||
|
meili: image: getmeili/meilisearch # 全文搜索
|
||||||
|
backend: image: bitbus/paopao-ce # 主应用
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🕳️ 踩坑记录
|
||||||
|
|
||||||
|
1. **镜像 tag 404**:官方 compose 默认 `bitbus/paopao-ce:0.6-alpha` 在 Docker Hub 不存在,`docker compose up` 直接失败回滚。改成 `latest` 解决
|
||||||
|
2. **MySQL 端口冲突**:宿主机宝塔 MySQL 已占 3306,compose 里映射改为 `localhost:3307:3306`,容器间走内网 `db:3306` 不受影响
|
||||||
|
3. **安全收紧**:部署后把 MySQL/Redis/Meili 端口全部回绑 `localhost`,只留应用端口 8008 对外(docker 端口映射走 iptables FORWARD 链,ufw 拦不住,回绑更彻底)
|
||||||
|
|
||||||
|
## 体验结论
|
||||||
|
|
||||||
|
- 功能完整(帖子/评论/点赞/关注/私信),后台管理界面齐全
|
||||||
|
- 适合作为社区产品快速落地或 Go 全栈学习样板
|
||||||
|
- 部分模块(Admin/Bot/SpaceX)标记 WIP
|
||||||
|
- 体验完毕,容器/镜像/目录已全部清理,端口已释放
|
||||||
+28
@@ -0,0 +1,28 @@
|
|||||||
|
# searxng — 元搜索引擎
|
||||||
|
|
||||||
|
> 部署于 2026-07,运行中 🟢
|
||||||
|
|
||||||
|
## 简介
|
||||||
|
|
||||||
|
SearXNG 是一个隐私友好的元搜索引擎,聚合多个搜索引擎结果,无追踪无广告,可自部署。同时也是 OpenClaw 的 `web_search` 后端。
|
||||||
|
|
||||||
|
## 部署信息
|
||||||
|
|
||||||
|
- 镜像:`searxng/searxng`
|
||||||
|
- 容器名:`searxng`
|
||||||
|
- 端口:`8888 -> 8080`(对外)
|
||||||
|
- 数据:命名 volume(配置 + 缓存)+ 绑定挂载 `/root/searxng/settings.yml`
|
||||||
|
|
||||||
|
## 部署命令
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -d --name searxng \
|
||||||
|
-p 8888:8080 \
|
||||||
|
-v /root/searxng/settings.yml:/etc/searxng/settings.yml:ro \
|
||||||
|
searxng/searxng
|
||||||
|
```
|
||||||
|
|
||||||
|
## 备注
|
||||||
|
|
||||||
|
- settings.yml 里配置了搜索格式和各引擎
|
||||||
|
- 内网其他服务(如 OpenClaw 网关)通过该实例做搜索代理
|
||||||
Reference in New Issue
Block a user