diff --git a/cmd/llm-proxy/main.go b/cmd/llm-proxy/main.go index ace43654..74cfbd61 100644 --- a/cmd/llm-proxy/main.go +++ b/cmd/llm-proxy/main.go @@ -1,16 +1,22 @@ package main import ( + "flag" "log" + "os" "llm-proxy/internal/config" "llm-proxy/internal/db" "llm-proxy/internal/server" "github.com/joho/godotenv" + "golang.org/x/crypto/bcrypt" ) func main() { + resetAdmin := flag.Bool("reset-admin", false, "Reset admin password to admin123") + flag.Parse() + // Load environment variables if err := godotenv.Load(); err != nil { log.Println("No .env file found") @@ -28,6 +34,16 @@ func main() { log.Fatalf("Failed to initialize database: %v", err) } + if *resetAdmin { + hash, _ := bcrypt.GenerateFromPassword([]byte("admin123"), 12) + _, err = database.Exec("UPDATE users SET password_hash = ?, must_change_password = 1 WHERE username = 'admin'", string(hash)) + if err != nil { + log.Fatalf("Failed to reset admin password: %v", err) + } + log.Println("Admin password has been reset to 'admin123'") + os.Exit(0) + } + // Initialize server s := server.NewServer(cfg, database) diff --git a/internal/db/db.go b/internal/db/db.go index 508358e8..a82a63bd 100644 --- a/internal/db/db.go +++ b/internal/db/db.go @@ -159,7 +159,7 @@ func (db *DB) RunMigrations() error { } if count == 0 { - hash, err := bcrypt.GenerateFromPassword([]byte("admin"), 12) + hash, err := bcrypt.GenerateFromPassword([]byte("admin123"), 12) if err != nil { return fmt.Errorf("failed to hash default password: %w", err) } @@ -167,7 +167,7 @@ func (db *DB) RunMigrations() error { if err != nil { return fmt.Errorf("failed to insert default admin: %w", err) } - log.Println("Created default admin user with password 'admin' (must change on first login)") + log.Println("Created default admin user with password 'admin123' (must change on first login)") } // Default client