27 lines
659 B
Go
27 lines
659 B
Go
// Beach is a one-page control panel for a homelab: containers, disks, host load and tunnels.
|
|
package main
|
|
|
|
import (
|
|
"flag"
|
|
"log"
|
|
"net/http"
|
|
"time"
|
|
|
|
"git.veillax.com/Veillax/beach/internal/beach"
|
|
)
|
|
|
|
func main() {
|
|
listen := flag.String("listen", ":8095", "address to listen on")
|
|
data := flag.String("data", "beach.db", "path of the SQLite file")
|
|
flag.Parse()
|
|
|
|
st, err := beach.OpenStore(*data)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer st.Close()
|
|
srv := &http.Server{Addr: *listen, Handler: beach.NewServer(st), ReadHeaderTimeout: 10 * time.Second}
|
|
log.Printf("Beach listening on %s (data: %s)", *listen, *data)
|
|
log.Fatal(srv.ListenAndServe())
|
|
}
|