Skip to content
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

App Submission: Super Productivity #1812

Open
wants to merge 28 commits into
base: master
Choose a base branch
from

Conversation

dennysubke
Copy link
Contributor

App Submission

Super Productivity

...

Icon

bNDXJHt - Imgur

...

Gallery images

a

b

c

d

...

I have tested my app on:

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

@dennysubke
Copy link
Contributor Author

dennysubke commented Nov 17, 2024

I unfortunately noticed too late that the Docker image johannesjo/super-productivity:v10.1.1 does not support arm64 architectures. It might make sense to wait for a future version that offers multi-architecture support.

It's a shame, the app is really great.

@dennysubke
Copy link
Contributor Author

FYI:

I have opened an issue on the developer site:

johannesjo/super-productivity#3694

@dennysubke
Copy link
Contributor Author

dennysubke commented Nov 19, 2024

The PR for the multi-arch image has been created and is ready - just waiting for it to be merged now.

johannesjo/super-productivity#3699

@nmfretz
Copy link
Contributor

nmfretz commented Nov 20, 2024

The PR for the multi-arch image has been created and is ready - just waiting for it to be merged now.

Nice! Awesome work reaching out on their GitHub @dennysubke and coordinating 👑.

Ping me when it's ready to go.

@nmfretz nmfretz marked this pull request as draft November 20, 2024 04:47
@nmfretz nmfretz added the missing arm64 support Docker image doesn’t support required arm64 architecture label Nov 20, 2024
Copy link

github-actions bot commented Dec 1, 2024

⚠️   Linting finished with 1 warning   ⚠️

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
ℹ️ super-productivity/docker-compose.yml Mounted file/directory "/super-productivity/webdav/webdav.yaml" doesn't exist:
The volume "${APP_DATA_DIR}/webdav/webdav.yaml:/config.yml:ro" tries to mount the file/directory "/super-productivity/webdav/webdav.yaml", but it is not present. This can lead to permission errors!
ℹ️ super-productivity/docker-compose.yml External port mapping "8021:80":
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.).
ℹ️ super-productivity/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.
ℹ️ super-productivity/docker-compose.yml Potentially using unsafe user in service "webdav":
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.
⚠️ super-productivity/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.

@dennysubke
Copy link
Contributor Author

The PR for the multi-arch image has been created and is ready - just waiting for it to be merged now.

Nice! Awesome work reaching out on their GitHub @dennysubke and coordinating 👑.

Ping me when it's ready to go.

Ping! 🎉

@dennysubke dennysubke marked this pull request as ready for review December 1, 2024 19:06
@nmfretz nmfretz removed the missing arm64 support Docker image doesn’t support required arm64 architecture label Dec 18, 2024
Copy link
Contributor

@nmfretz nmfretz left a comment

Choose a reason for hiding this comment

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

Thanks for pinging me @dennysubke! I have left a review below. When you dig in to the webdav backend can you please do some tests to make sure data is persisted on the backend and not just in the browser's local storage or indexdb or wherever Super Productivity stores data by default? I think you'll be able to easily check by just opening the app in an incognito window to see if your data has persisted.

Comment on lines +12 to +13
environment:
- WEBDAV_BACKEND=http://webdav # Optional
Copy link
Contributor

@nmfretz nmfretz Dec 18, 2024

Choose a reason for hiding this comment

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

The idea here is to point to the webdav container. We should explicitly set this to the full container name (i.e., super-productivity_webdav_1) or else if there are multiple apps with a webdav container, I'm pretty sure Docker will try to "helpfully" connect to a random one.

Comment on lines +19 to +20
ports:
- 8021:80
Copy link
Contributor

Choose a reason for hiding this comment

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

Is there a reason to expose this extra port on the host? I'm not familiar with what super productivity does with the webdav container. Is it just a backend or does it allow syncing across devices via the exposed host port?

ports:
- 8021:80
volumes:
- ${APP_DATA_DIR}/webdav/webdav.yaml:/config.yml:ro
Copy link
Contributor

Choose a reason for hiding this comment

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

This won't actually work. What will happen is that Docker will attempt to create the bind mount and see that there is no webdav.yaml on the host machine. It will then create webdav.yaml on the host as a directory not a file and webdav will start without any config.

Comment on lines +22 to +23
- ${APP_DATA_DIR}/webdav/webdav.yaml:/config.yml:ro
- ${APP_DATA_DIR}/data:/data
Copy link
Contributor

Choose a reason for hiding this comment

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

Let's do the same thing as the other app submissions and have both of these bind mounts nested under ${APP_DATA_DIR}/data/

@dennysubke
Copy link
Contributor Author

Hey @nmfretz!

Thank you for your detailed review and feedback! 👍

I will test the WebDAV backend to ensure data persistence as you suggested. Opening the app in an incognito window and checking if data is stored on the backend (rather than just locally in the browser) is a great idea. I'll report back with my findings. 💪

The exposed port was included for debugging purposes and to allow potential direct access to the WebDAV backend. However, if this isn't necessary for the intended use case (like syncing across devices), I can remove the exposed port.

By the way, this is from their documentation:

grafik

https://github.com/johannesjo/super-productivity/tree/master?tab=readme-ov-file#run-as-docker-container

Can you take a look at it in the meantime?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants