archy/AUTH_LOGIN_FIX.md

2.4 KiB

Auth Login Fix

Problem

When trying to login, got error: "Unknown method: auth.login"

Root Cause

The auth.login method was defined in the code, but the config field was prefixed with _ (marking it unused), which prevented the auth logic from accessing dev_mode settings.

Fix Applied

File: core/archipelago/src/api/rpc.rs

Changed:

pub struct RpcHandler {
    _config: Config,  // ❌ Marked as unused
    ...
}

To:

pub struct RpcHandler {
    config: Config,   // ✅ Now accessible
    ...
}

This allows the auth handler to check if we're in dev mode and accept the default password.

How Auth Works Now

Dev Mode (default)

  • Password: password123
  • No setup required
  • Works immediately for development

Production Mode

  • Requires user setup first
  • Uses bcrypt password hashing
  • Stored in data directory

Rebuild & Test

cd /Users/dorian/Projects/archy

# 1. Rebuild backend
./clean-rebuild.sh

# 2. Start dev server
./scripts/dev-start.sh

Choose option 2 (Full stack)

Login

URL: http://localhost:8100

Password: password123

Should log you in successfully! 🎉

Available RPC Methods

The backend now supports:

Auth:

  • auth.login - Login with password
  • auth.logout - Logout

Containers:

  • container-install - Install a container
  • container-start - Start a container
  • container-stop - Stop a container
  • container-remove - Remove a container
  • container-list - List all containers
  • container-status - Get container status
  • container-logs - Get container logs
  • container-health - Get health status

Packages:

  • package.start - Start docker-compose app
  • package.stop - Stop docker-compose app
  • package.restart - Restart docker-compose app

Testing:

  • echo or server.echo - Echo back message

Testing Auth

You can test the auth endpoint directly:

curl -X POST http://localhost:5959/rpc/v1 \
  -H "Content-Type: application/json" \
  -d '{
    "method": "auth.login",
    "params": {
      "password": "password123"
    }
  }'

Expected response:

{
  "result": null,
  "error": null
}

Next Steps

Now that auth is working, you can:

  1. Navigate the UI - All routes should work
  2. Install containers - Try installing Bitcoin Core or Lightning
  3. Manage apps - Start/stop containerized services
  4. View logs - Monitor container output

Auth is now fully functional! 🔐