飞鹅后端Readme

飞鹅官方账号
• 阅读 283

flygoose

一、依赖

  • go 1.19+(需要自己安装),建议proxy修改为国内的地址,不然会被墙,参考https://goproxy.cn/
  • mysql 8.0+ 或 postgresql 12+(需要自己安装)

二、架构

飞鹅后端Readme

三、部署文档

3.1 本地启动

  1. Gland打开项目,在go.mod文件夹右键,选 Go Mod Tidy,会自动下载好依赖

  2. 创建数据库db_flygoose

    注意: Mysql8.0+ 字符集使用utf8mb4,排序规则使用 utf8mb4_0900_ai_ci,Postgresql创建数据库字符集为utf8

3.1.1 Admin启动

环境配置:flygoose/cmd/admin/admin-config.yaml

# 服务端口
http:
  port: 29091
database:
  # 数据库类型 取值mysql或postgresql
  driver: mysql
  # 数据库IP
  host: 127.0.0.1
  # 数据库端口
  port: 3306
  # 数据库名称
  name: db_flygoose
  # 用户名
  user: flygoose
  # 密码
  password: flygoose

启动配置在flygoose/cmd/admin/main.go,下面这行:

configPath := flag.String("c", "cmd/admin/admin-config.yaml", "指定配置文件路径")

3.1.2 Flygoose启动

dev环境配置:flygoose/cmd/flygoose/flygoose-config.yaml

# 服务端口
http:
  port: 29090
database:
  # 数据库类型 取值mysql或postgresql
  driver: mysql
  # 数据库IP
  host: 127.0.0.1
  # 数据库端口
  port: 3306
  # 数据库名称
  name: db_flygoose
  # 用户名
  user: flygoose
  # 密码
  password: flygoose

启动配置在flygoose/cmd/flygoose/main.go,下面这行:

configPath := flag.String("c", "cmd/flygoose/flygoose-config.yaml", "指定配置文件路径")

3.2 打包部署

  1. 下载项目
  2. 修改配置文件 cmd/admin/admin-config.yamlcmd/flygoose/flygoose-config.yaml
  3. 打包(本示例假设服务器系统为linux,CPU型号是x86_64)
# 进入flygoose根目录执行以下脚本
go mod tidy
# 打包flygoose脚本 ----start
cd cmd/flygoose
set GOARCH=amd64
set GOOS=linux
set CGO_ENABLED=0
go build main.go -o flygoose
# 打包flygoose脚本 ----end
# 打包admin脚本 ----start
cd ../admin
set GOARCH=amd64
set GOOS=linux
set CGO_ENABLED=0
go build main.go -o flygoose-admin
# 打包admin脚本 ----end

执行完成后会在cmd/flygoose生成一个名为flygoose可执行文件,在cmd/admin下回生成一个名为flygoose-admin

  1. 添加权限并启动
# 加执行权限
chomod +x flygoose
chomod +x flygoose-admin
# 启动
nohup ./flygoose -c ./flygoose-config.yaml &
nohup ./flygoose-admin -c ./admin-config.yaml &
  1. 测试(以下测试端口号请换成自己配置的)
# 服务器上curl 测试  输出 {"code":1,"data":null,"message":"success"} 即认为成功
curl 127.0.0.1:29090/v1/health
curl 127.0.0.1:29091/v8/health
# 本地postman 测试 输出 {"code":1,"data":null,"message":"success"} 即认为成功
GET http://你的服务器ip:29090/v1/health
GET http://你的服务器ip:29091/v8/health

3.3 二进制文件部署

  1. 下载二进制文件,需要下载flygooseflygoose-admin 地址:http://gitlab.helloworld.net:8888/hw-api/flygoose/-/releases
  2. 修改配置并保存文件
# 服务端口
http:
  port: 29090
database:
  # 数据库类型 取值mysql或postgresql
  driver: mysql
  # 数据库IP
  host: 127.0.0.1
  # 数据库端口
  port: 5432
  # 数据库名称
  name: db_ee
  # 用户名
  user: postgres
  # 密码
  password: postgres

以上是flygoose的配置文件信息,内容修改成自己的配置,保存为flygoose-config.yaml

# 服务端口
http:
  port: 29091
database:
  # 数据库类型 取值mysql或postgresql
  driver: postgresql
  # 数据库IP
  host: 127.0.0.1
  # 数据库端口
  port: 5432
  # 数据库名称
  name: db_ee
  # 用户名
  user: postgres
  # 密码
  password: postgres

以上是flygoose-adminadmin的配置文件信息,内容修改成自己的配置,保存为admin-config.yaml

  1. 加执行权限并启动
# 加执行权限
chomod +x flygoose
chomod +x flygoose-admin
# 启动
nohup ./flygoose -c flygoose-config.yaml &
nohup ./flygoose-admin -c admin-config.yaml &

!!!特别注意!!!: flygoose和flygoose-admin请放在同一个文件夹 因为两个服务共用部署文件夹下的/static目录,如果不放在同一个目录会导致flygoose-admin上传的图片flygoose无法访问到 如果想扩展可以考虑以下思路:

  1. flygoose提供图片上传和访问接口,flygoose-admin上传图片时会把请求转发到flygoose,上传和访问都用flygoose接口
  2. flygoose前端项目部署用到了nginx,可以放在nginx下的静态文件目录中,利用nginx提供图片访问功能
  3. 自己部署或者使用云服务,例如fastDFS,MinIO,各类图床,阿里OSS
  1. 测试(以下端口号请换成自己配置的)
# 服务器上 curl 测试  输出 {"code":1,"data":null,"message":"success"} 即认为成功
curl 127.0.0.1:29090/v1/health
curl 127.0.0.1:29091/v8/health
# 本地 postman 测试 输出 {"code":1,"data":null,"message":"success"} 即认为成功
GET http://你的服务器ip:29090/v1/health
GET http://你的服务器ip:29091/v8/health

Docker 方式运行

以下为快速运行飞鹅后端的容器部署步骤方式,生产环境请把数据库持久化高可用部署

install postgresql

docker run --rm --name flygoose-postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_USER=postgres  -p 5432:5432 postgres

创建db

docker exec -it -u postgres flygoose-postgres psql -c "create database db_ee"

构建flygoose镜像

sh build.sh

运行飞鹅后端接口服务

docker run  --net=host  -it --rm flygoose:v1

运行flygoose admin api

docker run  --net=host  -it --rm flygoose:v1 sh -c "/apps/admin/admin -c /apps/admin/admin-config.yaml"

测试验证

http://127.0.0.1:29090/v1/health  # flygoose api
http://127.0.0.1:29091/v8/health  # flygoose admin api
点赞
收藏
评论区
推荐文章
飞鹅官方账号 飞鹅官方账号
1个月前
飞鹅博客如何部署?
飞鹅博客如何部署?本文讲一下如何部署飞鹅系统,首先需要明白飞鹅系统的架构首先先熟悉一下飞鹅的特点一、飞鹅系统的特点飞鹅是一个前后端分离的项目飞鹅前端用vue技术栈,后端go技术栈,数据库为mysql飞鹅总共有3个源码库,分别是博客https://githu
Jacquelyn38 Jacquelyn38
2年前
Js可以写桌面应用端?
1、下载nw.jshttps://nwjs.io/最好下载sdk版本。2、解压打开安装包下载完之后,解压打开图中的「app文件夹」是我自己创建的,你也需要自己创建一个,里面放你项目文件。「app文件夹」中一般放一个index.html(页面展示),另外还需要创建一个package.json文件(参数配置):        "name":  "first 
Wesley13 Wesley13
2年前
PPDB:今晚老齐直播
【今晚老齐直播】今晚(本周三晚)20:0021:00小白开始“用”飞桨(https://www.oschina.net/action/visit/ad?id1185)由PPDE(飞桨(https://www.oschina.net/action/visit/ad?id1185)开发者专家计划)成员老齐,为深度学习小白指点迷津。
Jacquelyn38 Jacquelyn38
2年前
牛逼!五分钟开发一款桌面版应用
1、下载nw.jshttps://nwjs.io/最好下载sdk版本。2、解压打开安装包下载完之后,解压打开图中的app文件夹是我自己创建的,你也需要自己创建一个,里面放你项目文件。app文件夹中一般放一个index.html(页面展示),另外还需要创建一个package.json文件(参数配置):        "name":  "first  ap
皕杰报表使用字体和部署后添加字体
Windows系统1、打开Win10系统的字体安装文件夹,可以双击打开此电脑打开C盘打开Windows打开Fonts;也可先打开计算机,在计算机地址栏上直接拷贝“C:WindowsFonts”路径。回车打开Win10字体文件夹。2.下载自己需要的字体。3.
九章 九章
3年前
Android依赖管理与私服搭建
在Android开发中,一个项目需要依赖许多的库,我们自己写的,第三方的等等,这篇文件介绍的就是自己搭建私服,创建自己的仓库,进行对我们自己写的库依赖管理。本文是在macbookpro环境上搭建的,其它操作系统操作方式大致一样的。如果有不一样的地,可以参考官方文档Android中引入依赖的几种方法一直接引
Stella981 Stella981
2年前
Git@OSC日常操作
本文参考网上的很多文章,然后自己又走了一遍流程。终于搞懂,遂几下操作的过程。一、如何伤处Git@OSC的项目  打开项目,在项目的"管理"处,点击删除项目即可。二、当安装完成gitBush命令行工具后,首先进行配置  gitconfigglobaluser.name"你的名字"  gitconfiggloba
Wesley13 Wesley13
2年前
PHP+MySql实现图书管理系统
这个图书管理系统是我学完PHP时写的一个练手项目,功能参考了自己学校的图书管理系统。为了锻炼自己的动手能力以及加深对代码的理解,前端和后端均由自己完成,前端使用了一些基本的框架(毕竟我主攻后端开发方向),后端大部分要用到的功能都是自己从底层实现并封装,基本没有用到第三方框架。总体来说还是比较简陋的,在某些地方可能存在缺陷或者漏洞。项目地址
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
飞鹅官方账号 飞鹅官方账号
2个月前
关于飞鹅开源博客系统
飞鹅,会飞的鹅,寓意着对梦想的坚持,所以,我们的开源博客系统,就起名叫做飞鹅,英文名:flygoose下面正式介绍飞鹅开源博客项目飞鹅是什么?飞鹅是开发并且完全免费开源的一个项目,源码随便用随便改,没有任何限制,这个项目主要是为了帮助程序员能快速的搭建一个
飞鹅官方账号
飞鹅官方账号
Lv1
男 · 上海待兔科技有限责任公司 · CTO
飞鹅开源博客系统,帮助开发者建立自己的独立博客,官方网站:https://flygoose.helloworld.net
文章
3
粉丝
4
获赞
0