From 03cd6bdfbd473dba3f3dc50a1b15e389aac5bc70 Mon Sep 17 00:00:00 2001 From: Leonardo Bishop Date: Wed, 7 Jan 2026 23:39:53 +0000 Subject: Initial commit --- main.go | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 main.go (limited to 'main.go') diff --git a/main.go b/main.go new file mode 100644 index 0000000..bd2e3ae --- /dev/null +++ b/main.go @@ -0,0 +1,57 @@ +package main + +import ( + "context" + "log/slog" + "net/http" + + "git.leonardobishop.net/instancer/pkg/deployer" + "git.leonardobishop.net/instancer/pkg/janitor" + "git.leonardobishop.net/instancer/pkg/registry" + "git.leonardobishop.net/instancer/web" + "github.com/caarlos0/env/v11" +) + +type Config struct { + ContainerRegistryURL string `env:"CONTAINER_REGISTRY_URL,notEmpty,required"` + ContainerRegistryUsername string `env:"CONTAINER_REGISTRY_USERNAME"` + ContainerRegistryPassword string `env:"CONTAINER_REGISTRY_PASSWORD"` + + InstancerDomain string `env:"INSTANCER_DOMAIN"` + + ImagePrefix string `env:"IMAGE_PREFIX"` + ProxyContainerName string `env:"PROXY_CONTAINER_NAME"` +} + +func main() { + var config Config + + if err := env.Parse(&config); err != nil { + panic(err) + } + + registryClient := registry.RegistryClient{ + URL: config.ContainerRegistryURL, + Username: config.ContainerRegistryUsername, + Password: config.ContainerRegistryPassword, + } + + dockerDeployer, err := deployer.New( + config.ContainerRegistryURL, + config.ContainerRegistryUsername, + config.ContainerRegistryPassword, + config.InstancerDomain, + config.ImagePrefix, + config.ProxyContainerName, + ) + if err != nil { + panic(err) + } + + slog.Info("staring janitor job") + go janitor.StartJanitor(context.Background(), &dockerDeployer) + + slog.Info("starting http server") + err = http.ListenAndServe(":8080", web.NewMux(®istryClient, &dockerDeployer)) + slog.Error("http server closing", "reason", err.Error()) +} -- cgit v1.2.3-70-g09d2