Skip to content

Conversation

@oren-z0
Copy link
Contributor

@oren-z0 oren-z0 commented Feb 2, 2026

App Submission

App name

Holesail Switchboard

256x256 SVG icon

Created with ChatGPT and some GIMP, I don't know how to turn this to an SVG:

holesail-switchboard-logo

Gallery Images

127 0 0 1_5002_ 127 0 0 1_5002_ (4) 127 0 0 1_5002_ (3) 127 0 0 1_5002_ (2) 127 0 0 1_5002_ (1)

I have tested my app on:

  • umbrelOS on a Raspberry Pi
  • umbrelOS on an Umbrel Home
  • umbrelOS on Linux VM

This app uses ports 3161-3170 for its clients. For example when the user connects client 3161 to a remote Holesail Server "hs://0000...", he could access that server via http://umbrel.local:3161.

@oren-z0 oren-z0 force-pushed the holesail-switchboard branch 2 times, most recently from 7458765 to 8253052 Compare February 2, 2026 17:04
@oren-z0 oren-z0 force-pushed the holesail-switchboard branch from 8253052 to 41b721c Compare February 2, 2026 17:04
Copy link
Collaborator

@al-lac al-lac left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @oren-z0,

thanks for this really great and useful submission! 🔝 🔌

Tested it on my dev instance and everything is working nicely. Was able to connect to the UI itself via the Holesail app on my Phone. ⚡

Could you explain to me what the clients actually do or maybe add this to the Guide?

Other than that I only have some minor suggestions about formatting, really great job on the submission! 👏

@al-lac al-lac added the awaiting changes Waiting for contributor to make requested changes label Feb 5, 2026
oren-z0 and others added 3 commits February 5, 2026 15:02
Co-authored-by: Alexander L. <lackner.alex@gmail.com>
Co-authored-by: Alexander L. <lackner.alex@gmail.com>
@github-actions
Copy link

github-actions bot commented Feb 5, 2026

🎉   Linting finished with no errors or warnings   🎉

Thank you for your submission! This is an automated linter that checks for common issues in pull requests to the Umbrel App Store.

Please review the linting results below and make any necessary changes to your submission.

Linting Results

Severity File Description
ℹ️ holesail-switchboard/docker-compose.yml External port mapping "3161:3161":
Port mappings may be unnecessary for the app to function correctly. Docker's internal DNS resolves container names to IP addresses within the same network. External access to the web interface is handled by the app_proxy container. Port mappings are only needed if external access is required to a port not proxied by the app_proxy, or if an app needs to expose multiple ports for its functionality (e.g., DHCP, DNS, P2P, etc.).
ℹ️ holesail-switchboard/docker-compose.yml External port mapping "3162:3162":
Port mappings may be unnecessary for the app to function correctly. Docker's internal DNS resolves container names to IP addresses within the same network. External access to the web interface is handled by the app_proxy container. Port mappings are only needed if external access is required to a port not proxied by the app_proxy, or if an app needs to expose multiple ports for its functionality (e.g., DHCP, DNS, P2P, etc.).
ℹ️ holesail-switchboard/docker-compose.yml External port mapping "3163:3163":
Port mappings may be unnecessary for the app to function correctly. Docker's internal DNS resolves container names to IP addresses within the same network. External access to the web interface is handled by the app_proxy container. Port mappings are only needed if external access is required to a port not proxied by the app_proxy, or if an app needs to expose multiple ports for its functionality (e.g., DHCP, DNS, P2P, etc.).
ℹ️ holesail-switchboard/docker-compose.yml External port mapping "3164:3164":
Port mappings may be unnecessary for the app to function correctly. Docker's internal DNS resolves container names to IP addresses within the same network. External access to the web interface is handled by the app_proxy container. Port mappings are only needed if external access is required to a port not proxied by the app_proxy, or if an app needs to expose multiple ports for its functionality (e.g., DHCP, DNS, P2P, etc.).
ℹ️ holesail-switchboard/docker-compose.yml External port mapping "3165:3165":
Port mappings may be unnecessary for the app to function correctly. Docker's internal DNS resolves container names to IP addresses within the same network. External access to the web interface is handled by the app_proxy container. Port mappings are only needed if external access is required to a port not proxied by the app_proxy, or if an app needs to expose multiple ports for its functionality (e.g., DHCP, DNS, P2P, etc.).
ℹ️ holesail-switchboard/docker-compose.yml External port mapping "3166:3166":
Port mappings may be unnecessary for the app to function correctly. Docker's internal DNS resolves container names to IP addresses within the same network. External access to the web interface is handled by the app_proxy container. Port mappings are only needed if external access is required to a port not proxied by the app_proxy, or if an app needs to expose multiple ports for its functionality (e.g., DHCP, DNS, P2P, etc.).
ℹ️ holesail-switchboard/docker-compose.yml External port mapping "3167:3167":
Port mappings may be unnecessary for the app to function correctly. Docker's internal DNS resolves container names to IP addresses within the same network. External access to the web interface is handled by the app_proxy container. Port mappings are only needed if external access is required to a port not proxied by the app_proxy, or if an app needs to expose multiple ports for its functionality (e.g., DHCP, DNS, P2P, etc.).
ℹ️ holesail-switchboard/docker-compose.yml External port mapping "3168:3168":
Port mappings may be unnecessary for the app to function correctly. Docker's internal DNS resolves container names to IP addresses within the same network. External access to the web interface is handled by the app_proxy container. Port mappings are only needed if external access is required to a port not proxied by the app_proxy, or if an app needs to expose multiple ports for its functionality (e.g., DHCP, DNS, P2P, etc.).
ℹ️ holesail-switchboard/docker-compose.yml External port mapping "3169:3169":
Port mappings may be unnecessary for the app to function correctly. Docker's internal DNS resolves container names to IP addresses within the same network. External access to the web interface is handled by the app_proxy container. Port mappings are only needed if external access is required to a port not proxied by the app_proxy, or if an app needs to expose multiple ports for its functionality (e.g., DHCP, DNS, P2P, etc.).
ℹ️ holesail-switchboard/docker-compose.yml External port mapping "3170:3170":
Port mappings may be unnecessary for the app to function correctly. Docker's internal DNS resolves container names to IP addresses within the same network. External access to the web interface is handled by the app_proxy container. Port mappings are only needed if external access is required to a port not proxied by the app_proxy, or if an app needs to expose multiple ports for its functionality (e.g., DHCP, DNS, P2P, etc.).
ℹ️ holesail-switchboard/docker-compose.yml Potentially using unsafe user in service "web":
The default container user "root" can lead to security vulnerabilities. If you are using the root user, please try to specify a different user (e.g. "1000:1000") in the compose file or try to set the UID/PUID and GID/PGID environment variables to 1000.

Legend

Symbol Description
Error: This must be resolved before this PR can be merged.
⚠️ Warning: This is highly encouraged to be resolved, but is not strictly mandatory.
ℹ️ Info: This is just for your information.

@oren-z0
Copy link
Contributor Author

oren-z0 commented Feb 5, 2026

Thanks for the review @al-lac , I've added a link in the dashboard to: https://github.com/oren-z0/holesail-switchboard/blob/main/docs/Umbrel.md , where I explain how to use the tool.
I've also added the link to the description.

The clients allow you to connect to other Holesail-servers, that could be running on other Umbrels.
So for example you could connect two Bitcoin Core apps P2P even if they are both behind NAT, and maybe even lightning channels.

Disclaimer: I'm not part of Holesail's core team. I just really loved the project so I (vibe) coded a UI around it.
I also published LNbits Holesail Proxy in the past, back when I did not fully understood how Umbrel works - I thought apps can only communicate with other app containers if they set them as dependencies. Then I realized the dependency configuration is just for the boot order, and the communication between apps is much more permissive - so a global Holesail Switchboard app could work.

@oren-z0 oren-z0 requested a review from al-lac February 5, 2026 14:14
@al-lac
Copy link
Collaborator

al-lac commented Feb 5, 2026

Hey @oren-z0,

Thanks a lot for making the requested changes! ⚡

And got it, now I also get what the clients are for.

I still remember the LNbits Holesail Proxy app, would you say the new app is kind of a replacement for it as it support all apps?

@al-lac al-lac added awaiting gallery assets Umbrel team to make gallery assets and removed awaiting changes Waiting for contributor to make requested changes labels Feb 5, 2026
@oren-z0
Copy link
Contributor Author

oren-z0 commented Feb 5, 2026

@al-lac Yes, it makes LNbits Holesail Proxy replaceable by setting a server to point to lnbits_web_1 on port 3007.
Do you consider ever limiting which containers can talk to which? Maybe by creating other sub-networks other than umbrel_main_network? I've noticed that the node-red-standalone app is not on that sub network.

Also, it would be nice to publish a table mapping app names to their web-container name + port, and possibly other internal containers that the user might want to connect remotely (probably not database, but a connection to Bitcoin Core RPC/P2P could be relevant).

@al-lac
Copy link
Collaborator

al-lac commented Feb 6, 2026

@oren-z0, great, maybe we can phase this app out then.

Usually everything is in one sub network, but apps that use host networking are of course a different thing. (like node-red-standalone).

Good idea, we can keep this in mind for the future @nmfretz.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting gallery assets Umbrel team to make gallery assets

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants