mirror of
https://github.com/okxlin/appstore.git
synced 2026-10-02 08:00:15 +00:00
feat: add feishin and pingap
Add Feishin and Pingap app definitions with source evidence, README guidance, strict adapter validation, env closure checks, and moelin/1panel:v2 smoke coverage.
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
# Feishin
|
||||
|
||||
## 产品介绍
|
||||
Feishin 是现代化自托管音乐服务器 Web 播放器,可连接 Navidrome、Jellyfin 或 OpenSubsonic 兼容服务进行音乐浏览与播放。
|
||||
|
||||
## 主要功能
|
||||
- 提供现代化 Web 音乐播放界面
|
||||
- 支持 Navidrome、Jellyfin 和 OpenSubsonic 兼容服务器
|
||||
- 支持通过环境变量预置服务器地址,并默认关闭 Umami analytics
|
||||
|
||||
## 访问说明
|
||||
安装后通过 `http://<服务器 IP>:15078` 访问,实际端口以安装表单中的 `PANEL_APP_PORT_HTTP` 为准。
|
||||
|
||||
## Introduction
|
||||
Feishin is a modern web music player for self-hosted Navidrome, Jellyfin and OpenSubsonic-compatible music servers.
|
||||
|
||||
## Features
|
||||
- Modern web music player interface
|
||||
- Supports Navidrome, Jellyfin and OpenSubsonic-compatible servers
|
||||
- Optional server preconfiguration through environment variables, with Umami analytics disabled by default
|
||||
|
||||
## 部署说明
|
||||
- 本应用使用官方 GitHub Container Registry 镜像 `ghcr.io/jeffvli/feishin` 部署。
|
||||
- Feishin 是 Web 播放器,不自带音乐服务器;请先准备 Navidrome、Jellyfin 或 OpenSubsonic 兼容服务。
|
||||
- 应用分类:多媒体。
|
||||
- 支持架构:amd64、arm64。
|
||||
- 可选版本:`latest`。
|
||||
|
||||
## 端口
|
||||
| 变量 | 说明 | 默认值 | 必填 |
|
||||
| --- | --- | --- | --- |
|
||||
| PANEL_APP_PORT_HTTP | Feishin Web 访问端口 | 15078 | 是 |
|
||||
|
||||
## 数据持久化
|
||||
Feishin Docker Web 版本默认不需要挂载服务端数据目录;播放服务器和用户数据由你连接的 Navidrome、Jellyfin 或 OpenSubsonic 服务保存。
|
||||
|
||||
## 参数说明
|
||||
| 变量 | 说明 | 默认值 | 必填 |
|
||||
| --- | --- | --- | --- |
|
||||
| ANALYTICS_DISABLED | 是否禁用 Umami analytics | true | 是 |
|
||||
| SERVER_NAME | 预置音乐服务器名称 | 空 | 否 |
|
||||
| SERVER_TYPE | 预置音乐服务器类型:jellyfin、navidrome、subsonic | 空 | 否 |
|
||||
| SERVER_URL | 预置音乐服务器地址 | 空 | 否 |
|
||||
| SERVER_LOCK | 是否锁定服务器配置 | false | 是 |
|
||||
| REMOTE_URL | 单独的公网音乐服务器地址 | 空 | 否 |
|
||||
| LEGACY_AUTHENTICATION | Subsonic/OpenSubsonic 传统认证开关 | false | 是 |
|
||||
| TZ | 容器时区 | Asia/Shanghai | 是 |
|
||||
|
||||
## 使用说明
|
||||
- 如果设置 `SERVER_LOCK=true`,请同时填写 `SERVER_NAME`、`SERVER_TYPE` 和 `SERVER_URL`。
|
||||
- 若音乐服务器在内网,请确认 Feishin 容器可以访问该地址。
|
||||
- 如对公网开放访问,请同步检查防火墙、安全组、反向代理和 HTTPS 配置。
|
||||
|
||||
## 参考资料
|
||||
- 项目仓库: <https://github.com/jeffvli/feishin>
|
||||
- Docker 使用说明: <https://github.com/jeffvli/feishin#web-and-docker>
|
||||
- Docker Compose 示例: <https://github.com/jeffvli/feishin#docker-compose>
|
||||
@@ -0,0 +1,30 @@
|
||||
name: Feishin
|
||||
tags:
|
||||
- Media
|
||||
title: 现代化自托管音乐服务器 Web 播放器
|
||||
description: 现代化自托管音乐服务器 Web 播放器
|
||||
additionalProperties:
|
||||
key: feishin
|
||||
name: Feishin
|
||||
tags:
|
||||
- Media
|
||||
shortDescZh: 现代化自托管音乐服务器 Web 播放器
|
||||
shortDescEn: A modern web player for self-hosted music servers
|
||||
description:
|
||||
en: "A modern web music player for Navidrome, Jellyfin and OpenSubsonic-compatible servers."
|
||||
zh: "面向 Navidrome、Jellyfin 和 OpenSubsonic 兼容服务器的现代化 Web 音乐播放器。"
|
||||
zh-Hant: "面向 Navidrome、Jellyfin 和 OpenSubsonic 相容伺服器的現代化 Web 音樂播放器。"
|
||||
ja: "Navidrome、Jellyfin、OpenSubsonic 互換サーバー向けのモダンな Web 音楽プレーヤーです。"
|
||||
ko: "Navidrome, Jellyfin 및 OpenSubsonic 호환 서버를 위한 최신 웹 음악 플레이어입니다."
|
||||
ru: "Современный веб-плеер для музыкальных серверов Navidrome, Jellyfin и совместимых с OpenSubsonic."
|
||||
ms: "Pemain muzik web moden untuk pelayan Navidrome, Jellyfin dan serasi OpenSubsonic."
|
||||
pt-br: "Player web moderno para servidores de musica Navidrome, Jellyfin e compativeis com OpenSubsonic."
|
||||
type: tool
|
||||
crossVersionUpdate: true
|
||||
limit: 0
|
||||
website: https://feishin.vercel.app
|
||||
github: https://github.com/jeffvli/feishin
|
||||
document: https://github.com/jeffvli/feishin#web-and-docker
|
||||
architectures:
|
||||
- amd64
|
||||
- arm64
|
||||
@@ -0,0 +1,10 @@
|
||||
CONTAINER_NAME=feishin
|
||||
PANEL_APP_PORT_HTTP=15078
|
||||
TZ=Asia/Shanghai
|
||||
ANALYTICS_DISABLED=true
|
||||
SERVER_NAME=
|
||||
SERVER_TYPE=
|
||||
SERVER_URL=
|
||||
SERVER_LOCK=false
|
||||
REMOTE_URL=
|
||||
LEGACY_AUTHENTICATION=false
|
||||
@@ -0,0 +1,171 @@
|
||||
additionalProperties:
|
||||
formFields:
|
||||
- default: 15078
|
||||
edit: true
|
||||
envKey: PANEL_APP_PORT_HTTP
|
||||
labelEn: Port
|
||||
labelZh: 端口
|
||||
label:
|
||||
en: Port
|
||||
zh: 端口
|
||||
zh-Hant: 埠
|
||||
ja: ポート
|
||||
ko: 포트
|
||||
ru: Порт
|
||||
ms: Port
|
||||
pt-br: Porta
|
||||
required: true
|
||||
rule: paramPort
|
||||
type: number
|
||||
- default: Asia/Shanghai
|
||||
edit: true
|
||||
envKey: TZ
|
||||
labelEn: Timezone
|
||||
labelZh: 时区
|
||||
label:
|
||||
en: Timezone
|
||||
zh: 时区
|
||||
zh-Hant: 時區
|
||||
ja: タイムゾーン
|
||||
ko: 시간대
|
||||
ru: Часовой пояс
|
||||
ms: Zon waktu
|
||||
pt-br: Fuso horário
|
||||
required: true
|
||||
type: text
|
||||
- default: "true"
|
||||
edit: true
|
||||
envKey: ANALYTICS_DISABLED
|
||||
labelEn: Disable Analytics
|
||||
labelZh: 禁用统计分析
|
||||
label:
|
||||
en: Disable Analytics
|
||||
zh: 禁用统计分析
|
||||
zh-Hant: 停用統計分析
|
||||
ja: 分析を無効化
|
||||
ko: 분석 비활성화
|
||||
ru: Отключить аналитику
|
||||
ms: Lumpuhkan analitik
|
||||
pt-br: Desativar analiticos
|
||||
required: true
|
||||
type: select
|
||||
values:
|
||||
- label: "true"
|
||||
value: "true"
|
||||
- label: "false"
|
||||
value: "false"
|
||||
- default: ""
|
||||
edit: true
|
||||
envKey: SERVER_NAME
|
||||
labelEn: Server Name
|
||||
labelZh: 服务器名称
|
||||
label:
|
||||
en: Server Name
|
||||
zh: 服务器名称
|
||||
zh-Hant: 伺服器名稱
|
||||
ja: サーバー名
|
||||
ko: 서버 이름
|
||||
ru: Имя сервера
|
||||
ms: Nama pelayan
|
||||
pt-br: Nome do servidor
|
||||
required: false
|
||||
type: text
|
||||
- default: ""
|
||||
edit: true
|
||||
envKey: SERVER_TYPE
|
||||
labelEn: Server Type
|
||||
labelZh: 服务器类型
|
||||
label:
|
||||
en: Server Type
|
||||
zh: 服务器类型
|
||||
zh-Hant: 伺服器類型
|
||||
ja: サーバー種別
|
||||
ko: 서버 유형
|
||||
ru: Тип сервера
|
||||
ms: Jenis pelayan
|
||||
pt-br: Tipo de servidor
|
||||
required: false
|
||||
type: select
|
||||
values:
|
||||
- label: ""
|
||||
value: ""
|
||||
- label: jellyfin
|
||||
value: jellyfin
|
||||
- label: navidrome
|
||||
value: navidrome
|
||||
- label: subsonic
|
||||
value: subsonic
|
||||
- default: ""
|
||||
edit: true
|
||||
envKey: SERVER_URL
|
||||
labelEn: Server URL
|
||||
labelZh: 服务器 URL
|
||||
label:
|
||||
en: Server URL
|
||||
zh: 服务器 URL
|
||||
zh-Hant: 伺服器 URL
|
||||
ja: サーバー URL
|
||||
ko: 서버 URL
|
||||
ru: URL сервера
|
||||
ms: URL pelayan
|
||||
pt-br: URL do servidor
|
||||
required: false
|
||||
type: text
|
||||
- default: "false"
|
||||
edit: true
|
||||
envKey: SERVER_LOCK
|
||||
labelEn: Lock Server Settings
|
||||
labelZh: 锁定服务器设置
|
||||
label:
|
||||
en: Lock Server Settings
|
||||
zh: 锁定服务器设置
|
||||
zh-Hant: 鎖定伺服器設定
|
||||
ja: サーバー設定をロック
|
||||
ko: 서버 설정 잠금
|
||||
ru: Заблокировать настройки сервера
|
||||
ms: Kunci tetapan pelayan
|
||||
pt-br: Bloquear configuracoes do servidor
|
||||
required: true
|
||||
type: select
|
||||
values:
|
||||
- label: "false"
|
||||
value: "false"
|
||||
- label: "true"
|
||||
value: "true"
|
||||
- default: ""
|
||||
edit: true
|
||||
envKey: REMOTE_URL
|
||||
labelEn: Public Server URL
|
||||
labelZh: 公网服务器 URL
|
||||
label:
|
||||
en: Public Server URL
|
||||
zh: 公网服务器 URL
|
||||
zh-Hant: 公網伺服器 URL
|
||||
ja: 公開サーバー URL
|
||||
ko: 공개 서버 URL
|
||||
ru: Публичный URL сервера
|
||||
ms: URL pelayan awam
|
||||
pt-br: URL publico do servidor
|
||||
required: false
|
||||
type: text
|
||||
- default: "false"
|
||||
edit: true
|
||||
envKey: LEGACY_AUTHENTICATION
|
||||
labelEn: Legacy Authentication
|
||||
labelZh: 传统认证
|
||||
label:
|
||||
en: Legacy Authentication
|
||||
zh: 传统认证
|
||||
zh-Hant: 傳統認證
|
||||
ja: レガシー認証
|
||||
ko: 레거시 인증
|
||||
ru: Устаревшая аутентификация
|
||||
ms: Pengesahan legasi
|
||||
pt-br: Autenticacao legada
|
||||
required: true
|
||||
type: select
|
||||
values:
|
||||
- label: "false"
|
||||
value: "false"
|
||||
- label: "true"
|
||||
value: "true"
|
||||
@@ -0,0 +1,24 @@
|
||||
services:
|
||||
feishin:
|
||||
image: "ghcr.io/jeffvli/feishin:latest"
|
||||
container_name: ${CONTAINER_NAME}
|
||||
restart: always
|
||||
networks:
|
||||
- 1panel-network
|
||||
ports:
|
||||
- "${PANEL_APP_PORT_HTTP}:9180"
|
||||
environment:
|
||||
- TZ=${TZ}
|
||||
- ANALYTICS_DISABLED=${ANALYTICS_DISABLED}
|
||||
- SERVER_NAME=${SERVER_NAME}
|
||||
- SERVER_TYPE=${SERVER_TYPE}
|
||||
- SERVER_URL=${SERVER_URL}
|
||||
- SERVER_LOCK=${SERVER_LOCK}
|
||||
- REMOTE_URL=${REMOTE_URL}
|
||||
- LEGACY_AUTHENTICATION=${LEGACY_AUTHENTICATION}
|
||||
labels:
|
||||
createdBy: "Apps"
|
||||
|
||||
networks:
|
||||
1panel-network:
|
||||
external: true
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
exit 0
|
||||
Executable
+2
@@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
docker-compose down --volumes
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
exit 0
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 7.1 KiB |
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"repository": "https://github.com/jeffvli/feishin",
|
||||
"dockerDocs": "https://github.com/jeffvli/feishin#web-and-docker",
|
||||
"composeFile": "https://github.com/jeffvli/feishin#docker-compose"
|
||||
}
|
||||
Reference in New Issue
Block a user