From 336afc04598babb22b0f10e9a4340e21bf9f2837 Mon Sep 17 00:00:00 2001 From: okxlin Date: Mon, 29 Apr 2024 16:53:10 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0linkstack=E5=88=B0?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/linkstack/README.md | 75 +++++++++++++++++++++++ apps/linkstack/data.yml | 19 ++++++ apps/linkstack/latest/.env.sample | 9 +++ apps/linkstack/latest/data.yml | 58 ++++++++++++++++++ apps/linkstack/latest/docker-compose.yml | 30 +++++++++ apps/linkstack/logo.png | Bin 0 -> 3439 bytes 6 files changed, 191 insertions(+) create mode 100644 apps/linkstack/README.md create mode 100644 apps/linkstack/data.yml create mode 100644 apps/linkstack/latest/.env.sample create mode 100644 apps/linkstack/latest/data.yml create mode 100644 apps/linkstack/latest/docker-compose.yml create mode 100644 apps/linkstack/logo.png diff --git a/apps/linkstack/README.md b/apps/linkstack/README.md new file mode 100644 index 00000000..cf12b275 --- /dev/null +++ b/apps/linkstack/README.md @@ -0,0 +1,75 @@ +# 使用说明 + +- 数据默认以存储卷方式存储,类似卷`linkstack_linkstack` + +- 需要注意,当前面板自带备份不会备份到存储卷 + +# 原始相关 +*** +

+
+
+ + + + +

+ +

Open-Source Linktree Alternative

+ +

LinkStack is a highly customizable link sharing platform
with an intuitive, easy to use user interface.

+ +
+ +

+ Function • + About • + Instances • +

+ +

+GitHub Repo stars +Mastodon Follow +Discord online user count +

+

+GitHub spomsors +Patreon + +

+ +--- + +

+ Download latest +
+ GitHub release (latest by date) +

+ +--- + + +## Function + +LinkStack: The Ultimate Link Management Solution + +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. + +With LinkStack, users can easily link to their own custom page and provide their followers with access to all the links they need in one convenient location. What sets LinkStack apart from other link management platforms is its flexibility, which allows users to host their links on their own web server or web hosting provider. This provides users with complete control over their online presence and ensures that their links are easily accessible. + +Additionally, LinkStack allows other users to register and create their own links, making it an ideal solution for businesses and organizations looking to manage multiple links. With our user-friendly Admin Panel, managing and accessing other users' links is easy. + +
+ + +## About + +With LinkStack, our mission is to provide users with a free and privacy-focused solution for managing and sharing links online. We believe that everyone should have access to a customizable link-sharing platform without sacrificing their privacy and control over their data. + +To achieve this mission, we offer a self-hosted option for users who want complete control over their data without having it sold to third-party companies. Our platform can be easily implemented through a simple **drag and drop** process, eliminating the need for complex terminal commands or source code manipulation. + +For those who may not have the technical expertise to self-host, we also offer free instances of our platform while still prioritizing their privacy. Our platform offers many of the same features and options as commercial link-sharing platforms while maintaining the values of privacy and autonomy. + +Our goal is to provide a free version of a link-sharing service, similar to Linktree, while empowering users to take ownership of their data. We will never sell user data and believe in providing a trustworthy and transparent solution for managing and sharing links online. + +
diff --git a/apps/linkstack/data.yml b/apps/linkstack/data.yml new file mode 100644 index 00000000..929ba085 --- /dev/null +++ b/apps/linkstack/data.yml @@ -0,0 +1,19 @@ +name: LinkStack +tags: + - 建站 +title: 高度可定制的链接共享平台,用户界面直观易用 +description: 高度可定制的链接共享平台,用户界面直观易用 +additionalProperties: + key: linkstack + name: LinkStack + tags: + - WebSite + shortDescZh: 高度可定制的链接共享平台,用户界面直观易用 + shortDescEn: A highly customizable link sharing platform with an intuitive, easy to use user interface + type: website + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://linkstack.org + github: https://github.com/LinkStackOrg/LinkStack + document: https://docs.linkstack.org diff --git a/apps/linkstack/latest/.env.sample b/apps/linkstack/latest/.env.sample new file mode 100644 index 00000000..8a34b025 --- /dev/null +++ b/apps/linkstack/latest/.env.sample @@ -0,0 +1,9 @@ +CONTAINER_NAME="linkstack" +HTTPS_SERVER_NAME="www.example.xyz" +HTTP_SERVER_NAME="www.example.xyz" +PANEL_APP_PORT_HTTP="40225" +PANEL_APP_PORT_HTTPS="40226" +PHP_MEMORY_LIMIT="512M" +SERVER_ADMIN="admin@example.xyz" +TIME_ZONE="Asia/Shanghai" +UPLOAD_MAX_FILESIZE="8M" diff --git a/apps/linkstack/latest/data.yml b/apps/linkstack/latest/data.yml new file mode 100644 index 00000000..51440640 --- /dev/null +++ b/apps/linkstack/latest/data.yml @@ -0,0 +1,58 @@ +additionalProperties: + formFields: + - default: 40225 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Application HTTP Port + labelZh: 应用 HTTP 端口 + required: true + type: number + - default: 40226 + edit: true + envKey: PANEL_APP_PORT_HTTPS + labelEn: Application HTTPS Port + labelZh: 应用 HTTPS 端口 + required: true + type: number + - default: www.example.xyz + edit: true + envKey: HTTP_SERVER_NAME + labelEn: HTTP Server Name + labelZh: HTTP 服务器名称 + required: true + type: text + - default: www.example.xyz + edit: true + envKey: HTTPS_SERVER_NAME + labelEn: HTTPS Server Name + labelZh: HTTPS 服务器名称 + required: true + type: text + - default: admin@example.xyz + edit: true + envKey: SERVER_ADMIN + labelEn: Server Admin + labelZh: 服务器管理员 + required: true + type: text + - default: Asia/Shanghai + edit: true + envKey: TIME_ZONE + labelEn: Time zone + labelZh: 时区 + required: true + type: text + - default: 512M + edit: true + envKey: PHP_MEMORY_LIMIT + labelEn: PHP Memory Limit + labelZh: PHP 内存限制 + required: true + type: text + - default: 8M + edit: true + envKey: UPLOAD_MAX_FILESIZE + labelEn: Upload Max Filesize + labelZh: 上传文件最大限制 + required: true + type: text diff --git a/apps/linkstack/latest/docker-compose.yml b/apps/linkstack/latest/docker-compose.yml new file mode 100644 index 00000000..184a927c --- /dev/null +++ b/apps/linkstack/latest/docker-compose.yml @@ -0,0 +1,30 @@ +version: '3' +services: + linkstack: + image: linkstackorg/linkstack + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:80" + - "${PANEL_APP_PORT_HTTPS}:443" + hostname: ${CONTAINER_NAME} + environment: + - HTTP_SERVER_NAME=${HTTP_SERVER_NAME} + - HTTPS_SERVER_NAME=${HTTPS_SERVER_NAME} + - SERVER_ADMIN=${SERVER_ADMIN} + - TZ=${TIME_ZONE} + - PHP_MEMORY_LIMIT=${PHP_MEMORY_LIMIT} + - UPLOAD_MAX_FILESIZE=${UPLOAD_MAX_FILESIZE} + volumes: + - linkstack:/htdocs + labels: + createdBy: "Apps" + +volumes: + linkstack: + +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/apps/linkstack/logo.png b/apps/linkstack/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3d57c0bca2b7eb0c770130e42e2ef4e0288030b3 GIT binary patch literal 3439 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 RQ-S~h002ovPDHLkV1jW-(+vOs literal 0 HcmV?d00001