MCPcopy Index your code
hub / github.com/batonogov/terraform-provider-threexui

github.com/batonogov/terraform-provider-threexui @v3.18.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.18.0 ↗ · + Follow
1,541 symbols 5,501 edges 91 files 426 documented · 28%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

English | فارسی | العربية | 中文 | Español | Русский | Türkçe

3x-ui için Terraform Provider

3x-ui inbound'larını, istemcilerini, panel ayarlarını ve Xray yapılandırmasını kod olarak yönetin — panele tıklamadan VPN/proxy filonuzu yedekleyin, taşıyın ve ölçeklendirin.

CI Terraform Registry Latest Release Go Report Card Go Version Last Commit Codecov License: MIT

Neden kullanmalısınız

Üretimde 3x-ui çalıştırmak, düzinelerce inbound, yüzlerce istemci ve kolayca bozulabilecek bir Xray yapılandırması anlamına gelir. Bu provider ile şunları yapabilirsiniz:

  • Yapılandırmayı kod olarak yönetin — inbound listeniz git'te saklanır, her değişiklik gözden geçirilir ve sürümlenir.
  • Sunucular arasında taşıyın — yeni bir VPS üzerinde aynı kurulumu tek bir terraform apply ile yeniden oluşturun.
  • Panel anlık görüntüsüterraform state pull, inbound'ların, istemcilerin ve ayarların tam bir dışa aktarımıdır.
  • Onboarding'i ölçeklendirin — 100 panel tıklaması yerine tek bir PR ile 100 istemci ekleyin.
  • Üretime göndermeden önce planlayınterraform plan, herhangi bir şey gönderilmeden önce nelerin değişeceğini tam olarak gösterir.

Provider olmadan vs provider ile

Görev Panel UI Bu provider
50 istemci eklemek 50 form, her biri ~30 saniye bir for_each, bir apply
Yeni sunucuya taşımak manuel yeniden giriş yeni endpoint'e karşı terraform apply
Bugün kimin erişimi olduğunu denetlemek istemci listesini kaydırmak bir .tf dosyasında git log
Yanlış yapılandırmayı geri almak JSON yedekten geri yükleme git revert + terraform apply
Staging ↔ Production senkronizasyonu JSON dışa/içe aktarma, çakışmaları çözme paylaşılan modül + ortam değişkenleri
10 sunucuda Reality anahtarlarını döndürmek 10 panel açın, her birine tıklayın bir değişken değişikliği, bir apply

Hızlı Başlangıç

terraform {
  required_providers {
    threexui = {
      source = "batonogov/threexui"
    }
  }
}

provider "threexui" {
  endpoint = "http://localhost:2053"
  username = "admin"
  password = "admin"
}

resource "threexui_inbound" "vless" {
  remark   = "VLESS Reality"
  port     = 443
  protocol = "vless"

  vless_settings {
    decryption = "none"
  }

  stream_settings {
    network  = "tcp"
    security = "reality"
    reality_settings {
      target       = "www.amazon.com:443"
      server_names = ["www.amazon.com"]
    }
  }

  sniffing {
    enabled       = true
    dest_override = ["http", "tls", "quic", "fakedns"]
  }
}

resource "threexui_inbound_client" "client_a" {
  inbound_id = threexui_inbound.vless.id
  email      = "client-a@example.com"
  enable     = true
  flow       = "xtls-rprx-vision"
}

OpenTofu kullanıcıları: tam kayıt adresini kullanın:

hcl source = "registry.terraform.io/batonogov/threexui"

Provider, OpenTofu Registry'de yayınlanmamaktadır (neden).

Uyumluluk

Destek politikası: provider resmi olarak dört 3x-ui minör hattını destekler: v3.1.x, v3.2.x, v3.3.x ve v3.4.x — dört hattın tamamındaki her yayımlanan yama, main'e yapılan her push'ta ve her pull request'te acceptance test matrisi tarafından sınanır.

3x-ui sürümü Durum
v3.4.2 Test edildi
v3.4.1 Test edildi
v3.4.0 Test edildi
v3.3.1 Test edildi
v3.3.0 Test edildi
v3.2.8 Test edildi
v3.2.7 Test edildi
v3.2.6 Test edildi
v3.2.5 Test edildi
v3.2.0 Test edildi
v3.1.0 Test edildi

Daha yeni protokol özellikleri requireMinVersion ile korunur ve eski sürümlerde otomatik olarak atlanır, bu nedenle provider sürüm başına ayrı dallar olmadan tüm sürümlerde sorunsuz çalışır.

Örnekler

Örnek Açıklama
Provider ile ortam yapılandırması Terraform değişkenleri ve TF_VAR_* ortam değişkenleri ile provider'ı yapılandırma
Trojan inbound WebSocket taşıma ile Trojan protokolü
Shadowsocks inbound AEAD şifreleme ile Shadowsocks
İstemcili inbound Tam iş akışı: inbound + birden fazla istemci
Çok sunuculu filo Yeniden kullanılabilir modül + for_each ile birden fazla 3x-ui barındırmasını yönetme
Mevcut kaynakları içe aktarma Mevcut 3x-ui kaynaklarını Terraform state'ine aktarma

Kılavuzlar

Yaygın operasyonel senaryolar için repo içindeki adım adım kılavuzlar:

Belgeler

Tam belgeler Terraform Registry'de mevcuttur.

Kaynaklar

Kaynak Açıklama
threexui_inbound Inbound proxy (vless, vmess, trojan, shadowsocks, http, mixed, wireguard, tunnel, hysteria; 3.2 öncesi legacy socks/dokodemo-door)
threexui_inbound_client Bir inbound içindeki istemci
threexui_node Küme düğümü / multi-node kaydı
threexui_panel_general Genel panel ayarları
threexui_panel_security Güvenlik ayarları (2FA)
threexui_panel_user Yönetici kimlik bilgileri
threexui_panel_telegram Telegram bot entegrasyonu
threexui_panel_email SMTP/email bildirimleri (v3.4.0+)
threexui_panel_subscription Abonelik hizmeti ayarları
threexui_xray_basics Temel Xray yapılandırması (log, policy, api, stats)
threexui_xray_dns DNS sunucuları ve hosts
threexui_xray_routing Yönlendirme kuralları
threexui_xray_balancers Yük dengeleyiciler
threexui_xray_reverse Ters proxy (bridges, portals)
threexui_xray_outbounds Outbound bağlantılar
threexui_xray_version Yüklü Xray çekirdek sürümü

Veri Kaynakları

Veri Kaynağı Açıklama
threexui_inbounds Tüm inbound'ların listesi (JSON, hassas)
threexui_nodes Küme düğüm ağacı / multi-node (JSON, hassas)
threexui_server_status Sunucu durumu: CPU, bellek, disk, uptime (JSON)
threexui_settings Tüm panel ayarları (JSON, hassas)
threexui_xray_config Geçerli Xray şablonu (JSON, hassas)
threexui_xray_versions Mevcut Xray sürümleri (dize listesi)
threexui_online_clients Şu anda çevrimiçi olan istemci e-postaları
threexui_client_traffics E-postaya göre istemci trafik istatistikleri

Güvenlik

Provider, panelin otomatik olarak verdiği sırları işler (Reality privateKey, WireGuard secretKey, istemci UUID'leri, Telegram bot tokenları, LDAP parolaları). Bu tür tüm alanlar Sensitive olarak işaretlenir ve düz metin olarak günlüğe kaydedilmez. Tam liste ve Terraform state'inizi koruma rehberi için bkz. SECURITY.md.

Geliştirme

Gereksinimler

  • Go (sürüm go.mod dosyasında sabitlenmiştir)
  • Task — görev çalıştırıcı
  • golangci-lint — linter
  • pre-commit — git kancaları çerçevesi
  • Docker — yerel 3x-ui ortamı için

Komutlar

task build        # Provider'ı derle
task fmt          # Kodu biçimlendir (gofmt)
task vet          # go vet çalıştır
task lint         # golangci-lint çalıştır
task pre-commit   # Tüm kontrolleri manuel olarak çalıştır (fmt, vet, lint, build)
task test:unit    # Birim testlerini çalıştır (Docker / Terraform gerekmez)
task test:acc     # Acceptance testlerini çalıştır (docker compose başlatır)
task test         # Birim + acceptance testlerini çalıştır

Yerel ortam

# 3x-ui'ı localhost:2053 üzerinde başlat
docker compose up -d

# Giriş: admin / admin

# Durdur
docker compose down

Katkıda bulunma

Yerel kurulum, test ve gönderim yönergeleri için bkz. CONTRIBUTING.md. Hata raporları, özellik istekleri ve pull request'ler memnuniyetle karşılanır — üretimde hangi 3x-ui sürümlerini çalıştırdığınıza dair notlar da.

Değişiklik günlüğü

Sürümler Conventional Commits takip eder ve otomatik olarak yayımlanır. Tam sürüm geçmişi için bkz. CHANGELOG.md.

Lisans

MIT

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 1,158
Method 257
Struct 122
TypeAlias 2
FuncType 1
Interface 1

Languages

Go100%

Modules by API surface

provider/resource_settings_tabs.go107 symbols
provider/xray_settings_test.go105 symbols
provider/client.go80 symbols
provider/resource_xray_settings.go73 symbols
provider/settings_tabs_test.go65 symbols
provider/client_test.go57 symbols
provider/inbound_settings_schema.go51 symbols
provider/resource_node_test.go44 symbols
provider/inbound_helpers_test.go39 symbols
provider/xray_outbounds_schema.go38 symbols
provider/inbound_stream_settings_schema.go38 symbols
provider/resource_inbound.go33 symbols

Datastores touched

xuiDatabase · 1 repos

For agents

$ claude mcp add terraform-provider-threexui \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page