Remove Ollama service from Docker Compose and clean up associated volume

This commit is contained in:
Dorian 2026-01-28 11:03:34 +00:00
parent 2b01cab400
commit f595af5fa4
4 changed files with 131 additions and 17 deletions

127
AUTH_LOGIN_FIX.md Normal file
View File

@ -0,0 +1,127 @@
# 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:
```rust
pub struct RpcHandler {
_config: Config, // ❌ Marked as unused
...
}
```
To:
```rust
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
```bash
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:
```bash
curl -X POST http://localhost:5959/rpc/v1 \
-H "Content-Type: application/json" \
-d '{
"method": "auth.login",
"params": {
"password": "password123"
}
}'
```
**Expected response:**
```json
{
"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!** 🔐

View File

@ -30,7 +30,7 @@ struct RpcError {
const DEV_DEFAULT_PASSWORD: &str = "password123";
pub struct RpcHandler {
_config: Config,
config: Config,
auth_manager: AuthManager,
orchestrator: Option<Arc<DevContainerOrchestrator>>,
}
@ -47,7 +47,7 @@ impl RpcHandler {
};
Ok(Self {
_config: config,
config,
auth_manager,
orchestrator,
})
@ -145,7 +145,7 @@ impl RpcHandler {
let is_setup = self.auth_manager.is_setup().await?;
if !is_setup {
// Dev mode: allow default password so UI can log in without running setup
if self._config.dev_mode && password == DEV_DEFAULT_PASSWORD {
if self.config.dev_mode && password == DEV_DEFAULT_PASSWORD {
return Ok(serde_json::Value::Null);
}
return Err(anyhow::anyhow!(

View File

@ -207,18 +207,6 @@ services:
networks:
- archy-net
# Ollama (Local LLM)
ollama:
image: ollama/ollama:latest
container_name: archy-ollama
ports:
- "11434:11434"
volumes:
- ollama-data:/root/.ollama
restart: unless-stopped
networks:
- archy-net
# SearXNG
searxng:
image: searxng/searxng:latest
@ -466,7 +454,6 @@ volumes:
fedimint-data:
lnd-data:
mysql-mempool-data:
ollama-data:
searxng-data:
onlyoffice-data:
onlyoffice-logs:

View File

@ -82,7 +82,7 @@ define(['./workbox-21a80088'], (function (workbox) { 'use strict';
"revision": "3ca0b8505b4bec776b69afdba2768812"
}, {
"url": "index.html",
"revision": "0.hmb637vgmos"
"revision": "0.su3n1rkrf7k"
}], {});
workbox.cleanupOutdatedCaches();
workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), {