清羽AI正在绞尽脑汁想思路ING···
清羽のAI摘要
GLM-4-Flash

碎碎念

经过在华为Neo大学一周的历练,我可以说是身心俱疲,却也收获颇丰。知识带来的成长只是其中一部分,更让我感动的,是那份真挚的友情。这是进入华为以来,第一次真切体会到大家庭的温度。这里没有学历的高低、没有性别的差异、没有年龄的隔阂,唯有彼此间的信任与团结。从最初的拘谨与陌生,到不断磨合、并肩前行,心中的隔阂一点点消融,最终化作最深厚的友谊。这段相伴的时光,我会铭记于心。愿未来的我们都能在各自的道路上绽放光彩,终有一天,在顶峰重逢,相视一笑。

最近偶然发现了一个anheyu-app的博客项目,是由Golang开发的。因为我个人对Go语言的项目格外偏爱,所以特意深入研究了一下,结果惊喜地发现它的设计与功能非常契合我的需求。出于对作者专业能力的信任,我毫不犹豫地购买了 anheyu-appPro版本,也可以说是投资,并顺手把它适配进了1Panel的第三方应用商店,方便自己也方便大家,我相信这个项目后期一定会很受欢迎。

不过,我发现仍有不少小伙伴在安装过程中遇到困惑,有的甚至额外安装了多个数据库和Redis,这对于我这种强迫症来说实在有点难受。所以,接下来我会先简要介绍一下这个项目,然后再详细分享在不同平台上安装anheyu-app的方法,希望能帮到更多人。

介绍

文段说明

因为懒得写,感觉不是什么重点内容,仅供新人参考,所以该段落全文为AI撰写,当然你也可以直接看原始文档站点进行详细的了解,如果懒得看可以点击目录直接跳转到部署部分。

初衷

anheyu-app是一款由Go语言驱动、结合Vue3打造的现代化博客与内容管理平台。作者希望借助Go的高性能与稳定性,为用户带来一个轻量纯净、易于维护、功能完整的个人与团队写作空间。它既适合个人开发者记录学习笔记与生活感悟,也能为中小团队搭建知识库或内容门户。与传统博客程序不同,anheyu-app从架构设计之初就注重简洁与高效,避免冗余依赖,力求让用户在最短的时间内获得一个开箱即用的写作与分享环境。

功能

在写作体验上,anheyu-app支持Markdown编辑,并且提供实时预览与增强语法,兼容数学公式、流程图、注脚等扩展功能,让内容表达更加灵活。文章中可直接上传图片,系统会自动生成缩略图,保证加载速度与展示效果。平台内置评论与统计功能,能够直观展现访客互动与内容热度。前端采用Vue3构建,支持深浅色模式、主题切换、快捷键和右键菜单等高级交互,让阅读与写作的体验都兼顾美观与流畅。后台的管理控制台提供了对文章、分类、标签与媒体资源的集中管理,使得站点的维护更加高效。

架构

anheyu-app采用前后端分离的架构,后端基于Go语言开发,性能稳定且易于扩展,提供RESTful API,为前端与第三方应用的对接提供了可能。前端由Vue3Vite驱动,保证了快速的渲染和现代化的用户体验。存储层面,系统支持主流关系型数据库,如MySQLPostgreSQL,用户可以根据自身需求自由选择。部署方式十分灵活,原生支持DockerDocker Compose,一条命令即可完成安装,极大降低了运维门槛。同时也支持传统方式部署,满足不同环境下的多样化需求。

优势

与传统博客系统相比,anheyu-app的最大优势在于轻量与高效。它没有冗杂的插件体系,而是专注于核心功能的打磨,因此安装便捷,运行流畅。与此同时,它又保持了高度的可定制性,用户可以灵活调整主题、样式与交互逻辑,满足个性化的搭建需求。借助开放的API,开发者可以轻松扩展功能或与其他系统进行集成。对于个人用户而言,这是一款易用且美观的写作工具;对于团队来说,它能作为轻量级知识管理与协作平台发挥作用。

Pro版本

在标准功能之外,anheyu-app还提供了Pro版本,面向更高阶的个人用户与有商业需求的团队。Pro版本在保持核心轻量化的基础上,进一步引入了付费文章、权限控制、团队协作等增强功能,帮助用户实现知识变现或多角色管理。其授权方式采取正版密钥机制,用户购买后会获得一个专属授权码,通过验证后即可解锁Pro功能。这种方式既保护了作者的劳动成果,也确保了用户能够持续获得版本更新与技术支持。Pro版本不仅是一种功能扩展,更是anheyu-app向专业化和商业化发展的重要一步。

授权码生成机制

anheyu-app通过独有加密算法,构建到了二进制执行文件内部,Pro版本并不开源,认证仅在本地进行,与绑定域名强绑定,如果添加或更换了绑定域名注意重新生成授权密钥进行重新部署。

文档链接

部署

由于看到很多小白群友似乎并不太理解docker,经常一个应用一个数据库实例,给我看的强迫症犯了,为了让大家少走点弯路,我决定写一个简单明了的部署教程,帮助大家更好地上手。

考虑到大多数朋友平时习惯用宝塔面板和1Panel来管理环境,所以这里我会分别介绍裸服务器、宝塔面板以及 1Panel三种环境下的部署方式。

裸服务器

写在前面

能使用二进制并且裸服务器直接运维的一般都是大佬,不会看我这篇文章,小白也不会选择这种方式,所以这个受众面比较广,这里我不细讲,大概说说方法即可。

如果采用了裸服务器运维各种网站,那我是真心佩服,对我个人来说还是面板直观一些,如果你用了裸服务器,我建议使用两种方式部署anheyu-app,二进制文件或者docker,前者占用最少,但是安装略显麻烦,后者稍微内存占用高一些,但是十分简单,快速体验到完整的程序。

二进制文件

首先从Github中下载最新版本的二进制文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Linux AMD64
wget https://github.com/anzhiyu-c/anheyu-app/releases/latest/download/anheyu-app-linux-amd64
chmod +x anheyu-app-linux-amd64

# Linux ARM64
wget https://github.com/anzhiyu-c/anheyu-app/releases/latest/download/anheyu-app-linux-arm64
chmod +x anheyu-app-linux-arm64

# macOS Intel
wget https://github.com/anzhiyu-c/anheyu-app/releases/latest/download/anheyu-app-darwin-amd64
chmod +x anheyu-app-darwin-amd64

# macOS Apple Silicon
wget https://github.com/anzhiyu-c/anheyu-app/releases/latest/download/anheyu-app-darwin-arm64
chmod +x anheyu-app-darwin-arm64

chmod用于给执行文件加权,方便后续直接运行。

然后创建工作目录,在任意位置创建文件夹,将二进制文件移动过来改名为anheyu,并在工作目录下创建data/storage存储文件夹和data/temp临时文件夹,并在data目录下创建conf.ini配置文件,写入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[System]
Port = 8091
Debug = false

[Database]
Type = mysql
Host = 127.0.0.1
Port = 3306
User = root
Password = root
Name = anheyu_app
Debug = false

[Redis]
Addr = localhost:6379
Password =
DB = 10

其中数据库和Redis请自行修改为各自的实例,这里不过多解释。

一切配置完毕后,直接运行即可,在目录下直接执行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 直接运行 (适合测试)
./anheyu

#==============================

# 后台运行
nohup ./anheyu > ./data/anheyu.log 2>&1 &

# 查看进程
ps aux | grep anheyu

# 查看日志
tail -f ./data/anheyu.log

# 停止运行
pkill anheyu

两种方式可以自行选择,不要一股脑全复制进去了啊!

Docker

首先准备好必要服务,PostgreSQLRedis,然后执行docker命令即可实现部署:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 启动 Anheyu Pro
docker run -d \
--name anheyu-pro \
-p 8091:8091 \
-v ~/anheyu/data:/anheyu/data \
-e ANHEYU_DATABASE_TYPE=postgres \
-e ANHEYU_DATABASE_HOST=host.docker.internal \
-e ANHEYU_DATABASE_USER=anheyu \
-e ANHEYU_DATABASE_NAME=anheyu \
-e ANHEYU_DATABASE_PORT=5432 \
-e ANHEYU_DATABASE_PASSWORD= \
-e ANHEYU_REDIS_ADDR=host.docker.internal:6379 \
-e ANHEYU_LICENSE_KEY=你的授权密钥 \
anheyu/pro:latest

docker-compose类似,创建文件,在目录下执行docker compose up -d即可实现部署。

宝塔面板

宝塔面板偏向小白一些,但是如果配置不当会导致多个数据库实例,下面我主要用docker compose进行演示,方便维护和备份。

首先,在宝塔面板安装数据库和Redis,任意数据库均可,按照个人习惯,anheyu适配了PostgreSQLMySQLMariaDB,足以覆盖大部分需求。如果需要性能建议选择PostgreSQL,如果需要轻量建议选择MariaDBMySQL逐渐成为过去式啦!

一切前置资源安装好后,我们开始安装主程序,在任意目录下创建文件docker-compose.yml文件,写入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
services:
anheyu:
# build: .
image: anheyu/anheyu-backend:1.2.4
container_name: anheyu
restart: always
ports:
- 8091:8091
environment:
ANHEYU_DATABASE_TYPE: ${PANEL_DB_TYPE}
ANHEYU_DATABASE_HOST: ${PANEL_DB_HOST}
ANHEYU_DATABASE_USER: ${PANEL_DB_USER}
ANHEYU_DATABASE_NAME: ${PANEL_DB_NAME}
ANHEYU_DATABASE_PORT: ${PANEL_DB_PORT}
ANHEYU_DATABASE_PASSWORD: ${PANEL_DB_USER_PASSWORD}
ANHEYU_REDIS_ADDR: ${PANEL_REDIS_HOST}:6379
ANHEYU_REDIS_PASSWORD: ${PANEL_REDIS_ROOT_PASSWORD}
ANHEYU_REDIS_DB: 10
volumes:
- ./data:/anheyu/data

其中数据库类型有posrtgresmysqlmariadb,其中数据库地址,可以尝试使用host.docker.internal,也可以直接用docker网关IP访问宿主机的数据库实例,在宝塔面板中,可以在以下位置找到网关IP

桥接网络

比如这里,我可以使用172.18.0.1在容器中访问到宿主机的数据库实例,从而连接到数据库,Redis同理。

1Panel

1Panel中,我们最主要的就是Docker方式了,这里我也采用docker,并且由于1Panel官方提供的有应用商店,可以更好的维护,恰巧我也维护了一个三方应用商店,这里我就介绍两种方法,Docker-compose和三方应用商店。

Docker

1panel任意目录创建文件夹,里面创建文件docker-compose.yml,写入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
services:
anheyu:
# build: .
image: anheyu/anheyu-backend:1.2.4
container_name: ${CONTAINER_NAME}
restart: always
ports:
- ${PANEL_APP_PORT_HTTP}:8091
environment:
ANHEYU_DATABASE_TYPE: ${PANEL_DB_TYPE}
ANHEYU_DATABASE_HOST: ${PANEL_DB_HOST}
ANHEYU_DATABASE_USER: ${PANEL_DB_USER}
ANHEYU_DATABASE_NAME: ${PANEL_DB_NAME}
ANHEYU_DATABASE_PORT: ${PANEL_DB_PORT}
ANHEYU_DATABASE_PASSWORD: ${PANEL_DB_USER_PASSWORD}
ANHEYU_REDIS_ADDR: ${PANEL_REDIS_HOST}:6379
ANHEYU_REDIS_PASSWORD: ${PANEL_REDIS_ROOT_PASSWORD}
ANHEYU_REDIS_DB: 10
networks:
- 1panel-network
volumes:
- ./data:/anheyu/data

networks:
1panel-network:
external: true

以上数据自动填充,数据库类型三选一即可:posrtgresmysqlmariadb

由于同在1panel-network下,无需担心无法访问的问题,可以直接通过容器名进行访问,1Panel数据库的连接信息即可直接使用:

连接信息

这里并没有什么难度,下面讲解一下三方应用商店方式:

应用商店

话不多说,首先,在1Panel侧面创造一个计划任务,任务类型为Shell脚本,脚本部分写入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'

GIT_REPO="https://cnb.cool/Liiiu/appstore"
TMP_DIR="/opt/1panel/resource/apps/local/appstore-localApps"
LOCAL_APPS_DIR="/opt/1panel/resource/apps/local"

trap 'rm -rf "$TMP_DIR"' EXIT

echo "📥 Cloning appstore repo..."
[ -d "$TMP_DIR" ] && rm -rf "$TMP_DIR"
git clone "$GIT_REPO" "$TMP_DIR"

echo "🔄 Mirroring apps..."
cd "$TMP_DIR"
if [[ -f ./mirror.sh ]]; then
chmod +x ./mirror.sh
./mirror.sh
else
echo "⚠️ mirror.sh not found, skipping mirroring"
fi
cd -

mkdir -p "$LOCAL_APPS_DIR"

for app_path in "$TMP_DIR/apps/"*; do
[ -d "$app_path" ] || continue
app_name=$(basename "$app_path")
local_app_path="$LOCAL_APPS_DIR/$app_name"

echo "🔁 Updating app: $app_name"
[ -d "$local_app_path" ] && rm -rf "$local_app_path"
cp -r "$app_path" "$local_app_path"
done

echo "✅ Sync completed."

设置定时任务为每天晚上十一点自动执行即可,无需频繁更新。

首次请手动点击执行,如果执行成功,前往左侧应用商店标签,点击同步本地应用按钮:

同步本地应用商店

如果成功,你可以在应用商店搜索anheyu关键词,点击安装即可。

如果下次有更新,可以重复点击同步本地应用按钮,检测到后点击更新即可,由于拉取和仓库更新均有滞后,所以可能和官方无法保持实时同步,但误差一般不超过一天。

总结

总得来说,我个人还是很建议docker的,环境隔离,部署方便,备份安全,实为小白的不二之选,可能刚入门有些许困难,但是相信自己,学会后一定会很好用的!

从学生到打工人的转变还是有点快,工作了三天已经有点想家了,但是已经成年啦,总要为自己当初的选择买单,既来之则安之,目前努力转正,希望可以在自己的岗位中留下浓墨重彩的一笔呀!也希望自己可以给家庭分担一些压力,让父母的担子轻一点,甚至没有担子,我希望让他们可以天天坐在沙发上玩,或者天天出去转,从不会为生计烦恼,我相信这一天不远了!

最后祝大家国庆节中秋节快乐!假期快乐!

每日一图

图片来自哲风壁纸

人民有信仰,国家有力量,民族有希望