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
Changed files
+24 -9
internal
server
+16
.env.example
···
+
# Battleship Arena Configuration
+
+
# Server Configuration
+
BATTLESHIP_HOST=0.0.0.0
+
BATTLESHIP_SSH_PORT=2222
+
BATTLESHIP_WEB_PORT=8081
+
+
# External URL (used in logs and user-facing messages)
+
BATTLESHIP_EXTERNAL_URL=http://localhost:8081
+
+
# Storage
+
BATTLESHIP_UPLOAD_DIR=./submissions
+
BATTLESHIP_RESULTS_DB=./results.db
+
+
# Admin passcode for batch uploads and testing
+
BATTLESHIP_ADMIN_PASSCODE=battleship-admin-override
+8 -9
internal/server/auth.go
···
"errors"
"fmt"
"log"
-
"os"
"strings"
"github.com/charmbracelet/ssh"
···
"battleship-arena/internal/storage"
)
-
var adminPasscode string
+
var (
+
adminPasscode string
+
externalURL string
+
)
-
func init() {
-
// Load admin passcode from environment variable
-
adminPasscode = os.Getenv("BATTLESHIP_ADMIN_PASSCODE")
-
if adminPasscode == "" {
-
adminPasscode = "battleship-admin-override" // Default fallback
-
log.Printf("⚠️ Using default admin passcode. Set BATTLESHIP_ADMIN_PASSCODE env var for security.")
-
}
+
func SetConfig(passcode, url string) {
+
adminPasscode = passcode
+
externalURL = url
+
log.Printf("✓ Config loaded: passcode=%s..., url=%s", passcode[:10], url)
}
func PublicKeyAuthHandler(ctx ssh.Context, key ssh.PublicKey) bool {