repo.me/main.go

65 lines
1.7 KiB
Go
Raw Normal View History

2024-04-10 22:10:09 +08:00
// https://github.com/google/go-containerregistry
package main
import (
"context"
"crypto/tls"
2024-04-15 18:02:54 +08:00
"flag"
2024-04-10 22:10:09 +08:00
"github.com/sirupsen/logrus"
"nf-repo/internal/api"
2024-04-15 18:02:54 +08:00
"nf-repo/internal/interfaces"
2024-04-10 22:10:09 +08:00
"nf-repo/internal/interfaces/blobs"
"nf-repo/internal/interfaces/dbs"
2024-04-10 22:10:09 +08:00
"nf-repo/internal/interfaces/manifests"
"nf-repo/internal/interfaces/uploads"
2024-04-15 18:02:54 +08:00
"nf-repo/internal/opt"
"path"
2024-04-10 22:10:09 +08:00
)
var (
2024-04-15 18:02:54 +08:00
tlsCfg *tls.Config
bh interfaces.BlobHandler
uh interfaces.UploadHandler
mh interfaces.ManifestHandler
crtPath, keyPath, dataPath string
2024-04-10 22:10:09 +08:00
)
func init() {
2024-04-15 18:02:54 +08:00
flag.BoolVar(&opt.Debug, "debug", false, "debug mode")
flag.StringVar(&crtPath, "crt", "etc/repo.me.crt", "certificate file")
flag.StringVar(&keyPath, "key", "etc/repo.me.key", "certificate key file")
flag.StringVar(&dataPath, "data", "images", "images, sqlite ... data path")
flag.Parse()
if opt.Debug {
logrus.SetFormatter(&logrus.JSONFormatter{TimestampFormat: "06/01/02 15:04:05"})
logrus.SetLevel(logrus.DebugLevel)
logrus.SetReportCaller(true)
}
2024-04-10 22:10:09 +08:00
2024-04-15 18:02:54 +08:00
crt, err := tls.LoadX509KeyPair(crtPath, keyPath)
2024-04-10 22:10:09 +08:00
if err != nil {
2024-04-15 18:02:54 +08:00
logrus.Panic(err)
2024-04-10 22:10:09 +08:00
}
tlsCfg = &tls.Config{Certificates: []tls.Certificate{crt}}
2024-04-15 18:02:54 +08:00
mh = manifests.NewManifestDBHandler(dbs.Must(dbs.NewSqliteTX(path.Join(dataPath, "data.sqlite"))))
2024-06-14 17:39:00 +08:00
bh = blobs.NewLocalBlobHandler(path.Join(dataPath, "layers"))
//bh = blobs.NewS3BlobHandler(
// context.TODO(),
// "http://10.230.200.74:9000",
// "xWcwG0zcdR3iDXBa",
// "NavjSle5qQjE2rjz81hEwZW3S2fUVa66",
// "repo.me",
//)
2024-04-15 18:02:54 +08:00
uh = uploads.NewLocalUploader(path.Join(dataPath, "uploads"))
2024-04-10 22:10:09 +08:00
}
func main() {
app := api.NewApi(context.TODO(), bh, uh, mh)
logrus.Fatal(app.RunTLS(":443", tlsCfg))
}