现在可以将 MCP Reddit Server 这个 MCP 服务器,接入到 AI 助手,帮我们快速获取 Reddit 的热帖,了解最新动态。

支持获取任意 subreddit 的热门帖子,抓取完整的内容和评论,支持处理文字、链接和图片。

#GitHub

http://github.com/adhikasp/mcp-reddit

主要功能:

获取任意 subreddit 的热门话题和讨论内容
抓取帖子详细信息,包括评论和互动数据
支持文本、链接、图集等多种 Reddit 内容类型
提供命令行工具,方便开发者测试和调试

可与 Claude Desktop 等 MCP 客户端无缝集成,一键安装即可使用。喜欢逛 Reddit 的同学,可以安装体验看看。

via Memos
一文入门 Docker Compose
LINUX DO - 热门话题 (RSS)


本文同步发布在我的博客之中:一文入门 Docker Compose - Lynn的小站



前言

借助 Docker,您可将容器当做轻巧、模块化的虚拟机来使用。同时,您还将获得高度灵活性,实现对容器的高效创建、部署及复制,并在环境之间迁移它们,从而有助于您针对云来优化应用。

——《什么是 Docker?》



Docker Compose is a tool for running multi-container applications on Docker defined using the Compose file format. A Compose file is used to define how one or more containers that make up your application are configured. Once you have a Compose file, you can create and start your application with a single command: docker compose up

——《Docker Compose 官方介绍》


简单来说,Docker可以让我们把一个项目的所有依赖环境配置好,我们可以快速的运行起来,而无需处理环境的依赖问题;

而某个项目需要用到诸如数据库、Redis等其他项目的时候,使用Docker Compose可以将所有的项目和项目依赖通过一个yml完全配置好,我们只需要通过一行命令就可以快速启动这个项目。


Compose 使用的三个步骤:

— 使用 Dockerfile 定义应用程序的环境。
— 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
— 最后,执行 docker-compose up 命令来启动并运行整个应用程序。

——《Docker Compose - 菜鸟教程》


安装 Docker Compose
这部分,我们在这里仅介绍Linux的安装步骤,Windows和MacOS已经在Docker Desktop之中内置了Docker Compose的功能,如果你有其他特殊的需求,也可以参考官方文档。

基本上来说,只需要这两条命令即可:

sudo curl -L "https://github.com/docker/compose/releases/download/<版本号>/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

如果你使用的是Ubuntu系统,那么安装的步骤则会变得更为简单:

sudo apt install docker-compose

在安装完成后,我们可以通过下面的命令检查是否安装成功

docker-compose --version

配置文件
接下来,我们聊聊配置文件,也就是Docker Compose的核心部分,在这里我们设计了两个服务,一种为源文件构造,另一种是拉取现有的镜像部署。

# docker-compose.yml
version: "3.9"

services: # 定义服务
web: # Web 应用
build: ./app # 使用 ./app 目录下的 Dockerfile 构建镜像
command: flask run --host=0.0.0.0 --port=5000 # 启动 Flask 应用
ports:
- "8000:5000" # 本机8000端口映射到容器5000端口
environment:
# 数据库连接URL,这里通过服务名 db 连接 Postgres
DATABASE_URL: postgresql://postgres:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}
depends_on:
db:
condition: service_healthy # 等待数据库健康检查通过再启动

db: # 数据库服务(PostgreSQL)
image: postgres:16 # 使用官方 Postgres 16 镜像
restart: unless-stopped # 意外退出时自动重启
environment:
POSTGRES_USER: postgres # 数据库用户名
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} # 从 .env 文件读取密码
POSTGRES_DB: ${POSTGRES_DB} # 默认数据库名
volumes:
- db_data:/var/lib/postgresql/data # 数据持久化,保存到数据卷 db_data 之中
healthcheck: # 健康检查,保证数据库可用
test: ["CMD-SHELL", "pg_isready -U postgres -d ${POSTGRES_DB}"]
interval: 5s
timeout: 3s
retries: 10

volumes: # 定义数据卷
db_data: # PostgreSQL 的数据卷

Service - Web服务(从源文件构造)
我们以Web服务为例,这里我们设计了一个Python Flask项目作为示例:

web: # Web 应用服务(Flask 示例)
build: ./app # 使用 ./app 目录下的 Dockerfile 构建镜像
command: flask run --host=0.0.0.0 --port=5000 # 启动 Flask 应用
ports:
- "8000:5000" # 本机8000端口映射到容器5000端口
environment:
# 数据库连接URL,这里通过服务名 db 连接 Postgres
DATABASE_URL: postgresql://postgres:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}
depends_on:
db:
condition: service_healthy # 等待数据库健康检查通过再启动


build:指定构建镜像的目录(./app 里需要有 Dockerfile)。
command:覆盖容器启动命令,这里用flask启动了一个允许所有IP访问的,端口为5000的服务端。


注意:这里应该允许所有IP访问(0.0.0.0),而不是只允许本地访问(127.0.0.1),否则会导致无法从外部连接到容器。



ports:端口映射,本机 8000 → 容器 5000。
env_file:从 .env 文件读取环境变量。
environment:额外定义的环境变量,在这里我们设置了数据库地址。
depends_on:表示依赖关系,这里web服务要等到db服务通过了健康检查,才会启动。

Services - db服务(拉取现有的镜像)

db: # 数据库服务(PostgreSQL)
image: postgres:16 # 使用官方 Postgres 16 镜像
restart: unless-stopped # 意外退出时自动重启
environment:
POSTGRES_USER: postgres # 数据库用户名
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} # 从 .env 文件读取密码
POSTGRES_DB: ${POSTGRES_DB} # 默认数据库名
volumes:
- db_data:/var/lib/postgresql/data # 数据持久化,保存到卷 db_data
healthcheck: # 健康检查,保证数据库可用
test: ["CMD-SHELL", "pg_isready -U postgres -d ${POSTGRES_DB}"]
interval: 5s
timeout: 3s
retries: 10


image:使用构建好的镜像。这里我们固定了版本为16,如果使用latest可能会导致新旧版本的兼容性导致问题。
restart:容器异常退出后会自动重启。
environment:POSTGRES_USER/POSTGRES_PASSWORD/POSTGRES_DB 仅在第一次初始化数据目录时生效。之后数据由卷持久化,再改这些变量不会重置已有库。
volumes:用 命名卷(db_data)作为文件的存储,后面说映射到容器内的存储目录。
healthcheck

CMD-SHELL:表示这条命令会在容器的 shell 里执行(相当于 bash -c)。
pg_isready:这是 PostgreSQL 自带的一个小工具,用来检测数据库是否可以连接。
-U postgres:指定用 postgres 这个用户去检测。
-d ${POSTGRES_DB}:指定要检测的数据库名字(这里我们使用的是变量,会从 .env 文件读取同名的环境变量值)。

数据卷
在 Docker Compose 中,数据卷的定义通常放在最底部的 volumes...

View original post 一文入门 Docker Compose
正在使用lobe-chat的佬们注意了!lobe-chat正在泄漏你的隐私!
LINUX DO - 热门话题 (RSS)

太长不看版本:

当你使用lobe-chat-database进行MCP工具调用之后, lobe-chat团队和cloudflare就会知道该工具调用的细节。

存在严重隐私泄漏、跨境数据传输等安全风险,请各位佬友谨慎使用该软件。

lobe-chat我觉得算是一个优秀的ai对话工具,特别是在MCP集成方面。

项目开发者也在本站: 个人资料 - Arvin_Xu - LINUX DO

但最近碰到的一件事却让我不寒而栗。

我通过lobehub/lobe-chat-database - Docker Image | Docker Hub 这个镜像部署了本地数据库版(v1.112.0),连接了内网的数据库,AI使用的MCP服务器也是部署在内网的(由我自己开发)。理论上,我和AI的对话记录只有我内网有记录(以及AI的服务供应商)。

但我最近在使用AI调用MCP服务器时, 发现lobe-chat在MCP服务器返回结果后,还需要loading很长的时间(可能要几十秒)才能发起下一次AI请求。经过排查,主要是受该接口影响: /trpc/lambda/market.reportCall,message.update?batch=1, 短则几秒、多则几十秒。

让AI帮我分析lobe-chat代码后, 我发现lobe-chat在这个接口里将MCP调用数据上报到了env.MARKET_BASE_URL



但我的lobe-chat-database实例内没有MARKET_BASE_URL这个环境变量,那么数据去哪了呢?

通过查看DNS解析记录/网络抓包后,我发现lobe-chat将数据传到了https://market.lobehub.com,托管在cloudflare上(怪不得速度忽快忽慢!)。但这个域名,在lobe-chat的官方代码仓库(lobehub/lobe-chat)里是没有的,这又是怎么回事呢?

通过排查lobe-chat-database容器实例,我发现这个域名记录在容器内的js文件中:...

View original post
手把手教程利用gemini-cli操控你的浏览器!附实用场景总结L站帖子
LINUX DO - 热门话题 (RSS)






应佬友 @Darthvader 邀请,分享一下可以通过大模型操控自己的浏览器的开源MCP项目,跟着我一步步操作吧!我个人常用场景是总结L站的帖子,试图快速理清佬友们讨论的重点hh。

一、安装mcp-chrome

github.com

GitHub - hangwin/mcp-chrome: Chrome MCP Server is a Chrome extension-based...

Chrome MCP Server is a Chrome extension-based Model Context Protocol (MCP) server that exposes your Chrome browser functionality to AI assistants like Claude, enabling complex browser automation, content analysis, and semantic search.

1、全局安装mcp-chrome-bridge...

View original post
#影视 #电影
😞 飞流视频 新兴的在线影视播放平台

亮点😝
😍高清播放体验优秀,支持多清晰度切换

😍片源丰富,涵盖电影、电视剧、动漫、综艺全品类

😍界面简洁,操作直观,新手友好

😍更新速度快,热门内容同步及时

😍适合人群:全类型影视观众,尤其是追求操作简便的用户


🥰 https://www.flixflop.com/
Back to Top