-
Notifications
You must be signed in to change notification settings - Fork 501
App Submission: Bassin #3375
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
App Submission: Bassin #3375
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @duckaxe,
great submission!
Would it be possible to package all of the website files (html, js, css) into a separate container instead of serving them via the static-file-server
one?
Otherwise we will have a hard time with updating in case something needs to be changed.
@al-lac I have already tried it. It's complicated because the CKPOOL (log & json) files and front-end assets must be in the same folder ( I noticed that some Umbrel apps include front-end assets. That's why I did it this way. It is and will remain a single-page application. Only the JS and CSS files will change, if at all. Everything else stays the same. This makes things much easier for me. |
@al-lac I found a way to extract the user interface into a docker image. It's much cleaner now ;) |
Awesome work @duckaxe! 🚀 I made some adaptions to the description formatting and removed the leftover directory. |
@al-lac Thanks for that. You added |
Hey @duckaxe, really great work on those assets! 🔥 I added the label as there is usually a final design check and possible adaptions before apps make it to the store. But don't worry, does not take too long usually! |
❤️ |
Hope it happens soon. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @duckaxe, thanks a lot for your patience. The app store assets are now ready.
Upon reviewing the app once more together with @nmfretz we found the following topics that should be addressed before the go live:
- There is a race condition for chkpool as it is starting up before the init container is done creating the required folders and config files. This is not a deal breaker as chkpool retries until the files are there, but you may want to take a look at it:
bassin_ckpool_1 | [2025-10-08 12:28:14.194] Json decode error for config file /config/ckpool.conf: (-1): unable to open /config/ckpool.conf: No such file or directory
bassin_ckpool_1 | Failed to make log directory logs/
- It appears that any ckpool error, including cases where bitcoind isn't fully synced, results in the UI showing nothing but a pulsing loading animation.
I also suggested some changes to the tagline and description.
Once these points are cleared up, we should be able to merge.
Co-authored-by: Alexander L. <[email protected]>
Co-authored-by: Alexander L. <[email protected]>
Co-authored-by: Alexander L. <[email protected]>
@al-lac Thank you for your comments.
I would deploy the current version and wait for user feedback to see how many users have a problem with it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @duckaxe,
About 1), the suggested changes should fix this.
For 2), fine for us!
One last thing, the app does not work on processors that do not support the AVX2 instruction set. Please look into building the container without it or maybe there is already a fix upstream.
bassin/docker-compose.yml
Outdated
APP_HOST: bassin_www_1 | ||
APP_PORT: 80 | ||
PROXY_AUTH_ADD: "false" | ||
container_name: bassin_app_proxy_1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is generated automatically by umbrelOS.
container_name: bassin_app_proxy_1 |
bassin/docker-compose.yml
Outdated
volumes: | ||
- ${APP_DATA_DIR}/data/config:/config:ro | ||
- ${APP_DATA_DIR}/data/www:/www | ||
container_name: bassin_ckpool_1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is generated automatically by umbrelOS.
container_name: bassin_ckpool_1 |
depends_on: | ||
- ui | ||
restart: on-failure | ||
container_name: bassin_www_1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is generated automatically by umbrelOS.
container_name: bassin_www_1 |
bassin/docker-compose.yml
Outdated
entrypoint: /bin/sh -c '/opt/ckpool/src/ckpool -k -B -c /config/ckpool.conf' | ||
user: "1000:1000" | ||
depends_on: | ||
- init |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This makes sure that ckpool
only gets started after init
is done.
- init | |
init: | |
condition: service_completed_successfully |
|
Severity | File | Description |
---|---|---|
ℹ️ | bassin/docker-compose.yml |
External port mapping "3456:3333/tcp": 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.). |
ℹ️ | bassin/docker-compose.yml |
Potentially using unsafe user in service "init": 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. |
bassin/umbrel-app.yml |
"icon" and "gallery" needs to be empty for new app submissions: The "icon" and "gallery" fields must be empty for new app submissions as it is being created by the Umbrel team. |
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. |
@al-lac Thank you very much for improvements. I didn't remove the |
Hey @duckaxe, thanks a lot for making the adaptions! 👍 Really weird that it does not work without the Did you also check the issue with the ckpool image? Did not see a change here, so the app would still be broken on some amd64 devices. |
@al-lac the ckpool image was created by using the following command where amd64 is included: |
A zero-fee Bitcoin solo mining pool for umbrellOS. Run your own CKPOOL at home.
App Submission
Bassin
...
256x256 SVG icon
...
Gallery images
App Screenshots
A zero-fee Bitcoin Solo Mining Pool for your Umbrel.
Every decentralized share counts.
No setup. Just point your miner to Bassin.
...
I have tested my app on: