getting-started/troubleshooting.md
Troubleshooting
Stack Deploys But Setup URL Fails
Check container is healthy:
curl -f http://<SERVER_IP>:3000/api/v1/health
If not healthy:
- confirm Portainer mapped port
3000:3000(or yourMINO_PORT) - check container logs for startup errors
container mino-server is unhealthy During Stack Deploy
Cause:
- healthcheck command failed inside container (older image used
curlcheck) - cloudflared dependency waited for healthy status and blocked stack
Fix:
- make sure stack uses current compose from
../reference/docker-compose.md - set
MINO_IMAGE_TAG=mainin Portainer env vars - redeploy stack
If still unhealthy:
- inspect logs in Portainer for
mino-server - verify app health directly:
http://<SERVER_IP>:3000/api/v1/health
Relay Mode Link Fails (relayCode invalid / not found)
Cause:
- relay service cannot see active server connector
- server is not in relay mode or relay URL is incorrect
Fix:
- confirm env vars:
MINO_CONNECTION_MODE=relayMINO_RELAY_URL=https://relay.mino.ink(or your relay URL)
- inspect container logs for
Relay connector started - verify relay health endpoint (
/api/v1/health) if self-hosting relay
401 UNAUTHORIZED On Protected Routes
Cause:
- missing or invalid
X-Mino-Key
Fix:
- fetch latest key from
/api/v1/system/setup(before setup completion) - send header exactly as
X-Mino-Key
CORS Errors In Browser
Cause:
- origin not in server CORS allowlist
Fix:
- set
MINO_CORS_ORIGINSin compose env - include your UI origin (example:
http://localhost:5173)
Cloudflare Tunnel Service Won't Start
Cause:
CF_TUNNEL_TOKENmissing, invalid, or copied with extra spaces
Fix:
- add
CF_TUNNEL_TOKENin Portainer env variables - copy only the raw value after
--tokenfrom Cloudflare - redeploy stack
Note:
- Tunnel sidecar is optional. If you do not set
CF_TUNNEL_TOKEN, Mino still runs in its configured connection mode (relayby default).
Tunnel Runs But Domain Does Not Reach Mino
Cause:
- tunnel has no Public Hostname route to the Mino container
Fix:
- open Cloudflare Tunnel dashboard for your tunnel
- add Public Hostname with:
- Service type
HTTP - URL
http://mino:3000
- Service type
- redeploy stack after saving tunnel changes
manifest unknown During Stack Deploy
Cause:
- container tag does not exist in GHCR (
latestmay lag or be missing)
Fix:
- use the default compose setting
MINO_IMAGE_TAG=main - or set a known version tag in Portainer (example:
MINO_IMAGE_TAG=v0.1.0) - redeploy stack
Setup Link Opens But Does Not Auto-Link
Cause:
- stale web client build or blocked API call (CORS/network)
Fix:
- ensure URL has both params:
serverUrlandapiKey - confirm browser can reach
serverUrland CORS allows the UI origin - update to latest web build and retry the
/linkURL
Data Missing After Redeploy
Cause:
- volume was removed or stack recreated without
mino-data
Fix:
- keep named volume
mino-data - avoid deleting volumes during stack cleanup