{"id":21008069,"url":"https://github.com/lflxp/go-vue-template","last_synced_at":"2026-07-22T19:31:24.101Z","repository":{"id":150080708,"uuid":"555897183","full_name":"lflxp/go-vue-template","owner":"lflxp","description":"Quickly build front and backend full stack scaffold with gin(golang) + vue(d2-admin) + tauri","archived":false,"fork":false,"pushed_at":"2022-10-24T09:56:02.000Z","size":20806,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-19T06:22:55.619Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lflxp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-22T15:38:53.000Z","updated_at":"2022-10-22T16:33:09.000Z","dependencies_parsed_at":"2023-06-05T03:00:40.393Z","dependency_job_id":null,"html_url":"https://github.com/lflxp/go-vue-template","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/lflxp/go-vue-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lflxp%2Fgo-vue-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lflxp%2Fgo-vue-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lflxp%2Fgo-vue-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lflxp%2Fgo-vue-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lflxp","download_url":"https://codeload.github.com/lflxp/go-vue-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lflxp%2Fgo-vue-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35775346,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-22T02:00:06.236Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-19T09:11:23.152Z","updated_at":"2026-07-22T19:31:24.084Z","avatar_url":"https://github.com/lflxp.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 介绍\n\n快速开发项目的脚手架，基于golang gin + vue d2-admin + tauri组成,可以实现快速的B/S or C/S架构\n\n# TODO\n\n1、切换git提交的username和email\n2、切换项目名称，叫脚手架比较好听\n3、修改go mod名称和代码import名\n4、统一后端接口路径以/api开头，/admin忽略\n\n# 功能列表\n\n* JWT\n* 登陆页面\n* Django Admin后台\n* tauri app\n* Dockerfile\n* 一个二进制文件启动\n\n# 安装前准备\n\n* npm \n* swag\n* [showme](https://github.com/lflxp/showme)\n* [fhst](https://gitee.com/lflxp/fhst)\n\n# 桌面app tauri\n\n## 调试tauri\n\n\u003e cargo tauri dev\n\nor \n\n\u003e make tauridev\n\n## 打包\n\n`有BUG`：无法访问axum服务，是直接访问的tauri://localhost/admin/userinfo的接口\n\n\u003e cargo tarui build\n\nor \n\n\u003e make tauribuild\n\n# 前端框架\n\n- elementUI\n- D2-admin\n\n# Golang后端\n\n## 安装\n\n`make`\n\n```bash\n➜  demo git:(master) ✗ make\nrm -rf asset/dashboard\ncd frontend \u0026\u0026 npm install \u0026\u0026 npm run build:prod \u0026\u0026 mv dist ../asset/dashboard\n\nup to date in 1s\n\n112 packages are looking for funding\n  run `npm fund` for details\n\n\u003e vue-admin-template@4.4.0 build:prod\n\u003e vue-cli-service build\n\n\n⠼  Building for production...\n\n WARNING  Compiled with 2 warnings                                                                                                                                      11:25:54\n\n warning  \n\nasset size limit: The following asset(s) exceed the recommended size limit (244 KiB).\nThis can impact web performance.\nAssets: \n  static/js/chunk-elementUI.6f38d267.js (654 KiB)\n  static/js/chunk-libs.de09490f.js (313 KiB)\n\n warning  \n\nentrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.\nEntrypoints:\n  app (1.23 MiB)\n      static/css/chunk-elementUI.68c70ad5.css\n      static/js/chunk-elementUI.6f38d267.js\n      static/css/chunk-libs.3dfb7769.css\n      static/js/chunk-libs.de09490f.js\n      static/css/app.b7cb370e.css\n      static/js/app.cd60c8ed.js\n\n\n  File                                      Size             Gzipped\n\n  dist/static/js/chunk-elementUI.6f38d26    654.28 KiB       160.37 KiB\n  7.js\n  dist/static/js/chunk-libs.de09490f.js     313.25 KiB       109.68 KiB\n  dist/static/js/app.cd60c8ed.js            56.04 KiB        16.85 KiB\n  dist/static/js/chunk-06801562.02b4eb3d    3.08 KiB         1.25 KiB\n  .js\n  dist/static/js/chunk-9ea35268.2d9add8d    2.97 KiB         0.97 KiB\n  .js\n  dist/static/js/chunk-2d0e4b0c.18f2d803    2.06 KiB         0.84 KiB\n  .js\n  dist/static/js/chunk-94d3c3c4.10d1f40a    1.74 KiB         0.73 KiB\n  .js\n  dist/static/js/chunk-6db766a0.a9b17b0f    1.58 KiB         0.72 KiB\n  .js\n  dist/static/js/chunk-2d0d0f79.e0fc0e48    1.19 KiB         0.61 KiB\n  .js\n  dist/static/js/chunk-2d0c8bf7.104337da    0.41 KiB         0.31 KiB\n  .js\n  dist/static/js/chunk-2d0e4e1f.d1fe687e    0.41 KiB         0.31 KiB\n  .js\n  dist/static/js/chunk-2d226cab.3aff06e4    0.39 KiB         0.29 KiB\n  .js\n  dist/static/js/chunk-2d229205.daeadf1b    0.37 KiB         0.29 KiB\n  .js\n  dist/static/js/chunk-2d0cfaef.ff491ee6    0.35 KiB         0.27 KiB\n  .js\n  dist/static/js/chunk-2d0e944c.31030ddb    0.35 KiB         0.28 KiB\n  .js\n  dist/static/js/chunk-2d2104c6.19c27445    0.35 KiB         0.27 KiB\n  .js\n  dist/static/css/chunk-elementUI.68c70a    227.82 KiB       34.55 KiB\n  d5.css\n  dist/static/css/app.b7cb370e.css          9.62 KiB         2.36 KiB\n  dist/static/css/chunk-94d3c3c4.3c7f5ad    4.64 KiB         0.83 KiB\n  9.css\n  dist/static/css/chunk-libs.3dfb7769.cs    3.48 KiB         1.25 KiB\n  s\n  dist/static/css/chunk-06801562.ba95b87    1.59 KiB         0.62 KiB\n  6.css\n  dist/static/css/chunk-6db766a0.563b0ff    0.11 KiB         0.10 KiB\n  7.css\n  dist/static/css/chunk-9ea35268.5cd9884    0.04 KiB         0.06 KiB\n  a.css\n\n  Images and other types of assets omitted.\n\n DONE  Build complete. The dist directory is ready to be deployed.\n INFO  Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html\n\ngo mod tidy\ngo get golang.org/x/tools/cmd/stringer\ngo generate\n...\nwatching utils\nbuilding...\nrunning...\n2022-10-19 11:26:53.373124 [1] [DEBUG] [root] framework.go:37 初始化jwtIdentityKey \n[xorm] [info]  2022/10/19 11:26:53.374927 [SQL] SELECT name FROM sqlite_master WHERE type='table' [] - 1.380917ms\n[xorm] [info]  2022/10/19 11:26:53.375037 [SQL] SELECT sql FROM sqlite_master WHERE type='table' and name = ? [vpn] - 10.541µs\n[xorm] [info]  2022/10/19 11:26:53.375112 [SQL] SELECT sql FROM sqlite_master WHERE type='index' and tbl_name = ? [vpn] - 7.167µs\n[xorm] [info]  2022/10/19 11:26:53.375148 [SQL] SELECT sql FROM sqlite_master WHERE type='table' and name = ? [machine] - 6.292µs\n[xorm] [info]  2022/10/19 11:26:53.375193 [SQL] SELECT sql FROM sqlite_master WHERE type='index' and tbl_name = ? [machine] - 4.709µs\n[xorm] [info]  2022/10/19 11:26:53.375228 [SQL] SELECT sql FROM sqlite_master WHERE type='table' and name = ? [cdn] - 4.542µs\n[xorm] [info]  2022/10/19 11:26:53.375272 [SQL] SELECT sql FROM sqlite_master WHERE type='index' and tbl_name = ? [cdn] - 4.541µs\n[xorm] [info]  2022/10/19 11:26:53.375311 [SQL] SELECT sql FROM sqlite_master WHERE type='table' and name = ? [more] - 4.333µs\n[xorm] [info]  2022/10/19 11:26:53.375340 [SQL] SELECT sql FROM sqlite_master WHERE type='index' and tbl_name = ? [more] - 4.208µs\n[xorm] [info]  2022/10/19 11:26:53.375369 [SQL] SELECT sql FROM sqlite_master WHERE type='table' and name = ? [user] - 4µs\n[xorm] [info]  2022/10/19 11:26:53.375409 [SQL] SELECT sql FROM sqlite_master WHERE type='index' and tbl_name = ? [user] - 4.166µs\n[xorm] [info]  2022/10/19 11:26:53.375433 [SQL] SELECT sql FROM sqlite_master WHERE type='table' and name = ? [claims] - 4µs\n[xorm] [info]  2022/10/19 11:26:53.375461 [SQL] SELECT sql FROM sqlite_master WHERE type='index' and tbl_name = ? [claims] - 3.875µs\n[xorm] [info]  2022/10/19 11:26:53.375484 [SQL] SELECT sql FROM sqlite_master WHERE type='table' and name = ? [groups] - 3.875µs\n[xorm] [info]  2022/10/19 11:26:53.375514 [SQL] SELECT sql FROM sqlite_master WHERE type='index' and tbl_name = ? [groups] - 3.791µs\n[xorm] [info]  2022/10/19 11:26:53.375532 [SQL] SELECT sql FROM sqlite_master WHERE type='table' and name = ? [userauth] - 4.583µs\n[xorm] [info]  2022/10/19 11:26:53.375555 [SQL] SELECT sql FROM sqlite_master WHERE type='index' and tbl_name = ? [userauth] - 3.917µs\n[xorm] [info]  2022/10/19 11:26:53.375577 [SQL] SELECT sql FROM sqlite_master WHERE type='table' and name = ? [history] - 3.875µs\n[xorm] [info]  2022/10/19 11:26:53.375606 [SQL] SELECT sql FROM sqlite_master WHERE type='index' and tbl_name = ? [history] - 4.292µs\n2022-10-19 11:26:53.375656 [1] [DEBUG] [root] modelRegistry.go:120 完成模型注册\n[xorm] [info]  2022/10/19 11:26:53.375787 [SQL] SELECT `id`, `username`, `password`, `name`, `firstname`, `email`, `isvaild`, `status`, `isadmin`, `claims_id`, `token` FROM `user` WHERE `username`=? LIMIT 1 [admin] - 28.834µs\n2022-10-19 11:26:53.376319 [1] [ERROR] [root] admin.go:20 json: cannot unmarshal number into Go value of type []admin.Claims\n[xorm] [info]  2022/10/19 11:26:53.376392 [SQL] SELECT name FROM sqlite_master WHERE type='table' [] - 25.5µs\n[xorm] [info]  2022/10/19 11:26:53.376455 [SQL] SELECT sql FROM sqlite_master WHERE type='table' and name = ? [demotest] - 9µs\n[xorm] [info]  2022/10/19 11:26:53.376619 [SQL] SELECT sql FROM sqlite_master WHERE type='index' and tbl_name = ? [demotest] - 13.208µs\n2022-10-19 11:26:53.37664  [1] [DEBUG] [root] modelRegistry.go:120 完成模型注册\n2022-10-19 11:26:53.376647 [1] [DEBUG] [root] test.go:15 注册Demo test\nUsing config file: /opt/gopath/src/gitee.com/lflxp/demo/demo.yaml\n[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.\n\n[GIN-debug] [WARNING] Running in \"debug\" mode. Switch to \"release\" mode in production.\n - using env:   export GIN_MODE=release\n - using code:  gin.SetMode(gin.ReleaseMode)\n\n2022-10-19 11:26:53.385402 [1] [INFO ] [root] router.go:18 注册Gin路由\n[GIN-debug] GET    /metrics                  --\u003e demo/core/middlewares.PromHandler.func1 (5 handlers)\n[GIN-debug] GET    /                         --\u003e demo/core/router.PreGinServe.func1 (6 handlers)\n[GIN-debug] GET    /health                   --\u003e demo/core/middlewares.RegisterHealthMiddleware (6 handlers)\n[GIN-debug] GET    /swagger/*any             --\u003e github.com/swaggo/gin-swagger.CustomWrapHandler.func1 (6 handlers)\n[GIN-debug] POST   /admin/auth/login         --\u003e demo/pkg/auth.loginlocal (6 handlers)\n[GIN-debug] POST   /admin/auth/logout        --\u003e demo/pkg/auth.logout (6 handlers)\n[GIN-debug] GET    /dashboard/*any           --\u003e demo/asset.RegisterAsset.func1 (6 handlers)\n[GIN-debug] POST   /dashboard/*any           --\u003e demo/asset.RegisterAsset.func1 (6 handlers)\n[GIN-debug] PUT    /dashboard/*any           --\u003e demo/asset.RegisterAsset.func1 (6 handlers)\n[GIN-debug] PATCH  /dashboard/*any           --\u003e demo/asset.RegisterAsset.func1 (6 handlers)\n[GIN-debug] HEAD   /dashboard/*any           --\u003e demo/asset.RegisterAsset.func1 (6 handlers)\n[GIN-debug] OPTIONS /dashboard/*any           --\u003e demo/asset.RegisterAsset.func1 (6 handlers)\n[GIN-debug] DELETE /dashboard/*any           --\u003e demo/asset.RegisterAsset.func1 (6 handlers)\n[GIN-debug] CONNECT /dashboard/*any           --\u003e demo/asset.RegisterAsset.func1 (6 handlers)\n[GIN-debug] TRACE  /dashboard/*any           --\u003e demo/asset.RegisterAsset.func1 (6 handlers)\n[GIN-debug] GET    /script/*any              --\u003e demo/asset.RegisterAsset.func2 (6 handlers)\n[GIN-debug] POST   /script/*any              --\u003e demo/asset.RegisterAsset.func2 (6 handlers)\n[GIN-debug] PUT    /script/*any              --\u003e demo/asset.RegisterAsset.func2 (6 handlers)\n[GIN-debug] PATCH  /script/*any              --\u003e demo/asset.RegisterAsset.func2 (6 handlers)\n[GIN-debug] HEAD   /script/*any              --\u003e demo/asset.RegisterAsset.func2 (6 handlers)\n[GIN-debug] OPTIONS /script/*any              --\u003e demo/asset.RegisterAsset.func2 (6 handlers)\n[GIN-debug] DELETE /script/*any              --\u003e demo/asset.RegisterAsset.func2 (6 handlers)\n[GIN-debug] CONNECT /script/*any              --\u003e demo/asset.RegisterAsset.func2 (6 handlers)\n[GIN-debug] TRACE  /script/*any              --\u003e demo/asset.RegisterAsset.func2 (6 handlers)\n[GIN-debug] GET    /docs/*any                --\u003e demo/asset.RegisterAsset.func3 (7 handlers)\n[GIN-debug] POST   /docs/*any                --\u003e demo/asset.RegisterAsset.func3 (7 handlers)\n[GIN-debug] PUT    /docs/*any                --\u003e demo/asset.RegisterAsset.func3 (7 handlers)\n[GIN-debug] PATCH  /docs/*any                --\u003e demo/asset.RegisterAsset.func3 (7 handlers)\n[GIN-debug] HEAD   /docs/*any                --\u003e demo/asset.RegisterAsset.func3 (7 handlers)\n[GIN-debug] OPTIONS /docs/*any                --\u003e demo/asset.RegisterAsset.func3 (7 handlers)\n[GIN-debug] DELETE /docs/*any                --\u003e demo/asset.RegisterAsset.func3 (7 handlers)\n[GIN-debug] CONNECT /docs/*any                --\u003e demo/asset.RegisterAsset.func3 (7 handlers)\n[GIN-debug] TRACE  /docs/*any                --\u003e demo/asset.RegisterAsset.func3 (7 handlers)\n[GIN-debug] GET    /favicon.ico              --\u003e demo/asset.RegisterAsset.func4 (6 handlers)\n[GIN-debug] GET    /adminfs/*filepath        --\u003e github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (6 handlers)\n[GIN-debug] HEAD   /adminfs/*filepath        --\u003e github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (6 handlers)\n[GIN-debug] [WARNING] Since SetHTMLTemplate() is NOT thread-safe. It should only be called\nat initialization. ie. before any route is registered or the router is listening in a socket:\n\n        router := gin.Default()\n        router.SetHTMLTemplate(template) // \u003c\u003c good place\n\n[GIN-debug] GET    /login                    --\u003e demo/core/controller.login (6 handlers)\n[GIN-debug] GET    /admin/:type              --\u003e demo/core/controller.process (6 handlers)\n[GIN-debug] POST   /admin/:type              --\u003e demo/core/controller.process (6 handlers)\n[GIN-debug] PUT    /admin/:type              --\u003e demo/core/controller.process (6 handlers)\n[GIN-debug] PATCH  /admin/:type              --\u003e demo/core/controller.process (6 handlers)\n[GIN-debug] HEAD   /admin/:type              --\u003e demo/core/controller.process (6 handlers)\n[GIN-debug] OPTIONS /admin/:type              --\u003e demo/core/controller.process (6 handlers)\n[GIN-debug] DELETE /admin/:type              --\u003e demo/core/controller.process (6 handlers)\n[GIN-debug] CONNECT /admin/:type              --\u003e demo/core/controller.process (6 handlers)\n[GIN-debug] TRACE  /admin/:type              --\u003e demo/core/controller.process (6 handlers)\n[GIN-debug] GET    /test/:type               --\u003e demo/core/controller.test_process (7 handlers)\n[GIN-debug] POST   /test/:type               --\u003e demo/core/controller.test_process (7 handlers)\n[GIN-debug] PUT    /test/:type               --\u003e demo/core/controller.test_process (7 handlers)\n[GIN-debug] PATCH  /test/:type               --\u003e demo/core/controller.test_process (7 handlers)\n[GIN-debug] HEAD   /test/:type               --\u003e demo/core/controller.test_process (7 handlers)\n[GIN-debug] OPTIONS /test/:type               --\u003e demo/core/controller.test_process (7 handlers)\n[GIN-debug] DELETE /test/:type               --\u003e demo/core/controller.test_process (7 handlers)\n[GIN-debug] CONNECT /test/:type               --\u003e demo/core/controller.test_process (7 handlers)\n[GIN-debug] TRACE  /test/:type               --\u003e demo/core/controller.test_process (7 handlers)\n2022-10-19 11:26:53.386293 [1] [INFO ] [root] settings.go:31 ip 0.0.0.0 port 8000\n2022-10-19 11:26:53.386405 [1] [INFO ] [root] settings.go:84 Listening and serving HTTPS on http://10.0.23.63:8000\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flflxp%2Fgo-vue-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flflxp%2Fgo-vue-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flflxp%2Fgo-vue-template/lists"}