WebSocket-to-SSH proxy on :8080. Browser connects via xterm.js, server bridges to localhost:2222 SSH. Single HTML file, CDN deps. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
36 lines
707 B
Go
36 lines
707 B
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
|
|
"github.com/tolelom/catacombs/game"
|
|
"github.com/tolelom/catacombs/server"
|
|
"github.com/tolelom/catacombs/store"
|
|
"github.com/tolelom/catacombs/web"
|
|
)
|
|
|
|
func main() {
|
|
os.MkdirAll("data", 0755)
|
|
|
|
db, err := store.Open("data/catacombs.db")
|
|
if err != nil {
|
|
log.Fatalf("Failed to open database: %v", err)
|
|
}
|
|
defer db.Close()
|
|
|
|
lobby := game.NewLobby()
|
|
|
|
// Start web terminal server in background
|
|
go func() {
|
|
if err := web.Start(":8080", 2222); err != nil {
|
|
log.Printf("Web server error: %v", err)
|
|
}
|
|
}()
|
|
|
|
log.Println("Catacombs server starting — SSH :2222, Web :8080")
|
|
if err := server.Start("0.0.0.0", 2222, lobby, db); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|