From 19d132f46650950bd7c3359edfe4dda4cdb0e766 Mon Sep 17 00:00:00 2001 From: LiuShen <3162475700@qq.com> Date: Thu, 28 Aug 2025 22:43:32 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=99=82=E6=B7=BB=E5=8A=A0=E5=BA=94?= =?UTF-8?q?=E7=94=A8anheyu-Blog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- anheyu-blog/1.0.4/data.yml | 117 +++++++++++++++++++++++++++ anheyu-blog/1.0.4/docker-compose.yml | 26 ++++++ anheyu-blog/README.md | 76 +++++++++++++++++ anheyu-blog/data.yml | 31 +++++++ anheyu-blog/logo.png | Bin 0 -> 7788 bytes 5 files changed, 250 insertions(+) create mode 100644 anheyu-blog/1.0.4/data.yml create mode 100644 anheyu-blog/1.0.4/docker-compose.yml create mode 100644 anheyu-blog/README.md create mode 100644 anheyu-blog/data.yml create mode 100644 anheyu-blog/logo.png diff --git a/anheyu-blog/1.0.4/data.yml b/anheyu-blog/1.0.4/data.yml new file mode 100644 index 000000000..1358a9b55 --- /dev/null +++ b/anheyu-blog/1.0.4/data.yml @@ -0,0 +1,117 @@ +additionalProperties: + formFields: + - child: + default: "" + envKey: PANEL_DB_HOST + required: true + type: service + default: mysql + envKey: PANEL_DB_TYPE + labelEn: Database Service + labelZh: 数据库服务 + label: + en: Database Service + ja: データベースサービス + ms: Perkhidmatan Pangkalan Data + pt-br: Serviço de Banco de Dados + ru: Сервис базы данных + ko: 데이터베이스 서비스 + zh: 数据库服务 + zh-Hant: 數據庫 服務 + required: true + type: apps + values: + - label: MySQL + value: mysql + - label: MariaDB + value: mariadb + - label: PostgreSQL + value: postgres + - default: anheyu + envKey: PANEL_DB_NAME + labelEn: Database Name + labelZh: 数据库名 + label: + en: Database Name + ja: データベース + ms: Pangkalan Data + pt-br: Banco de Dados + ru: База данных + ko: 데이터베이스 + zh: 数据库名 + zh-Hant: 數據庫名 + random: true + required: true + rule: paramCommon + type: text + - default: anheyu + envKey: PANEL_DB_USER + labelEn: Database User + labelZh: 数据库用户 + label: + en: Database User + ja: ユーザー + ms: Pengguna + pt-br: Usuário + ru: Пользователь + ko: 사용자 + zh: 数据库用户 + zh-Hant: 數據庫用戶 + random: true + required: true + rule: paramCommon + type: text + - default: anheyu + envKey: PANEL_DB_PASSWORD + labelEn: Database User Password + labelZh: 数据库用户密码 + label: + en: Database User Password + ja: パスワード + ms: Kata Laluan + pt-br: Senha + ru: Пароль + ko: 비밀번호 + zh: 数据库用户密码 + zh-Hant: 數據庫用戶密碼 + random: true + required: true + type: password + - default: "" + envKey: PANEL_REDIS_HOST + key: redis + labelEn: Redis Service + labelZh: redis 服务 + required: true + type: service + label: + en: Redis Service + ja: Redisサービス + ms: Perkhidmatan Redis + pt-br: Serviço Redis + ru: Сервис Redis + ko: Redis 서비스 + zh: redis 服务 + zh-Hant: redis 服务 + - default: "" + envKey: PANEL_REDIS_ROOT_PASSWORD + labelEn: Redis Service Password + labelZh: 缓存服务服务密码 + required: false + type: password + - default: 37826 + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: HTTP 端口 + label: + en: Port + ja: ポート + ms: Port + pt-br: Porta + ru: Порт + ko: 포트 + zh: HTTP 端口 + zh-Hant: HTTP連接埠 + required: true + rule: paramPort + type: number diff --git a/anheyu-blog/1.0.4/docker-compose.yml b/anheyu-blog/1.0.4/docker-compose.yml new file mode 100644 index 000000000..1e4811769 --- /dev/null +++ b/anheyu-blog/1.0.4/docker-compose.yml @@ -0,0 +1,26 @@ +services: + anheyu: + # build: . + image: anheyu/anheyu-backend:1.0.4 + container_name: ${CONTAINER_NAME} + restart: always + labels: + createdBy: "Apps" + 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_PASSWORD} + ANHEYU_REDIS_ADDR: redis://:${PANEL_REDIS_ROOT_PASSWORD}@${PANEL_REDIS_HOST}:6379 + networks: + - 1panel-network + volumes: + - ./data:/anheyu/data + +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/anheyu-blog/README.md b/anheyu-blog/README.md new file mode 100644 index 000000000..2c9bfe900 --- /dev/null +++ b/anheyu-blog/README.md @@ -0,0 +1,76 @@ +# 🌈 Anheyu Blog + +如果能给我一个 **Star ⭐**,那将是对我莫大的鼓励。 + +在使用本应用前请注意: +它是一个 **独立应用**,需要服务器环境才能运行。推荐使用 **Docker 部署**,可大大减少环境配置带来的问题。 + +由 **安知鱼** 负责开发与维护。 + +* GitHub: [https://github.com/anzhiyu-c/anheyu-app](https://github.com/anzhiyu-c/anheyu-app) +* 预览: 👍 AnZhiYu | 🤞 AnZhiYu +* 文档: 📖 AnHeYu Docs + +--- + +## 🌟 系统简介 + +**Anheyu Blog** 是一个基于 **Go + Vue3** 的现代化博客与内容管理系统。 +后端使用 **Go** 提供高性能 API,前端采用 **Vue3 + Element Plus** 打造美观易用的用户界面。 + +--- + +## ✨ 功能特性 + +* ✅ Markdown 编辑 & 富文本预览 +* ✅ 图片上传、管理与懒加载 +* ✅ 分类 & 标签管理 +* ✅ 外部链接收集与分享 +* ✅ 内置评论系统,支持用户互动 +* ✅ 文件管理与缩略图优化 +* ✅ 多种数据库支持(MySQL/PostgreSQL/SQLite) +* ✅ 灵活存储配置 +* ✅ 暗黑模式 / 沉浸式状态栏 +* ✅ LaTeX 数学公式 & Mermaid 流程图 +* ✅ 广告挂载 & Inject 自定义扩展 +* ✅ AI 摘要(Pro) +* ✅ PWA 渐进式应用 & 高速缓存 +* ✅ 优秀的隐私协议支持 + +--- + +## 🏗️ 技术栈 + +* **后端**: Go + Ent +* **前端**: Vue3 + Element Plus +* **数据库**: MySQL / PostgreSQL / SQLite + +--- + +## 🤝 贡献 + +欢迎提交 **Issue / PR** 帮助改进项目! + +--- + +## 📄 开源协议 + +本项目基于 **GPL-3.0 License** 开源。 + +--- + +## 👨‍💻 作者 + +* **安知鱼**(项目维护者) + +--- + +## 🙏 致谢 + +感谢所有为本项目贡献的开发者与用户! + +--- + +## 📢 社区 + +* QQ 群组:**464636182** diff --git a/anheyu-blog/data.yml b/anheyu-blog/data.yml new file mode 100644 index 000000000..bfaa562b7 --- /dev/null +++ b/anheyu-blog/data.yml @@ -0,0 +1,31 @@ +name: Anheyu Blog +tags: + - 博客 +title: 一个基于 Go + Vue3 的现代化博客与内容管理系统 +description: 基于 Go 语言后端与 Vue3 前端构建的高性能博客与内容管理平台 +additionalProperties: + key: anheyu-blog + name: Anheyu Blog + tags: + - Blog + - CMS + shortDescZh: 一个基于 Go + Vue3 的现代化博客与内容管理系统 + shortDescEn: A modern blog and content management system built with Go and Vue3 + type: website + crossVersionUpdate: true + limit: 0 + website: https://anheyu.com/ + github: https://github.com/anzhiyu-c/anheyu-app + document: https://anheyu.com/posts/Z3MC + description: + en: A modern blog and content management system built with Go backend and Vue3 frontend. + zh: 一个基于 Go 语言后端与 Vue3 前端构建的现代化博客与内容管理系统。 + zh-Hant: 一個基於 Go 語言後端與 Vue3 前端構建的現代化部落格與內容管理系統。 + ja: Go バックエンドと Vue3 フロントエンドで構築されたモダンなブログ・コンテンツ管理システム。 + ms: Sistem blog dan pengurusan kandungan moden dibina dengan Go backend dan Vue3 frontend. + pt-br: Um sistema moderno de blog e gerenciamento de conteúdo construído com Go e Vue3. + ru: Современная система ведения блогов и управления контентом, построенная на Go и Vue3. + ko: Go 백엔드와 Vue3 프론트엔드로 구축된 현대적인 블로그 및 콘텐츠 관리 시스템. + architectures: + - amd64 + - arm64 diff --git a/anheyu-blog/logo.png b/anheyu-blog/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3f761b195f044422f718ee47d7e4d792a5f11ad8 GIT binary patch literal 7788 zcmds+Wm6kYw8km!PH-z$90~;2;_d{8;1mnq1}W~=;+7UG6ff>B1xktqcPs8Lz5HL_ zPjK(-oIP`9cK6L5nR$LO+L}su*i_g^NJw}p%JRA|e)vDbM1R>UK~?!L?vsrf3uvW>YVgl3+iUHN2U{jIFN^@c> z8_9@`Hagv`oJgFE?Z*oEIsCVHcK>;q`TF|qj(40~5OA$BA5|Ma0#QMvn7)%?tVl@VF1 zbN){q%m_o#(m1i`fsjdJt0dW1WO{+^|mgb|MJ8@g(EdZ%3JDc$UoP({CIUphXne}3))M2e2VOSGRk!9Hy z4w*7t=5tE~KW{%|RS%+{dZ$ecu+}D(8rk^XPmKT3@5UNYo;L{>{GA&Cc)n9dc5lz= zS0_@5?p1r=lU|+?Ek0M`j>JY!*DJKEK&YL!g-52$dFzrMA-zI1&_>TG;2d`T80e7 zZW}VGxqlcsBFq9ENFVYI9(`NLID1GHjeZb_{&{ zPxNr?ii5n5x8NN3#Ghe4CmZDCV?AU|qd9Lr$Z{(S82?-v)ak13`))b^)-mK0*4s(x zF`2&khJMfK=?QEkdMWe7qsEa#jO8mw8uDfRsL#=s=pB#wAbbKPM#hTm&l8>+M)Wb^uoWU_EC)%nraDYu<8m|1qBN0BmQzG-PmCsNV% zvoNXF*uf4Xp%cV7%Wd}wZGeoP&Qo#fI`TPxu$&y18nMnDG{7C3g@p9AO=@jZ>UuZh zIYF^Osf;HBJIYnNw9?rU^;J<;-*(kd*;XVrGe#nnK~%ajq) z#>t%?e~~x*`8@mF5R}>^t-dzS4{3j>jmS1pT9IrZ6g_X|J8muzyn0XPPG8XySGF<4FpN*mLo}T#UR_fd*Kj}tvEXq0S zXE&0rm0PY>yDZ&muXw8s;zI$#6aD?Z5GV#@V3-fxy*k8)aa}Z|T|_i-)Gf*S7`!;P z5ky&OE{>w4S`%Q zUNV?JZqieNCD~^N*eG2DnDI%xy$Oh95*IR^{e@)91^tuEaNH^u$_@M_g~Z#^Lif*K zBE-#Hfo5-afyx3^$*ekCj5?3mzU8bJb3EN&ZVx2ELWqz*f;v~C4tRS7N!4>_mAz+i zJYGTbKdyRv$XGQS=~21)HN{8KY92wgK*e*dP>7HIk~5OC@->Tz`@TM;`9C*vZmuaI zf55h(>?Zc9nZ{JW0(|<|uT*_x2huAR?ms;0xRDz%;xjl#o^GA15}vfG`@Gy$YYMzE z^NEL9J02;1dLbDIT^`j@4}RvG75L;;RhDrQ6tJAROLFVk=!*R$rcICD8JvZBLV9pF zJ7Y6Ib=H;YJLHwJW+R-wo*5Qe`lCd7Qp^4m=Y$u)xcTfAmS(s+V4+zVOmJNN*AXHZ zi71l7r@4UgLlgR!Qn)PaY|hD5#*9@bJ`TQvN3%_}d)G!Ll=dhIxatpc<+^rzZHs21 z+IJWxzCVezIaGt_37I;cVpo>?dLSlbmx9fW@8_?#zn}r~ANXS6p`*0iIoGoEt&P$^U)&_bTtk1adyCXHr*;CM)0VeiP6C8e#{`K z;{)#SeP&qg3G?X~h6RfZN28r{|qq-#M%kja;I|F;tshpn0h}d$U^)l-v zU#Dk`t3(#X#Ubx$X8Nj#V!SF3AKSU1?F z*l+m9}nkh!t&|3-Pb%w}xoHrxlHOO7tr-CNF%% z5T`M;`C$=O+5U+pSEymbH}xL!@Rv_hy0yPq`?vKxHqLi*%7Ii$Kx^#iG)>B>bESnt z4xSDhJu6d78kgnnT0L~1-yKccIGb3}Yn|UfW$Y${^x=fEf4>1Az+E>+=QBuEkJ6i^M3uXis2xmo=Tjah z%ct#v_b|lpU#EaJzf`-b=cmhejIBsO>>Yo>saeOBvDDQ)4`pR@y+L!J>Jo|vFwL%+ zsr!hPCp%=FzcRz>$=xX3YTA7pFQ?~c1Mry*qJ%0-zUp2B^ZU^* zt?(!bvN31f-q?xDpMg!r1=7Y<(Upil$Dnm%EDV+pY`DmBGu` zp%C39w=*!H*~gnbQG#Kv=)v<*!N-3)ugD3JjMLx)#9!u(b~qlBTz#0Aqu!My9au2= zD#seL(=XLRNJj3RQTgb9=(nPB2MEMHpNvPv@2sVBSRx-_6jnIv&Vkf@N{jghMg0xW z7GUup)S(e1vU^+lH}Q|c=0z4ADYE6PMtEy0w#fF+kB2@5@x!bE7hM)yXYpnUW}8Hf z0_JT}Pa60Ef~&nwH;Ou(8?HDILLTOz#_mDqS~rVtrD(kj7yAyxgGt9`JHnJDix#RI zpNDj>45%lYl2*Cug=QT~(1S0~$t*`fMP{tGl$IvV&nsg?)7_1x=%?i!VfLH)Jg3^8 zlKEwp#v&J;nRj`gtrnxhJiMrk5DsH%#c>@nIyknG{UnDv3ewr+l5gt#c0K7?gWRkq ze!wh?-11u5l39rN*cM*Z73#>}-GWywX@cHPsH03e|HYqCa;-2uc^+)T z!_A~%CFdGtGyJ|cdefyfG}d_^fVQd8b5QG{AP!pt7L}sCy?Vchdp}5__8LAB>k>U* zxbg~?`R)rIRWr+6!t)dITtO4ONPYQhbo1xnZj0mj0!~=G^@1?5cx{T$!{0u$B;HN~ zoXK?$)BUD$?r_Jqz)v$JYO~J)$+cu})Fc+D=~T3l=c>{)V8<6)xP{q)RX-iW;nmfz zctk|G_|O^$zcZNyMmWLjsTbzc)>SSQS9JJTZ&^@a3{k))L}Qs%aCUHPJGTV5`c zHP*mUOlBvCM_OTu=^SHId*Ad=UPu>)D2GLvYTcH+LqDgkLvkla$@A%Ye4id!HFDW6 z25t_QQJSBA>P}5ak`(@<9k?anPHp;%D4!XAIFl4;X&z9Xz}~tTNT-y_LPwG&tz(~A z(pkiuisFbX1%_|tM}(L?fSTw^D~suQA-##O;w6CL6AqDQqqNBOOe792CW6nJn;2*V zu*GwM#`9ljRkadOhphR(4XPDZT>1BlT)%c#vEy(Ao{v5C7E)rMtI;--8TcGt%|iT^4ldt z(Y|n;J_U2~-%WTf`S`FupGRS?(CH--z}SZ%7-$-i6{_I)E3i2t&S$-gk{lK+hiTbm z7(&}P{EzzjJ#!1DfOGvleY z2IVzA!V4kYQ*8~~Jc$P*bceRCgu@?rZnHCZ;;g0=@#Y4#)Ypn8@K|W~*n~g1QO>^B z6qN{9gLCvCM1k3x>i-6zDq|LoJ*xLLDq1k(S*t+9_tq)Qb?$Ch=qBZb?s4EA4vZB1 zZJ4_&cyClg_!^@}(MIjjZtEZC%%%sKSccO!NBmysks7@QdtNSzzfTo}d{|C$0bpmh%n;Natf zCxwbLxkv_0&oezfppw%A1f@p>Cj`3-*WS0kJa4=G(SqSFYSe!%Nv~{@e!ilKpzH5= zMDz3wsgglMzrb6<=fL+ZWm6nL=Y3iUKK>YN$jybdq`zk7Yx=A5uM)j)-0Ov`rrd&Z zy<{kuqA)b}TPGwg1VG6B71p(SxjcsIkzJz$j7tSX%M9rA);UO#C%;NO%cj}8j+=7m zwU!Y49VO>I%hhZ(QrM^$Tc-SBv&Nc3q8Ro~Mc)bVzD0pHUF`UGw6{`t{i>PRRYN?w zA~t=`r^wl+obN4p6Eky6f4T%F^#nooo>Li}ss(qBrW>PJEMI`#kB>zXL0| zwmWm`$>7Mrjk1`aRMKJ@_3VDM=hR}_C6ro5@4}T^BT=cqPMQ-53+u*Vd+@v%HGxLr zW-dly^Tl@f9y16ea{Ew@g;k`tO?wv_TqYHDNN>~ba-!PT>k0Gyk>sKmtIJS4h7jbp zXxV?d@|#za{TM5qhj;97dzGNGbPpyz`TY~JnggK;Rw7lKB~4U54w6iCm>+oq-)7E* z8dm%Di`o6FI5=>rs7Rk}ji-CAD4X`?*G{DmS)R=i^E|#cWhB3E+rf1vnzGT`5V`r5 znZ?+a`Y_h%>Nc3&&_5XV1)IrF6j~Ocw9>dxgdk|~b-FkMR7^@(|AN*|Z@u4Z-+Jm2@B3#B=~%Sx zgSq^9PdSX4KZr`ae6cjKL{(+!xHX5M8PFRF&nK>PosV-PbBC@KEua>gezp&jTTu<# zy;F-57N3)uK!A^Ye5R)#1%Jfg*Xz9ol-%LCZ-c<;>ddq;{I+W?ECaV~ zk9oU1F;*9JN1G{~4-FCTVKFL?s9$=2BaAz=zcq9`4ik5g(w3XZ2rW%IA7c^*^w4&GBqrf1&QB7_sA_quJ z*lGJ!1=r88ak&(1c^;Wv{T!ItIz!>=(y0fDA_{*k-P6ZAk2#(r0TQW4L*kqEe8J_J zy=$@@KFk4Y)Jf4N`4qi+hyx4qCB zZr|9Mm)|8DmRfuu!WLmIo&)^BTU1$UUJqkNa z8NhiNvK*=*E9Q^Nz#;eukqHa-*5T8l1x-^YMW4?madfy|t!{0fxGUbVQGMUO1L+yt z*?Mq)tjCP-s>f5f)AAE~V`YxVC=TS&>+@9~ZC)&`rhy9eoC2CI#i2NZm0Nn&iAXrY zW{CTdRojgdP*rm_mm2;{pMPgfX>E5ctb8jzI1{`>g?rL}&?sAGwN^W7)5WF15}Q&0 z7_M4G{Zse_e%o;uZs?SZS;TG4&tm@LhnV+f_&uJBx!|3e8#hk{7XU}hSituQ za#UwoQh1swGwf!H0hx^^-lTRopv}RlsCo*@3v*b3ztf(=rVHc@`O%uXXv8<{WVf>) zZH`RQ+~QY>ah5BCsRqw{@@hs?MdRHBHZKRQz6P`r@$A3<(%pf|N;unkRb|Y``Tkv~Ag> z*b)hc6~P6d-6!AE&MSueeB}EZEUR0F;PMg0c;#Lx2|>{qCDz@#HBNEi1T8BK4URo+ zR-v{F~t&r$2{}sg*Z*YuL*e}fp?g(~76`I>| z&PdGuz*&vWDW6XbU3dV|K{FRfEscJIx0alTQbMMqr(HoJr3v2H1*BK239aqe7lNDD zaVt-K0|O}hR3OV7ZN)D7$c&HmY>ypuFkVmX3G5WYXYTYOk3X4d&^yz#b78-Q-Xy8z zfReu{r;?d(GCQURAITcqfh_1iJ3jWM>0pId(gM_K@swnP7Ec|fVKd!|Y=ph90(<)S z+yCK-M{QMO@W7dc32KE?TYBsY1rA7LwfRc)#JhL_3bvn`^5z76&Z zEnRPjTk=s%x?+jf=&NgbyBFEqHp!xE0_mkKT3&~mH=R>=Wgkxra*+B$Y>Q`UUnwcKIYVTo3o39@f%Y!kwylj1gxvc^1$->MJLs0*XHPq#>6 zA1=*C1?N%A7OMkn2gIo10m=PSC#Lo~$xUBvVpM(z&uYQ3xCuCs@^9Z^`7ZTB&!VxJ zQQBqy{e}4;=;y-VZ(i0hFrD8;gWdO=Yi6?dHSCQ9!nuTlbc;K{ z1Azu{zpRA2QCfAFLl#iJ{0A*pMzy5)!|B>E=Eq+~)!&evLdyic+)g!%q*oO$ZVL-I z@Z+Oc*aBP((|<-85C)3~x-4AP;}hjHJ4P&Nw>7+|{8l?)oF;YUwYZ2zC(eG0ZkHZC z+`dqw4C6AfS}N1a({=bz6u+&wd$su%37N9Mnuh!Hl_7FN@4;n@?P4RT$oW> z(|4OI*Cfqurw25CFbI={4nns0f_ZR2o#TUZWh(8bI>f8h8pf%STuCWv81b@RMBBPQ znd42tB*fu<2U~r^>$15b%;B1JEoJu5LS!cvUUe<2Npe6ZXpBp1U(~B*X->iWB(W1 r4DE_7u$BA&h$R0PaAo1_{)f^+_mz%`?wag{5F@E5Xv$Z~S%v-&V?WMu literal 0 HcmV?d00001