【Docker项目实战】使用Docker部署Journiv自托管日记应用程序

举报
江湖有缘 发表于 2025/12/14 23:29:04 2025/12/14
【摘要】 【Docker项目实战】使用Docker部署Journiv自托管日记应用程序

一、Journiv介绍

1.1 Journiv项目简介

Journiv 是一款处于积极开发中的自托管私人日记应用,注重隐私、安全与用户体验,帮助用户记录生活、追踪情绪并进行深度自我反思。

1.2 Journiv主要特点

  • 隐私与安全:数据完全由用户掌控,支持本地数据库存储,无任何遥测,提供 JWT 认证及可选的 OIDC/SSO 集成。
  • 内容创作:支持富文本日记、多本日记分类、灵活标签系统、多媒体上传及带时区信息的精准时间记录。
  • 情绪追踪:可记录每日心情,结合可视化分析、写作连击统计和情绪模式识别,助你了解内在变化。
  • 提示式日记:每日智能推送写作提示,支持按类别筛选,并能一键从提示创建日记条目。
  • 搜索与发现:提供全文检索、多维过滤(日期、情绪、标签等)、“历史上的今天”等功能,轻松找回过往记录。
  • 分析与洞察:整合写作习惯、情绪趋势、各日记本统计及个性化建议,打造专属反思仪表盘。

1.3 注意事项

Journiv 目前仍为测试版软件,尽管开发团队努力保持数据向后兼容,但未来更新可能引入重大变更,请务必定期备份数据以防丢失

二、本次实践规划

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。

hostname IP地址 操作系统版本 Docker版本 部署项目 备注
jeven 192.168.3.88 Ubuntu 24.04.2 LTS 28.5.0 Journiv ——

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署Journiv自托管日记应用程序。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

root@jeven:~# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
     Active: active (running) since Tue 2025-12-02 00:51:31 CST; 1min 11s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 75393 (dockerd)
      Tasks: 32
     Memory: 34.1M (peak: 34.8M)
        CPU: 1.248s
     CGroup: /system.slice/docker.service

在这里插入图片描述

3.2 检查Docker版本

检查Docker版本

root@jeven:~# docker -v
Docker version 28.5.0, build 887030f

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

root@jeven:~# docker compose version
Docker Compose version v2.39.4

四、拉取Journiv镜像

下载Journiv镜像,镜像名称为:registry.cn-hangzhou.aliyuncs.com/jeson/journiv-app:main

 docker pull registry.cn-hangzhou.aliyuncs.com/jeson/journiv-app:main

在这里插入图片描述

五、部署Journiv服务

5.1 创建部署目录

  • 创建部署目录
mkdir -p /data/journiv/data && cd  /data/journiv
  • 权限设置
 chmod -R 777 /data/journiv/

5.2 docker compose方式部署

使用docke-cli方式部署,DOMAIN_NAME注意改为自己服务器IP。

docker run -d \
  --name journiv \
  --restart unless-stopped \
  -p 2300:8000 \
  -e SECRET_KEY=your-secret-key-here \
  -e DOMAIN_NAME=192.168.3.88  \
  -v $(pwd)/data:/data \
  registry.cn-hangzhou.aliyuncs.com/jeson/journiv-app:main


新建及编辑docker-compose.yaml文件,宿主机映射端口可自行设置,注意防止端口冲突。将DOMAIN_NAME更改为自己服务器IP地址,SECRET_KEY自行设置密钥。

vim docker-compose.yaml
version: '3'

services:
  journiv:
    image:  registry.cn-hangzhou.aliyuncs.com/jeson/journiv-app:main
    container_name: journiv
    restart: unless-stopped
    ports:
      - 2300:8000
    volumes:
      - ./data:/data
    environment:
      - SECRET_KEY=xT6#kL9@vN2aqW4!zP8&mR1*yU5^aB7(cE3)gH0~jK9%nM2asD6
      - DOMAIN_NAME=192.168.3.88

  • 环境变量解释:

  • SECRET_KEY:用于应用加密和安全签名的密钥,必须保密且足够随机。

  • DOMAIN_NAME:指定应用对外访问的域名或 IP 地址,用于生成正确的链接或配置回调地址。

5.3 创建Journiv容器

执行以下命令,创建Journiv容器。

docker compose up -d

在这里插入图片描述

5.4 查看Journiv容器状态

检查Journiv容器运行状态,确保Journiv容器正常启动。

root@jeven:/data/journiv# docker compose ps
WARN[0000] /data/journiv/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
NAME      IMAGE                                                      COMMAND                   SERVICE   CREATED         STATUS  PORTS
journiv   registry.cn-hangzhou.aliyuncs.com/jeson/journiv-app:main   "/app/scripts/docker…"   journiv   4 minutes ago   Up 4 minutes (healthy) 0.0.0.0:2300->8000/tcp, [::]:2300->8000/tcp

5.5 检查Journiv容器日志

检查容器运行日志,确保Journiv服务正常运行。

docker compose logs

在这里插入图片描述

六、访问Journiv服务

6.1 访问Journiv首页

浏览器地址: http://<个人的服务器IP>:2300,访问Journiv初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

在这里插入图片描述

6.2 注册账号

将URL改为自己服务器IP地址,例如http://192.168.3.88:2300/,自行注册账号。

在这里插入图片描述

在这里插入图片描述

6.3 编辑日记

自行新建日记本和编辑笔记内容,如下所示:

在这里插入图片描述

七、总结

本次实践成功通过 Docker Compose 部署了 Journiv 自托管日记应用,验证了其轻量、私有化记录日记的核心功能。通过合理配置环境变量与持久化数据卷,确保了服务的安全性与数据持久性。访问 Web 界面后可顺利完成注册、登录及日记编辑,用户体验简洁流畅。整体部署过程高效可靠,适合个人或小团队搭建私有日记平台。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。