WWW.YOUINFO.SITE
标签聚合 NEXT

/tag/NEXT

v2ex · 2026-06-11 10:45:15+08:00 · tech

大家好,我是一名全职的独立开发,之前在华为和头部智驾公司。 今天发布我精心打磨的面向个人开发者的 SaaS 模板: ShipNext ShipNext 是一套面向独立开发者、创业者和小团队的全栈 SaaS 启动模板,帮助你跳过重复的基础设施搭建,把更多时间留给真正的产品逻辑、定位和上线。 除了常见的功能如认证、支付、数据库、邮件、存储、后台、营销页面、文档、博客、SEO 和常见 SaaS 工作流都已经预先连接好,你可以在此基础上快速构建自己的产品。 核心亮点 基于 Next.js 16 、TypeScript 、Tailwind CSS v4 和 shadcn/ui 内置 Better Auth ,支持邮箱登录、OAuth 、Magic Link 和密码重置 集成 Stripe / Lemon Squeezy / Paddle 支付与订阅模式 支持 Drizzle ORM 、PostgreSQL 、SQLite 和 Supabase 包含仪表盘、管理后台、定价页、落地页、文档、博客和法律页面 内置邮件模板、Newsletter 、团队通知和用户生命周期消息 支持 S3 兼容存储、文件上传、配额和使用量管理 适配 AI 编程工具工作流,适合 Cursor 、Codex 、Claude Code 、Windsurf 等工具协作开发 适合构建什么产品? ShipNext 适合用来快速启动: AI SaaS 工具 Micro SaaS 产品 生产力应用 付费社区 内容产品 目录站 内部工具 订阅制平台 带积分、额度或用量计费的产品 已包含的 SaaS 模块 应用基础 Next.js App Router 项目结构 TypeScript 类型系统 Tailwind CSS v4 样式体系 shadcn/ui 组件系统 可主题化设计 token Dashboard shell Admin screens 用户与收入 登录与注册 Google / GitHub OAuth Magic Link 密码找回与重置 用户资料设置 订阅与结账 Billing Portal 积分与额度系统 Webhook 处理 付费权限与配额控制 数据与运营 Drizzle ORM PostgreSQL / SQLite 数据库迁移与 seed 脚本 S3 兼容文件上传 Resend / React Email 邮件模板 Discord / Telegram / Slack 团队通知 Crisp 客服集成 Analytics hooks 启动页面 Landing page sections Pricing page patterns Docs Blog Contact page Legal pages SEO metadata Sitemap / robots.txt Open Graph 图片配置 技术栈 ShipNext 使用现代 SaaS 产品常见的技术组合: Next.js 16 React TypeScript Tailwind CSS v4 shadcn/ui Better Auth Drizzle ORM PostgreSQL / SQLite / Supabase Stripe / Lemon Squeezy / Paddle Resend Cloudflare S3 / Cloudflare R2 Fumadocs Crisp 另一个重复模板? ShipNext 除了包含市面上那些模板的功能之外,在以下几个部分做了优化 数据库支持 ShipNext 开箱支持 PG 、Sqlite 、MySQL ,且表结构都已适配,不同的数据库适配不同的厂商,如 PG:Neon 、Supabase 等 Sqlite:Cloudflare D1, Turso, Local file MySQL:任意 mysql 存储商或自部署 存储优化 支持用户维度的空间限制:不同的付费账户的空间限额不一样,ShipNext 内置支持,并且不同的付费计划可以设置不同的空间大小,比如免费用户设置 100MB ,付费用户设置 5GB 支持分片上传:大大加快上传速度 支持设置过期时间 定期自动删除:不会额外占用存储空间,防止文件太多空间不足 内置 <S3Upload> 组件,与分片上传自动集成,真正的开箱即用 多套实现 ShipNext 的代码非常的模块化,对于不同的模块,都内置了多套实现。很多模板只是给了个位置,但是并没有实现,ShipNext 几乎都给出了 2 ~ 3 套实现 支付:内置 Stripe 、Paddle 、LemonSqueezy ,只需修改 provider 的值就可以切换不同的支付 网站防护:Cloudflare Turnstile, hCaptcha, Google-recaptha 等 通知:支持 Discord 、Slack 、Telegram 、飞书等 其他模块 权益模型 ShipNext 对权益模型做了深入的设计和优化,可以同时支持如下的一些场景 订阅制 + 无限使用:在订阅周期,可以设置某些权益无限使用,比如下载等 订阅制 + 额度消耗:典型的如 AI 场景,一个月有多少额度,用完就没有 一次性购买 + 额度消耗:典型的仍然是 AI 场景,积分包,比如 10 刀 100 积分 订阅制 + 一次性购买 + 额度消耗:典型场景为订阅周期额度固定,用户可以继续购买额外积分包,同时额外积分包的消费优先级小于订阅周期的积分,当然都可以设置 以上几种场景几乎覆盖了所有的 SaaS 订阅场景 一对一指导 我是全职独立开发,可以保证,其他模板很难保证,并且拥有 6 年研发经验,提供市场化的经验指导,减少很多弯路 可以说,使用 ShipNext 的开发速度比市面上绝大多数模板要快的多 当然也希望大家跟我沟通,v: zhangsihai0518 任何技术上的探讨都非常欢迎!!

v2ex · 2026-06-10 14:24:00+08:00 · tech

ShipAny 新版本发布了🎉,上线了三套基础模板👇 shipany-next:Agent-Native 开发框架,面向 Agent Coding 而设计,通过内置 Skills 极速开发新项目 shipany-vinext:基于 Cloudflare 官方 Vinext 框架而设计,一键部署到 Cloudflare Workers ,压缩后体积是 shipany-two 的 1/7 ,绑定 CF 全家桶,节约成本 shipany-tanstack:基于 TanStack Start 而设计,使用 Vite 构建,启动与运行速度极快,跨平台部署方便 ShipAny 老用户支付 $1.99 获得新模板。新用户通过这个链接👇 https://shipany.ai/zh/pricing?ivt=idoubi 购买 Premium 会员,输入优惠码: NEXT ,立减 $50 ShipAny 官网也基于 shipany-tanstack 完成了重构,交互体验提升不少。 ShipAny 开发文档也更新了。 ShipAny 新版本整合了流行的技术栈,主推 TanStack + Vite 生态,高性能运行,部署到 Cloudflare ,极具性价比。 ShipAny 新版本精心设计了几个 Skills ,在 Coding Agent 一键调用,对话式快速完成新项目开发。 做 AI SaaS 网站需要的基础功能,ShipAny 基本上都集成了,主打一个开箱即用,让你的 Coding Agent 无需造轮子,快速上线。 ShipAny 官方出品的基础模板,ShipAny Premium 会员可以超低价获取,主打一个仪式感,让买模板跟买咖啡一样简单。 ShipAny 用户提交了几百个案例,有一些有很大的流量,有一些赚到了钱。ShipAny 定位是一把好铲子,帮助用户去淘金。 加入 ShipAny 联盟,设置专属的邀请链接和优惠码。可自行分配额度,帮助朋友获得优惠,自己获得奖励。 我们已经进入了 Agent 主导开发的新时代,做产品变得极其简单。 一个 Agent-Native 开发框架,可以让 Agent 更快速地集成项目需要的基础能力:登录、注册、支付、积分、存储、多语言、SEO 、AI 生成、管理后台。 ShipAny 的定位,就是这样一个 Agent-Native 开发框架,通过一系列的模板覆盖常用的技术栈和业务功能,内置丰富的 Skills 让 Agent 开箱即用,帮助创作者一小时上线功能完整、可商业化的 AI 产品。 新版本,新征程。期待与 ShipAny 用户共建生态,做大做强。✌️

LinuxDo 最新话题 · 2026-06-08 07:07:10+08:00 · tech

Vanity Fair – 7 Jun 26 The Astronauts Wear Prada Prada unveiled the next stage of its partnership with Axiom: the high-performance inner layer of a suit that NASA astronauts will wear to space during the Artemis IV effort. LiveNOW from FOX | Breaking News, Live Events Gallery: Prada’s new Artemis IV garment makes sure NASA astronauts are cool,... A key to fashion is knowing how to layer. If someone is going to wear a Prada spacesuit when strolling around the moon, it’s only natural to want the layer underneath to make sure they stay cool, in more ways than one. The Verge – 7 Jun 26 NASA will wear high-tech Prada long johns to the Moon The LCVG base layer will provide cooling and comfort to astronauts inside their spacesuits. https://www.reuters.com/science/nasa-wear-prada-luxury-group-pushes-into-space-industry-2026-06-07/ 纽约,6 月 7 日(路透社)------意大利时尚品牌 Prada < 1913.F > 周日发布了美国宇航局宇航员登月时将穿着的内层服装,凸显了该品牌力图成为首个进军太空领域的奢侈品巨头的决心。 这款紧身衣由休斯顿太空基础设施开发商 Axiom Space 合作设计,其特点是将通风管编织到衣服中。 3 个帖子 - 2 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-06-08 02:41:10+08:00 · tech

Creating an optimized production build ... Next.js build worker exited with code: null and signal: SIGKILL error: script "build:next:raw" exited with code 1 error: script "build:raw" exited with code 1 error: script "build:vercel" exited with code 1 Error: Command "bun run build:vercel" exited with 1 ▲ Build system report ▲ To always completely log this report, add VERCEL_BUILD_SYSTEM_REPORT=1 as an Environment Variable to your project. • At least one "Out of Memory" ("OOM") event was detected during the build. • This occurs when processes or applications running during the build completely fill up the available memory (RAM) in the build container. When this happens, the build container terminates one of the processes during the build with a SIGKILL signal. • Read this troubleshooting guide for more information: https://vercel.link/troubleshoot-build-errors 是免费版本构建机器太小了吗?只能部署到2.1.56版本的,后面版本都是报这个OOM 2 个帖子 - 2 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-05-30 15:25:54+08:00 · tech

最近在做项目(技术栈:Claude code+ 智普coding plan(GLM5.1)+nextjs)的时候经常会出现这种报错: API Error: The model has reached its context window limit. 并且出现了这个命令基本上使用/compact进行上下文压缩或者是输入其他命令或者是关闭之后使用resume回溯都没有什么反应了 目前找到的解决方案是使用/reset或者/clear清空上下文(副作用是之前的任务状态和进度会丢失,所以建议在每次有了plan之后落到文档当中,并且可以复制在/reset之前的claude的信息做为对话的上下文传递进去) gemini针对这种情况给出的解释是: 命令在执行时,会扫描整个项目,生成大量的类型文件,并输出长篇的终端日志(包括数据库表结构对比),Claude Code 会把终端打印的所有文本原封不动地全部塞进上下文(Context)中。如果本地执行稍微一卡顿或输出内容过多,上下文瞬间就会被撑爆,从而触发 Context window limit。 可以考虑使用如下指令减少这种情况的出现: 由于中转网关限制,请严格遵守以下开发规范: 修改完文件后,绝对不要在内置终端执行 pnpm run db:push、pnpm next build 或 prisma generate 等会产生大量日志或耗时的命令。 凡是涉及编译、数据库迁移、长日志运行的操作,只需口头提示我,由我自己在外部独立终端手动执行。 凡是必须执行的 Bash 命令,请务必带上静默参数(如 > nul 或 --silent),禁止打印冗长日志。 不过我个人体感来说还是会出现这种问题不过频率好像降低了, 佬友们遇到这种情况是如何解决的? 13 个帖子 - 6 位参与者 阅读完整话题

IT之家 · 2026-05-28 15:01:56+08:00 · tech

IT之家 5 月 28 日消息,联想 (Lenovo) 控股的 NECPC 日本当地时间本月 26 日宣布推出新款的 LAVIE NEXTREME 商务轻薄笔记本电脑。这一型号 质量仅 994g ,在 JEITA 3.0 测试中 视频播放续航 20.1hr、待机续航 40.2hr 。 IT之家了解到,LAVIE NEXTREME 基于英特尔酷睿 Ultra 7 258V 处理器 ,整合 32GB LPDDR5X 内存,配备 512GB PCIe SSD 存储,配套 13.3" 1920×1200 IPS LCD 触控屏。 此外其支持 Wi-Fi 7 无线网络, 内置 74Wh 电池 (支持用户更换) ,提供 4 个 USB 10Gbps 接口 (2A1C)、1 个 3.5mm 音频插孔和 1 个 microSD 读卡器。

v2ex · 2026-05-27 17:48:55+08:00 · tech

下载说明 经过一番努力 Next2V 成功上架应用市场,但因为一些众所周知的原因,没能上架国区。 不过华为应用商店的特点就是根据网络切换市场地区,所以只需要 全局 香港节点就能搜索到了。后续的检查更新也是需要全局模式 如果觉得麻烦,也可以加入邀请测试,这个不用处理商店地区,更新也简单 https://appgallery.huawei.com/link/invite-test-wap?taskId=e5cb142385e887e45fea26313df69ab5&invitationCode=3axMFLuuvOt 更多应用介绍 项目地址 https://github.com/honjow/Next2V 近期主要是修复一下 bug 还有添加多语言支持,发帖功能或许还有问题,静待更新

v2ex · 2026-05-27 17:48:55+08:00 · tech

下载说明 经过一番努力 Next2V 成功上架应用市场,但因为一些众所周知的原因,没能上架国区。 不过华为应用商店的特点就是根据网络切换市场地区,所以只需要 全局 香港节点就能搜索到了。后续的检查更新也是需要全局模式 如果觉得麻烦,也可以加入邀请测试,这个不用处理商店地区,更新也简单 https://appgallery.huawei.com/link/invite-test-wap?taskId=e5cb142385e887e45fea26313df69ab5&invitationCode=3axMFLuuvOt 更多应用介绍 项目地址 https://github.com/honjow/Next2V 近期主要是修复一下 bug 还有添加多语言支持,发帖功能或许还有问题,静待更新

v2ex · 2026-05-27 17:48:55+08:00 · tech

下载说明 经过一番努力 Next2V 成功上架应用市场,但因为一些众所周知的原因,没能上架国区。 不过华为应用商店的特点就是根据网络切换市场地区,所以只需要 全局 香港节点就能搜索到了。后续的检查更新也是需要全局模式 如果觉得麻烦,也可以加入邀请测试,这个不用处理商店地区,更新也简单 https://appgallery.huawei.com/link/invite-test-wap?taskId=e5cb142385e887e45fea26313df69ab5&invitationCode=3axMFLuuvOt 更多应用介绍 项目地址 https://github.com/honjow/Next2V 近期主要是修复一下 bug 还有添加多语言支持,发帖功能或许还有问题,静待更新

v2ex · 2026-05-27 17:38:57+08:00 · tech

下载说明 经过一番努力 Next2V 成功上架应用市场,但因为一些众所周知的原因,没能上架国区。 不过华为应用商店的特点就是根据网络切换市场地区,所以只需要 全局 香港节点就能搜索到了。后续的检查更新也是需要全局模式 如果觉得麻烦,也可以加入邀请测试,这个不用处理商店地区,更新也简单 https://appgallery.huawei.com/link/invite-test-wap?taskId=e5cb142385e887e45fea26313df69ab5&invitationCode=3axMFLuuvOt 更多应用介绍 项目地址 https://github.com/honjow/Next2V 近期主要是修复一下 bug 还有添加多语言支持,发帖功能或许还有问题,静待更新

LinuxDo 最新话题 · 2026-05-27 00:58:33+08:00 · tech

我经常在手机上用termux倒腾一点东西嘛,这几年来来去去玩的东西不少,不过留下来的不多 下面给大家汇总介绍一些 在这里提醒一下,手机本身散热就不大行,加上供电需要改;如果纯软件上也要root,说实话软件控制效果不好,要长期玩还是得改硬件供电、散热,或者日常只开着几个服务,这里介绍的不涉及root,只要你手机能装termux就能用; 我这套配置在局域网下是可以正常运行的,当然不是全开,日常就 couchdb 开着同步obsidian, nginx 开着做导航, vaultwarden+sqlite 开着; llamacpp开着Bge-m3-Q8.gguf 但是很少运行, sqlite 可以换成 MySQL 如果你同时开着 NextCloud 的话,不过nextcloud的云盘功能很大程度上被obsidian的同步给替换了,毕竟nextcloud要同时开着 apache2 | mariadb-server | nextcloud | nginx 嘛,相对来说太繁夯了; 佬们,日常用的前提必须是稳的、稳定、稳定;如果不改供电和散热的话不要贪多,只开两三个就可以了,而且定期重启一下,或者换平板来,实测比手机强的多。 设备是 一加8T(soc865 12+256) 日常25-30℃,不会太烫,有新文件向量处理的时候会烫一会,但是日常小文件完全没问题,如果有大量文件还是别折磨手机了, 真的会炸 通过couchdb做obsidian的同步方案 使用llamacpp来部署个 Bge-m3 向量模型来给obsidian的笔记用 vaultwarden密码管理器 局域网下假域名 使用comfyui部署Z-Image-Turbo来绘图 NextCloud自部署网盘 MySQL数据库 介绍从termux原始环境中部署的开始,如果你跳转到后边发现有依赖缺失可以到前边找找 termux初始化 termux从GitHub直接下 termux-GitHub 1. 需要用到的软件 我刚接触是跟着国光大佬的教程学的,但是我对终端美化没什么需求,就没改动,可以搜搜大佬的教程,可以下 zsh 之类的把终端改的很好看 # 选一个China或者Asian的源,方便 termux-change-repo # 更新一下先 pkg update && pkg upgrade -y # 加一些可能用到的源 pkg install tur-repo root-repo -y # 安装一些需要的软件 pkg install vim wget nginx tmux git git-lfs proot-distro uv unzip curl cmake npm -y 2. 安装Debian容器 termux的proot-distro更新后好像改了很多东西, # Version 5.0 release notes 用法上没什么改变,但是好像有些东西会报错 ## 下载Debian:12 # 这里可以开代理,会快很多 proot-distro install debian:12 # 进入 proot-distro login debian # 可以直接写个 bash脚本,能少敲几个词语 touch login_debian.sh echo 'proot-distro login debian' > login_debian.sh chmod +x login_debian.sh ./login_debian.sh 3. proot-distro容器与termux文件互传 因为proot-distro是个容器嘛,与termux原始环境是隔离的; 通过ln 建个链接可以把个目录在termux与proot-distro间联通 ## 这里是termux的~/目录,可以随便取名字 mkdir TheFiles cd TheFiles && pwd # >>得到地址,一般是 /data/data/com.termux/files/home/TheFiles ## 进入到了proot-distro容器的环境 # 目录是 /root/ # 当然如果你习惯用其他的目录位置也都可以 ln -s /data/data/com.termux/files/home/TheFiles ./ # 然后就可以在/root/目录下看到该目录了,这个目录是termux环境和proot-distro容器之间互通的,文件的更改也是同步的 # 在这里提醒一句,最好不要su获取root之后再进入proot-distro环境,这会导致很多文件的归属问题,不知道会有什么奇奇怪怪的bug 假域名 有这个需求是因为如果你的设备需要移动,接入不同的WiFi时自动分配的IP肯定会变,IP一变化很多东西都要重新绑定很麻烦 可以用python的工具 1. 用uv创建个python环境 # 先创建个目录,比如mdns啥的 # 然后再该目录下创建环境 uv venv # 进入python环境 source .venv/bin/activate 1.1 安装一下几个包 uv pip install ifaddr netifaces zeroconf 2. 创建文件 这里分成了两个, python文件是运行的,配置文件是config.json 文件你可以让AI给你改,很方便 2.1 mdns_auto.py import json import socket import netifaces from time import sleep from zeroconf import Zeroconf, ServiceInfo def get_interface_ip(interface_name="wlan2"): try: iface = netifaces.ifaddresses(interface_name) ipv4_info = iface[netifaces.AF_INET][0] return ipv4_info["addr"] except Exception as e: raise RuntimeError( f"Cannot get IP for interface: {interface_name}" ) from e # ============================================ # 加载配置文件 # ============================================ with open("config.json", "r") as f: config = json.load(f) # ============================================ # 获取 hostname # ============================================ hostname = config["hostname"] # ============================================ # 获取本机 IP # ============================================ #local_ip = get_local_ip() local_ip = get_interface_ip("wlan2") print(f"[INFO] Local IP: {local_ip}") # ============================================ # 启动 Zeroconf # ============================================ #zeroconf = Zeroconf() zeroconf = Zeroconf( interfaces=[local_ip] ) # ============================================ # 已注册服务列表 # ============================================ registered_services = [] # ============================================ # 遍历所有服务 # ============================================ for svc in config["services"]: name = svc["name"] service_type = svc["type"] port = svc["port"] path = svc["path"] description = svc["description"] full_service_name = f"{name}.{service_type}" print(f"[REGISTER] {name}:{port}") info = ServiceInfo( service_type, full_service_name, addresses=[socket.inet_aton(local_ip)], port=port, properties={ "path": path, "description": description, "server": hostname, "port": str(port) }, server=hostname, ) zeroconf.register_service(info) registered_services.append(info) print("[INFO] All services registered.") # ============================================ # 保持运行 # ============================================ try: while True: sleep(1) except KeyboardInterrupt: print("\n[INFO] Stopping services...") finally: # ======================================== # 注销所有服务 # ======================================== for svc in registered_services: zeroconf.unregister_service(svc) zeroconf.close() print("[INFO] Zeroconf stopped.") ~/AIFiles/mdns $ cat config.json 2.2 config.json示例如下 { "hostname": "your_self_doim.local.", "services": [ { "name": "WebPortal", "type": "_http._tcp.local.", "port": 8077, "path": "/", "description": "Web Navigation Portal" }, { "name": "CouchDB", "type": "_http._tcp.local.", "port": 5984, "path": "/", "description": "CouchDB Database" }, { "name": "LlamaCPP", "type": "_http._tcp.local.", "port": 8888, "path": "/v1/models", "description": "llama.cpp OpenAI API" }, { "name": "ComfyUI", "type": "_http._tcp.local.", "port": 7777, "path": "/", "description": "ComfyUI WebUI" }, { "name": "VSCodeServer", "type": "_http._tcp.local.", "port": 8080, "path": "/", "description": "VSCode Server" }, { "name": "ZeroClaw", "type": "_http._tcp.local.", "port": 8833, "path": "/", "description": "ZeroClaw WebUI" }, { "name": "SillyTavern", "type": "_http._tcp.local.", "port": 9988, "path": "/", "description": "SillyTavern UI" } ] } 运行 只需要开个tmux窗口然后在后台挂着就可以了 uv run python mdns_auto.py 这里的配置是假定你用该设备共享热点 llama.cpp部署并运行本地模型 1 编译安装 1.1 克隆项目 # 这里目录随意 git clone https://github.com/ggml-org/llama.cpp.git 1.2 编译 # 这里在llama.cpp项目目录下 cmake -B build cmake --build build/ --config Release -j4 1.3 llama-server等添加到环境变量 把这两行添加到环境变量 ## llama.cpp环境变量 export LD_LIBRARY_PATH=/data/data/com.termux/files/home/<your Path>/llama.cpp/build/bin:$LD_LIBRARY_PATH export PATH=/data/data/com.termux/files/home/<your-Path>/llama.cpp/build/bin:$PATH 刷新一下,然后就可以在termux随地使用 llama-cli | llama-server 等命令了 这里补充一下, llama-cli/llama-server 在运行时,可以用 -t1 -t2 -tn (n取小于你soc核心数的正整数) 等参数来选择调用的核心数量,手机的核心大小不一,只用大核心比全弄效果好很多。 nginx配置 nginx安装后,相关的配置文件在 $PREFIX/usr/etc/nginx/ 目录下; 配置和正常Linux一样,只是 include xxx.conf 引用配置的时候尽量用绝对目录,有时候容易出毛病,或者建个 conf.d 目录,直接用 include xxxxx/conf.d/*.conf 引用目录下文件,方便一点 可以用su获取root之后再运行,这样可以用1000以下的端口,如果不用root也能正常用,注意不要用1000以下的端口,因为没有权限 下面开始进入proot-distro容器部分 最好不要su获取root后进入proot-distro,会因为文件归属问题有时候会有奇奇怪怪的bug CouchDB数据库 1. couchdb数据库的安装 参照couchdb官方的示例 官方文档 1.1 添加官方的库 ## 其实我不太懂,不过官方文档是这么写的 # 1 apt update && apt install -y curl apt-transport-https gnupg # 2 curl https://couchdb.apache.org/repo/keys.asc | gpg --dearmor | tee /usr/share/keyrings/couchdb-archive-keyring.gpg >/dev/null 2>&1 # 3 source /etc/os-release # 4 echo "deb [signed-by=/usr/share/keyrings/couchdb-archive-keyring.gpg] https://apache.jfrog.io/artifactory/couchdb-deb/ ${VERSION_CODENAME} main" \ | tee /etc/apt/sources.list.d/couchdb.list >/dev/null 1.2 安装 # 先搜索一下确认库添加上了 apt search couchdb # 应该会新增这仨 couchdb/bookworm 3.5.2~bookworm arm64 RESTful document oriented database couchdb-dbgsym/bookworm 3.5.0~bookworm arm64 debug symbols for couchdb couchdb-nouveau/bookworm 3.5.2~bookworm arm64 Nouveau adds Lucene capabilities to CouchDB ## 用apt安装 apt install couchdb 1.3 couchdb初始化 这是紧接着安装之后,他会引导你初始化一些配置,安装好后在web界面都可以图形化配置 Configuring couchdb ------------------- Please select the CouchDB server configuration type that best meets your needs. For single-server configurations, select standalone mode. This will set up CouchDB to run as a single server. For clustered configuration, select clustered mode. This will prompt for additional parameters required to configure CouchDB in a clustered configuration. If you prefer to configure CouchDB yourself, select none. You will then need to edit /opt/couchdb/etc/vm.args and /opt/couchdb/etc/local.d/*.ini yourself. Be aware that this will bypass *all* configuration steps, including setup of a CouchDB admin user. You'll have to create one manually. 1. standalone 2. clustered 3. none ## 这里是问你1.单机运行 2.多机集群配置 3.等等再说 ,我是单机所以就直接1了 General type of CouchDB configuration: 1 A CouchDB node has an Erlang magic cookie value set at startup. This value must match for all nodes in the cluster. If they do not match, attempts to connect the node to the cluster will be rejected. ## 配置神奇曲奇(bushi)我理解是密码一类的东西,是不显示的,输入完成之后回车就可以 CouchDB Erlang magic cookie: [your password] A CouchDB node must bind to a specific network interface. This is done via IP address. Only a single address is supported at this time. The special value '0.0.0.0' binds CouchDB to all network interfaces. The default is 127.0.0.1 (loopback) for standalone nodes, and 0.0.0.0 (all interfaces) for clustered nodes. In clustered mode, it is not allowed to bind to 127.0.0.1. ## 这里问你是只允许127.0.0.1访问还是都允许,虽然说单个人的数据没什么太大的盗取价值,不过还是建议用127.0.0.1然后加个nginx反代 CouchDB interface bind address: 127.0.0.1 It is highly recommended that you create a CouchDB admin user, which takes CouchDB out of the insecure "admin party" mode. Entering a password here will take care of this step for you. If this field is left blank, an admin user will not be created. A pre-existing admin user will not be overwritten by this package. ## 这才是真正的账号-密码,当然初始化是管理员的账号密码,同样是隐藏的,直接输入完成后回车就可以,这里要多确认一次 Password for the CouchDB "admin" user: Repeat password for the CouchDB "admin" user: invoke-rc.d: could not determine current runlevel invoke-rc.d: policy-rc.d denied execution of start. WARNING: Unable to create standalone system databases. CouchDB may not have started correctly (no init?) Once CouchDB has started correctly, run the following: curl -X PUT --user '<admin-user>:<admin-pass>' http://127.0.0.1:5984/_users curl -X PUT --user '<admin-user>:<admin-pass>' http://127.0.0.1:5984/_replicator Processing triggers for libc-bin (2.36-9+deb12u14) ... 到这里就部署完成了,可以在 http://127.0.0.1:5984/_utls 页面查看后台管理页面 obsidian的设置可以在电脑端配置完后直接用二维码导入到手机,这样可以方便一点,毕竟手机的UI比较小,适配也不一定很合适,但是同步方面我在局域网下使用完全没有问题. 顺带说一下,我Obsidian使用的AI插件是站内大佬的YOLO,挺好用的; 同步使用的是self-host live sync插件 MySQL数据库 这个好装,在proot-distro里叫 mariadb 1. 安装 # 默认的源就带着,直接装就行 apt update && apt install mariadb-server -y 2. 使用 # 启动服务 service mariadb start # 然后就可以直接进入了 mysql 进入MySQL数据库环境之后的具体使用,小弟在这里就不班门弄斧了,只贴一下简单的常用命令 # 登录 MySQL # 登录指定name的账户,<CR>后输入密码 mysql -u name -p # 登录默认账户root mysql # 查看正在运行的数据库 SHOW DATABASES; # 查看特定数据库的信息 USE 数据库名; SHOW TABLES; # 确认当前使用的数据库 SELECT DATABASE(); # 查看正在使用的端口 SHOW VARIABLES LIKE 'port'; # 这个端口在`/etc/mysql/`下的 `my.cnf`中,默认是3306,可以改 # 改完之后重启运行就行 # 刷新MySQL权限相关的表 flush privileges; # 查看所有数据库用户要查看所有数据库用户,可以查询`mysql`数据库中的`user`表。 # 首先切换到`mysql`数据库: USE mysql; # 然后执行以下查询: SELECT User, Host FROM user; # 要查看用户`user`在数据库`nextcloud`上的权限 SHOW GRANTS FOR 'user'@'localhost' ON `nextcloud`.*; # 查询特定用户在特定主机上的权限 SHOW GRANTS FOR 'AIPING'@'localhost:7777'; # 更改指定用户的密码为 ALTER USER 'AIPING'@'localhost' IDENTIFIED BY 'new_password'; FLUSH PRIVILEGES; vaultwarden部署 1. 安装 下载地址 vaultwarden项目地址 web-vault项目地址 首先, vaultwarden 想要正常工作需要六个部分, vaultwarden web-vault nginx MySQL rustup vaultwarden 是bitwarden项目的社区版 Vaultwarden 是一个用于本地搭建 Bitwarden 服务器的第三方 Docker 项目。仅在部署的时候使用 Vaultwarden 镜像,桌面端、移动端、浏览器扩展等客户端均使用官方 Bitwarden 客户端。 web-vault 是web页面 nginx 提供代理服务 在局域网内还用 nginx 代理是因为不开https访问的话,网页只能在127.0.0.1上访问,在局域网内其他设备上使用的话会一直在首页转圈圈,当然,还是因为我只会用 nginx 搭建自签证书的https访问,所以就只介绍这个了; MySQL 用来提供数据库 当然官方也支持 Sqlite 等其他的类型,但是我之所以用 MySQL 只是因为我只会用这个,欸嘿,所以就介绍这一个了; rustup 是vaultwarden安装教程推荐的 rust table ,没怎么接触过,是按教程来的 1.1 安装依赖 apt install build-essential git pkg-config libssl-dev libmariadb-dev-compat libmariadb-dev -y # termux pkg install clang make pkg-config git openssl tur-repo -y 更新包列表并安装构建工具、Git、SSL 开发库 和 Certbot。 对于 MySQL,还需额外安装 MySQL 和开发库。 1.2 安装 Rust 使用官方 rustup 安装稳定版 Rust 和 Cargo。 curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y source $HOME/.cargo/env rustc --version # 验证安装,应显示 rustc 1.x.x 2. 构建 Vaultwarden 2.1 克隆源代码 创建一个源代码目录并克隆仓库。 mkdir ~/source && cd ~/source git clone https://github.com/dani-garcia/vaultwarden.git cd vaultwarden 2.2 构建二进制文件 根据数据库选择构建特性。 SQLite(默认,简单) : cargo build --features sqlite --release MySQL(推荐生产环境) : cargo build --features mysql --release # 示例:MySQL 构建(替换为你的选择) cargo build --features mysql --release 提示 :如果内存不足,添加 --jobs 1 限制并行任务。构建后,二进制文件在 ~/source/vaultwarden/target/release/vaultwarden 。 3. 配置 Vaultwarden 3.1 创建数据目录 创建专用目录并设置权限。 sudo mkdir -p /var/lib/vaultwarden cd /var/lib/vaultwarden sudo mkdir -p data sudo useradd -m -d /var/lib/vaultwarden vaultwarden # 创建专用用户 sudo chown -R vaultwarden:vaultwarden /var/lib/vaultwarden 3.2 下载环境模板和 Web Vault 下载配置文件模板和 Web 界面(推荐最新版本,检查 GitHub Releases 获取当前版本,例如 v2026.4.1)。 ## 目录/var/lib/vaultwarden # 下载环境模板 wget https://raw.githubusercontent.com/dani-garcia/vaultwarden/main/.env.template mv .env.template .env # 下载 Web Vault(示例版本,替换为最新) wget https://github.com/dani-garcia/bw_web_builds/releases/download/v2026.4.1/bw_web_v2026.4.1.tar.gz tar -xvf bw_web_v2026.4.1.tar.gz --strip-components=1 -C data/ # 其实删不删都行,不删留着也没多大,还能方便看是安装的哪个版本 rm bw_web_v2026.4.1.tar.gz 3.3 配置数据库 3.3.1 SQLite(默认) 无需额外步骤,直接在 .env 中使用默认路径。 3.3.2 MySQL(新增) 登录 MySQL 并创建数据库和用户: mysql -u root -p # 输入 root 密码 在 MySQL 提示符下运行: CREATE DATABASE vaultwarden CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'vaultwarden'@'localhost' IDENTIFIED BY 'your_strong_password'; GRANT ALL PRIVILEGES ON vaultwarden.* TO 'vaultwarden'@'localhost'; FLUSH PRIVILEGES; EXIT; 替换 your_strong_password 为强密码。 在 .env 中配置 MySQL 连接(见下文 3.4)。 3.4 编辑 .env 文件 使用编辑器配置环境变量。关键设置包括域名、数据库、日志和通知。 vim /var/lib/vaultwarden/.env 示例配置(SQLite 版) : 不用复制这个示例,直接在官方的example示例里寻找需要改的部分,需要改的示例如下,其他配置我没有用到,不懂(哥们不是IT出身,主打一个能用就像) DATA_FOLDER=data DATABASE_URL=DATABASE_URL=sqlite://data/db.sqlite3 # SQLite 默认路径 LOG_FILE=data/vaultwarden.log LOG_LEVEL=info # 生产环境用 error DOMAIN=https://your-domain.com # 你的域名 ROCKET_ADDRESS=127.0.0.1 ROCKET_PORT=8000 示例配置(MySQL 版) :仅替换 DATABASE_URL 行: DATA_FOLDER=data DATABASE_URL=mysql://vaultwarden:your_strong_password@localhost/vaultwarden # MySQL 连接字符串 # 其余配置同上 提示 :完整模板见 Vaultwarden 文档 。测试配置:保存后,重启服务验证。 4. 部署和运行 4.1 复制二进制文件 cp ~/source/vaultwarden/target/release/vaultwarden /usr/local/bin/vaultwarden chmod +x /usr/local/bin/vaultwarden 4.2 运行 # 目录为/var/lib/vaultwarden vaultwarden # 长时间运行可以用nohup或者tmux,我喜欢用tmux # nohup nohup vaultwarden & # tmux就是直接开个新tmux窗口运行 vaultwarden NextCloud 1.安装一些用到的软件 官方教程里用到的软件(这里我把 sudo 去掉了,因为本来就是root用户而且termux好像取得root有点费劲儿) apt update && apt upgrade apt install apache2 mariadb-server libapache2-mod-php php-gd php-mysql \ php-curl php-mbstring php-intl php-gmp php-bcmath php-xml php-imagick php-zip 2. Mysql创建用户 这块在Next cloud的官网上有教程,可以按照自己需要去修改,不过localhost那个因为我自己不太会就没去改; # 启动MySQL客户端 root@localhost:~# mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 52 Server version: 10.6.18-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. # 创建一个名为'username'的用户,该用户只能从'localhost'访问数据库,并设置密码为'password' MariaDB [(none)]> CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; Query OK, 0 rows affected (0.002 sec) # 创建一个名为'nextcloud2'的数据库,如果不存在,使用'utf8mb4'字符集和'utf8mb4_general_ci'排序规则 MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS nextcloud2 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; Query OK, 1 row affected (0.002 sec) # 授予用户'username'在'nextcloud2'数据库上的所有权限 MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud2.* TO 'username'@'localhost'; Query OK, 0 rows affected (0.002 sec) # 刷新权限,使更改生效 MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.002 sec) # 退出MySQL MariaDB [(none)]> \q Bye 3. 获取Next cloud 可以从这里找 Index of / (nextcloud.com) 需要的版本 如果是Linux服务端可以从这里找 Index of /server/releases (nextcloud.com) # 目前我用到的版本是30.0.0 wget https://download.nextcloud.com/server/releases/nextcloud-30.0.0.zip # 可以先解压再cp到指定位置 unzip nextcloud-30.0.0.zip # 会得到一个nextcloud文件夹,就是将这个文件夹cp到/var/wwww/目录下 cp -r nextcloud /var/wwww/ # 然后将 Nextcloud 目录的所有权更改为 HTTP 用户 # 但是其实哥们好像没有执行这个操作,目前倒是没遇到什么问题 sudo chown -R www-data:www-data /var/www/nextcloud 4. 配置Apache2 4.1 安装apache2 apt update && apt install apache2 -y 4.2 开启Apache2服务 service apache2 start 这个时候应该可以在内网环境的http服务上看到apache2的默认配置界面了 root@localhost:~# ifconfig Warning: cannot open /proc/net/dev (Permission denied). Limited output. lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC) rmnet_data2: flags=65<UP,RUNNING> mtu 1460 inet 这段个人ip哥们就暂时不展示了嗷 netmask 255.255.255.248 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC) rndis0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.143.215 netmask 255.255.255.0 broadcast 192.168.143.255 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC) # 这里这个192.168.143.215就是设备在内网的IP了,将他输入到浏览器应该就可以看到默认界面了 http://192.168.143.215 4.3 创建配置文件 到 /etc/apache2/sites-available/ 目录下,创建一个nextcloud.conf文件 cd /etc/apache2/sites-available/ vim nextcloud.conf 参考大佬的教程 ubuntu 22.04安装部署nextcloud最新版-笔记_netiii 将下列内容复制进去 <VirtualHost *:8080> # 这里我另一个机器用80端口会报错,所以就改成8080了 DocumentRoot /var/www/nextcloud/ ServerName 192.168.143.215 #修改自己的服务器IP或者域名 <Directory /var/www/nextcloud/> Require all granted AllowOverride All Options FollowSymLinks MultiViews <IfModule mod_dav.c> Dav off </IfModule> </Directory> </VirtualHost> 跟着教程走一遍,因为在termux中,和正常的Linux系统略有不同 a2ensite nextcloud.conf reload apache2 a2enmod rewrite headers env dir mime service apache2 restart # 如果有什么报错,我没管它,没看到有什么明显的影响 5. 网页配置 然后就可以访问( http://yourip :yourport)设定管理员账户和密码,配置MySQL数据库接口 这里IP就是 ifconfig 返回的那个内网地址; port就是在nextcloud.conf中配置的接口; 我的配置是 http://192.168.143.215:8080 如果完全和我的教程来,一字不改的话 MySQL用户名是 username 数据库名是 nextcloud2 数据库密钥是 password 数据库地址就是默认的 localhost ComfyUI运行Z-Image-Turbo 当然,这是在proot-distro容器环境中 1. 从GitHub拉取项目 git clone https://github.com/comfyanonymous/ComfyUI.git 2. 准备python环境 uv venv --python 3.11.9 source .venv/bin/activate ps:这里之所以用python3.11.9是因为我之前用3.12会在依赖安装那部分大量报错;这个版本是当前(2025.11)可用的最新版本了 3. 安装依赖 UV_LINK_MODE=copy uv pip install -r requirements.txt --no-cache-dir --force-reinstall 4. 添加一些插件,比如 comfy-gguf 来支持gguf格式的模型(不然可能炸) # 到custom目录下,用git clone拉取 git clone https://github.com/city96/ComfyUI-GGUF.git # cd到ComfyUI-GGUF目录下安装依赖 UV_LINK_MODE=copy uv pip install -r requirements.txt --no-cache-dir --force-reinstall uv简直是termux运行comfyui的神奇喵喵工具 UV_LINK_MODE=copy uv pip install -r requirements.txt --no-cache-dir --force-reinstall ,之前没接触过的时候用python3自带的venv,依赖完全用不了大片的error 5. 回到ComfyUI目录下,写个运行小脚本就可以部署了 touch run.sh \ chmod +x run.sh \ echo "python main.py --cpu --use-split-cross-attention --listen 0.0.0.0 --port 8888" >> run.sh \ ./run.sh ps:上边这个8888纯粹是顺手,而且没root的话,数字小于4000的端口基本用不来 IPv6 这里提一嘴IPv6,我用的是电信的流量卡,查了一下有IPv6 查询方式很多,这里写一下一种termux命令行里的方法 curl -6 ifconfig.me IPv6访问时是http://[xxxx]:port/;一定要加[ ] 实测可以远程访问网页,(导航页是让AI写的),ssh链接使用Termius也可以直连; 但是就像我白天发帖问的,Obsidian的self-hosted live sync插件不能正常使用IPv6,会报错说找不到; 在这里请教各位佬,有没有办法解决这个问题。 wireguard或者Tailsce之类的组网当然可以,不过直接用IPv6不是可以少开一个APP嘛 END 8 个帖子 - 4 位参与者 阅读完整话题

LinuxDo 最新话题 · 2026-05-25 23:18:48+08:00 · tech

Space – 25 May 26 What is the blue-white star next to the moon tonight? Don't miss Spica greet the waxing moon in the southern sky on May 26 Star Walk – 24 Apr 26 下一次蓝月:2026年蓝月日期、时间和完整日历 下一次蓝月是什么时候?查看2026年蓝月的日期和时间,了解蓝月的含义,并查看截至2032年的蓝月日历。 https://www.al.com/news/2026/05/a-rare-blue-moon-is-coming-to-the-nights-sky-this-month-heres-how-to-see-it.html 7 个帖子 - 7 位参与者 阅读完整话题

v2ex · 2026-05-25 11:16:46+08:00 · tech

之前看到 Cloudflare 推出的 vinext 能用 vite 来构建 Next.js, 于是上手试了一下顺便整了个订阅到期提醒管理应用. 跑在 Cloudflare worker 上, 零成本. 支持的通知方式: Telegram, webhook, wecombot(企业微信机器人), bark, notifyx, resend, smtp 部署 一键部署 优点是部署简单, 缺点是不方便后续的更新(我自己部署跑了一个多月了, 后续基本不会更新了) GitHub action 部署 fork 仓库后还需要准备: D1 数据库 id,KV Namespace id,Cloudflare Account ID,Cloudflare API Token 具体步骤参照: readme 优点是 sync fork 后自动同步后续的更新, 缺点是部署麻烦要填 action 环境变量 部分页面展示 开源地址 https://github.com/Merack/subflare-vinext

v2ex · 2026-05-24 18:09:58+08:00 · tech

业余时间整理海外工具大半年。起因是每次给做跨境/独立站的朋友推荐工具,要重新搜价格、查中国卖家能不能用、找替代品——很烦。 把数据慢慢集中到一个站: chdh.me 现状( 2026-05 ): - 2,243 个工具,22 个一级 / 164 个二级分类 - 1,406 个工具对比页(自动从数据生成) - 24 篇深度报告( 10-17k 字 / 2026 价格 + 政策时间线 + 决策矩阵) - sitemap 4,060 条 技术栈: - Next.js 15 App Router + output: 'export' 纯静态 - 数据全部 TypeScript 类型化( data/tools/*.ts ),零数据库 - Cloudflare CDN + 自建 VPS ( HostKVM HK CN2 + xTom 双源) - 无 cookie / Cloudflare Web Analytics + Microsoft Clarity - HSTS preload / CSP / Origin CA 数据集 CC BY 4.0:任何人可以拉来跑分析或做衍生站。 V2EX 可能用得上的几个报告: - AI Coding 6 强横评( Cursor / Lovable / Bolt / V0 / Claude Code / Replit Agent ) chdh.me/reports/ai-coding-agents-2026 - Cloudflare 全栈 2026 ( Workers / R2 / D1 + 2025-11 全球大故障复盘 + Vercel $46K/月翻车对比) chdh.me/reports/cloudflare-stack-2026 - 团队协作 4 强( Notion / Linear / Slack / Asana + Slack 2026-02 退出大中华区 + 飞书 vs Lark 实测) chdh.me/reports/team-collab-tools-2026 - 美国虚拟手机号 2026 (含接码平台风险警示 + 8 家服务 × 17 平台验证码接收矩阵 + 山东临沂猫池警方破案) chdh.me/reports/us-virtual-phone-numbers-2026 2 个想跟同行讨论的技术问题: 1. Next.js 静态导出 4,000+ 路由,build 时间 ~90s 。有没有人在跑更大规模( 10K+ 路由)?怎么优化 build 流程? 2. 工具评测的"信息折旧"是真问题——价格 / 政策每月都在变。我现在的做法是每月定期复核 24 篇报告,但写得越多复核压力越大。有没有更工程化的做法(比如自动监控官网价格页 diff 触发 review )? 数据集 fetch: chdh.me/sitemap.xml 或直接 clone 数据目录。