added media fixes, search, push updates, pwa, metrics. preparing release 1.0
CI / Go (build + vet + test) (push) Canceled after 0s
CI / Web (build + lint) (push) Canceled after 0s

This commit is contained in:
vantablackTea
2026-09-27 23:26:15 +03:00
parent 855a62755c
commit 6fc6d977bf
59 changed files with 6823 additions and 113 deletions
+26
View File
@@ -7,6 +7,7 @@ package main
import (
"context"
"errors"
"log/slog"
"net/http"
"os"
"os/signal"
@@ -17,6 +18,8 @@ import (
"messenger/internal/media"
"messenger/internal/platform/config"
"messenger/internal/platform/logger"
"messenger/internal/platform/metrics"
"messenger/internal/platform/version"
"messenger/internal/realtime"
"messenger/internal/server"
"messenger/internal/store"
@@ -33,6 +36,9 @@ func main() {
os.Exit(1)
}
log.Info("starting messenger", "version", version.Version)
metrics.Init(version.Version)
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
defer stop()
@@ -59,6 +65,8 @@ func main() {
os.Exit(1)
}
go cleanupLoop(ctx, st, log)
httpServer := server.New(cfg, log, st, tm, hub, mediaStore)
// Run the server in a goroutine so that shutdown can be triggered
@@ -88,3 +96,21 @@ func main() {
}
log.Info("server stopped cleanly")
}
// cleanupLoop periodically purges expired sessions and revocations.
func cleanupLoop(ctx context.Context, st *store.Store, log *slog.Logger) {
ticker := time.NewTicker(time.Hour)
defer ticker.Stop()
for {
select {
case <-ctx.Done():
return
case <-ticker.C:
if n, err := st.CleanupSessions(ctx); err != nil {
log.Error("session cleanup failed", "error", err)
} else if n > 0 {
log.Info("cleaned up sessions", "count", n)
}
}
}
}