DailyTxT 简介
DailyTxT 是一款开源 加密日记 Web-App,后端采用 Python Flask,前端基于 Vue.js,官方提供 AMD64/ARM64 通用镜像,并计划在 2025 年推出 2.0(Svelte + FastAPI)。
主要特点
- 端到端加密:所有日记文本采用 AES-256 加密保存
- 简洁高效:每日一篇纯文本,快速检索
- 多用户:可在初次部署时开放注册,随后关闭
- Docker 化:一键启动,跨平台部署
准备工作
- 已安装 Docker 与 Docker Compose(参考本站《Linux Docker 安装指南 》)
- 服务器资源建议:
- CPU:1 核+
- 内存:512 MB+
- 磁盘:1 GB 可用空间
- (可选) 准备一个解析到服务器的域名,用于 HTTPS 访问
使用 Docker Compose 部署 DailyTxT
1. 创建目录
mkdir -p ~/dailytxt/data
cd ~/dailytxt
2. 生成加密密钥
# 生成安全的随机密钥
echo "SECRET_KEY=$(openssl rand -base64 32)"
请将输出的密钥保存到安全的地方,稍后配置会用到。
3. 编写 docker-compose.yml
cat > docker-compose.yml << 'EOF'
services:
dailytxt:
image: phitux/dailytxt:latest
container_name: dailytxt
restart: always
ports:
- "8765:8765" # 宿主机端口:容器端口
volumes:
- ./data:/app/data # 数据目录挂载
environment:
- PORT=8765
- SECRET_KEY=your_generated_secret_key_here # 替换为上一步生成的密钥
- ALLOW_REGISTRATION=True # 首次部署后建议改为 False
- JWT_EXP_DAYS=60
- ENABLE_UPDATE_CHECK=True
- TZ=Asia/Shanghai
EOF
参数说明
镜像配置
image
: 使用官方最新版镜像,如需指定版本可修改为phitux/dailytxt:1.0.4
container_name
: 容器名称,便于管理restart: always
: 容器退出时自动重启网络配置
ports
: 将容器内部端口映射到宿主机,格式为宿主机端口:容器端口
- 如需修改外部访问端口,可调整左侧端口号(如
8080:8765
)数据持久化
volumes
: 将容器内的/app/data
目录挂载到宿主机的./data
目录- 确保宿主机目录存在并具有适当权限
安全设置
SECRET_KEY
: 用于加密存储和会话管理,请妥善保管JWT_EXP_DAYS
: 登录会话有效期,建议根据安全需求调整- 生产环境务必设置
ALLOW_REGISTRATION=False
并移除默认凭据性能调优
DATA_INDENT
: 设置数据文件缩进,影响存储空间和读写性能- 生产环境可考虑禁用
ENABLE_UPDATE_CHECK
减少外部请求
3. 启动服务
docker compose up -d
4. 验证运行
docker ps | grep dailytxt
出现 Up
状态即部署成功。
基本配置
1. 首次访问
浏览器打开:
http://<服务器IP或域名>:8765
注册首个账户后即可开始写日记。
2. 绑定域名(推荐)
如需通过 自定义域名 + HTTPS 访问,推荐搭配 Nginx Proxy Manager 进行反向代理与 SSL 证书配置。
详细步骤请参见:《使用 Docker 快速部署 Nginx Proxy Manager 实现多域名反向代理 》
配置完成后,即可安全地通过 https://note.example.com
访问 DailyTxT。
数据备份与恢复
DailyTxT 所有数据(含用户密钥、日志)均存放于 ./data
(容器内 /app/data
)。建议定期离线备份并验证可用性。
1. 备份数据
# 创建备份文件
tar -czvf dailytxt-backup-$(date +%Y%m%d).tar.gz -C ~/dailytxt/data .
2. 恢复数据
# 停止服务
cd ~/dailytxt
docker compose down
# 恢复备份(请将 YYYYMMDD 替换为实际备份日期)
tar -xzvf dailytxt-backup-YYYYMMDD.tar.gz -C ~/dailytxt/data
# 重新启动服务
docker compose up -d
常见问题(FAQ)
问题 | 解决方案 |
---|---|
如何关闭新用户注册? | 将 ALLOW_REGISTRATION=False 后 docker compose restart |
更换域名/端口需要迁移数据吗? | 无需,只要挂载目录不变即可 |
可以在子路径部署吗? | 自 v1.0.4 起支持,反向代理到 /note/ 即可 |
是否支持 ARM 设备? | 是,官方镜像已支持 ARM64(树莓派 4 可运行) |
结语
至此,你已成功部署自托管的加密日记服务 DailyTxT。如有疑问,欢迎留言或访问项目 GitHub 。
评论