GooseForum 年末大升级 abandon1a2b GooseForum 代码编程 GooseForum 年末大升级。 排除了 daisyui ,使用纯 tailwindcss + alpinejs + golang 模板。 本次升级也支持了 i18n 现在 新的用户卡片 还有更多体验中发现吧。 之前
Gin基于goth实现OAuth认证 abandon1a2b 代码编程 GooseForum Goth 是一个 golang 身份验证 Go Web 应用程序的包。 内置了许多站点的 oauth 的接入方式。 官网有提供 example 代码。 这里单独提一下 gin 的接入方式 初始化 接口封装 官网的例子是基于 github.com/gorilla 我们这里采用的是 gin 所以要注意 provider的设置方式, 路由 接口和回调 Github 接入 注意 Request user ...
web性能优化回顾 abandon1a2b 代码编程 GooseForum 最快的 web 应该是在做什么 获取到请求,直接从内存中获取数据,然后返回最简短的结果。 一个web的生命周期带着什么 路由,逻辑/运行,查询/io, 压缩,传输 我们应该朝着最快的web的方向做整体的优化,同时还要保证优化后的请求和优化前的用户感受在一定范围是幂等。 优化方向也是拿空间换时间,和拿时间换空间两者结合的处理,以高速查询替代低速查询。 这里列出 GooseForum 所有的关于性能的...
站长请问使用sqlite3作为数据库 适合中小论坛吗 终焉的百合花 GooseForum 我也在做一个前后端分离的二次元小论坛 开始也是准备用sqlite的 后来搜索了一些文章都不推荐 sqlite 然后就选择了mysql+redis 发现我的小项目用这个有点大材小用了 看到你的这个项目后 有点想换到sqlite了 对了你的项目提供完整的api文档吗 想参考一下 因为我的api 感觉写的好乱啊 什么地方该写聚合api 都很懵 很多地方都用了 多接口查询 导致了 一个页面需要用到很多接口...
GooseForum更新季记-202506-前端重构 abandon1a2b 代码编程 GooseForum 六月 月初 这是Gooseforum 6月的一次更新记录,也是近期来一次比较大的改动。目前看选型基本满意(除了文章发布页面的js巨大无比,这个打算后面升级,但是不会再大面积的重构前端了,项目从开始至今为了保持部署 All In One 前端已经重构了3次,当前算是一个相对满意的方案。) 这段时间的改动主要集中在前端的替换,这里为了seo友好,以及部署 all in one , 采用了 vite +...
GooseForum 安装与部署指南 abandon1a2b GooseForum 代码编程 GooseForum 是一个基于 Go + Vue 3 的现代化论坛系统,支持 SQLite/MySQL、Markdown 内容、分类、回复、通知、管理后台和单文件部署。 本文介绍如何获取、启动、配置和自行构建 GooseForum。 获取 GooseForum 你可以在 GitHub Releases 页面获取已经构建完成的程序包: GitHub Releases 下载与你服务器系统和 CPU ...
GooseForum 开发背景 abandon1a2b GooseForum 代码编程 这个项目是很早之前创建了初始化仓库,写的很慢,一直断断续续的写,中间还没有写完的时候有重构过一次。虽然写的很慢,但是也算是慢慢的写出一个版本了。只是中途重构有一个多文章主题的选择忘了实现了。服务端逻辑写好了。近期会迁移过来。 从背景开始讲吧。 最早我是受 cloudreve 影响比较大。当时发现 golang 打包成可执行文件给别人分发软件实在是太方便了。(当时 cloudreve 的静态资源嵌入...
GooseForum更新月记-202504 abandon1a2b GooseForum 记录一下这相隔上次之间的一些改动 -20250417 优化了 markdown-body 的渲染 优化了 pre code 的高亮 优化了 前后端分离代码相关的主题切换 分别为 naiveui 和 md-editor 同时优化了 md-editor-v3 的相关设置 引入了对mermaid 代码块的支持 优化了服务端渲染逻辑,减少重复渲染。 记录一下这相隔上次之间的一些改动 -20250416 做...
GooseForum更新日记-20250314 abandon1a2b GooseForum 今天的主要更新内容记录一下,主要的更新内容并不多,但是很重要,加入了sqlite的定期备份功能。开启后,如果当前db的链接方式为sqlite,可以可以定时保存。这个保存过程是可以在开启wal下执行的。 因为目前还没有着急的发布计划,所以当前sqlite的运行方式还是处于wal模式下(这个模式下并发读写 1:4 下 ,开启wal和不开启的用时为1:4)。因为性能差距较大,所以目前还是会默认开启wal...
GooseForum更新日记-20250313 abandon1a2b GooseForum 今天优化的内容不多,一个是增加了站点地图的返回。 另一个是优化了不同系统之间的 go:generate 。主要问题是我发现 go:generate 是没有条件编译的,但是目前我生成前端资源前是需要删除目录后生成的。不同系统的删除命令是不一样的。这几天windows都是手动删除,然后去掉对应的 generate 命令后再执行生成。今天更改为 //go:generate go run generate...
GooseForum更新日记-20250312 abandon1a2b GooseForum 今天又来更新了。今天改进比较小。调整了一些默认变量,调整了用户游客页面。不过目前实现的还是不太满意,以后可能会继续调整。 目前考虑会优化但是暂时不会改变的内容有,通用css。 nav的实现 后面可能会着重去废弃老的 actor (项目中老的前端开发目录)。 按照目前的进度来看,可以先行关闭一些老的编辑页面。 主要是老的会直接暴露存储的markdown,新的是服务端渲染会好很多(主要是考虑保护原文?...
GooseForum更新月记-20250311 abandon1a2b 代码编程 GooseForum GooseForum 的诞生 GooseForum 是我受 cloudreve 启发打算搭建的一个all in one , 低依赖的一键式论坛项目。 前端采用 vue ,打包后通过 golang embed 嵌入项目之中,项目中的库使用 pure-go ,所以即使使用sqlite ,也不会影响交叉编译的分发。目前主体部分基本完成,但是还存在角落上的欠缺。 同时这个项目也因为有了cursor的加入,...
GooseForum 创世纪 abandon1a2b GooseForum 起初,论坛空虚混沌,首页还没有帖子,管理员的精神运行在服务器上。 管理员说:“要有帖子。” 于是有了这篇帖子。 管理员看帖子是好的,就给它分配了 ID 1。至于 ID 0,管理员说那是程序员的事,不归创世部管。 这是第一日,时间戳为零。 第二日:要有用户 管理员说:“一个人自言自语,不能算论坛。” 于是有了用户。用户进来后的第一句话是:“有人吗?” 管理员回答:“有。” 用户说:“怎么只有管理员?...