Operations
All operations go through bin/vol at the repository root. A full command list is in
Self-hosting with bin/vol.
Start order
Section titled “Start order”bin/vol up performs, in order:
docker startof the RAGFlow stack:ragflow-mysql,ragflow-redis,ragflow-es-01,ragflow-minio,ragflow-server; waits for Elasticsearch (yellow) and the RAGFlow API.docker startofollamaandtei-reranker; connects Ollama to thedocker_ragflownetwork and warmsbge-m3withkeep_alive: -1so the first query is fast.docker compose up -d --build --waitforvol-apiandcloudflared(infra/compose/compose.yml).- Prints
bin/vol status.
bin/vol down stops only VOL services; bin/vol down --all also stops GPU and RAGFlow — always with
docker stop, never removing containers or volumes.
Start at boot
Section titled “Start at boot”bin/vol install-serviceprints the sudo commands that install a vol.service systemd unit (Type=oneshot, ExecStart=bin/vol up,
ExecStop=bin/vol down). Run them once as an administrator.
Health and logs
Section titled “Health and logs”| Check | Command |
|---|---|
| Everything | bin/vol status |
| API | curl -s localhost:8010/v1/health |
| Logs | bin/vol logs vol-api, bin/vol logs cloudflared |
| Restart one service | bin/vol restart vol-api |
Observability
Section titled “Observability”bin/vol obs up starts the shared observability stack: Grafana + Loki for logs and dashboards,
Langfuse for LLM traces (prompts, latency, token usage per chat), and GlitchTip (Sentry-compatible)
for frontend and API errors. The app reports errors when VITE_SENTRY_DSN is set.
Updating
Section titled “Updating”git pullbin/vol restart vol-api # code-only changesbin/vol up # rebuilds images when Dockerfiles or dependencies changeFrontends deploy automatically to Cloudflare Pages from GitHub (main → production, develop → preview).
Updating the docs assistant
Section titled “Updating the docs assistant”After changing these docs, regenerate the RAGFlow export and re-upload it to the vol-docs dataset — see
Ask AI pipeline.
Backups
Section titled “Backups”The state that matters lives in RAGFlow’s MySQL, MinIO and Elasticsearch volumes, the vol-api SQLite file
(API keys) and the graph artifacts. Back them up with the containers stopped (bin/vol down --all), then
bin/vol up.