Repository navigation
Troubleshooting and FAQ
thenotoriousJeremy edited this page Aug 20, 2026
·
2 revisions
Find solutions to common questions, installation issues, and runtime errors.
-
Root Cause: Web browsers enforce strict security restrictions and disable camera access on plain
http://connections to remote IP addresses. -
Solution:
- Connect via HTTPS: use
https://<YOUR-SERVER-IP>:3443or access Bindarr through a reverse proxy with a valid SSL certificate (e.g.https://cards.yourdomain.com). - Plain
http://only permits camera access onlocalhost(when browsing on the host machine itself).
- Connect via HTTPS: use
- Root Cause: Bindarr generates a self-signed TLS certificate on first boot so that HTTPS works out of the box without requiring domain setup.
-
Solution:
- Chrome / Edge / Firefox: Click Advanced → Proceed to [IP] (unsafe).
- iOS Safari: Tap Show Details → Visit this website → Confirm.
-
Permanent Fix: Set up a reverse proxy (Caddy or Nginx) with a free Let's Encrypt certificate, or mount your own cert and set
SSL_CERT_PATHandSSL_KEY_PATH.
-
Root Cause: The neural network models (
cornelius.onnx,milo.onnx) or scan catalogs have not yet been downloaded. -
Solution:
- Run the model fetch script inside the container:
docker exec bindarr node scripts/fetch-models.mjs --catalogs - Restart the container:
docker compose restart
- Run the model fetch script inside the container:
-
Root Cause: The card's artwork did not exceed the confidence gap floor (
GAP_FLOOR = 0.10), or the card's set is not present in your built catalog. -
Solution:
- Check Admin → Catalogs to verify that the catalog for your game and language is fully built.
- Ensure the card is well-lit without direct light glare or harsh shadows over the artwork.
- Use Set Pinning in the scanner UI to narrow the comparison scope to the exact set.
-
Explanation: Bindarr does not store plaintext passwords and has no self-service password recovery mechanism by default. The
DEFAULT_ADMIN_PASSWORDvariable is only applied when theuserstable is completely empty. -
Solution:
- If you are the only user and have a recent JSON/CSV collection export:
- Stop the container:
docker compose stop - Remove the database:
docker run --rm -v bindarr-data:/data alpine rm /data/bindarr.db* - Start the container:
docker compose start - Set up a new admin account on first visit and re-import your collection.
- Stop the container:
- If you have command-line SQLite access: you can delete or update the admin row in
users.
- If you are the only user and have a recent JSON/CSV collection export:
-
Root Cause: Without
TRUST_PROXY=1, all incoming requests appear to originate from the reverse proxy's internal IP address (e.g.172.18.0.1), causing all users to share a single rate-limit bucket. -
Solution:
- Add
TRUST_PROXY=1to your environment variables indocker-compose.yml.
- Add
-
Solution:
- Set
PUBLIC_BASE_URL=https://cards.yourdomain.comin your environment variables, or update the External Base URL in Admin → Settings.
- Set
- Explanation: To avoid exhausting third-party API rate limits, Bindarr only sweeps daily prices for sets from which you currently own at least one card.
-
Solution:
- Adding a card from that set to your collection will automatically schedule and fetch market pricing for that set.
- Explanation: Drag gestures on touch devices conflict with native swipe navigation.
-
Solution:
- Tap the Arrange button in the container header to enter touch arrangement mode: tap a card to select it, then tap the destination pocket to place or swap it.
Bindarr is licensed under the MIT License.
Need help? Check Troubleshooting & FAQ or open an issue on GitHub.