This commit is contained in:
2025-12-28 00:30:12 -07:00
commit d1fe671704
9 changed files with 1300 additions and 0 deletions

47
main.go Normal file
View File

@@ -0,0 +1,47 @@
package main
import (
"context"
"errors"
"log"
"os"
"os/signal"
"syscall"
"time"
"teachat/internal"
"github.com/charmbracelet/ssh"
)
const (
port = 23234
host = "0.0.0.0"
)
func main() {
internal.InitDB()
srv, err := internal.NewServer(host, port)
if err != nil {
log.Fatalln(err)
}
done := make(chan os.Signal, 1)
signal.Notify(done, os.Interrupt, syscall.SIGINT, syscall.SIGTERM)
log.Printf("Starting SSH server on %s:%d", host, port)
go func() {
if err = srv.ListenAndServe(); err != nil && !errors.Is(err, ssh.ErrServerClosed) {
log.Fatalln(err)
}
}()
<-done
log.Println("Stopping server...")
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
if err := srv.Shutdown(ctx); err != nil {
log.Fatalln(err)
}
}