-
Notifications
You must be signed in to change notification settings - Fork 401
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
base: master
Are you sure you want to change the base?
Conversation
App Submission: LinkStack - Self-hosted open-source Linktree alternative
I unfortunately noticed too late that the Docker image It's a shame, the app is really great. |
FYI: I have opened an issue on the developer site: |
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. |
|
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. |
Ping! 🎉 |
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.
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.
environment: | ||
- WEBDAV_BACKEND=http://webdav # Optional |
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.
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.
ports: | ||
- 8021:80 |
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 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 |
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 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.
- ${APP_DATA_DIR}/webdav/webdav.yaml:/config.yml:ro | ||
- ${APP_DATA_DIR}/data:/data |
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.
Let's do the same thing as the other app submissions and have both of these bind mounts nested under ${APP_DATA_DIR}/data/
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: Can you take a look at it in the meantime? |
App Submission
Super Productivity
...
Icon
...
Gallery images
...
I have tested my app on: