mirror of
https://github.com/saltbo/zpan.git
synced 2026-10-31 02:41:33 +08:00
refactor: embed the front code as assets
This commit is contained in:
+21
@@ -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"]
|
||||
@@ -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
|
||||
|
||||
File diff suppressed because one or more lines are too long
+2
-2
@@ -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
@@ -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")
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
./zpan server &
|
||||
|
||||
exec "$@"
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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=
|
||||
|
||||
Reference in New Issue
Block a user