{"repo":"xijaja/gone","free":true,"listed":false,"github":"https://github.com/xijaja/gone","clone":"git clone https://github.com/xijaja/gone.git","description":"Gone 远走高飞，前后端单文件一次性部署。","language":"Go","stars":27,"topics":["dockerfile","golang","typescript","embed","goembed","fullstack","svelte","sveltekit","shadcn-svelte","solid"],"license":"MIT","category":"saas-starters-boilerplates","readme_excerpt":"Gone 远走高飞，前后端一次性部署，一个文件搞定 特点 - 采用现代化技术栈 - 前后端开发时分离 - 单二进制程序构建 - 适合小型全栈项目 - 代码整洁注释齐全 - 单服务器轻量部署 介绍 本项目共有两个分支， main 分支和 with-sqlite 分支，两者在使用的数据库上有所不同。 两者均使用 embed 包，将前端打包后的文件嵌入到二进制文件中，最终部署时仅需部署该二进制文件。 with-sqlite 分支还将 sqlite 数据库嵌入。 早先，前端部分使用 Solid 和 DaisyUI，现在改用 SvelteKit 主要还是因为近期发布了 Svelte 5 这个带有符文（Runes）的版本。并且有神级 UI 库 ShadcnUI 加持，编写前端时会更加舒适。 大致技术栈： - 前端：Svelte/Kit + TypeScript + TailwindCSS + ShadcnUI - 后端：Golang + Fiber + GORM + Sqlite3/Postgres/MySQL + Dotenv + Air 最后，技术栈不是固定的，可以使用 Vue/React/Solid 等来替换 Svelte 前端框架，也可以使用 Rust 和 rust-embed 来替换 Golang。 功能模块 - 用户管理系统（登录等功能） - Todo 待办事项管理（Demo） - 静态文件服务（前端打包后的文件） - 使用 GORM 作为 ORM 框架 - 支持多种数据库（Sqlite3/Postgres/MySQL） - 使用 JWT 进行身份认证 - 包含日志中间件和 CSRF 保护 - 支持优雅关机 - 使用 embed 包将前端文件嵌入二进制文件 项目目录 项目目录也参考 Go 项目标准布局 进行了些许调整： 食用方法 部署相关 - 提供 deploy.sh 服务器部署脚本 - 提供 github actions 用于 fly.io 部署 - 提供 Dockerfile 容器化部署 - 提供 makefile 本地开发和容器命令","default_branch":null,"files":null,"tree":[],"storefront":"/r/xijaja","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/xijaja/gone/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}