Rouzbeh† 15faec6258 fix(logs): limit Xray log growth (#5840) 20 stundas atpakaļ
..
app 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
components 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
content 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
lib 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
public 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
scripts 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
.gitattributes 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
.gitignore 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
.prettierignore 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
.prettierrc.json 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
CONTRIBUTING.md 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
LICENSE 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
README.md 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
architecture.md 15faec6258 fix(logs): limit Xray log growth (#5840) 20 stundas atpakaļ
custom-subscription-templates.md 41645255f1 refactor: focused service files, leaf subpackages, and an internal/ layout (#5167) 4 nedēļas atpakaļ
eslint.config.mjs 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
next.config.mjs 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
package.json 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
pnpm-lock.yaml 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
pnpm-workspace.yaml 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
postcss.config.mjs 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
proxy.ts 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
real-client-ip.md d882d6aa74 feat(inbounds): add Real client IP presets to capture visitor IP behind CDN/relay 3 nedēļas atpakaļ
source.config.ts 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
tsconfig.json 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
vercel.json 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ
vitest.config.ts 9b91f0f42e docs: vendor the documentation site into the monorepo 21 stundas atpakaļ

README.md

3x-ui

3x-ui Documentation

The official documentation and product site for 3x-ui — an advanced web panel for managing Xray-core servers.

Live site CI Next.js 16 Fumadocs 16

Read the docs →


Overview

This directory (docs/ in the 3x-ui monorepo) contains the source for docs.sanaei.dev — a static-first documentation and marketing site built with Fumadocs on Next.js. It has no backend, no database, and no auth: every page is prerendered and every tool runs entirely in the browser.

What's inside

The documentation walks you through 3x-ui from first install to day-to-day operation:

  • Getting Started — installation, first login, and updating or uninstalling the panel.
  • Configuration — the panel, inbounds, REALITY, transports, clients, subscriptions, and share links.
  • Operations — reverse proxy, multi-node setups, outbounds & routing, backup/restore, the Telegram bot, and security.
  • Reference — environment variables, the database, ports & firewall, and the HTTP API.
  • Help — troubleshooting, FAQ, migration, and how to contribute.

Interactive tools

The site ships with in-browser helpers that generate configuration for you — no data ever leaves your browser:

Tool What it does
REALITY Config Generator Build a valid REALITY inbound configuration.
Share Link Inspector Decode and inspect vless:// / vmess:// share links.
Install Command Builder Assemble the right install command for your setup.
Reverse Proxy Generator Generate reverse-proxy configs (Nginx / Caddy).
Protocol Wizard Pick and configure the right protocol for your needs.
Firewall Rules Generator Produce firewall rules for your ports.

Tech stack

Layer Technology
Framework Next.js 16 (App Router) · React 19
Docs Fumadocs (-ui / -core / -mdx)
Styling Tailwind CSS v4
Search Orama static index
Language TypeScript (strict)
Tests Vitest for the pure lib/xray logic
Tooling pnpm · ESLint 9 · Prettier

Quick start

This project uses pnpm (npm lockfiles are gitignored). Run everything from the docs/ directory:

cd docs
pnpm install
pnpm dev        # http://localhost:3000

Useful scripts:

Script Description
pnpm dev Start the dev server
pnpm build Production build (also typechecks)
pnpm typecheck Generate MDX/route types and tsc --noEmit
pnpm lint Run ESLint
pnpm test Run unit tests (Vitest)

See CONTRIBUTING.md for the full list and project conventions.

Project structure

app/             # Next.js App Router — layouts, home, docs, OG images, search, llms.txt
components/      # React components — interactive tools, home sections, MDX bindings
content/docs/    # MDX documentation, one folder per locale (en · fa · ru · zh)
lib/             # source config, i18n, GitHub stats, and the unit-tested lib/xray logic
public/          # static assets — logos, favicon, openapi.json, CNAME
scripts/         # build-time scripts (API reference generation)
source.config.ts # Fumadocs MDX schema & collection config
next.config.mjs  # Next.js config (static-export gating)
proxy.ts         # i18n middleware

Internationalization

Documentation is authored in English. Persian (fa, RTL), Russian (ru), and Chinese (zh) locales are wired up; untranslated pages fall back to English so they never 404. English URLs are unprefixed; other locales live under /fa, /ru, /zh.

Deployment

The site builds for two targets:

  • Vercel / Nodepnpm build (static search index + prerendered OG images).
  • GitHub Pages (static export)DEPLOY_TARGET=static pnpm buildout/.

Contributing

Contributions are welcome! Setup, scripts, and project conventions live in CONTRIBUTING.md.

License

Licensed under GPL-3.0.