mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-07 08:27:12 +00:00
Reframe the deployment docs around the actual product story: Fabro runs as a server, and the only deployment question is where that server runs (laptop vs self-hosted Docker). Drop the Render, Fly.io, and DigitalOcean guides and their config files; keep Railway as the managed shortcut. - New: administration/deployment.mdx (overview, two-mode framing) - New: administration/self-host-docker.mdx (compose-first how-to) - Move: administration/deploy-server.mdx -> reference/server-operations.mdx (it was operational reference, not deploy guidance) - Delete: deploy-render.mdx, deploy-fly-io.mdx, deploy-digital-ocean.mdx - Delete: render.yaml, fly.toml, railway.toml, Dockerfile.deploy - docker-compose.yaml: load .env if present so users can drive the stack from a single env file end-to-end - Update internal links and the docs-test that pinned the old path
42 lines
2.4 KiB
Text
42 lines
2.4 KiB
Text
---
|
|
title: "Troubleshooting"
|
|
description: "Diagnosing and resolving common issues with Fabro"
|
|
---
|
|
|
|
## `fabro doctor`
|
|
|
|
The `fabro doctor` command validates your installation:
|
|
|
|
```bash
|
|
fabro doctor # Local config checks + live server diagnostics
|
|
fabro doctor --verbose # Show detailed output for each check
|
|
fabro doctor --server https://fabro.example.com/api/v1
|
|
```
|
|
|
|
It checks:
|
|
- Local user config and storage directory health
|
|
- Server-reported LLM provider connectivity
|
|
- GitHub App, sandbox, and Brave Search credentials
|
|
- Server authentication and crypto configuration
|
|
|
|
## Common issues
|
|
|
|
**Install wizard didn't open in my browser** — `fabro server start` prints the install URL to stderr before attempting to open it. Copy that URL into your browser manually. Auto-open fails on headless Linux hosts, inside most containers, and over SSH sessions without a display.
|
|
|
|
**Server exited after I finished the install wizard** — Expected. The server writes `~/.fabro/settings.toml` and exits cleanly at the end of the wizard. Start it again with `fabro server start` to boot in configured mode, or run it under a supervisor with a restart policy (for example docker-compose `restart: unless-stopped`, systemd, or Railway's restart-on-exit) so the second start happens automatically.
|
|
|
|
**"No API key configured"** — Set at least one provider key with `fabro provider login` or `fabro secret set`, or export it in the server process environment. Run `fabro doctor` to verify connectivity.
|
|
|
|
**Stall watchdog timeouts** — If runs are cancelled unexpectedly, the agent may be stuck or the LLM provider may be slow. Check `FABRO_LOG=debug` output for `Agent.LlmRetry` events. Increase `stall_timeout` in the graph if needed, or add [fallback providers](/core-concepts/models) to handle outages.
|
|
|
|
**Sandbox creation failures** — For Docker: ensure the Docker daemon is running and the configured image exists. For Daytona: verify `DAYTONA_API_KEY` is set and the `gh` CLI is authenticated. For Exe: verify your SSH keys are configured for `exe.dev` and that `ssh exe.dev` connects successfully.
|
|
|
|
**Port already in use** — Change the port with `fabro server start --port 3001` or stop the conflicting process.
|
|
|
|
**SSE streams disconnecting** — If using a reverse proxy, ensure buffering is disabled and the connection timeout is long enough for workflow runs.
|
|
|
|
**Run config validation errors** — Use `fabro preflight` to validate without executing:
|
|
|
|
```bash
|
|
fabro preflight run.toml
|
|
```
|