$ ABD Doları
  • $ ABD Doları
  • € AVRO
  • £ GBP
  • $ Avustralya Doları
  • R$ BRL
  • İsviçre Frangı İsviçre Frangı
  • ¥ Japon Yeni
Docker Kullanarak FiveM Sunucusu Nasıl Çalıştırılır

Docker Kullanarak FiveM Sunucusu Nasıl Çalıştırılır

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ın LICENSE_KEY, SERVER_NAME, ports) ve minimal bir compose.yaml.
  • İle başla docker compose up -d; günlükleri izlemek için docker 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 wget gö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.cfg ve 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)

İsimAmaçÖrnek
LICENSE_KEYGerekli FiveM sunucu lisans anahtarı, FXServer'ı başlatmak içinLICENSE_KEY=xxxxx
RCON_PASSWORDVarsayılan yapılandırmalar oluşturulurken kullanılan RCON şifresi; ayarlanmazsa rastgele 16 karakter.RCON_PASSWORD=strongpass
NO_DEFAULT_CONFIGVarsayılanı devre dışı bırak +exec böylece txAdmin sunucuyu yönetebilir1
NO_LICENSE_KEYAnahtarı ortamdan okuma; onu şurada tut server.cfg1
NO_ONESYNCVarsayılan yapılandırmalarda OneSync'i devre dışı bırak1

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=1 ve koy sv_licenseKey içinde server.cfg anahtarı konteyner ortamında istemiyorsanız doğru dosya izinleriyle. (GitHub)


Ağ & Güvenlik

Gerekli portlar

AmaçPortProto
Oyuncu bağlantıları / API30120TCP+UDP
txAdmin Web UI (isteğe bağlı)40120Tpg
Eski ana sunucu (nadiren gerekli)30110UDP

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 root kullanı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/:z ekleyerek 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ştirin FXSERVER_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: true Ve stdin_open: true ayarlanmış. (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/:z bağ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.
  • : 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ı, -ti gereksinim). (GitHub)
  • Docker:
  • Cfx.re / FiveM:

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.