发布应用 Slink 图片分享平台

Signed-off-by: Meng Sen <qyg2297248353@gmail.com>
This commit is contained in:
新疆萌森软件开发工作室 2024-10-18 12:19:29 +08:00
parent 72d6f8948a
commit fcbf0555b7
10 changed files with 293 additions and 0 deletions

1
.github/README.md vendored
View File

@ -138,6 +138,7 @@
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/rsshub/logo.png" width="22"/> | RssHub | https://rsshub.app/ | 从任何内容生成 RSS/Atom/JSON 订阅源 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/sentinel/logo.png" width="22"/> | Sentinel | https://sentinelguard.io/ | 面向分布式、多语言异构化服务架构的流量治理组件 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/siyuan/logo.png" width="22"/> | 思源笔记 | https://b3log.org/siyuan/ | 【思源笔记】一款隐私优先、自托管、完全开源的个人知识管理软件 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/slink/logo.png" width="22"/> | Slink | https://github.com/andrii-kryvoviaz/slink/ | 图片分享平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/sonarr/logo.png" width="22"/> | sonarr | https://sonarr.tv/ | 智能 PVR 适用于新闻组和 BT 用户。 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/speedtest/logo.png" width="22"/> | SpeedTest | https://www.speedtest.net/ | 互联网速度测试 | |
| 🔴 | | SpeedTest-Tracker | https://docs.speedtest-tracker.dev/ | Speedtest Tracker 是一款自托管互联网性能跟踪应用程序,可针对 Ookla 的 Speedtest 服务运行速度测试检查 | |

View File

@ -121,6 +121,7 @@
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/rsshub/logo.png" width="22"/> | RssHub | https://rsshub.app/ | 从任何内容生成 RSS/Atom/JSON 订阅源 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/sentinel/logo.png" width="22"/> | Sentinel | https://sentinelguard.io/ | 面向分布式、多语言异构化服务架构的流量治理组件 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/siyuan/logo.png" width="22"/> | 思源笔记 | https://b3log.org/siyuan/ | 【思源笔记】一款隐私优先、自托管、完全开源的个人知识管理软件 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/slink/logo.png" width="22"/> | Slink | https://github.com/andrii-kryvoviaz/slink/ | 图片分享平台 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/sonarr/logo.png" width="22"/> | sonarr | https://sonarr.tv/ | 智能 PVR 适用于新闻组和 BT 用户。 | |
| 🟢 | <img height="22" src="https://file.lifebus.top/apps/speedtest/logo.png" width="22"/> | SpeedTest | https://www.speedtest.net/ | 互联网速度测试 | |
| 🔴 | | SpeedTest-Tracker | https://docs.speedtest-tracker.dev/ | Speedtest Tracker 是一款自托管互联网性能跟踪应用程序,可针对 Ookla 的 Speedtest 服务运行速度测试检查 | |

148
apps/slink/1.2.1/data.yml Normal file
View File

@ -0,0 +1,148 @@
additionalProperties:
formFields:
- default: "/home/slink"
edit: true
envKey: SLINK_ROOT_PATH
labelZh: 数据持久化路径
labelEn: Data persistence path
required: true
type: text
- default: 3000
edit: true
envKey: PANEL_APP_PORT_HTTP
labelZh: 访问端口
labelEn: Port
required: true
rule: paramPort
type: number
- default: "http://127.0.0.1:3000"
edit: true
envKey: ORIGIN
labelZh: 主机域名
labelEn: Host domain
required: true
type: text
- default: "true"
edit: true
envKey: USER_APPROVAL_REQUIRED
labelZh: 用户上传图片是否需要批准
labelEn: Do users need approval to upload images
required: true
type: select
values:
- label: 启用用户批准策略
value: "true"
- label: 禁用用户批准策略
value: "false"
- default: "true"
edit: true
envKey: USER_ALLOW_UNAUTHENTICATED_ACCESS
labelZh: 允许未认证用户访问公共路由
labelEn: Allow unauthenticated users to access public routes
required: true
type: select
values:
- label: 允许访问
value: "true"
- label: 禁止访问
value: "false"
- default: "true"
edit: true
envKey: IMAGE_STRIP_EXIF_METADATA
labelZh: 是否移除图片的 EXIF 元数据
labelEn: Remove EXIF metadata from images
required: true
type: select
values:
- label: 移除
value: "true"
- label: 保留
value: "false"
- default: "15M"
edit: true
envKey: IMAGE_MAX_SIZE
labelZh: 图片上传最大限制 (最大 50M)
labelEn: Maximum image upload limit (max 50M)
required: true
type: text
- default: 8
edit: true
envKey: USER_PASSWORD_MIN_LENGTH
labelZh: 用户密码最小长度
labelEn: Minimum user password length
required: true
type: number
- default: "15"
edit: true
envKey: USER_PASSWORD_REQUIREMENTS
labelZh: 用户密码要求
labelEn: User password requirements
required: true
type: select
values:
- label: 数字 + 大小写字母 + 特殊字符
value: "15"
- label: 数字 + 大小写字母
value: "7"
- label: 数字 + 特殊字符
value: "9"
- label: 大小写字母 + 特殊字符
value: "14"
- label: 大写字母 + 数字
value: "5"
- label: 小写字母 + 数字
value: "3"
- label: 大写字母 + 特殊字符
value: "12"
- label: 小写字母 + 特殊字符
value: "10"
- label: 纯数字
value: "1"
- label: 大小写字母
value: "6"
- label: 纯大写字母
value: "4"
- label: 纯小写字母
value: "2"
- label: 纯特殊字符
value: "8"
- default: "local"
edit: true
envKey: STORAGE_PROVIDER
labelZh: 存储策略
labelEn: Storage strategy
required: true
type: select
values:
- label: 本地存储
value: "local"
- label: SMB 存储
value: "smb"
- default: ""
edit: true
envKey: SMB_HOST
labelZh: SMB 服务器地址
labelEn: SMB server address
required: false
type: text
- default: ""
edit: true
envKey: SMB_USERNAME
labelZh: SMB 用户名
labelEn: SMB username
required: false
type: text
- default: ""
edit: true
envKey: SMB_PASSWORD
labelZh: SMB 密码
labelEn: SMB password
required: false
type: password
- default: ""
edit: true
envKey: SMB_SHARE
labelZh: SMB 共享路径
labelEn: SMB share path
required: false
type: text

View File

@ -0,0 +1,23 @@
networks:
1panel-network:
external: true
services:
slink:
image: anirdev/slink:v1.2.1
container_name: ${CONTAINER_NAME}
labels:
createdBy: "Apps"
restart: always
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:3000
volumes:
- ${SLINK_ROOT_PATH}/data:/app/var/data
- ${SLINK_ROOT_PATH}/images:/app/slink/images
environment:
- USER_PASSWORD_MIN_LENGTH=8
- USER_PASSWORD_REQUIREMENTS=15
- IMAGE_MAX_SIZE=15M
- STORAGE_PROVIDER=local

View File

@ -0,0 +1,15 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi

View File

@ -0,0 +1,10 @@
#!/bin/bash
if [ -f .env ]; then
source .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi

View File

@ -0,0 +1,15 @@
#!/bin/bash
if [ -f .env ]; then
source .env
# setup-1 add default values
CURRENT_DIR=$(pwd)
sed -i '/^ENV_FILE=/d' .env
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
echo "Check Finish."
else
echo "Error: .env file not found."
fi

65
apps/slink/README.md Normal file
View File

@ -0,0 +1,65 @@
# Slink
Slink 是一个使用 Symfony 和 SvelteKit 构建的自托管图片分享平台。
![Kimai](https://file.lifebus.top/imgs/slink_cover.png)
![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue)
## 简介
解决了与朋友、家人和同事分享图片而不依赖第三方服务的问题。它还为艺术家提供了一个平台,让他们可以与社区分享自己的作品。
此外,开发人员可能会发现将其用于托管个人项目屏幕截图很有用,然后可以在 GitHub、个人网站、博客等地方使用。
## 特性
+ 认证:用户可以注册并登录平台。
+ 用户批准:在用户可以上传图片之前需要获得他们的批准。
+ 图片上传:可以上传 SVG、PNG、JPG、WEBP、BMP、ICO 或 GIF 格式的图片。
+ 分享链接:用户可以分享上传的图片链接,并自定义图片大小。
+ 上传历史:提供了用户上传的所有图片的概览。
+ 存储提供商:支持本地和 SMB 存储提供商。
+ 探索图片:展示由其他用户上传的公共图片的列表页面。
+ 暗色模式:应用程序支持暗色和亮色模式。
## 安装说明
### 公共列表
> 只有标记为公共的图像才会在这里显示。
应用包含一个可选的图片列表页面,用户可以在该页面上浏览其他用户上传的图片。
### 存储提供商
应用支持两种存储提供者:本地和 SMB。本地存储提供者将图像存储在本地文件系统中而 SMB 存储提供者将图像存储在远程 SMB
服务器上。默认情况下,应用使用本地存储提供者。
### 用户批准
默认情况下,应用程序在用户上传图片前需要获得批准。
您需要使用 CLI 命令手动激活用户
> 邮箱激活
```shell
docker exec -it slink slink user:activate --email=<user-email>
```
> 用户ID 激活
```shell
docker exec -it slink slink user:activate --uuid=<user-id>
```
### 安全
Slink 支持用户认证和用户审批以防止未经授权访问应用。然而,建议使用反向代理如 Nginx 或 Traefik 添加额外的安全功能,如
SSL、速率限制等。
如果不想将整个应用公开,仅可以通过反向代理公开 /image 路由。
---
![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png)

15
apps/slink/data.yml Normal file
View File

@ -0,0 +1,15 @@
additionalProperties:
key: slink
name: Slink
tags:
- WebSite
- Middleware
- Local
shortDescZh: 图片分享平台
shortDescEn: Image sharing platform
type: website
crossVersionUpdate: true
limit: 0
website: https://github.com/andrii-kryvoviaz/slink/
github: https://github.com/andrii-kryvoviaz/slink/
document: https://github.com/andrii-kryvoviaz/slink/

BIN
apps/slink/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB