feat: add admin console, cleanup, and thumbnail workers
- Implement a token-authenticated admin console at `/admin` with overview metrics and file management. - Add a background worker to periodically clean up expired boxes based on `WARPBOX_CLEANUP_EVERY`. - Add a background worker to generate image and video thumbnails based on `WARPBOX_THUMBNAIL_EVERY`. - Update file storage paths to use `@each@` and `@thumb@` prefixes to separate original files from thumbnails. - Add severity fields to startup logs and update configuration templates.
This commit is contained in:
@@ -30,13 +30,13 @@ func main() {
|
||||
|
||||
server, err := httpserver.New(cfg, logger)
|
||||
if err != nil {
|
||||
logger.Error("failed to create server", "source", "startup", "error", err.Error())
|
||||
logger.Error("failed to create server", "source", "startup", "severity", "error", "error", err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
errs := make(chan error, 1)
|
||||
go func() {
|
||||
logger.Info("warpbox server starting", "source", "startup", "addr", cfg.Addr, "env", cfg.Environment)
|
||||
logger.Info("warpbox server starting", "source", "startup", "severity", "dev", "addr", cfg.Addr, "env", cfg.Environment)
|
||||
errs <- server.ListenAndServe()
|
||||
}()
|
||||
|
||||
@@ -46,18 +46,18 @@ func main() {
|
||||
select {
|
||||
case err := <-errs:
|
||||
if err != nil && !errors.Is(err, http.ErrServerClosed) {
|
||||
logger.Error("server stopped unexpectedly", "source", "startup", "error", err.Error())
|
||||
logger.Error("server stopped unexpectedly", "source", "startup", "severity", "error", "error", err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
case sig := <-shutdown:
|
||||
logger.Info("shutdown signal received", "source", "startup", "signal", sig.String())
|
||||
logger.Info("shutdown signal received", "source", "startup", "severity", "dev", "signal", sig.String())
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
||||
defer cancel()
|
||||
|
||||
if err := server.Shutdown(ctx); err != nil {
|
||||
logger.Error("graceful shutdown failed", "source", "startup", "error", err.Error())
|
||||
logger.Error("graceful shutdown failed", "source", "startup", "severity", "error", "error", err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
logger.Info("server stopped", "source", "startup")
|
||||
logger.Info("server stopped", "source", "startup", "severity", "dev")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user