MoreRSS

site iconpanda995 | 熊猫不是猫修改

成都,程序员,摄影爱好,电子游戏爱好者。博客主要内容是NAS和电子产品评测。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

panda995 | 熊猫不是猫的 RSS 预览

绿联NAS+雷鸟电视,我实现了居家K歌自由,曲库无限大

2026-08-20 18:03:09

家里想唱歌,最省事的办法当然是买一套成品点歌机,机器往电视旁边一放,插上线就能用,曲库和界面也都有人管。问题是这东西平时大概率在吃灰,买回来占一个位置不说,后面想加歌、换硬盘、整理曲库,很多时候还得顺着厂商的规则来,碰上会员、广告或者系统停更,心里多少有点膈应。

绿联6800 Pro
而熊猫作为NAS玩家,自然想法不一样了,既然家里已经有一台长期在线的服务器,电影、照片、音乐都放在里面,为什么不能顺手把KTV也塞进去?这次方案采用的是绿联DXP6800 Pro,在UGOS Pro里用Docker部署nasktv项目,音源文件放在NAS硬盘中;雷鸟电视负责大屏播放;家里的手机连上Wi-Fi后能直接点歌,整套系统只在局域网里跑,不用每个人装App,也不用把自己的曲库交给第三方平台。

主机核心

绿联DXP6800 Pro是这套方案的中枢,项目本身是需要用到一些硬件性能的,英特尔酷睿i5-1235U的处理器有10核12线程,项目需要用到的一些本地模型这点负载对它来说基本等于热身,且因为性能有亢余,当家里有人唱歌时,NAS仍然可以继续下载、备份照片、跑影音服务,几个任务堆在一起也不至于互相抢得太难看。

金标
DXP6800 Pro给了双10GbE网口、两个M.2 NVMe插槽、双雷电4、PCIe扩展和最高8K 60Hz的HDMI输出。家庭KTV本身吃不了万兆,它真正方便的是,曲库初次入库时经常要搬几百GB甚至几TB文件,万兆局域网能明显缩短等待,加上熊猫自媒体的副业,家里还有剪辑电脑、工作站等多台终端,带宽不用全挤在一条线上。

背面接口
很多人看到六盘位,第一反应是“家用有必要吗”。实话说,轻度用户确实没必要,但如果你是屯屯鼠,那还是有必要。影视和音频这类文件有个特点,单个文件看着不大,攒起来却很快,尤其是保留高码率MV、演唱会版本和不同伴奏,一首歌几百MB很正常,再叠加电影、电视剧、全家照片和电脑备份,四盘位很容易从“够用”变成“又要换盘”。

六盘位
六个SATA盘位的价值不是让你第一天就插满,而是留出后悔的空间。前期可以先上两块或三块盘,按自己的数据安全需求组阵列,怎么选要看数据价值,如果数据比较重要,那么千万别为了多一点可用容量把冗余全丢了。

硬盘选择

这次也是刚好准备给它加硬盘,顺便清一下灰,之前一直是插了4张盘,但随着东西越来越多也是感觉不够用了。

东芝N300硬盘
这次盘位里可以搭配东芝N300 NAS机械硬盘,CMR传统磁记录,转速为7200RPM,带旋转振动传感器,作为NAS专用盘,完全是按照NAS的7×24小时环境设计,对家庭曲库这种“大文件顺序读取为主,偶尔集中写入”的场景,CMR比一些采用SMR的普通桌面盘更省心,阵列重建和持续写入时也更符合预期。

特写图
定位对路,容量选择多,持续读写也够用,这次熊猫准备了两张8T。当然了,7200转机械盘不可能完全没声音,夜深以后磁头寻道和盘体振动还是能听见,如果对噪声特别敏感,干脆把机器放到书房或弱电柜,硬盘是拿来干活的,不是靠“静音”两个字哄自己睡觉。

电视联动

电视在这套方案里不负责存歌,也不负责跑服务,充当的是大屏点歌台,NAS-KTV把前端单独做成了Web容器,默认从NAS的端口访问,因此电视与服务器不需要是同一台设备,电视只要能通过浏览器访问局域网地址,就可以打开系统页面。

雷鸟电视
熊猫这里用的是雷鸟,当然,电视不一定非要是雷鸟,不过因为雷鸟和绿联本身就是有合作的,雷鸟的TV系统自带就有绿联云的小卡片,也算是一个加分项。

卡片添加
如果电视自带浏览器打不开全屏,或者播放某些MP4只有声音没有画面,可以换BrowseHere或其他Chromium内核电视浏览器,也可以接一个兼容性更好的盒子,实在不想折腾,拿笔记本接HDMI当播放端也行。

整个项目想要完整的体验,你就需要准备这些东西:装好UGOS Pro与Docker的绿联NAS、能正常访问局域网的电视、本地歌曲文件,以及一套独立的麦克风。

容器部署

打开绿联的的Docker应用,切到项目选项选择创建项目,把下面Compose内容贴进去:

services:
  backend:
    image: ghcr.linkos.org/panda-995/nas-ktv-backend:${NASKTV_IMAGE_TAG:-latest}
    pull_policy: always
    ports:
      - "3000:3000"
      - "45678:45678/udp"
    volumes:
      - ./data/db:/app/data/db
      - ./data/songs:/app/data/songs
      - ./data/separation:/app/data/separation
      - ./data/uploads:/app/data/uploads
    environment:
      NODE_ENV: production
      PORT: "3000"
      JWT_SECRET: ${JWT_SECRET:-your-jwt-secret-change-me}
      DB_PATH: /app/data/db/nasktv.db
      SCAN_PATH: /app/data/songs
      SEPARATOR_SERVICE_URL: http://separator:8001
      SEPARATION_OUTPUT_DIR: /app/data/separation
      SEPARATION_CONCURRENCY: ${SEPARATION_CONCURRENCY:-2}
      SEPARATION_AUTO_ENABLE: ${SEPARATION_AUTO_ENABLE:-true}
      HF_ENDPOINT: ${HF_ENDPOINT:-https://hf-mirror.com}
      AI_ENABLED: ${AI_ENABLED:-false}
      AI_BASE_URL: ${AI_BASE_URL:-https://api.openai.com/v1}
      AI_API_KEY: ${AI_API_KEY:-}
      AI_MODEL: ${AI_MODEL:-gpt-4o-mini}
      AI_PARSE_CONCURRENCY: ${AI_PARSE_CONCURRENCY:-2}
      AI_AUTO_PARSE_AFTER_SCAN: ${AI_AUTO_PARSE_AFTER_SCAN:-true}
    depends_on:
      separator:
        condition: service_started
    restart: unless-stopped
    healthcheck:
      test:
        - CMD-SHELL
        - >-
          node -e "require('http').get(
          'http://localhost:3000/api/health',
          r => process.exit(r.statusCode === 200 ? 0 : 1)
          ).on('error', () => process.exit(1))"
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s

  separator:
    image: ghcr.linkos.org/panda-995/nas-ktv-separator:${NASKTV_IMAGE_TAG:-latest}
    user: "0:0"
    pull_policy: always
    volumes:
      - ./data/songs:/app/data/songs:ro
      - ./data/separation:/app/data/separation
      - ./data/separator-cache:/app/cache
    environment:
      TORCH_HOME: /app/cache
      DEMUCS_CACHE: /app/cache
      HF_ENDPOINT: ${HF_ENDPOINT:-https://hf-mirror.com}
      SEPARATION_CONCURRENCY: ${SEPARATION_CONCURRENCY:-2}
      PYTORCH_INDEX_URL: ${PYTORCH_INDEX_URL:-https://download.pytorch.org/whl/cpu}
    restart: unless-stopped

  web:
    image: ghcr.linkos.org/panda-995/nas-ktv-web:${NASKTV_IMAGE_TAG:-latest}
    pull_policy: always
    ports:
      - "18080:80"
    depends_on:
      backend:
        condition: service_healthy
    restart: unless-stopped

关于文件夹映射,其中data/songs为歌曲存放目录,你可以部署之后再放文件,也可以提前放,同时熊猫在镜像中已经添加了加速源,所以不需要再担心速度问题。

项目创建
歌曲命名依然建议做干净,例如“歌手 - 歌名”,项目虽然预留了AI解析能力,但默认毕竟要外接API,不开AI不能指望系统替你猜完所有乱七八糟的文件名,即便以后开启AI,整齐的源文件也更方便迁移和备份。

这份配置最少要改一项JWT_SECRET,这里需要填写一个32位的长随机字符串,可以直接让豆包之类的帮你生成,AI曲名解析默认关闭,需要时再把AI_ENABLED设为true,补上AI_BASE_URLAI_API_KEYAI_MODEL就行。

项目拉取
保存并启动项目,Docker会拉取Backend、Separator和Web三个镜像,三个容器显示正常启动后,再用http://绿联NASIP:18080打开正式页面,也可以直接从绿联的Docker界面点击直接快捷访问,默认账号是admin,密码为admin123。

登录界面
仪表盘会显示当前的曲库数量、歌手数、播放次数以及活跃房间,下面还有完整的AI解析和人声分离队列以及歌曲解析,相当于KTV的中控后台界面。

仪表盘
歌曲管理、去重和歌手管理这些就不用看了,很正常播放器的管理没有区别。

歌曲上传或者放到曲库之后首先看AI解析,配置好AI之后AI会根据提示词根据歌曲的内容进行解析歌曲名和歌手,还会进行流派分类等操作,最终这个解析并不会写入曲库中,而是作为json存在项目本地。

AI解析
除了解析,人生分离就是最重要的了。一般来说个人找到的音源是默认没有人声伴奏分离的,所以这时候就要借助大模型来将人生和伴奏进行分离,首先在GPU管理这里我们能看到硬件信息和PyTorch状态,如果你有外接显卡,那么这里就能检测到你的外接显卡并用GPU版本模型来加速人声分离,如果没有那么就会采用CPU版本。

模型管理
点击人声分离,这时候项目会调用你绿联NAS的本地CPU能力进行模型处理,再将分离的人声伴奏进行转码,熊猫的绿联DXP 6800Pro一首歌按照标准模型处理大概用时50秒左右。

人声分离
分离之后可以点击后面的试听,这时候就能看到歌曲分成了原唱音频、伴奏音频、人声音频,且分离效果非常不错,如果想要更精细,可以选择更好的模型进行分离,不过耗时会更久一点。

分离结果
分离配置在系统设置界面可以找到,同时需要注意右下角这个H5手机点歌,需要改成你的NASIP地址和端口然后加上/h5/的后缀,后面会用到。

连接配置
在电视上安装NASKTV应用,下载地址在github搜索项目Panda-995/NAS-KTV,按页面提供二维码扫码,这里手机一定要是同一局域网,这时候手机就会弹出项目的后端配置界面,输入我们的后端地址,也就是http://绿联NASIP:18080,就能进入点歌界面。

点歌界面
这里熊猫的歌曲文件没有内嵌歌词,如果你有lrc歌词文件,也可以在后端的歌曲管理中去上传,这样桌面就能显示歌词了。

歌词上传
手机扫码之后的点歌界面长这样,除了支持点歌,也能作为遥控器使用,支持单独调节伴奏、人声音量,同时还提供了各种环绕声效果,也支持升调降调操作,基本是满足K歌的需求了。

手机端界面
这套方案落地后,最省心的是曲库确实在自己手里,当然,它没有商业KTV那种现成的海量在线曲库,第一次整理会花时间,人声分离更不是点一下马上完成,说白了,这是一套“愿意前期折腾,换后期自由”的方案。

写在最后

这套方案不一定适合所有人,它需要整理曲库,也需要花一点时间处理Docker路径、应用兼容,但折腾完之后,家里的照片、电影、音乐、KTV都能围着同一台NAS运转,这种“东西是自己的,规则也由自己定”的感觉,确实挺舒服。

以上便是本次分享的全部内容了。如果你觉得还算有趣或对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!

关注熊猫

“世界难题”真被解决了?极空间搭建干饭厨子,吃什么一键解决

2026-08-19 17:37:32

NAS、键盘、路由器······年轻就要多折腾。爱折腾的熊猫,今天又给大家分享最近折腾的内容了。关注是对我最大的支持,阿里嘎多~

怕错过熊猫的精彩分享?那就赶快关注下熊猫吧!

引言

按照100岁来说,人生差不多也就三万来天,而这三万天里每天最纠结的并不是没钱、心情好不好,而是早上吃什么?中午吃什么以及晚上吃什么。

小时候可能没有这个想法,毕竟家里弄什么吃什么,但自己开始独立生活之后这种选择纠结症越来越严重,每天晚饭还没吃完就在想明天中午应该吃什么?买什么菜?谁来做?

为了解决这个问题,就有人开发了名为干饭厨子的项目(Gloridust/GanCook),项目支持家人各自进行点菜,然后让掌勺来认领自己想做的菜,最后吃了的人还可以给掌勺者进行打分,每个月还有贡献榜能看到下厨最多的人,非常好的解决了吃什么和谁来做的问题。

项目地址
这么好玩的项目,肯定要部署在NAS上玩玩,这次用的也是熊猫刚换的极空间Z425轻享版,新机器自然要利用起来。

项目介绍

作者用了claude辅助进行的开发,界面方面没有做的太华丽,但整体还是非常干净,没有乱七八糟的东西,首次登录的用户也就是项目的管理员账户。

首次登录
登录之后就可以开一个饭局了,饭局可以选择早餐、午餐以及晚餐,可以设置用餐时间以及点菜的截止时间。

开饭局
开个饭局之后就可以在菜品中去添加想要吃的东西,可以设置菜名、菜品照片以及备注,比如不吃香菜之类的。

菜品添加
添加完菜品之后再点击对应的饭局,这时候就可以选择刚刚添加的菜品进行点菜了,同时饭局界面也支持选择来做这顿饭。

点菜
当返点到了之后就可以选择点菜截止并开始做菜,吃完之后就可以针对这次的菜品进行点评,可以给个五星好评,再来一些建议之类的。

评价
在贡献榜能看到月度的做饭、点菜榜,不过目前没有对应的奖励机制,感觉可以给经常做饭的人设置一个奖励机制之类的,那就更有意思了。

项目部署

GanCook的部署并不难,打开极空间的Docker,来到Compose下复制下面的代码,其中端口如果和你现有项目有冲突记得更改就行。

version: "3.8"

services:
  gancook:
    image: gloridust/gancook:latest
    container_name: gancook
    ports:
      - "6000:3000"
    volumes:
      - ./data:/data
    restart: unless-stopped

项目部署
拉取镜像并部署好之后就算完成了,所有数据都是存放在NAS本地上,这时候你可以通过极空间Docker容器中的远程访问来访问项目。

快捷访问
极空间是支持Docker的穿透访问的,所以即便是外出在外也可以通过极空间的手机端APP来远程访问项目。

手机端访问

写在最后

GanCook这个项目不算复杂,功能也都围绕着吃饭这件小事展开。它解决的并不是“怎么做菜”,而是把“吃什么、谁来做、做得怎么样”这些每天都要重复讨论的问题,放到一个地方提前说清楚。

如果家里有NAS,又经常为了吃什么和谁做饭纠结,可以部署一个试试。以后到了饭点,先开饭局、再点菜,最后等人认领;要是迟迟没人接单,那今晚吃泡面这件事,也算是大家共同做出的决定。

以上便是本次分享的全部内容了。如果你觉得还算有趣或对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!

结束图

给极空间装上末日生存指南!NOMAD部署,离线资料本地AI一次搞定

2026-08-18 17:21:08

NAS、键盘、路由器······年轻就要多折腾。爱折腾的熊猫,今天又给大家分享最近折腾的内容了。关注是对我最大的支持,阿里嘎多~

怕错过熊猫的精彩分享?那就赶快关注下熊猫吧!

引言

前不久熊猫家里突然断过半天的网络,就因为这半天的断网,我发现了一个非常有趣硬核的开源项目:Project N.O.M.A.D。

项目介绍
它将离线百科、本地AI、课程以及地图等等一些工具集中在一起,你可以按需进行内容下载,下载之后即便是断开网络,所有内容都可以在局域网下正常访问,且你装下的是一套可以搜索、阅读、学习的本地资料对话系统,可以称之为“末日生存电脑”。

整套系统都是建立在Docker上的,不过并不是一股脑把所有资料塞进去,安装好之后我们需要自行根据需求选择离线的应用、地图以及百科,就是把一堆我们原本可以自己部署,但配起来比较费时间的项目,整理成了一套相对完整的产品。

项目介绍

N.O.M.A.D的AI助手主要由Ollama和Qdrant组成。

设置界面
Ollama负责在本地运行大语言模型,Qdrant负责向量检索,用户可以把自己的PDF、EPUB以及其他资料上传到知识库,然后通过RAG检索增强生成,让AI根据这些文档回答问题。

举个例子,可以把设备说明书、急救手册、个人笔记或者维修资料放进去。以后不需要手动翻几十页PDF,直接询问AI即可。

RAG知识库
整个问答流程可以在本地完成,文档不需要上传到第三方云端。对于比较在意资料隐私的人来说,这点还是挺关键的。

如果运行N.O.M.A.D的设备性能不够,也可以连接局域网中另一台电脑上的Ollama,或者接入LM Studio、llama.cpp等兼容OpenAI接口的本地服务。这样便能让极空间负责存储和管理资料,把模型推理交给带独立显卡的电脑。

项目首页
在N.O.M.A.D的首页你能看到地图、快速安装、补给站和文档与设置,其中地图可以按需下载,在列表能看到非常多的地区资源,如果全量下载大概需要127G的存储空间,除了提供的资源,也可以选择自定义地图文件加载。

地图管理器
如果不想一步一步操作,在快速安装中也提供了流程化的安装过程,你可以选择你的需求,例如信息库、教育平台亦或者人工智能,随后再进行地图选择、内容选择等等,整个过程只需要点点点就行。

快速安装
前面也提到了,N.O.M.A.D的本质其实就是将一些Docker进行集中管理,所以在补给站这里可以按需进行可用项目的安装,例如离线的维基百科、AI智能、笔记、PDF识别等等。

按需安装
在系统设置中能看到自己部署机的一些情况,例如熊猫这里的极空间Z425,成功识别到了系统、处理器等信息。

设置
最后总结一下,N.O.M.A.D的地图用的是ProtoMaps、信息图书馆使用的是Kiwix、AI助手主要由Ollama和Qdrant组成、教育平台由Kolibri提供。要讲整个内置的所有资源下载完,预计需要的存储是按TB为单位。

项目部署

N.O.M.A.D的部署也不难,这里还是以熊猫手头的极空间Z425为例子,打开极空间的Docker,为了方便部署这里就用Compose编排,代码如下:

name: project-nomad

services:
  # ─────────────────────────────
  # NOMAD Command Center
  # ─────────────────────────────
  admin:
    image: ghcr.linkos.org/crosstalk-solutions/project-nomad:1.34.0
    container_name: nomad_admin
    restart: unless-stopped

    ports:
      - "${NOMAD_PORT}:8080"

    extra_hosts:
      - "host.docker.internal:host-gateway"

    volumes:
      # 两处路径必须保持一致
      - "${NOMAD_ROOT}/storage:/app/storage"
      - "/var/run/docker.sock:/var/run/docker.sock"

    environment:
      NODE_ENV: production
      HOST: "0.0.0.0"
      PORT: "8080"
      LOG_LEVEL: info

      NOMAD_STORAGE_PATH: "${NOMAD_ROOT}/storage"
      APP_KEY: "${APP_KEY}"
      URL: "${NOMAD_URL}"

      DB_HOST: mysql
      DB_PORT: "3306"
      DB_DATABASE: nomad
      DB_NAME: nomad
      DB_USER: nomad_user
      DB_PASSWORD: "${DB_PASSWORD}"
      DB_SSL: "false"

      REDIS_HOST: redis
      REDIS_PORT: "6379"
      DISABLE_COMPRESSION: "false"

    depends_on:
      mysql:
        condition: service_healthy
      redis:
        condition: service_healthy

    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/api/health"]
      interval: 30s
      timeout: 10s
      retries: 5

  # ─────────────────────────────
  # MySQL数据库
  # ─────────────────────────────
  mysql:
    image: mysql:8.0
    container_name: nomad_mysql
    restart: unless-stopped

    environment:
      MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD}"
      MYSQL_DATABASE: nomad
      MYSQL_USER: nomad_user

      # 必须与admin中的DB_PASSWORD一致
      MYSQL_PASSWORD: "${DB_PASSWORD}"

    volumes:
      - "${NOMAD_ROOT}/mysql:/var/lib/mysql"

    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      interval: 30s
      timeout: 10s
      retries: 10

  # ─────────────────────────────
  # Redis缓存
  # ─────────────────────────────
  redis:
    image: redis:7-alpine
    container_name: nomad_redis
    restart: unless-stopped

    volumes:
      - "${NOMAD_ROOT}/redis:/data"

    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 30s
      timeout: 10s
      retries: 5

# NOMAD会调用该网络名称,请勿随意修改
networks:
  default:
    name: project-nomad_default
    driver: bridge

输入之后点击下方的添加.env,输入以下环境变量。

# 极空间中的宿主机绝对路径
NOMAD_ROOT=/极空间实际路径/docker/project-nomad

# 访问地址
NOMAD_PORT=28080
NOMAD_URL=http://192.168.101.81:28080

# 应用密钥,建议使用 openssl rand -hex 32 生成
APP_KEY=请替换为随机生成的密钥

# 数据库密码
MYSQL_ROOT_PASSWORD=请替换为数据库管理密码
DB_PASSWORD=请替换为NOMAD数据库密码

其中涉及到的端口和实际路径这些根据自身NAS情况更改就行。

image.png
部署完成之后通过极空间的远程访问就可以打开项目了,记得是用admin项目的映射端口。

写在最后

N.O.M.A.D最值钱的地方,不是把Ollama、Kiwix、Kolibri和Qdrant装进了Docker,这些项目我们原本就能自己部署,它真正省事的地方,是用一套Command Center把应用安装、内容下载、状态查看和后续更新串了起来。

硬盘足够大的话,这里面装下的,大概真是一座小型图书馆了。

以上便是本次分享的全部内容了。如果你觉得还算有趣或对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!

结束图

NAS又能干新活了!Docker部署So Novel,网页搜书、在线下载

2026-08-16 15:54:27

NAS、键盘、路由器······年轻就要多折腾。爱折腾的熊猫,今天又给大家分享最近折腾的内容了。关注是对我最大的支持,阿里嘎多~

怕错过熊猫的精彩分享?那就赶快关注下熊猫吧!

引言

极空间的极音乐和极影视熊猫都存了不少资源,但极阅读一直没用过,虽说熊猫平时不怎么看小说,为了折腾,还是看看有啥好玩的能用上。

前两天发现了一个7.7k的开源项目So Novel,一款用来处理网页内容并导出电子书的开源工具,它可以将网页中的结构化内容提取出来,导出为EPUB、TXT、PDF等格式,提供了WEBUI,同时也支持Docker镜像部署,于是准备折腾下。

项目地址
事先声明,不鼓励大家下载和传播未经授权的内容,工具本身没有善恶,具体怎么使用还是得遵守网站规则和著作权相关规定。项目名:freeok/so-novel。

项目介绍

作者已经给到了镜像,所以群晖、绿联、极空间等只要支持Docker的NAS都可以部署,熊猫更推荐使用Docker Compose。

部署之前确认并检查7765端口有没有被其他容器占用,其他的环境变量就没有什么特别的了,毕竟下载并不是直接下载到NAS中,而是通过浏览器下载到本地。

这里直接使用项目官方提供的Compose 配置,方便后续更新和迁移:

services:
  sonovel:
    image: ghcr.io/freeok/sonovel:latest
    container_name: sonovel
    ports:
      - "7765:7765"
    environment:
      JAVA_OPTS: "-Dmode=web"
    volumes:
      - sonovel_data:/sonovel
    restart: unless-stopped

volumes:
  sonovel_data:

在极空间中新建Compose项目,粘贴以上内容并启动,第一次运行需要拉取镜像,具体速度取决于网络环境,稍微等待一会儿即可,如果ghcr.io拉不动镜像,可以尝试修改为ghcr.linkos.org。

容器正常启动后,在浏览器中输入:http://NAS的局域网IP:7765

项目体验

So Novel最省事的地方,是把搜索、下载和格式导出放在一起,项目内置了一些书源,再加上通过WebUI操作,对小白明显友好不少。

项目界面
点击右上角设置能看到偏好设置,同时这里也能看到当前的书源列表,你可以测试每个书源的延迟,不过目前web端不支持新增、修改书源,这一点不是很实用。

书源详情
格式下载上喜欢简单省事的可以导出 TXT;经常使用Apple Books、Readest、Koodo Reader或Calibre的朋友,可以优先选择EPUB;有打印、归档需求的,则可以导出PDF。

下载支持
服务部署在 NAS 上,不需要每台设备单独安装程序,电脑上搜索下载,手机和平板负责阅读,整个流程会顺手很多。

问题也有

不过,So Novel并不是装好之后就能永远不管。

这类工具的可用性很依赖目标网站和书源规则,网站只要调整页面结构,原本正常的书源就可能暂时失效,需要等待规则更新。

书源下载
同时,部分由So Novel生成的EPUB可能无法直接被WPS、掌阅等软件打开。

免费开源不是没有边界,下载、存储和分享内容之前,记得确认自己拥有相应权限。

写在最后

整体来看,So Novel的优点很明确,开源免费、安装方式丰富、支持多种导出格式,它没有把每个功能都做得特别重,但搜索、下载、导出这一套核心流程已经足够实用。

以上便是本次分享的全部内容了。如果你觉得还算有趣或对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!

结束图

还挑薄和润?猎奇党已经玩猫舌、夜光和入珠!7盒实拍,谁纯整活

2026-08-12 18:04:17

前言

这个题材其实老早就想写了,不过素材一直没凑齐,很早之前熊猫就慢好奇,正常人买套套,大都只是关心大小、够不够薄、润不润,但随着这个行业的发展以及需求的提升,是不是会不一样了。

在电商平台逛了一圈,发现一些奇特的画风还是不少,除了常规的水润啵啵、液态延时,还有像激情冰火、猫舌、夜光,最后甚至还有一颗要塞进前端的“蘑菇入珠”。

所以这次我找来7盒产品,第一是给大家开开眼,另一方面就是测评下这些奇特的套,到底会不会增加一些情趣氛围。

产品列表
事先声明,本次测评无广告,所有都是熊猫纯主观感受,且本次测评并不算严谨,仅供大家参考。

水润套

第一款是大象003水润啵啵,也是熊猫家里常用的款,整体包装是紫粉色
套套也都有单独的硬壳包装,做了单手设计非常友好,不用半天找撕口。

外观
透明偏粉的套体上能看到明显润滑液,套在模型上能看到一层水亮感,“润”这个核心卖点至少从照片上能得到回应,1200mg凝胶玻尿酸加上大象宣传的“凝冻化水”,实测非常不错的,双方都能有非常好的体验。

套体
这7盒里先介绍它,主要是水润啵啵最接近日常款,再加上的确是熊猫家中常备,润滑状态也很直观,适合只想要省心、好取用的人,当然,它肯定不算猎奇,不过它是熊猫最愿意先放进购物车的一款。

延时套

第二款是杰士邦超凡持久003,当然,这不是熊猫买的,其实是值得买送的,熊猫还是很年轻的。

延时套
套体为透明光面,能看到虽然是延时套,名单也有非常明显的润滑液。

套套展示
它的重点在套体内侧,页面标称约12mg苯佐卡因,并配合液态缓释设计。苯佐卡因属于局部减敏成分,思路是降低敏感度,而不是单纯把套体做厚。

外观
当然,熊猫首先要告诉大家,麻和舒服不是一回事,如果确实有延时需求、看过说明且没有相关过敏史,可以入手这款,如果你只是追求薄润,那没必要顺手把“持久”也加上。

冰火套

冰火套说实话熊猫一直有所耳闻,但市面上的宣传其实并不多,所以这次也是专门搞了一套。

冰火套
实际上,大象的包装和详情没有把凉感、温感来自什么成分说明白,产品实际是有光面、水润和颗粒三种分类,内部的单独包装背面也会有标识,但具体哪一款是冰,哪一款是火也没有写清楚,不太友好。

实拍
实际体验上,“火套”的感受非常明显,怎么实现的熊猫不太清楚,但的确随着时间的推进你会发现套会越来越热,熊猫估摸会比常规的套高上5-10度,双方的体感都非常明显。

冰火套实拍
“冰套”就非常逊色了,体感上和润滑比较多的套没啥太大区别,不推荐。

入手是整盒的价格,但体验感好的只是其中一种而已,不是特别推荐这种冰火套装的搭配,如果想要单独体验“火”一般的感觉,个人其实更推荐BeU的热感套。

猫舌套

这款是被详情吸引才买的,杰士邦喵舌套,商品页主打2025颗颗粒,实物我肯定是没法一颗颗数的,不过我比较好奇它是怎么做成猫舌的,毕竟众所周知,猫的舌头是有倒刺的。

猫舌套
微距照片里能看到密集的小圆点,纹理确实很直给,但并没有向后的倒刺,所以终究还是被名字给骗到了,没有达到我想要的效果,有点点失望。

微距
不过猫舌套对比常规的颗粒套,的确纹理存在感更强,这一点体感上女方能明显感觉到,但它的厚度并不薄,甚至肉眼就能看出来算是比较厚了,而颗粒这东西主要还是女方的体验感强一点,加上加厚的厚度,颗粒套这种东西,其实男方的体验会很一般。

如果已经用惯光面、双方都想试明显纹理,可以从它入手,但颗粒多只能证明结构更激进,不等于体验一定更好。

夜光套

第五款是倍力乐夜光套NO.666,写的时候还咨询了下值得买成人小编,结果它也没见过,且电商平台熊猫也只发现正经的品牌其实也只有倍力乐有这款产品。

夜光套

首先打开就有一股对比其他明显的刺鼻味道,特别是凑近了闻特别明显,先不管它能不能发光,首先我就想退货了,这玩意儿熊猫是绝对不可能用的。

刺激气味
想要激活荧光,你得先在光源下照射至少30秒,再放到暗处观察,拍出来的效果挺不错的,和宣传也差不多,至于持续时间,这个熊猫拍完就扔了,忘记测了,它味道真的有点大。

夜光效果
这东西的存在其实主要是气氛加点节目效果,觉得有意思可以买来来玩一次,然后让你女朋友或者老婆看看你的“夜光手表”,当然个人不建议真的拿来用,因为味道真的大,其次就是厚度也不算薄。

颗粒指套

第六款是萨福奇点颗粒指套,和前面的不同,它不是避孕套,颗粒数上,因为是指套,大小本身就不大,所以只有364颗。

手指套
实物短小,卷边比男用安全套更粗,表面能看到密集小圆点和明显润滑液,盒内还附了一本“指法说明”,用途几乎写在脸上。

使用说明
虽然它也叫“套”,但使用边界完全不同,它不能替代男用安全套,不能承担完整的避孕或性传播感染防护,只适合作为情趣来用,这一点需要注意,同时,使用的时候记得注意手部和指甲状态。

蘑菇入珠

没错,又是倍力乐,最后是倍力乐蘑菇入珠套专业版,也是整批里最像“装备”的一款,但实际上它并不是在套上做文章。

入珠套
打开包装,能看到10只定制安全套加2颗入珠,这个入珠这是作为“外附魂骨”的形式出现,讲道理,看到还是多少有点绷不住。

蘑菇珠
玩法很简单,把粉色软质入珠放到天然胶乳套体前端,套体外侧就会形成一处集中的大凸起,也就是包装上所谓的“物理加长3cm”了,但其实我想说,这玩意儿真的会舒服吗?

熊猫会把它归到高门槛猎奇款,这种玩法已经突破了熊猫能接受的范围了,且它套本身依然是并不薄,加上润滑也非常少,并不推荐。

还有高手?

最后说回来,本次涉及到的所有猎奇套,熊猫都没有亲自试过,所以只供大家开开眼,实际体验我不知道,毕竟一个比一个吓人,实在不敢用。

实际上熊猫这次实拍能力有限,还有很多我搜到了没有提到的,展示的并不是倍力乐的上限,实际上倍力乐还有酸笋套和榴莲套这种东西,当真是令人窒息的爱。

令人窒息的爱
最后,我只想说,如果成人行业没有了倍力乐,就像相声届失去了郭德纲。

写在最后

最后,再次声明,这次的测评仅仅是供大家开开眼,并不建议大家去购买这些比较猎奇的产品,如果你有什么特殊癖好另说。

同时,猎奇本身没问题,成年人给亲密关系加点新鲜感也很正常,但别忘了检查材质、尺寸、有效期和包装完整性,也别跳过伴侣沟通,舒服与否不是颗粒数量决定的,安全更不会因为包装写着“003”就自动升级。

以上便是本次分享的全部内容了。如果你觉得还算有趣或对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!

关注熊猫

把双人搜打撤装进NAS,不用显卡,打开浏览器就能玩

2026-08-10 19:42:52

NAS、键盘、路由器······年轻就要多折腾。爱折腾的熊猫,今天又给大家分享最近折腾的内容了。关注是对我最大的支持,阿里嘎多~

怕错过熊猫的精彩分享?那就赶快关注下熊猫吧!

引言

众所周知,NAS这种东西一旦开始折腾,就很难老老实实只拿来当硬盘用。前段时间熊猫才折腾完客厅里的网页小游戏,最近逛GitHub时,又发现了一个很有意思的项目惊魂寻宝鸭·搜打撤(zewei94yomi/Treasure)。

这是一个类似逃离鸭科夫类型,可以直接在浏览器里运行的双人小游戏,整体采用俯视角2D画面,玩法融合了寻宝、打怪、撤离和割草等元素,除了经典的搜打撤模式,还加入了无双割草、大逃亡和双人对决,内容比熊猫一开始想象中丰富不少。

游戏界面
项目采用纯HTML和JavaScript开发,不需要复杂的运行环境,原本也是没有Docker镜像的,于是熊猫又顺手补齐了双架构镜像。

介绍

首页能看到商店、图监馆、奖杯陈列、行动手册以及设置中心,右侧有当前的头衔和金币数量,同时也会看到情报,可以根据情报来携带物品,所有存档与设置都是基于本地浏览器存放。

商店
商店内容也还算丰富,武器数量有18种,然后加一些弹药、护具以及医疗品之类的。

行动手册
图鉴和奖杯就不看了,可以理解为成就系统。行动手册为游戏的默认帮助中心,这里能看到一些游戏的机制和操作,当然操作是可以在设置中心去更改的。

设置
在设置中心这里有键位设置,如果默认的不习惯可以通过这里更改,同时这里也自带了管理员中心,在这里可以针对游戏的爆率、速度、经验等调整参数,也支持调整怪物和技能的参数,相当于一个GM中心。

进游戏
游戏支持双人模式,地图目前提供了六张地图,玩法上有经典的搜打撤模式、无双割草模式、大逃亡模式以及双人对决,同时也支持难度调节,在进游戏前还需要选择你这把游戏携带的装备。

站前准备
进游戏之后左下角能看到当前的状态,例如血条、武器状态以及体力等等,翻滚是需要消耗体力的顶部是当前地图探索情况,右上角则是地图,游戏是有天气系统的,不同天气下会有不同的buff。

游戏界面

游戏中会有各种宝箱,同时也会有神秘商人,地图其实不大,探索完基本也就是几分钟的事情。

游戏宝箱
当探索完或者背包满了之后就可以前往撤离点,成功彻底之后背包中的宝物会自动结算成金币,收货的武器或弹药则可以留到下次进游戏以供选择。

撤离
游戏的难度并不高,即便是选择地狱难度对于老手来说其实也不算太难,个人觉得比较有意思的是大逃杀模式,一条路走到底,后面会有烈焰一直追,每个区域都有不同的怪物生成,同时升级会三选一的强化,有点肉鸽属性在,且这个模式下难度其实有点高,需要一些身法。

逃杀模式
无双模式其实也蛮有意思,和大逃杀类似,一样的升级三选一,不过不同的是敌人会源源不断的出来,越到后面越密集,同时伤害也越来越高,血量越来越厚,同时增加了战场boss的存在。

无双模式
作为一个几分钟一局的小游戏来说,虽说画面比较粗糙,但实际上完成度还算不错。

部署

项目熊猫已经做好了双架构镜像,加上项目本身是基于浏览器运行的,所以并不吃性能,即便是Z2Pro和Q4这样的轻量型NAS也完全能部署。

项目部署
打开极空间的Docker来到compose界面,输入以下代码,其中需要注意端口的占用情况,如果有冲突记得更换一下端口。

services:
  treasure:
    image: ghcr.linkos.org/panda-995/treasure-docker:latest
    container_name: treasure
    ports:
      - "8787:80"
    restart: unless-stopped

代码中已经加入了镜像加速地址,直接使用就行,方便小白用户也能快速拉取镜像部署容器。

部署完成之后就可以通过极空间的快捷访问打开游戏了。

总结

游戏本身并不是什么大型游戏,画面和操作也比较简单,但经典搜打撤、无双割草、大逃亡和双人对决几种模式都做得比较完整,再加上商店、装备、图鉴、奖杯以及大量可调参数,偶尔打开玩上几局还是挺有意思的。

需要注意的是,游戏存档保存在当前浏览器的本地存储中,换电脑、换浏览器或者清理浏览器数据,都可能导致进度丢失,重要存档记得提前导出备份。

以上便是本次分享的全部内容了。如果你觉得还算有趣或对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!

结束图