diff --git a/Dockerfile b/Dockerfile index e9ed9ee..2dcd8bb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,6 +31,8 @@ ENV UPTOP_SSH_HOST_KEY=/data/.ssh/id_ed25519 ENV UPTOP_PORT=23234 EXPOSE 23234 +HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \ + CMD wget -qO- http://localhost:8080/api/health || exit 1 USER uptop ENTRYPOINT ["docker-entrypoint.sh"] CMD ["./uptop"] \ No newline at end of file diff --git a/cmd/uptop/main.go b/cmd/uptop/main.go index 71a280d..169fb6f 100644 --- a/cmd/uptop/main.go +++ b/cmd/uptop/main.go @@ -237,13 +237,13 @@ func runMigrateSecrets(args []string) { os.Exit(1) } + ss.SetEncryptor(enc) + alerts, err := ss.GetAllAlerts(context.Background()) if err != nil { slog.Error("failed to load alerts", "err", err) os.Exit(1) } - - ss.SetEncryptor(enc) migrated := 0 for _, a := range alerts { if err := ss.UpdateAlert(context.Background(), a.ID, a.Name, a.Type, a.Settings); err != nil { diff --git a/deploy/docker-compose.yml b/deploy/docker-compose.yml index 19452af..b1ecf52 100644 --- a/deploy/docker-compose.yml +++ b/deploy/docker-compose.yml @@ -5,6 +5,13 @@ services: dockerfile: Dockerfile container_name: uptop restart: unless-stopped + read_only: true + cap_drop: + - ALL + security_opt: + - no-new-privileges:true + tmpfs: + - /tmp ports: - "23234:23234" - "8080:8080" diff --git a/internal/importer/kuma.go b/internal/importer/kuma.go index f17022d..2fdc508 100644 --- a/internal/importer/kuma.go +++ b/internal/importer/kuma.go @@ -1,6 +1,8 @@ package importer import ( + "crypto/rand" + "encoding/hex" "encoding/json" "fmt" "os" @@ -156,10 +158,18 @@ func convertKumaMonitor(m KumaMonitor, alertMap map[int]int) models.SiteConfig { site.DNSResolveType = m.DNSResolveType site.DNSServer = m.DNSResolveServer + site.Paused = !m.Active + switch m.Type { case "http": site.URL = m.URL site.CheckSSL = m.ExpiryNotif + case "push": + site.Type = "push" + b := make([]byte, 16) + if _, err := rand.Read(b); err == nil { + site.Token = hex.EncodeToString(b) + } case "ping": if m.Hostname != "" { site.Hostname = m.Hostname