局域网docker搭建个人Blog,作为个人知识库
我一直都用语雀作为个人的知识库写作工具。但语雀最近频繁的宕机事故让我还是想找一个知识库写作的备用方案。我想到了用个人Blog来管理文章,为了省事优先考虑了可基于docker容器搭建,而且编辑器比较好用的Blog程序。找到了halo和djangoblog,最后觉得halo是一个不错的解决方案。
halo是一个开源建站工具,可以基于docker容器部署是一大特色,由于需要用到多个容器所以还是用docker-compose部署更简单:

version: "3"
services:
halo:
image: halohub/halo:2.10
container_name: halo
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
halo_network:
volumes:
- ./halo2:/root/.halo2
ports:
- "8090:8090"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
command:
- --spring.r2dbc.url=r2dbc:pool:postgresql://halodb/halo
- --spring.r2dbc.username=halo
# PostgreSQL 的密码,请保证与下方 POSTGRES_PASSWORD 的变量值一致。
- --spring.r2dbc.password=openpostgresql
- --spring.sql.init.platform=postgresql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://localhost:8090/
halodb:
image: postgres:15.4
container_name: halodb
restart: on-failure:3
networks:
halo_network:
volumes:
- ./db:/var/lib/postgresql/data
ports:
- "5432:5432"
healthcheck:
test: [ "CMD", "pg_isready" ]
interval: 10s
timeout: 5s
retries: 5
environment:
- POSTGRES_PASSWORD=openpostgresql
- POSTGRES_USER=halo
- POSTGRES_DB=halo
- PGUSER=halo
networks:
halo_network:
halo部署完成之后,通过 http://IP:8090 访问管理后台,并进行账号初始化:

halo的后台很简约,整个站点的风格也是那种简约的轻blog风。之所以我觉得halo比较好用是因为halo的编辑器挺不错:编辑器支持粘贴上传图片,支持代码块显示,还可以通过插件拓展Markdown等。虽然打不过语雀编辑器,但是也够用了(语雀编辑器能开源就好了)。

网站界面支持深浅色切换,整体界面比较简约。由于我只是为了折腾一个文章存档环境,所以也没必要整那些花里胡哨的美化:

halo编辑器支持粘贴上传图片,上传后的图片可以在附件管理中找到和管理:

halo有备份和恢复功能,只要你定期创建数据备份,文章存档的安全性也是有保障的。而且因为只是作为个人写作工具,也不用去考量服务器优化、网站访问压力等其它问题。只需要容器部署一下就可以用了。

当然如果你有个人的云服务和域名,可以考虑将其部署在线上(有了域名访问带图文章可以直接复制发布到其它平台,操作很方便)。但是域名需要备案,以论坛、blog为类别的网站备案是最难的。所以即使要部署在线上,建议关闭评论功能,且站点不要和blog挂钩。

一直都有整理知识库的需求,其实在值得买上分享文章也可以看做是个人知识库的一种备份,但毕竟不能什么内容都往平台上发,所以还是少不了搭建一个个人的知识库。

cwz1985
校验提示文案
值友2939873782
校验提示文案
夜影小窝
校验提示文案
汤百味
校验提示文案
汤百味
校验提示文案
夜影小窝
校验提示文案
值友2939873782
校验提示文案
cwz1985
校验提示文案