在被短视频和社交网络填满的当下,我们往往把时间分给了别人,却很少和自己对话。1diaryBook 并不是一个复杂的社交跨界平台,它仅仅是一个只属于自己的“数据孤岛”。在这里,你可以卸下所有伪装,记录下岁月的长河里,每一次微小的感动、每一张真实的相片、以及每一串丈量世界的足迹。
缘起与演进
1diaryBook 的诞生,源自于一个最朴素的想法:我们需要一个绝对安全、绝对安静的树洞。
市面上的日记软件要么充斥着广告,要么无法保证数据的绝对私密(毕竟放在别人的服务器上)。于是,我决定自己动手,从零开始搭建这个树洞。
第 1 次迭代:
最初的版本十分简陋,只能完成最基础的文字记录和单张图片上传。在这个阶段,我确立了最核心的安全信条——“落地即加密”。每一个字词在写入数据库的瞬间,都被高强度的算法转换成了连我自己都无法解读的乱码,只为保全那份仅存的安全感。
第 2 次迭代:
随着记录的增多,我们发现单纯的“流水账”很难让人产生共鸣。于是,我们引入了多维的数据视角:
我们要能清晰地看到情绪的起伏(情绪轨迹与年度热力图);
我们要能摘掉所有文字,仅仅在一整面的照片墙前驻足回忆(沉浸式图库);
我们更要能在这个世界的版图上,点亮所有去过的地方(足迹地图)。
于是,“时光”在这个程序里不再是一个抽象的词语,而是变成了看得见摸得着的形状。
第 3 次迭代:
当日记突破了数百篇,附带的图片达到上千张时,程序不可避免地撞上了性能墙。
例如:
“手机上打开首页总是要白屏好几秒。”
“编辑完日记点保存,页面在那儿转圈半天才有反应,点取消也要重载整个页面,十分心累。”
面对日益庞大的图表库和地图系统,原有的架构显得力不从心。
第 4 次迭代:
针对打开慢、白屏久的问题,我将全站笨重的第三方图表与地图引擎进行了“异步解耦”。现在打开网页时,壳子瞬间加载,复杂的数据和渲染则被巧妙地安排在了后台默默完成,消灭了让人烦躁的等待。
针对交互卡顿的问题,彻底斩断了多余的网页重载。重构了底层的提交机制,当修改完过往的日记,无论是点击保存还是取消,由于采用了极简的 JSON 通讯与纯粹的前端 DOM 切换,这一切都会在毫秒级如行云流水般完成。
除此之外,为了对抗手机上传图片容易翻转的问题,我在服务器端引入了 EXIF 进行纠偏。
至此,1diaryBook 不仅能承载岁月的厚重,更拥有了轻盈如飞的体验。
🌟 核心功能一览
- 加密时光轴:以流线型瀑布流展示图文,所有内容数据库底层强加密。
- 那年今日:跨越时空的相遇,每天为你推送多年前的今天你写下的话语。
- 数据控制面板:基于 ECharts 构建的全景可视化图表,年度创作趋势与情绪波动一览无余。
- 纯净相册回忆:无文字干扰的网格画廊,配合智能的高画质/缩略图分离策略。
- 城市地理足迹:基于高德地图,不仅能点亮你去过的城市,还能自动计算你的探索里程。
- 随心编辑体验:引入 Pjax 极速切换与异步保存机制,全站几乎“无感刷新”。
🚀 部署指南
无论是想动手折腾的技术极客,还是习惯了可视化管理面板的新手,都可以轻松将 1diaryBook 安放在你喜欢的服务器上。
🏗 第零步:服务器选购与成本小科普 (新手必看)
如果你是第一次接触建站部署,可能会问:“弄这个得花多少钱?值得吗?”
1. 云服务器 + 域名 (长久使用比较推荐)
- 成本评估:现在各家主流云服务商(如阿里云、腾讯云等)对新人的基础机器(如 2核2G)常年有几十块钱一年的特惠。配合一个top后缀的域名(只需十几块),就将拥有一座一年 365 天不断电、不掉线的赛博小岛的成本,大概只需要几杯奶茶钱(50-80元/年)。
除了跑日记本,它还能做什么?
拥有一台云服务器,等于你在云端有了一台拥有公网 IP 的 Linux 电脑。你不局限于只把它当成日记本,还可以:- 搞科研与学习:在这台机器上跑 Python 爬虫定时抓取数据,或者部署轻量级的 AI 模型服务端,或者是当作Zetero文献同步的云盘,免除容量限制。
- DIY 一切可能:搭建你自己的个人网盘、私人博客网站、自动签到脚本,并在折腾中掌握一些网络知识。
我初中的时候就是这样捣鼓过来的,学习到了很多东西,这些收获受益至今。
2. 本地电脑 + 内网穿透 (适合零成本尝鲜)
- 如果一分钱不想花,完全可以把自己平时的 Windows 或 Mac 电脑变成服务器。
- 当日记本在本地跑起来后,使用内网穿透工具(如 cpolar、Ngrok 等),将本地的地址映射到公网上。
- 好处:完全免费!缺点:主力电脑需要一直开机不能休眠,一旦关机,在外面的手机上就打不开日记本了。非常适合作为前期的免费体验和技术练手。
准备好硬件环境后,就可以正式开始了!
🔑 第一步:准备第三方 API (高德地图)
我们的自动天气定位和足迹地图依赖高德地图的服务。
- 前往 高德开放平台 (lbs.amap.com) 注册并实名认证。
- 进入控制台 -> 应用管理 -> 我的应用 -> 创建新应用(例如命名为 1diary)。
为该应用添加 两把钥匙(Key):
- 第一把:Web 服务 (用于后端)。选择“Web 服务”,生成出来的 Key 用于后端自动通过 IP 识别你的城市和天气。稍后填入
.env文件。 - 第二把:Web 端 (JS API) (用于前端)。选择“Web 端 (JS API)”,这会生成一个 Key 和配套的安全密钥(Security Code)。你需要将它们分别替换掉前端代码
resources/views/layouts/app.blade.php的<head>区域里硬编码的securityJsCode和 JS 链接里的key=后面的值。
- 第一把:Web 服务 (用于后端)。选择“Web 服务”,生成出来的 Key 用于后端自动通过 IP 识别你的城市和天气。稍后填入
第二步:开始部署
方案 A:宝塔面板部署 (推荐小白及生产环境)
宝塔面板的可视化能挡掉很多烦人的环境配置坑。
- 环境确认在宝塔软件商店安装好:
PHP >= 8.0(并在设置的“安装扩展”里确认已安装fileinfo和exif)、MySQL >= 5.7或 MariaDB、以及防跨站攻击默认解除限制(PHP设置 -> 取消禁用函数通常不需要特别动,但要有putenv,proc_open等权限用于 Composer)。 - 添加站点:在“网站”菜单点击“添加站点”。输入你的域名,同时创建一个搭配的数据库,PHP版本选择你装好的 8.0+。
- 上传代码:不仅可以从网页端传压缩包解压,也可以进入站点的网站目录执行
git clone。注意最终站点的根目录下应该直接看到app,bootstrap,public等文件夹。 - 设置运行目录:在站点的“设置” -> “网站目录”界面,将运行目录选为
/public,保存。 - 配置伪静态:紧接着在旁边的“伪静态”标签页,选择下拉模板里的
Laravel 5(对 1diaryBook 一样适用),保存。 安装依赖引擎:打开宝塔的终端,进入你的网站目录(如
cd /www/wwwroot/your_domain),执行:composer install --optimize-autoloader --no-dev配置核心密钥与环境:
复制并重命名.env.example为.env(宝塔文件管理器里可直接操作),双击编辑:
填写数据库名称、账号、密码 (DB_DATABASE,DB_USERNAME,DB_PASSWORD)。
找到AMAP_KEY=,填入你在第一步申请的高德 Web 服务 Key。
保存文件后,在终端执行生成应用安全码:php artisan key:generate数据迁移:在终端执行把表建到数据库里:
php artisan migrate开辟上传通道:执行该命令让图片等静态资源能够被网页成功加载:
php artisan storage:link- 赋予权限:在宝塔文件管理器中,勾选
storage和bootstrap/cache这两个文件夹,设置权限为755,所有者为www。 - 部署完成!访问你的域名,就能看到你刚搭建好的日记本了。
方案 B:Linux 命令行部署
如果你熟练使用 Ubuntu/Centos 等终端,一切将行云流水。
# 1. 获取代码
git clone [暂未上传github] 1diarybook
cd 1diarybook
# 2. 安装 PHP 依赖包 (确保系统已安装 composer 以及 php8.0-xml, php8.0-curl, php8.0-mbstring, php8.0-gd 等库)
composer install --optimize-autoloader --no-dev
# 3. 准备环境变量
cp .env.example .env
# 编辑 .env 文件,修改数据库凭证及 AMAP_KEY(可使用 vim nano 等工具)
nano .env
# 4. 初始化应用
php artisan key:generate
php artisan migrate
php artisan storage:link
# 5. 目录授权 (假设 Web 服务器运行用户是 www-data)
sudo chown -R www-data:www-data storage bootstrap/cache
sudo chmod -R 775 storage bootstrap/cache
# 6. 配置 Web Server
# 指向 public 目录作为你的 Document Root,并一定要确保 Nginx 或 Apache 开启了对 Laravel 路由规则的支持 (伪静态)。方案 C:本地电脑 + 内网穿透部署
如果暂时不想购买云主机,想先在自己的 Windows/Mac 上随时随地使用:
- 安装本地环境:下载并安装 小皮面板 (phpStudy)。在软件内一键安装
PHP 8.0+和MySQL 5.7+。 - 创建本地网站:在 phpStudy 中新建网站,域名可填
1diary.local,根目录选择到 1diaryBook 的public文件夹,并勾选创建数据库。高级设置中务必配置好伪静态(选择 Laravel 模板)。 - 导入数据与配置:参考上方方案 A,同样使用 Composer 安装依赖、复制并配置
.env文件(填入你 phpStudy 设置的本地数据库账号密码),生成应用安全码和执行php artisan migrate。 - 内网穿透上线:去注册一个免费的樱花穿透或者 cpolar 账号。下载客户端后,在命令行执行穿透命令(例如映射到你刚建的网站端口,通常是 80:
cpolar http 80)。软件会为你生成一个公网的随机地址(如https://xxxxx.cpolar.cn)。 - 大功告成:在外面用手机访问那个随机生成的公网地址,只要电脑不关机不休眠,就能随时随地写日记了!
结语
这个应用没有复杂的运营手段,也没有花里胡哨的商业计划。它仅仅是一面镜子,映照出我们的过去和现在。希望这个小巧的日记本,能在这里陪你度过更多静好的流年岁月。


