Implemented web server stub as proof of concept
This commit is contained in:
parent
546a65aff0
commit
82329a6dcb
|
@ -91,4 +91,4 @@ RUN dep ensure
|
|||
RUN go install -v ./...
|
||||
|
||||
# Run the app
|
||||
CMD [ "tensorflowapi" ]
|
||||
CMD [ "photoprism start" ]
|
54
Gopkg.lock
generated
54
Gopkg.lock
generated
|
@ -52,12 +52,34 @@
|
|||
revision = "95292e44976d1217cf3611dc7c8d9466877d3ed5"
|
||||
version = "v1.0.1"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/gin-contrib/sse"
|
||||
packages = ["."]
|
||||
revision = "22d885f9ecc78bf4ee5d72b937e4bbcdc58e8cae"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/gin-gonic/gin"
|
||||
packages = [
|
||||
".",
|
||||
"binding",
|
||||
"render"
|
||||
]
|
||||
revision = "d459835d2b077e44f7c9b453505ee29881d5d12d"
|
||||
version = "v1.2"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/go-sql-driver/mysql"
|
||||
packages = ["."]
|
||||
revision = "d523deb1b23d913de5bdada721a6071e71283618"
|
||||
version = "v1.4.0"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/golang/protobuf"
|
||||
packages = ["proto"]
|
||||
revision = "b4deda0973fb4c70b50d226b1af49f3da59f5265"
|
||||
version = "v1.1.0"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/jinzhu/gorm"
|
||||
packages = [
|
||||
|
@ -92,6 +114,12 @@
|
|||
]
|
||||
revision = "90697d60dd844d5ef6ff15135d0203f65d2f53b8"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/mattn/go-isatty"
|
||||
packages = ["."]
|
||||
revision = "0360b2af4f38e8d38c7fce2a9f4e702702d73a39"
|
||||
version = "v0.0.3"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/mattn/go-sqlite3"
|
||||
packages = ["."]
|
||||
|
@ -141,6 +169,12 @@
|
|||
revision = "25c197e02393bd44f50079945409009dd4d434f8"
|
||||
version = "v1.9.0"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/ugorji/go"
|
||||
packages = ["codec"]
|
||||
revision = "b4c50a2b199d93b13dc15e78929cfb23bfdf21ab"
|
||||
version = "v1.1.1"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/urfave/cli"
|
||||
packages = ["."]
|
||||
|
@ -167,15 +201,33 @@
|
|||
]
|
||||
revision = "c73c2afc3b812cdd6385de5a50616511c4a3d458"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "golang.org/x/sys"
|
||||
packages = ["unix"]
|
||||
revision = "ac767d655b305d4e9612f5f6e33120b9176c4ad4"
|
||||
|
||||
[[projects]]
|
||||
name = "google.golang.org/appengine"
|
||||
packages = ["cloudsql"]
|
||||
revision = "b1f26356af11148e710935ed1ac8a7f5702c7612"
|
||||
version = "v1.1.0"
|
||||
|
||||
[[projects]]
|
||||
name = "gopkg.in/go-playground/validator.v8"
|
||||
packages = ["."]
|
||||
revision = "5f1438d3fca68893a817e4a66806cea46a9e4ebf"
|
||||
version = "v8.18.2"
|
||||
|
||||
[[projects]]
|
||||
name = "gopkg.in/yaml.v2"
|
||||
packages = ["."]
|
||||
revision = "5420a8b6744d3b0345ab293f6fcba19c978f1183"
|
||||
version = "v2.2.1"
|
||||
|
||||
[solve-meta]
|
||||
analyzer-name = "dep"
|
||||
analyzer-version = 1
|
||||
inputs-digest = "a6f9a83ff2c8ea983a59f7664e5594f0b44e75bf123a6e5b4643574e5ec1765f"
|
||||
inputs-digest = "43ead2ce99499d86f5ea942bd5e6f14819fcaad810c70b336115eed6ac15f6f5"
|
||||
solver-name = "gps-cdcl"
|
||||
solver-version = 1
|
||||
|
|
|
@ -6,6 +6,7 @@ import (
|
|||
"github.com/urfave/cli"
|
||||
"os"
|
||||
"github.com/araddon/dateparse"
|
||||
"github.com/photoprism/photoprism/server"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
@ -36,6 +37,37 @@ func main() {
|
|||
return nil
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "start",
|
||||
Usage: "Starts web server",
|
||||
Flags: []cli.Flag{
|
||||
cli.IntFlag{
|
||||
Name: "port, p",
|
||||
Usage: "HTTP server port",
|
||||
Value: 80,
|
||||
},
|
||||
cli.StringFlag{
|
||||
Name: "ip, i",
|
||||
Usage: "HTTP server IP address (optional)",
|
||||
Value: "",
|
||||
},
|
||||
},
|
||||
Action: func(context *cli.Context) error {
|
||||
conf.SetValuesFromFile(photoprism.GetExpandedFilename(context.GlobalString("config-file")))
|
||||
|
||||
conf.SetValuesFromCliContext(context)
|
||||
|
||||
conf.CreateDirectories()
|
||||
|
||||
fmt.Printf("Starting web server at port %d...\n", context.Int("port"))
|
||||
|
||||
server.Start(context.String("ip"), context.Int("port"))
|
||||
|
||||
fmt.Println("Done.")
|
||||
|
||||
return nil
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "migrate-db",
|
||||
Usage: "Automatically migrates / initializes database",
|
||||
|
|
29
server/server.go
Normal file
29
server/server.go
Normal file
|
@ -0,0 +1,29 @@
|
|||
package server
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"fmt"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func Start(address string, port int) {
|
||||
router := gin.Default()
|
||||
|
||||
router.LoadHTMLGlob("templates/*")
|
||||
|
||||
router.Static("/assets", "./assets")
|
||||
|
||||
router.GET("/", func(c *gin.Context) {
|
||||
c.HTML(http.StatusOK, "index.tmpl", gin.H{
|
||||
"title": "PhotoPrism",
|
||||
})
|
||||
})
|
||||
|
||||
router.GET("/ping", func(c *gin.Context) {
|
||||
c.JSON(200, gin.H{
|
||||
"message": "pong",
|
||||
})
|
||||
})
|
||||
|
||||
router.Run(fmt.Sprintf("%s:%d", address, port))
|
||||
}
|
5
templates/index.tmpl
Normal file
5
templates/index.tmpl
Normal file
|
@ -0,0 +1,5 @@
|
|||
<html>
|
||||
<h1>
|
||||
{{ .title }}
|
||||
</h1>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user