使用 Habitica 养成好习惯

第 1 节 概述

Habitica 是一款角色扮演游戏(RPG),玩家可以收集金币、物品、装备、宠物等,并通过升级提升实力,升级所需的经验来自完成现实生活中的目标(习惯、日常任务和待办事项)。

习惯可以设置为“积极的”、“消极的”或两者兼有:

  • 完成积极的习惯,比如“1 小时高效工作”,就可以获得经验值和金币
  • 完成消极的习惯,比如“吃垃圾食品”,生命值就会下降
为什么要用 Habitica 来养成习惯?
  • 生活中的目标(习惯、日常任务和待办事项)通常会有很多,平时大家都比较忙碌,会容易忘记,定期看 Habitica 可以提醒我们去完成这些目标。
  • 完成 Habitica 上设定的目标以后,会有正向的回馈(经验值和金币),可以提供足够的情绪价值,这样我们更容易坚持下去。

第 2 节 好习惯

什么样的习惯是一个好的习惯呢?不妨来思考:

  • 每天去采购新鲜的食材是否是一个好的习惯
  • 晚上自己做饭是否是一个好的习惯
  • 尽可能让自己吃上新鲜的饭菜是否是一个好的习惯
  • 饭后洗碗是否是一个好的习惯
  • 饭后抽空出去跑步是否是一个好的习惯

毫无疑问,这些都可以被称之为好习惯,但是当它们合到一起呢?

就本人而言:

  • 大概平常晚上 5 点钟可以下班,到家一般 6 点左右,如果有加班或者路上堵车可能还不止,而当我买菜、做饭、吃饭、洗碗之后,通常已经接近晚上 9 点了。
  • 不管是做菜还是做饭,都会有一个最少的量,比这个最少的量更少时,既不方便买菜,也不方便下锅,而一个人吃这个最少的量时,通常要吃上好几顿。为了保证食材的新鲜,本人一般在三顿内就要吃完。
  • 本人一直以来身材的塑造都是通过晚上跑步,跑了就会保持好的身材,没跑就会发胖。

那么,结果就很明显了,虽然这样看着非常上进,但是每天会没有任何的空闲时间,并且因为要按时吃完食物,每一天的热量都是超标的,晚上的跑步只不过是消耗了这一部分多出的热量,对于瘦身而言也没有半点作用

所以绕了一圈这些都成了无用功,并且因为透支了每天的精力和时间,没有时间的我失去了个人成长的机会,仅剩的时间变会沉迷于“奶头乐”。

但是,人是不可以没有空闲时间的。如果一个人的收入只能够刚好维系日常生活,那么这个人便不会有积蓄;如果一个人的空闲时间只能够刚好维系日常生活,那么这个人便不会有任何的成长。

有人有过类似的观点,引用如下:

引用

全世界的资本家都有一个心照不宣的共识,那就是要用一切的手段避免普通人完成原始资本的积累。因为一旦所有人都拥有了被动收入,那便没有人愿意去努力工作,创造价值了。

什么叫原始资本的积累?就是这个资本我们积累好了以后,也就不用再参与任何的社会劳动了,不需要再靠出卖时间和体力来获取报酬,只需要靠资本本身产生的收益就可以完全的养活自己,这就叫完成原始资本的积累。

一个年轻人如果有个三年、五年属于自己的时间,学习培养自己的爱好,用心挖掘自己的优势和潜力,专心学习研究自己喜欢的、有价值、有意义、有更大回报的事情,找到一个真正属于自己的、能发挥自己价值的道场,那你未来的可能性是极大的。为什么?因为三年、五年之后,他的劳动效率会得到大幅的提升。一天的时间创造出来的价值相当于之前10天、30天甚至一年的价值,达到这样的专业程度,你才有完成原始资本加累的可能。

读上面这段文字,并非所有的人都会有感触,也会有人嗤之以鼻,但是这些文字却真实的诉说了我过去的经历。

  • 在人生的大事上,大的消费上,本人向来都是比较保守的,会去学习时政财经知识,会去分析租售比,质疑高昂的房价,这也使得我手头上有比同龄人更多的现金,能够去投资纳斯达克。
  • 工作上一直也比较轻松,让我能够有时间持续学习、提升自己,刚毕业那会儿其实也算编程小白,会的其实并不多,但是这么多年下来也是逐渐有了自己的方向。写程序这个行为,终究成了能够提高效率、弯道超车的利器。

蛮好的,正是因为有了上面的这些真正的好习惯,本人才能够坐在电脑前写下这篇博客,要不然我连博客都不会搭建,说不定早就在日复一日的重复工作中变得麻木了。有句话就说的很好,“仓岭实而知礼节,衣食足而知荣辱。”,所有的堕落归根结底可能都是“不曾拥有过”。

第 3 节 本地部署

很巧的是 Habitica 也可以本地部署,因为数据是非结构化的,所以用的数据库是 MongoDB。

不过因为原本就是设计给多人共同使用的,所以这里的 MongoDB 要以集群的模式建立。

3.1 部署 MongoDB 集群

因为本人 NAS 的 CPU 不支持某个特性,只能使用 5.0 以下版本的 MongoDB,此时 5.0 以下的最新版本是 4.4.29,因而以这个版本为例。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
docker run -itd --name MongoDB --restart=always \
-p 27017:27017 \
-e MONGO_INITDB_ROOT_USERNAME=xxx \
-e MONGO_INITDB_ROOT_PASSWORD=xxx \
-v /xxx/MongoDB/config:/data/configdb \
-v /xxx/MongoDB/data:/data/db \
-v /xxx/MongoDB/log:/data/log \
mongo:4.4.29 \
--replSet rs \
--bind_ip_all \
--keyFile /data/configdb/mongo.key \
--auth

要准备一个mongo.key文件,方法如下:

1
2
sudo openssl rand -base64 756 > mongo.key
sudo chmod 400 mongo.key

建好容器以后,需要初始化集群,方法如下:

1
2
3
4
5
6
7
8
mongo -u xxx -p xxx --authenticationDatabase admin
rs.initiate({
 _id: "rs", 
 members: [{ 
	 _id: 0, 
	 host: "HOST:PORT" 
	 }] 
 })

需要注意的是,这里的 hostport 需要是容器外访问的地址,不能是容器内的localhost

3.2 部署 Habitica

Habitica 是没有官方的 Docker 镜像的,使用 Docker 部署时,需要将官方的项目下载到本地进行部署,不过因为有第三方帮我们打包好了,所以可以直接用第三方的镜像

这个人还有一个名为 Habitica Client 的项目,官方的 Docker Compose 里头也是同时有 Server 和 Client,不过本人试下来只部署一个 Server 就可以正常使用了,因而就不需要部署 Client 了。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
docker run -itd --name Habitica --restart always \
-e NODE_DB_URI="mongodb://USERNAME:PASSWORD@HOST:PORT/Habitica?replicaSet=rs&directConnection=false&authSource=admin" \
-e BASE_URL=http://HOST:PORT \
-e INVITE_ONLY=false \
-e EMAIL_SERVER_URL=mail.example.com \
-e EMAIL_SERVER_PORT=587 \
-e EMAIL_SERVER_AUTH_USER=MAIL_USER \
-e EMAIL_SERVER_AUTH_PASSWORD=MAIL_PASSWORD \
-p PORT:3000 \
awinterstein/habitica-server:latest

这里和EMAIL_SERVER相关的内容是用来发邮件的,不过本人目前用下来未发现需要发邮件的场景,不清楚有何具体作用。国内邮箱一般都有 SMTP 功能,申请一个填入即可。

第 4 节 使用

部署好之后很轻松就能注册一个账号:

https://img.papergate.top:5000/i/2025/11/69189a5c6a2b9.webp

第一个注册用户自动获得管理员权限。

登录以后进入主界面,可以添加的有习惯、日常任务、待办事项和奖励:

  • 习惯可以设置为正向或反向,适用于你想要每天多次完成、或者不设时间安排的任务。完成正向的习惯会带来奖励,比如金币和经验值(Exp),而反向的习惯则会扣除你的生命值(HP)。
  • 日常任务适用于重复性的、有相对固定的时间安排的任务。比如每天一次、每周三次,或每月四次。未完成的日常任务会扣除生命值,但设置的难度越高,获得的奖励也越丰厚!
  • 待办事项是一次性任务,完成后可获得奖励。待办事项可以设置截止日期,但错过截止日期不会损失生命值。

https://img.papergate.top:5000/i/2025/11/69189b24283de.webp

比如,可以添加一个如下的习惯:

https://img.papergate.top:5000/i/2025/11/69189c42749c7.webp

这样,我们在写完一篇博客以后就可以得到金币和经验值了,正如本人此时此刻这般。

除此以外,我们可以去做一些真正有意义的事情:

https://img.papergate.top:5000/i/2025/11/69189de77222a.webp

指引自己做一些家务:

https://img.papergate.top:5000/i/2025/11/69189e7fb88f4.webp

甚至多喝水也是可以的:

https://img.papergate.top:5000/i/2025/11/69189f01ac748.webp

真棒,今天我也喝了足够的水呢。