refactor: embed the front code as assets

This commit is contained in:
saltbo
2020-08-23 02:02:24 +08:00
parent 09b68b5292
commit ff5c0be2ac
11 changed files with 144 additions and 11 deletions
+21
View File
@@ -0,0 +1,21 @@
FROM golang:1.14 AS builder
ENV APP_HOME /src
WORKDIR $APP_HOME
COPY go.* $APP_HOME/
ENV GOPROXY https://goproxy.cn,direct
RUN go mod download
COPY . .
RUN make build
# Runing environment
FROM moreu:latest
COPY deployments/ .
COPY --from=builder /src/build/bin/zpan .
ENTRYPOINT ["./entrypoint.sh"]
CMD ["moreu", "server"]
+3 -3
View File
@@ -6,7 +6,7 @@ MAINFILE := main.go
all: build
dep: ## Get the dependencies
mod: ## Get the dependencies
@go mod download
lint: ## Lint Golang files
@@ -20,8 +20,8 @@ test: ## Run tests with coverage
coverage-html: ## show coverage by the html
go tool cover -html=.coverprofile
build: dep ## Build the binary file
@go build -o build/bin/$(PROJECT) $(MAINFILE)
build: mod ## Build the binary file
@go build -v -o build/bin/$(PROJECT) $(MAINFILE)
clean: ## Remove previous build
@rm -rf ./build
+12
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -62,7 +62,7 @@ func init() {
// Cobra supports persistent flags, which, if defined here,
// will be global for your application.
rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.zpan.yaml.yaml)")
rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.zpan.yml.yaml)")
// Cobra also supports local flags, which will only run
// when this action is called directly.
@@ -82,7 +82,7 @@ func initConfig() {
os.Exit(1)
}
// Search config in home directory with name ".zpan.yaml" (without extension).
// Search config in home directory with name ".zpan.yml" (without extension).
viper.AddConfigPath(home)
viper.AddConfigPath(".")
viper.SetConfigName(".zpan")
+12 -5
View File
@@ -25,10 +25,12 @@ import (
"fmt"
"log"
"github.com/gin-gonic/gin"
"github.com/saltbo/gopkg/ginutil"
"github.com/saltbo/gopkg/gormutil"
"github.com/spf13/cobra"
_ "github.com/saltbo/zpan/assets"
"github.com/saltbo/zpan/config"
"github.com/saltbo/zpan/disk"
"github.com/saltbo/zpan/model"
@@ -53,16 +55,21 @@ var serverCmd = &cobra.Command{
log.Fatalln(err)
}
rs := ginutil.NewServer(":8222")
rs.SetupGroupRS("/api",
ge := gin.Default()
ginutil.SetupEmbedAssets(ge, "/css", "/js", "/fonts")
simpleRouter := ginutil.NewSimpleRouter()
simpleRouter.StaticFS("/", ginutil.EmbedFS())
ginutil.SetupResource(ge.Group("/api"),
rest.NewFileResource(conf.Provider.Bucket, diskProvider),
rest.NewShareResource(),
rest.NewURLResource(conf, diskProvider),
rest.NewStorageResource(),
)
if err := rs.Run(); err != nil {
log.Fatal(err)
}
ge.NoRoute(simpleRouter.Handler)
ginutil.Startup(ge, ":8222")
},
}
+22
View File
@@ -0,0 +1,22 @@
host: http://inlets.saltbo.cn/
moreu: /moreu/front
secret: 1111
email:
host: smtpdm.aliyun.com:25
sender: no-reply@saltbo.fun
username: Moreu
password: mG077URe2Wh9
database:
driver: sqlite3
dsn: moreu.db
routers:
- pattern: /api
upstream:
address: http://localhost:8222
#statics:
# - pattern: /
# distDir: ../zpan-front/dist
+13
View File
@@ -0,0 +1,13 @@
siteHost: http://inlets.saltbo.cn
storeHost: http://dl.saltbo.cn
database:
driver: sqlite3
dsn: zpan.db
provider:
name: alioss
bucket: saltbo-zpan-test
endpoint: https://oss-cn-zhangjiakou.aliyuncs.com
accessKey: LTAI4FbdK2wD1fe9nknL7YoV
accessSecret: PFGVwwpAFYaYz7la3vgckr472Rd09u
+5
View File
@@ -0,0 +1,5 @@
#!/bin/sh
./zpan server &
exec "$@"
+39
View File
@@ -0,0 +1,39 @@
# 默认规则,只有正式成员允许访问
- id: 0
host: '*'
path: '**'
method: '*'
authorized_roles:
- 'member'
forbidden_roles:
- black_user
# 默认规则,只有管理员允许查询用户列表
- id: 1
host: '*'
path: '/moreu/api/users'
method: '{GET}'
authorized_roles:
- 'admin'
forbidden_roles:
- black_user
# 自定义规则
# POST /api/files 允许非登录状态访问
- id: 3
host: '*'
path: '/api/files'
method: '{GET,POST}'
allow_anyone: true
- id: 4
host: '*'
path: '/s/**'
method: '{GET}'
allow_anyone: true
- id: 5
host: '*'
path: '/api/shares/**'
method: '{GET}'
allow_anyone: true
+4 -1
View File
@@ -7,9 +7,12 @@ require (
github.com/gin-gonic/gin v1.6.3
github.com/jinzhu/gorm v1.9.16
github.com/mitchellh/go-homedir v1.1.0
github.com/saltbo/gopkg v0.0.0-20200821171335-583b5a5ef8a6
github.com/rakyll/statik v0.1.7
github.com/saltbo/gopkg v0.0.0-20200822175914-b423d3d057ad
github.com/saltbo/moreu v0.0.0-20200818144911-48e1687bed0a
github.com/satori/go.uuid v1.2.0
github.com/spf13/cobra v1.0.0
github.com/spf13/viper v1.7.1
)
//replace github.com/saltbo/gopkg => /opt/works/gopkg
+11
View File
@@ -96,15 +96,18 @@ github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34
github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
github.com/go-openapi/jsonreference v0.19.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o=
github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
github.com/go-openapi/jsonreference v0.19.4 h1:3Vw+rh13uq2JFNxgnMTGE1rnoieU9FmyE1gvnyylsYg=
github.com/go-openapi/jsonreference v0.19.4/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg=
github.com/go-openapi/spec v0.19.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
github.com/go-openapi/spec v0.19.4 h1:ixzUSnHTd6hCemgtAJgluaTSGYpLNpJY4mA2DIkdOAo=
github.com/go-openapi/spec v0.19.4/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
github.com/go-openapi/spec v0.19.9 h1:9z9cbFuZJ7AcvOHKIY+f6Aevb4vObNDkTEyoMfO7rAc=
github.com/go-openapi/spec v0.19.9/go.mod h1:vqK/dIdLGCosfvYsQV3WfC7N3TiZSnGY2RZKoFK7X28=
github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
github.com/go-openapi/swag v0.19.9 h1:1IxuqvBUU3S2Bi4YC7tlP9SJF1gVpCvqN0T2Qof4azE=
github.com/go-openapi/swag v0.19.9/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY=
@@ -222,6 +225,7 @@ github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
@@ -243,6 +247,7 @@ github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzR
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8=
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.7.2 h1:V9ecaZWDYm7v9uJ15RZD6DajMu5sE0hdep0aoDwT9g4=
github.com/mailru/easyjson v0.7.2/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
@@ -327,6 +332,10 @@ github.com/saltbo/gopkg v0.0.0-20200818144227-84907810779f h1:alEGiKhzaytG2I+DT6
github.com/saltbo/gopkg v0.0.0-20200818144227-84907810779f/go.mod h1:0gUfIXkMjNZSIrsbcbyUqSc9CausMiit0eSCnd1SgtA=
github.com/saltbo/gopkg v0.0.0-20200821171335-583b5a5ef8a6 h1:vmMUN4yXkET3JSiEw5NRyGY9wOncjsQWAYGtu7UnO7k=
github.com/saltbo/gopkg v0.0.0-20200821171335-583b5a5ef8a6/go.mod h1:Ql92FUe1rNp4PgAEjWGyL7mZp32Voml4qP4xOuZrxNw=
github.com/saltbo/gopkg v0.0.0-20200822132230-ebe13a1e691c h1:FTUkJ4ZhzjtHi3xir0jz4eD2bJTI4Q6ZxI/RL+qD8a0=
github.com/saltbo/gopkg v0.0.0-20200822132230-ebe13a1e691c/go.mod h1:XlRGt9E8qVHi0yMCOoIQBmK6YTJ03BazzIo7DTWgBhU=
github.com/saltbo/gopkg v0.0.0-20200822175914-b423d3d057ad h1:Ei+eleW75QFIpfnlflBp/mGbCJnNqSrzETdBcveTKws=
github.com/saltbo/gopkg v0.0.0-20200822175914-b423d3d057ad/go.mod h1:XlRGt9E8qVHi0yMCOoIQBmK6YTJ03BazzIo7DTWgBhU=
github.com/saltbo/moreu v0.0.0-20200817013815-1b989059aee8 h1:qQ0At50HHvfsddUfaXMzRyCId6sagrAv3tzv/iIpAjA=
github.com/saltbo/moreu v0.0.0-20200817013815-1b989059aee8/go.mod h1:pjDZmNmOo9oO1GO+ZnisFswOFwo7EyoCy6Q/m88tH9g=
github.com/saltbo/moreu v0.0.0-20200817174342-1945e1cfc2cd h1:fffRZUFJdjGEkcRx1YW4Ev2ZCCPH2XWjpnlZ/RuxF3k=
@@ -411,6 +420,7 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd h1:GGJVjV8waZKRHrgwvtH66z9ZGVurTD1MT0n1Bb+q4aM=
golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
@@ -534,6 +544,7 @@ golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtn
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc h1:NCy3Ohtk6Iny5V/reW2Ktypo4zIpWBdRJ1uFMjBxdg8=
golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200809012840-6f4f008689da h1:ml5G98G4/tdKT1XNq+ky5iSRdKKux0TANlLAzmXT/hg=