FiveM Docker kurulum hızlı kontrol listesi
Kullanışlı bir Docker kurulumu, txAdmin verilerini kalıcı tutar, doğru portları açar ve güncellemeleri geri alınabilir kılar.
- Docker Compose v2 kullanın ve txData veya sunucu veri dizininizi bağlama (bind-mount) yapın.
- FiveM için 30120 TCP/UDP'yi ve yalnızca txAdmin erişimi amaçlanan yerlerde 40120'yi açın.
- Artifacts veya Docker imajlarını değiştirmeden önce server.cfg, resources, txData ve veritabanı verilerini yedekleyin.
İlgili mağaza yolları: Sunucu paketleri | FiveM scriptleri | Admin Tools
Run a FiveM server (FXServer) in Docker with this copy-paste guide: a minimal compose.yaml kullanarak spritsail/fivem image, correct port mapping for 30120 (TCP+UDP) and 40120 (txAdmin), persistent bind mounts for server.cfg, resources, and txAdmin data, license-key handling, and safe update and rollback steps.
Özetle;
- Ubuntu'ya Docker Engine + Docker Compose v2 kurun. (Docker Belgeleri)
- Bir proje klasörü oluşturun, ekleyin
.env(ayarlayınLICENSE_KEY,SERVER_NAME, ports) ve minimal bircompose.yaml. - İle başla
docker compose up -d; günlükleri izlemek içindocker compose logs -f. - Düzenlemek
data/server.cfg(hostname, endpoints, resources); konteynırı yeniden başlatın. - Güvenlik duvarını açın: 30120/TCP+UDP Ve 40120/TCP (txAdmin). txAdmin'in varsayılan bağlantı noktası 40120'dir. (Cfx.re Belgeleri)
- Konteynırı her zaman ile çalıştırın stdin/tty çökmeleri önlemek için etkinleştirildi. (GitHub)
Ön koşullar
- İşletim Sistemi: Linux Ubuntu 22.04+ (macOS/Windows için notlar aşağıdadır).
- Donanım: 2+ vCPU, 4–8 GB RAM (ağır kaynaklar için daha fazlası), SSD önerilir.
- Docker: Kurulum Docker Engine Ve Compose v2 resmi dokümanlardan. (Docker Belgeleri)
- FiveM Lisans Anahtarı: Cfx.re portalında (Keymaster) oluşturun. Gizli tutun. (destek.cfx.re)
- Firewall/NAT: 30120 (TCP+UDP) ve isteğe bağlı olarak 40120 (TCP) portlarını açma/yönlendirme yeteneği. (Cfx.re Belgeleri)
- (İsteğe bağlı) txAdmin için bir alan adı/alt alan adı.
Mimari genel bakış
Bir konteyner çalışır FXSunucusu kullanarak spritsail/fivem görüntü. Veriler bağlı montajlanmış kalıcı hale getirmek için server.cfg, kaynaklar ve günlükler. Bağlantı noktaları 30120/TCP+UDP oyunculara açıktır; 40120/TCP etkinleştirildiğinde txAdmin'i açar. Bir sağlık kontrolü sorgulayabilir http://127.0.0.1:30120/info.json. (GitHub)
+-------------------- Docker Host (Ubuntu) --------------------+ | /home/fivem/data --> /config (in container) | | /home/fivem/txData --> /txData (txAdmin data) | | | | Exposed: 30120/tcp+udp [FXServer] | 40120/tcp [txAdmin] | | Healthcheck: GET 127.0.0.1:30120/info.json | +-------------------------------------------------------------+
Hızlı Başlangıç (kopyala-yapıştır)
1) Bir proje klasörü oluşturun
# Optional: dedicated system user and directories
sudo useradd -r -m -d /home/fivem -s /usr/sbin/nologin fivem || true
sudo mkdir -p /home/fivem/{data,txData}
sudo chown -R "$USER":"$USER" /home/fivem
cd /home/fivem
2) Oluşturun .env
cat > .env <<'EOF' # === REQUIRED === LICENSE_KEY=REPLACE_WITH_YOUR_CFX_KEY # Convenience (used by ports mapping below) FXSERVER_PORT=30120 TXADMIN_PORT=40120 # Not read by the image directly; use it when editing server.cfg SERVER_NAME="My Docker FiveM" # Optional: if omitted, default config generation sets a random RCON password RCON_PASSWORD= EOF
3) Minimal compose.yaml (bir etiket sabitleyin)
Yukarı akış görüntüsünü kullanan en küçük çalışan kurulum. Kullanır tty+stdin çökmeyi önlemek için. (GitHub)
# compose.yaml
services:
fivem:
image: spritsail/fivem:stable
container_name: fivem
environment:
- LICENSE_KEY=${LICENSE_KEY}
# Optional toggles (see table below):
# - NO_DEFAULT_CONFIG=1 # required if you want to use txAdmin
# - NO_LICENSE_KEY=1 # if you put the key in server.cfg instead
# - NO_ONESYNC=1 # disable OneSync in default config
# - RCON_PASSWORD=${RCON_PASSWORD}
volumes:
- ./data:/config # server.cfg, resources, logs
ports:
- "${FXSERVER_PORT}:30120/tcp"
- "${FXSERVER_PORT}:30120/udp"
tty: true # prevent startup crash (equiv. to -t)
stdin_open: true # prevent startup crash (equiv. to -i)
restart: unless-stopped
Başlatın:
docker compose up -d docker compose logs -f
4) Genişletilmiş varyant (txAdmin, sağlık kontrolü, sınırlamalar)
# compose.extended.yaml
services:
fivem:
image: spritsail/fivem:stable
container_name: fivem
environment:
- LICENSE_KEY=${LICENSE_KEY}
- NO_DEFAULT_CONFIG=1 # enable txAdmin (no default +exec)
# - NO_LICENSE_KEY=1 # if storing key in server.cfg
# - RCON_PASSWORD=${RCON_PASSWORD}
volumes:
- ./data:/config
- ./txData:/txData # persist txAdmin data
ports:
- "${FXSERVER_PORT}:30120/tcp"
- "${FXSERVER_PORT}:30120/udp"
- "${TXADMIN_PORT}:40120/tcp" # txAdmin Web UI (default 40120)
tty: true
stdin_open: true
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:30120/info.json >/dev/null 2>&1"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
# Basic resource knobs for standalone Compose (not Swarm 'deploy')
cpus: 2
mem_limit: "6g"
ulimits:
nofile:
soft: 1048576
hard: 1048576
restart: unless-stopped
Eğer
wgetgörüntüde mevcut değil, sağlık kontrolünü kaldırın veya bir TCP yoklaması ile değiştirin. txAdmin altında kalıcı hale gelir/txData, bağlantı noktası 40120 varsayılanıdır. (GitHub)
Yapılandırma ve Kalıcılık
- İlk çalıştırmada, varsayılanlar bağlama noktasına yazılır
./data(kapsayıcı yolu/config). Düzenle./data/server.cfgve kapsayıcıyı yeniden başlatın. (GitHub)
Tipik server.cfg bit:
# data/server.cfg # Network endpoints (leave 0.0.0.0 to listen on all interfaces) endpoint_add_tcp "0.0.0.0:30120" endpoint_add_udp "0.0.0.0:30120" # Server name set sv_hostname "My Docker FiveM" # License key (use this only if NOT using LICENSE_KEY env) # sv_licenseKey "REPLACE_WITH_YOUR_CFX_KEY" # Example: ensure a basic resource # ensure chat
Dizin düzeni (ana bilgisayar):
/home/fivem ├─ data/ -> /config (server.cfg, resources/, logs/) └─ txData/ -> /txData (txAdmin profiles & DB)
Yedekler
- Bağlama noktası yedeklemesi:
tar -C /home/fivem -czf fivem-backup_$(date +%F).tgz data txData
- Eğer geçiş yaparsanız isimli hacimlere, şu şekilde yedekleyin:
docker run --rm -v fivem_data:/data -v "$PWD":/backup busybox sh -c 'tar -czf /backup/fivem_data_$(date +%F).tgz -C / data'
Ortam değişkenleri (şuradan: spritsail/fivem)
| İsim | Amaç | Örnek |
|---|---|---|
LICENSE_KEY | Gerekli FiveM sunucu lisans anahtarı, FXServer'ı başlatmak için | LICENSE_KEY=xxxxx |
RCON_PASSWORD | Varsayılan yapılandırmalar oluşturulurken kullanılan RCON şifresi; ayarlanmazsa rastgele 16 karakter. | RCON_PASSWORD=strongpass |
NO_DEFAULT_CONFIG | Varsayılanı devre dışı bırak +exec böylece txAdmin sunucuyu yönetebilir | 1 |
NO_LICENSE_KEY | Anahtarı ortamdan okuma; onu şurada tut server.cfg | 1 |
NO_ONESYNC | Varsayılan yapılandırmalarda OneSync'i devre dışı bırak | 1 |
Bu ortam değişkenleri ve yolları /config, /txData, artı şunlara duyulan ihtiyaç -ti yukarı akış imajı tarafından tanımlanır. (GitHub)
Secret ele alınması: Tercih et
NO_LICENSE_KEY=1ve koysv_licenseKeyiçindeserver.cfganahtarı konteyner ortamında istemiyorsanız doğru dosya izinleriyle. (GitHub)
Ağ & Güvenlik
Gerekli portlar
| Amaç | Port | Proto |
|---|---|---|
| Oyuncu bağlantıları / API | 30120 | TCP+UDP |
| txAdmin Web UI (isteğe bağlı) | 40120 | Tpg |
| Eski ana sunucu (nadiren gerekli) | 30110 | UDP |
FiveM varsayılanı 30120; txAdmin varsayılanı 40120'dir. (GitHub)
UFW örnekleri (Ubuntu)
sudo ufw allow 30120/tcp sudo ufw allow 30120/udp sudo ufw allow 40120/tcp # only if you enable txAdmin sudo ufw reload
nftables (örnek kural kümesi alıntısı)
sudo nft add table inet filter
sudo nft add chain inet filter input '{ type filter hook input priority 0; policy drop; }'
sudo nft add rule inet filter input ct state established,related accept
sudo nft add rule inet filter input iif lo accept
sudo nft add rule inet filter input tcp dport {30120,40120} accept
sudo nft add rule inet filter input udp dport 30120 accept
En az ayrıcalık ve sırlar
- Güçlendirilmiş bir ana bilgisayarda çalıştırın; ekstra yetenekler eşlemekten kaçının; Docker'ı ana bilgisayardaki
rootkullanıcı olarak çalıştırmayın. - Kale RCON yalnızca gerekliyse etkinleştirilir; txAdmin'i güçlü kimlik bilgileriyle koruyun ve güvenlik duvarında erişimi kısıtlayın.
- SELinux tabanlı dağıtımlar (Ubuntu değil) kullanıyorsanız, bağlama montajlarına
:Z/:zekleyerek bağlam sorunlarını düzeltin.
Güncellemeler ve Geri Alma
En son sabitlenmiş etikete güncelle
docker compose pull docker compose up -d
Özet ile sabitle (değişmez)
# Pull and discover the digest of the current tag
docker pull spritsail/fivem:stable
docker inspect --format='{{index .RepoDigests 0}}' spritsail/fivem:stable
# Use the printed value in compose, e.g.:
# image: spritsail/fivem@sha256:abcdef...
Geri Al
- : Görüntü referansını önceki etikete/özete geri değiştir ve
docker compose up -d. - Son resim özetlerini sakla
docker image ls --digests.
Görüntü sağlıyor stable Ve latest etiketler; tercih et stable daha az sürpriz için. (GitHub)
İzleme ve Bakım
- Durum:
docker ps,docker compose ps - Günlükler:
docker compose logs -f - İstatistikler:
docker stats fivem - Sağlık Kontrolü: Anketler
info.json; araç eksikse kaldırın/ayarlayın. (Cfx.re Belgeleri) - Disk:
docker system df, gerekirse eski resimleri temizleyin. - Yedekler: “Yapılandırma ve Kalıcılık” bölümünde tar komutunu Cron ile çalıştırın.
Sorun giderme
- Geçersiz lisans anahtarı: Cfx.re portalında doğrulayın ve yalnızca bir sunucunun anahtarı kullandığından emin olun. (destek.cfx.re)
- Portlar zaten kullanımda:
sudo ss -lntup | grep 30120; çakışan hizmeti durdurun veya değiştirinFXSERVER_PORT. - txAdmin'ye ulaşılamıyor: Açık 40120/TCP veya portu değiştirin; onaylayın
NO_DEFAULT_CONFIG=1. (Cfx.re Belgeleri) - Başlangıçta konteyner kapanıyor: Emin olmak
tty: trueVestdin_open: trueayarlanmış. (GitHub) - Zaman/DNS sorunları: Ana bilgisayar saat senkronizasyonunu (systemd-timesyncd/chrony) ve çalışan DNS'yi (kontrol edin
/etc/resolv.conf). - SELinux reddetmeler (ubuntu olmayan): Kullanmak
:Z/:zbağlı bağlamalar veya bağlamları ayarlama. - info.json/players.json engellendi: Bazı convars veya proxy'ler bu uç noktaları etkileyebilir; sunucunun şurada yanıt verdiğini doğrulayın
GET /info.json. (Cfx.re Belgeleri)
Performans İpuçları
- CPU/Bellek: CPU'ları sabitleyin ve bellek sınırlarını ayarlayın (genişletilmiş compose'a bakın).
- Depolamak: SSD/NVMe kullanın; kaynak paketlerini optimize edin; büyük, sıkıştırılmamış varlıklardan kaçının.
- Ağ: Gecikmeyi düşük tutun; ana bilgisayarın CPU'sunun kısıtlanmadığından emin olun; UDP 30120'yi önceliklendirin.
- Ana makine çekirdeği: Makul varsayılanlar çalışır; gelişmiş sysctl'ler (
net.core.*mem_max) iş yükünüzü biliyorsanız ayarlanabilir. - Günlükler: Günlük döndürmeyi kullanın (genişletilmiş örnekteki gibi).
macOS / Windows notları
- macOS (Docker Desktop): Bağlı bağlanan dosya G/Ç, yerel Linux'den daha yavaştır; Docker Desktop'ın Senkronize edilmiş dosya paylaşımları daha iyi performans için ve klasörün ayarlarda paylaşıldığından emin olun. (Docker Belgeleri)
- Windows (WSL2): Yayınlanan portlara erişilebilir yerel ana bilgisayar Windows üzerinde; LAN'a maruz bırakmak, moda bağlı olarak ek yapılandırma gerektirebilir. Genel sunucular için Linux üzerinde barındırmayı tercih edin. (Docker Belgeleri)
Temiz Kaldırma
# Stop and remove the container (keep data) docker compose down # Remove container + anonymous networks + images (keeps bind-mounted data) docker compose down --rmi local --remove-orphans # If you used named volumes (not in this guide), list and remove explicitly: # docker volume ls # docker volume rm <volume_name>
Silmek için Tümü data, bağlanan dizinleri kaldırın:
sudo rm -rf /home/fivem/data /home/fivem/txData
SSS
Tek bir ana bilgisayarda birden fazla sunucu barındırabilir miyim?
Evet. Ayrı proje dizinleri, farklı FXSERVER_PORT/TXADMIN_PORT, ve ayrı bağlama noktaları. txAdmin, profil başına verileri destekler /txData. (Cfx.re Belgeleri)
Sunucu adı/IP'yi listede nasıl değiştiririm?
Düzenlemek sv_hostname içinde data/server.cfg. IP/bağlantı noktası, yayınlanan bağlantı noktalarınızdan ve NAT yapılandırmanızdan gelir.
Çöktüğünde otomatik olarak yeniden başlatılabilir mi?
Evet. restart: unless-stopped Compose'da; ayrıca watchdogs için systemd zamanlayıcılarını da düşünün.
Yedeklemeler nerede bulunuyor?
Bunları oluşturduğunuz yer - örn. , fivem-backup_YYYY-MM-DD.tgz çalışma dizininizde. Yukarıdaki yedekleme komutlarına bakın.
txAdmin'yi nasıl etkinleştirebilirim?
Ayarlamak NO_DEFAULT_CONFIG=1, bağla /txData, ve aç 40120/TCP. (GitHub)
30110'u açık tutmam gerekiyor mu?
Nadiren. Eski listeleme için kullanılıyordu; modern kurulumlar genellikle yalnızca 30120'ye ve kullanılıyorsa txAdmin'nin 40120'sine ihtiyaç duyar. (Cfx.re Topluluğu)
Sunucuyu başka bir makineye nasıl taşırım?
Kopyala data/ Ve txData/ yeni ana bilgisayara, aynı Compose dosyasını yeniden oluşturun ve başlatın.
Bağlantılar ve Krediler
- Üst akış görüntüsü:
spritsail/fivem(ortam değişkenleri, yollar, kullanım, txAdmin notları,-tigereksinim). (GitHub) - Docker:
- Ubuntu'ya Docker Engine kurun. (Docker Belgeleri)
- Docker Compose v2'yi (Linux eklentisi) kurun. (Docker Belgeleri)
- Yerel dosyaları kapsayıcılarla paylaşma (birimler ve bağlama noktaları). (Docker Belgeleri)
- Cfx.re / FiveM:
- Bir sunucu kayıt (lisans) anahtarı oluşturun. (destek.cfx.re)
- txAdmin belgeleri (varsayılan port 40120; veri yolu). (Cfx.re Belgeleri)
- Proxy/bağlantı akışı (
/info.json). (Cfx.re Belgeleri)
Editorial review and source policy
The Docker guide distinguishes container restart policy from application recovery. Pin images, persist server data outside the writable container layer, protect secrets, and validate backup/restore on the exact compose definition.
