Add Canary wallet monitoring app#984
Conversation
|
@tehelsper , do you have any time soon to take a look at this? |
|
I should be able to get to it in the next release. I've got a couple quick comments. Thanks!
|
|
I can update this to v1.4.0, but I’d prefer not to do that yet without testing it on a real myNode device first. v1.4.0 adds new self-hosted behavior around local Mempool integration, and I haven’t had a chance to validate that path on actual myNode hardware yet. ntfy should be fine since it’s configured in Canary’s settings and defaults to ntfy.sh, but local Mempool support on myNode likely deserves a proper follow-up so Canary can detect and use the local instance cleanly. Since I have tested the integration itself on a real myNode box with the current Canary build, I think the safer path for this PR is to keep it on the tested version for now, and then do a follow-up bump to v1.4.0 once I can verify the myNode-specific Mempool behavior properly. |
|
Retested Canary on a fresh myNode machine and updated this branch to v1.4.0. Validation summary:
Changes included in this update:
This has now been pushed to the PR branch for review. |
| # Give backend time to start | ||
| ExecStartPre=/bin/sleep 2 | ||
| # Start frontend container (main process) | ||
| ExecStart=/usr/bin/docker run --rm --name canary-frontend --network host -e API_URL=http://127.0.0.1:3010 -e PORT=3005 schjonhaug/canary-frontend:v1.4.0 |
There was a problem hiding this comment.
How is this 3010 port being used? That's already taken by RTL.
There was a problem hiding this comment.
This also specifically uses the version tagged 1.4.0, it could use latest if the install process always:
- Removes old versions
- Installs new version
- Tags new version as latest
The install_albyhub.sh script might offer a good pattern for how to do this.
| docker rm canary canary-frontend 2>/dev/null || true | ||
|
|
||
| echo "Removing Docker images..." | ||
| docker rmi schjonhaug/canary-backend:v1.3.0 2>/dev/null || true |
There was a problem hiding this comment.
This still removes the old version. Look at install_albyhub.sh lines 24-25 to see if they can help remove old images generically rather than a specific version.
| set -e | ||
|
|
||
| echo "Pulling Canary Docker images..." | ||
| docker pull schjonhaug/canary-backend:v1.4.0 |
There was a problem hiding this comment.
Try using {VERSION} rather than the specific tag here, that way the app can be updated just by updating the JSON file that manages the app.
|
Thanks for the feedback, I've addressed the requested changes and pushed the updates to the PR branch. What changed:
The PR branch has been updated and is ready for another look. |
| "app_tile_running_status_text": "Monitoring", | ||
| "app_tile_default_status_text": "Wallet Monitor", | ||
| "app_tile_button_text": "Open", | ||
| "app_tile_button_href": "http://mynode.local:3005", |
There was a problem hiding this comment.
This link won't work on all devices. Some don't support mynode.local or it could refer to a different device if there is more than one on the same network.
I recommend an Info page to display any app-info, like default logins or something. The generic version of that page has an Open button that will auto launch the app in a separate window based on the current URL.
Try
"app_tile_button_text": "Info",
"app_tile_button_href": "/app/canary/info",
There was a problem hiding this comment.
Thanks, that makes sense. I updated the Canary tile to use the generic info page instead of a hardcoded mynode.local URL:
"app_tile_button_text": "Info",
"app_tile_button_href": "/app/canary/info"I also mirrored the same metadata change into the standalone canary-mynode package and rebuilt the sideload tarball.
|
Merged and I'm testing it now. I'm planning on using a new helper function I just added to cleanup the containers and I'm thinking there may be a cleaner way to start/stop the dual container setup. Maybe that can be done in a follow-up PR. |
|
I made some updates to launch via docker-compose and I added an option to open the app directly rather than having to go through the info page. See this commit: 578afed Seems to be working well! Nice app! |
|
Thanks again for the review and the follow-up compose changes. While sideload-testing Canary on the current released myNode v0.3.43, I found two compatibility issues that are fixed in a small follow-up PR: #1001 The fixes keep the new direct-open behavior for master, while preserving backwards-compatible tile metadata for v0.3.43 and making the Canary install scripts resolve docker-compose.yml from the installed app directory reliably. I tested the rebuilt package on an actual myNode v0.3.43 device and confirmed Canary installs as v1.4.0, the service turns green, and the Open button loads the app on port 3005. |
Description
Adds Canary - a Bitcoin wallet monitoring and early warning system for cold storage.
Features:
Canary connects to the local Electrum server (electrs) to monitor wallets without requiring private keys.
Checklist
List of test device(s)