ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที เข้าสู่ระบบด้วย Google เพื่อเขียนรีวิวได้แล้วต้นแบบ · อัปเดตทุก 30 นาที
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · วิธีติดตั้งภาษาไทยทุกตัว

rtfx.pro

โดย yogevgabรุ่น 1.0.0i★ 0iรันบนคลาวด์
ชื่อใน registrypro.rtfx/rtfx

วิธีติดตั้ง

ใช้ทำอะไรได้

ยังไม่มีคำอธิบายภาษาไทย ดูข้อเท็จจริงด้านล่าง หรือเปิดคำอธิบายต้นฉบับจากผู้ทำ

  • ต่อแบบ คลาวด์ (ต่อผ่านอินเทอร์เน็ต)
  • บัญชีหรือคีย์ ล็อกอินกับบริการตอนต่อ (OAuth)
  • หมวด เอกสาร ตาราง และงานออฟฟิศ
คำอธิบายต้นฉบับจากผู้ทำ (อังกฤษ)
Publish what Claude makes (HTML, PDF, small site) to a private link only chosen people can open.

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ผลตรวจผ่าน 4/5 · สิ่งที่คุณถามผ่านเซิร์ฟเวอร์ของผู้ทำ (mcp.rtfx.pro) · ✓ ตรวจคำสั่งแล้ว 13 พ.ย. 2569

ขั้นแรก: คุณใช้ AI ตัวไหน

เลือกแอปที่คุณใช้ ขั้นตอนจะขึ้นด้านล่าง

ต่อกับ Claude ได้ · ประมาณ 2 นาที

ไม่ต้องใช้คีย์ ไม่ต้องลงโปรแกรม · ตั้งครั้งเดียวที่ claude.ai หรือแอปบนคอม แล้วใช้ในแชตได้ · บัญชีฟรีเพิ่มได้ 1 ตัว · แผน Team/Enterprise ให้เจ้าของ (Owner) เป็นคนเพิ่ม

  1. เปิดหน้า Connectors ของ Claude

    CustomizeConnectors

    CustomizeConnectors1Add2https://…3Add4
  2. กด “Add” → “Custom” → “Web” แล้วกรอก 2 ช่องนี้

    คัดลอกจากที่นี่ไปวางในช่องชื่อเดียวกันบนหน้าจอของ Claude แล้วกด Continue

    Name · ชื่อrtfx.pro
    Remote MCP server URL · ที่อยู่https://mcp.rtfx.pro/mcp

    กด Continue ผ่านหน้าตรวจการล็อกอินที่ Claude ตรวจเจอ · หัวข้อ Authentication เลือกตามที่ผู้ทำบอก (Sign in now, Sign in when needed หรือ No sign in) แล้วกด Add

  3. เปิดใช้ในแชต

    +Connectorsrtfx.pro

  4. ลองเลย

    ใช้ rtfx.pro บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า Claude บอกว่ากำลังใช้ rtfx.pro หรือมีชื่อเครื่องมือของ rtfx.pro ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

ต่อกับ ChatGPT ได้ ขึ้นกับแผน

MCP แบบเต็ม: ChatGPT Business, Enterprise หรือ Edu บนเว็บ · Pro: ต่อได้ด้วยสิทธิ์อ่านและดึงข้อมูล เครื่องมือที่แก้ข้อมูลอาจใช้ไม่ได้ · Plus: เอกสารยังไม่ยืนยัน ถ้าเห็นเมนูเพิ่ม MCP แบบกำหนดเองในหน้าปลั๊กอิน ลองตามขั้นตอนได้ · ใช้บนเว็บเท่านั้น

  1. เปิดหน้าเพิ่ม MCP ของ ChatGPT บนเว็บ

    Plugins+Add custom MCP server

    ChatGPTPlugins1+2https://…3Create4
  2. กรอกชื่อและที่อยู่

    ใส่ชื่อ แล้ววางที่อยู่ใต้ Connection ติ๊กยอมรับคำเตือน แล้วกด Create as a plugin

    Name · ชื่อrtfx.pro
    Connection · ที่อยู่https://mcp.rtfx.pro/mcp
  3. เลือก rtfx.pro ในแชต

    เปิดแชตใหม่แล้วเลือก rtfx.pro จากรายการปลั๊กอินก่อนพิมพ์

  4. ลองเลย

    ใช้ rtfx.pro บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า ChatGPT บอกว่ากำลังใช้ rtfx.pro หรือมีชื่อเครื่องมือของ rtfx.pro ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ OpenAI เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

ต่อกับ Claude Code ได้ · ประมาณ 2 นาที

ไม่ต้องใช้คีย์ ไม่ต้องลงโปรแกรม

  1. เปิด Terminal

    Mac: กด Command+Space พิมพ์ Terminal · Windows: เปิด PowerShell

  2. วางคำสั่งนี้แล้วกด Enter

    claude mcp add --transport http --scope user rtfx https://mcp.rtfx.pro/mcp
  3. พิมพ์ /mcp ใน Claude Code

    ต้องเห็น rtfx.pro ในรายการและขึ้นว่าเชื่อมต่อแล้ว

  4. ลองเลย

    ใช้ rtfx.pro บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า Claude Code บอกว่ากำลังใช้ rtfx.pro หรือมีชื่อเครื่องมือของ rtfx.pro ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

ต่อกับ Cursor ได้ · ประมาณ 2 นาที

ไม่ต้องใช้คีย์ ไม่ต้องลงโปรแกรม

  1. กดปุ่มนี้เพื่อเปิด Cursor

    เปิดใน Cursor

    Cursor จะถามยืนยันการติดตั้ง ให้กด Install

  2. เปิดแชตของ AI ใน Cursor โหมด Agent

  3. ลองเลย

    ใช้ rtfx.pro บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า Cursor บอกว่ากำลังใช้ rtfx.pro หรือมีชื่อเครื่องมือของ rtfx.pro ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Cursor เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

ต่อกับ VS Code ได้ · ประมาณ 2 นาที

ไม่ต้องใช้คีย์ ไม่ต้องลงโปรแกรม

  1. กดปุ่มนี้เพื่อเปิด VS Code

    เปิดใน VS Code

    VS Code จะถามยืนยันการติดตั้ง ให้กด Install

  2. เปิดแชตของ AI ใน VS Code โหมด Agent

  3. ลองเลย

    ใช้ rtfx.pro บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า VS Code บอกว่ากำลังใช้ rtfx.pro หรือมีชื่อเครื่องมือของ rtfx.pro ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ VS Code เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

โปรแกรมอื่นที่ใช้ MCP ได้ เช่น Windsurf, Zed หรือ Gemini CLI มีวิธีเพิ่มต่างกัน ดูวิธีของแต่ละตัวในหน้ารวมโปรแกรม

ดูโปรแกรมที่ใช้ MCP ทั้งหมด →

ที่อยู่สำหรับโปรแกรมที่ต่อผ่านเว็บ

ที่อยู่https://mcp.rtfx.pro/mcp

ค่าตั้งแบบไฟล์ JSON อยู่ในหัวข้อ “สำหรับคนเขียนโค้ด” ด้านล่าง

ติดตรงไหน? ถามคนที่ใช้ rtfx.pro อยู่💬 พูดคุย →
สำหรับคนเขียนโค้ด: คำสั่ง Terminal และค่าตั้ง JSON

ต่อผ่านเว็บ

Claude Code

claude mcp add --transport http --scope user rtfx https://mcp.rtfx.pro/mcp

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "rtfx": {
      "url": "https://mcp.rtfx.pro/mcp"
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "rtfx": {
      "type": "http",
      "url": "https://mcp.rtfx.pro/mcp"
    }
  }
}

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

สรุป

ดาวน์โหลดต่อสัปดาห์i
ไม่มียอดใน npm/PyPI
โดเมนที่ยืนยัน
✓ rtfx.pro
การเชื่อมต่อ
รันบนคลาวด์
รุ่นล่าสุดi
1.0.0
ส่งเข้า registryi
26 ต.ค. 2569
แก้โค้ดล่าสุดi
7 พ.ย. 2569
ผู้ทำ
yogevgab
เว็บผู้ทำ
rtfx.pro
สถานะใน registry
ใช้งานอยู่

ใช้กับโปรแกรมไหนได้

ดูจากแบบการต่อของ server ตัวนี้ และเอกสารของผู้ทำโปรแกรมแต่ละตัว ตรวจเมื่อ 10 พ.ย. 2569

ต่อผ่านคลาวด์ได้ใน

ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast

ดูโปรแกรมทั้งหมดพร้อมข้อดีข้อเสีย →

คู่มือที่เกี่ยวข้อง

ทำอะไรได้บ้าง

server ให้ล็อกอินก่อนจึงจะแสดงรายการเครื่องมือ

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 15 พ.ย. 2569

  • ! ควรระวัง

    ตัวตนผู้ทำตรงกับ repo

    ผู้ลงทะเบียน (rtfx.pro) ไม่ใช่เจ้าของ repo (yogevgab) อาจเป็นคนอื่นที่นำมาลงต่อ

  • ✓ ผ่าน

    ยังมีคนดูแล

    มีการแก้โค้ดล่าสุด 8 วันที่ผ่านมา

  • ✓ ผ่าน

    มีสัญญาอนุญาต (license)

    ใช้ MIT

  • ✓ ผ่าน

    endpoint ตอบ

    ตอบกลับใน 110 ms (HTTP 401)

  • ✓ ผ่าน

    ล็อกอินแบบ OAuth

    ประกาศวิธีล็อกอินแบบ OAuth ให้โปรแกรม AI พาไปล็อกอินเอง

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint

เราตรวจอะไรบ้าง → · JSON

ผู้ทำ: ขอให้ตรวจใหม่ หรือแจ้งข้อมูลผิด

พูดคุย

ถาม แชร์เคล็ดลับ หรือแจ้งว่าใช้ไม่ได้ เรียงตามที่คนกดว่ามีประโยชน์

ยังไม่มีใครโพสต์ ถามหรือแชร์เป็นคนแรกได้เลย

ข้อความในส่วนนี้เขียนโดยผู้ใช้ ไม่ใช่ทีม PopNx

เข้าสู่ระบบเพื่อโพสต์

รีวิวจากผู้ใช้

ยังไม่มีรีวิว

เข้าสู่ระบบเพื่อเขียนรีวิว

เทียบกับตัวอื่นในหมวด เอกสาร ตาราง และงานออฟฟิศi

  • ดาวมากกว่า 0% ของอีก 3942 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 61% ของอีก 3942 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 53% ของอีก 3942 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

rtfx.pro ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 4 จาก 5 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนคลาวด์ของผู้ทำ ต่อผ่านอินเทอร์เน็ตได้เลย ไม่ต้องลงโปรแกรม แต่ข้อมูลที่ส่งให้จะผ่านเซิร์ฟเวอร์ของผู้ทำ

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด 8 วันที่ผ่านมา และส่งรุ่นล่าสุด (1.0.0) เข้า registry 20 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT บนเว็บ (แบบเต็มในแผน Business ขึ้นไป · Pro แบบอ่านอย่างเดียว)

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Puter MCP, XcodeBuildMCP, Anki MCP Server, Sosumi, Zapier

ตัวอื่นที่ทำงานคล้ายกัน

หมวดเดียวกันจากผู้ทำคนอื่น ผ่านตัวตรวจคำสั่งแล้ว ตัวทางการขึ้นก่อน แล้วเรียงตามดาว

อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Puter MCP

Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more

โดย HeyPuterใช้กันมาก★ 44.2Kอัปเดต 5 เดือนที่ผ่านมา

รันบนคลาวด์✓ เจ้าของบริการ · puter.com

XcodeBuildMCP

ให้ AI จัดการโปรเจกต์ Xcode สั่ง build และใช้ iOS Simulator

โดย getsentryใช้กันมาก↓ 130.5K/สัปดาห์ ยอดของแพ็กเกจที่ใช้ร่วม★ 6.6Kอัปเดต 4 เดือนที่ผ่านมา

รันบนเครื่อง✓ เจ้าของบริการ · xcodebuildmcp.com

Anki MCP Server

MCP server for Anki flashcards: adaptive review, notes, media, and deck management via AnkiConnect.

โดย ankimcpกำลังโต↓ 1.1K/สัปดาห์★ 558อัปเดต 41 วันที่ผ่านมา

รันบนเครื่อง✓ เจ้าของบริการ · ankimcp.ai

Sosumi

Search and read Apple developer documentation, HIG, and WWDC transcripts as Markdown.

โดย NSHipsterกำลังโต★ 492อัปเดต 6 วันที่ผ่านมา

รันบนคลาวด์✓ เจ้าของบริการ · sosumi.ai

Zapier

ต่อ AI เข้ากับแอปหลายพันตัวผ่าน Zapier ตัวเดียว เช่น Gmail, Google Sheets, Slack และ LINE ที่มีใน Zapier เลือกได้ว่าให้ AI ทำงานอะไรบ้าง

โดย zapierกำลังโต★ 459อัปเดต 4 เดือนที่ผ่านมา

รันบนคลาวด์✓ เจ้าของบริการ · zapier.com
  • Puter MCP — ใช้บนคลาวด์ ไม่ต้องลงเครื่อง · ไม่ต้องใช้คีย์
  • XcodeBuildMCP — ต้องลงในเครื่อง · ไม่ต้องใช้คีย์
  • Anki MCP Server — ต้องลงในเครื่อง · ไม่ต้องใช้คีย์
  • Sosumi — ใช้บนคลาวด์ ไม่ต้องลงเครื่อง · ไม่ต้องใช้คีย์
  • Zapier — ใช้บนคลาวด์ ไม่ต้องลงเครื่อง · ไม่ต้องใช้คีย์ · อยู่ในคลังของ Claude

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

artifacts-server

Private, access-gated hosting for landing pages and HTML/Claude artifacts, running entirely on Cloudflare Workers. A public product site at / (plus /docs, /signup and /login) explains the product and lets people start on the Free plan. Sign-in is app-owned and passwordless: rtfx.pro emails a one-time code or magic link, then a host-only rtfx_session keeps the browser signed in. One dashboard at /admin handles publishing, sharing and the gallery of everything shared with you. Artifacts — single HTML files or multi-file static bundles — are published from a web dashboard, a CLI, or an agent session (Claude Code, Hermes). With per-artifact permissions and versioning.

  • 🤖 Agent-native publishing — Claude Code, a native MCP server, Hermes, the CLI and the HTTP API all take the same path a human takes; no separate, weaker agent route. See plugins/rtfx and docs/MCP.md.
  • 👥 Access by identity first — each artifact is private, shared with named people, or open to all signed-in users. Unauthorized and non-existent both return 404.
  • 🔗 Revocable share links — for someone who will not have an account, create a capability URL for exactly one artifact, optionally expiring in 1–365 days. Only a hash is stored.
  • 🕓 Versioning — every re-publish is a new immutable version; roll back within your plan's retention window (free keeps the last 5; paid plans keep everything).
  • 📈 Views log + read receipts — see who viewed each artifact, when, which version, and from where, with an email the first time each named recipient opens it.
  • 🏢 Workspaces & roles — artifacts belong to an account with owner/admin/member/viewer roles; instance privilege is re-derived from config, never read from a table.
  • 🔗 Canonical workspace addresses — every workspace has an address (generated as w-xxxxxxxx; a paid workspace can claim a custom one) and every artifact link is rtfx.pro/ / — e.g. rtfx.pro/yogev/q3-board-report. It is the only URL the product shows or returns: the viewer renders on the app host and frames the sandboxed content origin, which is never an address. Old a.rtfx.pro/ / links redirect browsers to it. A path on the app host, not a custom domain.
  • 🌐 Public product site — /, /docs, /signup, /login, /privacy and /terms are reachable by anyone, with SEO metadata, sitemap.xml, robots.txt and llms.txt; everything else needs an identity.
  • 🔒 Access-gated dashboard — app-owned email OTP/magic-link sign-in for /admin and the API; the app stores no passwords.
  • 🖼️ One dashboard — publish and manage under Artifacts; everything shared with you under Gallery. Same shell, same nav, same brand.
  • 🔑 API tokens — hashed bearer tokens for server-to-server publishing (Hermes Cloud, CI), scoped, owner-bound and revocable.
  • ☁️ All Cloudflare — Worker + R2 (files) + D1 (metadata). No servers, no database to run.

Stack: TypeScript · Hono · Cloudflare Workers / R2 / D1 / Email Sending · Lemon Squeezy

Not built yet, and deliberately not implied anywhere in the copy: per-link passwords, custom domains for artifacts (branded workspace addresses are a path on the app host, not your own hostname), comments/approvals, a public gallery of artifacts, usage-based billing, and per-seat billing beyond the fixed seats included in each plan. Access is by identity first; share links are separate capability URLs with optional expiry and immediate revocation. The competitive reasoning, and the full table-stakes-vs-differentiators split, is in docs/POSITIONING.md. The public site is one page: rtfx.pro — connect the MCP server, then publish, share, delete.


How it works

                    /, /docs, /signup, /login and legal pages (public)

│ Browser / CLI ─────────────────────────┼──────────────────────────▶ Worker (Hono) ┌──────── app-owned email OTP / magic link ───────┐ │ │ rtfx_session cookie + users/accounts tables │────┘ └─────────────────────────────────────────────────┘ files · /admin · /api │ ┌───────────────────────┬────────────────────┐ │ ▼ ▼ ▼ │ R2 (files at D1 (metadata: Email + │ /v /…) artifacts, grants, billing │ versions, sessions) webhooks │

  • `/`, `/signup`, `/login`, `/docs`, `/privacy`, `/terms`, `robots.txt`, `sitemap.xml` and `llms.txt` are public product/crawler pages.
  • rtfx.pro sessions authenticate dashboard/API/artifact requests with a signed rtfx_session cookie created after email-code or magic-link verification.
  • The Worker authorizes per-artifact (who sees what), serves the current version of each artifact, renders the public site and the dashboard, and exposes a JSON API.
  • R2 stores files under /v /…; D1 stores metadata.

See docs/ARCHITECTURE.md for details.

Prerequisites

  • Node.js 18+
  • A Cloudflare account with a domain (zone) on the account (you'll serve from a hostname you control, plus a separate content hostname if you want the same isolation as rtfx.pro).
  • Cloudflare Workers, R2, D1 and Email Sending enabled.
  • npx wrangler login (authorizes Workers/R2/D1/deploy)

Quick deploy

git clone https://github.com/yogevgab/artifacts-server.git

cd artifacts-server npm install npx wrangler login

npm run setup

npm run setup is the simple, single-hostname path: it creates the R2 bucket + D1 database, applies the schema, fills the basic Worker config, deploys, and leaves you to add production-only choices such as a separate content hostname, Email Sending, billing secrets and legal values. For a multi-hostname deployment like rtfx.pro, use docs/SELF_HOSTING.md plus the manual steps below instead of relying on the setup script.

When it finishes, configure Email Sending and SESSION_SECRET, then open https:// /signup or /login to create the first account. ADMIN_EMAILS in wrangler.jsonc decides who gets platform-admin rights.

Manual deployment

Step-by-step without the setup script

Deploying with a separate content-only hostname (multiple routes entries, e.g.

app + content-host isolation)? npm run setup only supports a single hostname —

see docs/DEPLOY_RTFX.md for a worked example runbook.

npm install

npx wrangler login

1. Storage

npx wrangler r2 bucket create artifacts-files npx wrangler d1 create artifacts-meta # copy the database_id into wrangler.jsonc npx wrangler d1 execute artifacts-meta --remote --file schema.sql

2. Edit wrangler.jsonc: set route patterns to your app/content hostnames,

ADMIN_EMAILS, PUBLIC_BASE_URL, CONTENT_HOSTNAMES and the database_id.

3. Required secrets / mail

npx wrangler secret put SESSION_SECRET

Optional, only if selling paid plans:

npx wrangler secret put LEMONSQUEEZY_WEBHOOK_SECRET

4. Deploy (creates the custom domains)

npx wrangler deploy

Email Sending is required for sign-in. Enable it for the domain, verify SPF/DKIM/DMARC, and keep MAIL_FROM inside the Worker send_email.allowed_sender_addresses. The app sends a one-time code or magic link, then issues its own host-only rtfx_session cookie. Fresh deployments do not need Cloudflare Access.

Configuration

All config lives in wrangler.jsonc (vars) plus one secret. See the comments there.

SettingWhat it is
routes[0].patternHostname to serve from (a zone on your account).
ADMIN_EMAILSComma-separated emails with admin rights.
SUPER_ADMIN_EMAILS *(optional)*The operator/owner account(s). A super admin may manage other admins, and can never be paused or removed — the anti-lockout invariant. Defaults to the first ADMIN_EMAILS entry, so every deployment has one.
MAIL_FROMVerified sender address for OTP/magic-link email. Must match the Email Sending binding.
SESSION_SECRET *(secret)*At least 32 bytes; signs the app-owned rtfx_session cookie.
LEMONSQUEEZY_WEBHOOK_SECRET *(secret, optional)*Verifies billing webhooks when paid plans are enabled.
PUBLIC_BASE_URL *(optional)*Canonical public origin, e.g. https://rtfx.pro. Canonical links, OpenGraph URLs, sitemap.xml and llms.txt are absolute against it, and any other hostname serves a disallow-everything robots.txt. Defaults to https://rtfx.pro (SITE.origin in src/seo.ts).
CONTENT_HOSTNAMES *(optional)*Hostnames that serve artifact files only — no dashboard, API or product pages.

Usage

Public product site

https:// / — public, no login required. Positions the product, covers use cases and differentiators, and collects /waitlist access requests. Its two CTAs are deliberately distinct: Request access (for people without an account) and Sign in (/login, for people with one). /docs is the public documentation page (publishing, Claude Code/Hermes, the access model, #why-rtfx, FAQ). See docs/PUBLIC_SITE.md for the SEO/crawler surface and the copy rules, and docs/POSITIONING.md for what the copy may claim.

Sign-in

https:// /login — public, app-owned sign-in. It emails a one-time code or magic link, verifies it, then sets a host-only rtfx_session cookie. It renders signed-out, already signed-in and paused-account states. There is no password auth and no Cloudflare Access dependency in a fresh deployment.

Dashboard

https:// /admin — publish artifacts, manage per-artifact access, upload new versions / roll back, and (admins only) manage people. Every user, admins included, sees only the artifacts they own or belong to; platform admins get no access to other people's artifact content, versions, view log, access list or share links. The Platform section (super admin) lists every artifact as metadata only (owner, size, counts, dates) and offers an audited abuse-delete. The Gallery section at /admin/gallery is filtered to what each viewer may *open* — what they own plus what has been shared with them. /gallery is kept as a redirect into it; visiting it signed out goes to /login.

People (user management)

Admin-only, in the dashboard and at /api/users. The app owns identity with signed sessions and stores account/user state in D1:

LayerHoldsSource of truth for
rtfx_session cookieSigned email/account identityWho this browser request is
users / accounts tablesstatus, display name, workspace membership, roles and audit stateWhether this app serves them and what they can manage
ADMIN_EMAILS / SUPER_ADMIN_EMAILSPlatform privilegeWho is an operator/admin for the whole instance

The Worker re-derives platform privilege from config, never from a user-writable table. Lifecycle actions can pause/re-enable/remove accounts and revoke API tokens, but API tokens are refused from user-management routes entirely.

CLI
export ARTIFACTS_URL=https://<your-domain>

One credential: the artifact commands go to /api/machine/…, which authenticates

this bearer token and nothing else.

export RTFX_API_TOKEN=

node cli/artifacts.mjs publish ./page.html --slug my-page --title "My Page" node cli/artifacts.mjs publish ./site/ --slug demo --title "Demo" # a folder is zipped n

ตัดมาแค่ช่วงต้น อ่านต่อใน repo