a geicko-2 based round robin ranking system designed to test c++ battleship submissions battleship.dunkirk.sh

feat: add config

dunkirk.sh e7654ddb 34636947

verified
+24 -9
+16
.env.example
··· 1 + # Battleship Arena Configuration 2 + 3 + # Server Configuration 4 + BATTLESHIP_HOST=0.0.0.0 5 + BATTLESHIP_SSH_PORT=2222 6 + BATTLESHIP_WEB_PORT=8081 7 + 8 + # External URL (used in logs and user-facing messages) 9 + BATTLESHIP_EXTERNAL_URL=http://localhost:8081 10 + 11 + # Storage 12 + BATTLESHIP_UPLOAD_DIR=./submissions 13 + BATTLESHIP_RESULTS_DB=./results.db 14 + 15 + # Admin passcode for batch uploads and testing 16 + BATTLESHIP_ADMIN_PASSCODE=battleship-admin-override
+8 -9
internal/server/auth.go
··· 4 4 "errors" 5 5 "fmt" 6 6 "log" 7 - "os" 8 7 "strings" 9 8 10 9 "github.com/charmbracelet/ssh" ··· 14 13 "battleship-arena/internal/storage" 15 14 ) 16 15 17 - var adminPasscode string 16 + var ( 17 + adminPasscode string 18 + externalURL string 19 + ) 18 20 19 - func init() { 20 - // Load admin passcode from environment variable 21 - adminPasscode = os.Getenv("BATTLESHIP_ADMIN_PASSCODE") 22 - if adminPasscode == "" { 23 - adminPasscode = "battleship-admin-override" // Default fallback 24 - log.Printf("⚠️ Using default admin passcode. Set BATTLESHIP_ADMIN_PASSCODE env var for security.") 25 - } 21 + func SetConfig(passcode, url string) { 22 + adminPasscode = passcode 23 + externalURL = url 24 + log.Printf("✓ Config loaded: passcode=%s..., url=%s", passcode[:10], url) 26 25 } 27 26 28 27 func PublicKeyAuthHandler(ctx ssh.Context, key ssh.PublicKey) bool {