Something went wrong. Try again.
Tea journaling on ATProto (alpha)
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576// Command server runs Oolong in one process.package main
import ( "context" "flag" "fmt" "os" "os/signal" "syscall"
"tangled.org/oolong.social/oolong/internal/atplatform/domain" "tangled.org/oolong.social/oolong/internal/atplatform/server" "tangled.org/oolong.social/oolong/internal/handlers" "tangled.org/oolong.social/oolong/internal/logging" oolongapp "tangled.org/oolong.social/oolong/internal/oolong/app" teahandlers "tangled.org/oolong.social/oolong/internal/oolong/handlers" "tangled.org/oolong.social/oolong/internal/routing"
"github.com/rs/zerolog/log")
type appRun struct { app *domain.App defaultPort string defaultMetricsPort string appRoutes routing.AppRoutes staticPages handlers.StaticPageRenderers}
func main() { knownDIDsFile := flag.String("known-dids", "", "Path to file containing DIDs to backfill on startup (one per line)") flag.Parse()
logging.ConfigureFromEnv(os.Stdout)
ctx, cancel := context.WithCancel(context.Background()) defer cancel()
sigCh := make(chan os.Signal, 1) signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM) go func() { <-sigCh log.Info().Msg("Signal received, shutting down") cancel() }()
runs := []appRun{{ app: oolongapp.New(), defaultPort: "18920", defaultMetricsPort: "9102", appRoutes: teahandlers.Routes{}, staticPages: teahandlers.StaticPages(), }}
if err := runApps(ctx, *knownDIDsFile, runs); err != nil { log.Fatal().Err(err).Msg("Server exited with error") } log.Info().Msg("Stopped")}
func runApps(ctx context.Context, knownDIDsFile string, runs []appRun) error { if len(runs) != 1 { return fmt.Errorf("expected exactly one app, got %d", len(runs)) } run := runs[0] log.Info().Str("app", run.app.Name).Msg("Starting app") return server.Run(ctx, run.app, server.Options{ KnownDIDsPath: knownDIDsFile, DefaultPort: run.defaultPort, DefaultMetricsPort: run.defaultMetricsPort, AppRoutes: run.appRoutes, StaticPages: run.staticPages, })}