This repository has been archived on 2026-02-07. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
2026-01-07 09:17:03 +01:00

49 lines
1.2 KiB
Go

package main
import (
"flag"
"log"
"net/http"
"os"
)
func main() {
log.SetFlags(log.LstdFlags | log.Lshortfile)
configPath := flag.String("config", "", "Path to config file (or set CONFIG_FILE env var)")
flag.Parse()
if *configPath == "" {
*configPath = os.Getenv("CONFIG_FILE")
}
if *configPath == "" {
log.Fatal("Config file path required: use -config flag or CONFIG_FILE env var")
}
config, err := LoadConfig(*configPath)
if err != nil {
log.Fatalf("Failed to load configuration: %v", err)
}
// Ensure data directory exists
if err := os.MkdirAll(config.DataDir, 0755); err != nil {
log.Fatalf("Failed to create data directory %s: %v", config.DataDir, err)
}
storage := NewStorage(config.DataDir)
propagator := NewPropagator(config.Peers)
handler := NewHandler(config, storage, propagator)
http.Handle("/data", handler)
addr := ":" + config.ListenPort
log.Printf("Starting server on %s", addr)
log.Printf("Configured files: %d", len(config.Files))
log.Printf("Peers: %v", config.Peers)
log.Printf("Data directory: %s", config.DataDir)
if err := http.ListenAndServe(addr, nil); err != nil {
log.Fatalf("Server failed: %v", err)
}
}