-
Notifications
You must be signed in to change notification settings - Fork 390
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: LinkStack - Self-hosted open-source Linktree alternative #1537
base: master
Are you sure you want to change the base?
Conversation
App Submission: LinkStack - Self-hosted open-source Linktree alternative
|
Severity | File | Description |
---|---|---|
linkstack/docker-compose.yml |
Invalid image tag "latest": Images should not use the "latest" tag |
|
ℹ️ | linkstack/docker-compose.yml |
External port mapping "8190: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.). |
ℹ️ | linkstack/docker-compose.yml |
Potentially using unsafe user in service "linkstack": 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. |
linkstack/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. |
Thanks for submitting LinkStack @dennysubke! (and for your continued work on making sure Nexcloud is functioning correctly 🙏) We've got our heads down on some other aspects of the codebase, but we have this on our radar and will get to it 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.
Thank you so much @dennysubke for your app submission! Really good work :)
I have left some suggestions below:
|
||
linkstack: | ||
hostname: 'linkstack' | ||
image: 'linkstackorg/linkstack:latest@sha256:abd691b4293b020a317de8794737671e0315159efcb868e8a4124d6f0611f7ae' |
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.
Adding a comment here makes it more clear why we are using the latest
tag here
image: 'linkstackorg/linkstack:latest@sha256:abd691b4293b020a317de8794737671e0315159efcb868e8a4124d6f0611f7ae' | |
# This image has no version specific tags | |
image: 'linkstackorg/linkstack:latest@sha256:abd691b4293b020a317de8794737671e0315159efcb868e8a4124d6f0611f7ae' | |
LOG_LEVEL: 'info' | ||
PHP_MEMORY_LIMIT: '256M' | ||
UPLOAD_MAX_FILESIZE: '8M' |
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.
These values are already the default value, so we can omit them, see here.
LOG_LEVEL: 'info' | |
PHP_MEMORY_LIMIT: '256M' | |
UPLOAD_MAX_FILESIZE: '8M' |
hostname: 'linkstack' | ||
image: 'linkstackorg/linkstack:latest@sha256:abd691b4293b020a317de8794737671e0315159efcb868e8a4124d6f0611f7ae' | ||
environment: | ||
TZ: 'Europe/Berlin' |
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.
Unfortunately there is no environment variable from umbrelOS, that exposes the current timezone, so i suggest we go with the default value here (which is UTC
)
TZ: 'Europe/Berlin' |
version: "3.8" | ||
|
||
services: | ||
|
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.
I have tested your app submission with this app proxy and it works. Note that we can skip the proxy auth, as this app has a built-in auth mechanism.
app_proxy: | |
environment: | |
APP_HOST: linkstack_linkstack_1 | |
APP_PORT: 80 | |
PROXY_AUTH_ADD: "false" | |
|
||
|
||
# apache2 config problem not solved (work in progress) | ||
|
||
#version: "3.8" | ||
|
||
#services: | ||
# app_proxy: | ||
# environment: | ||
# APP_HOST: denny-linkstack_web_1 | ||
# APP_PORT: 80 | ||
|
||
# web: | ||
# image: linkstackorg/linkstack:latest@sha256:6e7e8f44099f7c4f1340bb9ffda5411f97da766a06fd63cf1ff90c57ce22dd61 | ||
# restart: on-failure | ||
# volumes: | ||
# - ${APP_DATA_DIR}/linkstack:/htdocs | ||
# environment: | ||
# HOST: umbrel.local | ||
# TZ: Europe/Berlin | ||
# PHP_MEMORY_LIMIT: 512M | ||
# UPLOAD_MAX_FILESIZE: 8M | ||
# SERVER_ADMIN: | ||
# HTTP_SERVER_NAME: | ||
# HTTPS_SERVER_NAME: | ||
# LOG_LEVEL: 'info' |
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.
As I have added the umbrelOS proxy, this can be removed
# apache2 config problem not solved (work in progress) | |
#version: "3.8" | |
#services: | |
# app_proxy: | |
# environment: | |
# APP_HOST: denny-linkstack_web_1 | |
# APP_PORT: 80 | |
# web: | |
# image: linkstackorg/linkstack:latest@sha256:6e7e8f44099f7c4f1340bb9ffda5411f97da766a06fd63cf1ff90c57ce22dd61 | |
# restart: on-failure | |
# volumes: | |
# - ${APP_DATA_DIR}/linkstack:/htdocs | |
# environment: | |
# HOST: umbrel.local | |
# TZ: Europe/Berlin | |
# PHP_MEMORY_LIMIT: 512M | |
# UPLOAD_MAX_FILESIZE: 8M | |
# SERVER_ADMIN: | |
# HTTP_SERVER_NAME: | |
# HTTPS_SERVER_NAME: | |
# LOG_LEVEL: 'info' |
port: 8190 | ||
description: >- | ||
LinkStack is a unique platform that provides an efficient solution for managing and sharing links online. Our platform offers a website similar to Linktree, which allows users to overcome the limitation of only being able to add one link on social media platforms. | ||
|
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.
One new line is missing
website: https://linkstack.org/ | ||
submitter: dennysubke | ||
submission: https://github.com/getumbrel/umbrel-apps/pull/1537 | ||
repo: https://github.com/linkstackorg/linkstack |
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.
Keep it the same as the support url. This is the original url:
repo: https://github.com/linkstackorg/linkstack | |
repo: https://github.com/LinkStackOrg/LinkStack |
releaseNotes: >- | ||
|
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.
Can be shortened to this:
releaseNotes: >- | |
releaseNotes: "" |
defaultUsername: "" | ||
defaultPassword: "" |
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.
Those two are not needed
defaultUsername: "" | |
defaultPassword: "" |
|
||
services: | ||
|
||
linkstack: |
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.
Adding a comment indicating that this image doesn't support a custom user
linkstack: | |
linkstack: | |
# This image doesn't support a custom user | |
# user: '1000:1000' |
App Submission
LinkStack - Self-hosted open-source Linktree alternative
...
Icon
(unfortunately only png 😔)
...
Gallery images
I have tested my app on: