TiddlyWiki-NAS-部署
如果你的目标是在同一台 NAS 上运行 两个独立的 TiddlyWiki 实例(每个实例对应单独的 tiddlywiki.html 文件),并通过不同的端口访问它们,可以按以下步骤配置 Docker 端口映射:
---
### 一、核心思路
1. 每个 TiddlyWiki 实例运行在独立的容器中,绑定到不同的宿主机端口。
2. 数据持久化:将每个实例的 TiddlyWiki 数据目录(包含 tiddlywiki.html 和其他文件)挂载到宿主机的不同路径,避免冲突。
3. 明确端口映射规则:例如:
- 第一个实例:宿主机的 9001 端口 → 容器的 8080 端口(TiddlyWiki 默认端口)。
- 第二个实例:宿主机的 9002 端口 → 容器的 8080 端口。
---
### 二、具体操作步骤
#### 1. 准备数据目录
在宿主机(NAS)上创建两个独立的目录,分别存储两个 TiddlyWiki 实例的数据:
```bash
mkdir -p /path/to/tiddlywiki-data/wiki1
mkdir -p /path/to/tiddlywiki-data/wiki2
```
#### 2. 启动第一个 TiddlyWiki 容器
```bash
docker run -d
--name tiddlywiki1
-p 9001:8080 # 宿主机端口 9001 → 容器端口 8080
-v /path/to/tiddlywiki-data/wiki1:/var/lib/tiddlywiki # 挂载数据目录
jdlabs/tiddlywiki:latest # 使用官方或你偏爱的镜像
```
#### 3. 启动第二个 TiddlyWiki 容器
```bash
docker run -d
--name tiddlywiki2
-p 9002:8080 # 宿主机端口 9002 → 容器端口 8080
-v /path/to/tiddlywiki-data/wiki2:/var/lib/tiddlywiki # 挂载另一个数据目录
jdlabs/tiddlywiki:latest
```
---
### 三、验证访问
- 第一个实例:浏览器访问 http://你的NAS-IP:9001。
- 第二个实例:浏览器访问 http://你的NAS-IP:9002。
两个实例会完全独立,各自保存到不同的 tiddlywiki.html 文件中。
---
### 四、关键配置说明
1. 端口映射:
- -p 宿主机端口:容器端口:确保每个容器映射到不同的宿主机端口(如 9001 和 9002)。
- TiddlyWiki 默认在容器内监听 8080 端口,因此所有容器的内部端口均为 8080,仅宿主机端口不同。
2. 数据隔离:
- 通过 -v 挂载不同的宿主机目录到容器的 /var/lib/tiddlywiki(具体路径取决于镜像文档),确保两个实例的数据完全独立。
- 如果镜像要求特定目录(如 /opt/tiddlywiki),请根据镜像文档调整挂载路径。
3. 镜像选择:
- 使用官方镜像(如 jdlabs/tiddlywiki)或社区维护的镜像(如 klaemo/tiddlywiki)。
- 检查镜像文档确认默认端口和数据存储路径。
---
### 五、扩展建议
1. 使用反向代理(如 Nginx):
- 若需通过域名访问(如 wiki1.yourdomain.com 和 wiki2.yourdomain.com),可用 Nginx 将不同域名代理到 9001 和 9002 端口。
- 添加 HTTPS 支持(如 Let's Encrypt)。
2. 备份数据:
- 定期备份挂载的宿主机目录(`/path/to/tiddlywiki-data/wiki1` 和 wiki2)。
3. 避免端口冲突:
- 使用 docker ps 检查已占用的宿主机端口:
```bash
docker ps --format "table {{.Names}}t{{.Ports}}"
```
---
### 六、总结
- 端口设置:通过不同宿主机端口(如 9001 和 9002)映射到容器的 8080 端口。
- 数据隔离:为每个实例挂载独立的宿主机目录。
- 镜像一致性:使用同一镜像启动多个容器,仅调整端口和挂载路径。
按此配置,你可以轻松管理多个独立的 TiddlyWiki 实例!

作者提示含AI生成内容。
