English | فارسی | العربية | 中文 | Español | Русский | Türkçe
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.
Ü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:
terraform apply ile yeniden oluşturun.terraform state pull, inbound'ların, istemcilerin ve ayarların tam bir dışa aktarımıdır.terraform plan, herhangi bir şey gönderilmeden önce nelerin değişeceğini tam olarak gösterir.| 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 |
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).
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.
| Ö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 |
Yaygın operasyonel senaryolar için repo içindeki adım adım kılavuzlar:
for_each desenleri ve CSV ile onboarding.Tam belgeler Terraform Registry'de mevcuttur.
| 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 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 |
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.
go.mod dosyasında sabitlenmiştir)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
# 3x-ui'ı localhost:2053 üzerinde başlat
docker compose up -d
# Giriş: admin / admin
# Durdur
docker compose down
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.
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.
—
$ claude mcp add terraform-provider-threexui \
-- python -m otcore.mcp_server <graph>