FiveM sunucu git: neyi işlemek, .gitignore ve git pull dağıtımı

FiveM sunucunuzu güvenli git'in altına koyun: neyi işlemek, önbellek ve txData için .gitignore, secrets.cfg ile anahtarları tutmak, özel repo ve git pull dağıtımlarının dışında.

Sadece bir diskde yaşayan bir sunucunun hiçbir tarihi yoktur: Cuma gecesi kötü bir düzenleme geri alınamaz ve makineleri taşımak klasörlerin elle kopyalanması anlamına gelir. Git'in altına koyduğunda her iki şey de düzeltilir. Bu kılavuz neyi işlemek, kullanılacak .gitignore, gizleri nasıl tutacağını ve git pull ile nasıl dağıtacağını gösterir.

Depo neye girer

Yazdığınız veya yapılandırdığınız şeyleri işleyin:

  • Kaynaklar (resources/ klasörü; yapılandırma ve SQL dosyaları dahil).
  • Gizliler olmadan server.cfg ****.
  • Başlangıç sırası ile bir README gibi küçük yardımcı dosyaları.

Oluşturulan veya özel dosyalar işlemyin:

  • cache/, FiveM yeniden derler. FiveM önbelleğini temizle bölümüne bakın.
  • txAdmin veri klasörü (txData); ayarları, yönetici hesaplarını ve günlükleri ile.
  • Gizliler: lisans anahtarı, veritabanı şifresi ve API anahtarları.
  • Günlükler, çökmek boşaltmalar ve node_modules.

Başlangıç .gitignore

Depponun kökünde (resources/ ve server.cfg içeren sunucu veri klasörü):

text
cache/
txData/
*.log
*.dmp
node_modules/
secrets.cfg
.env

Bilerek tüm txAdmin klasörünü sürümlerseniz, txData/ listeyi kaldırın; ancak onu özel tutun ve paylaşılan herhangi bir deponun dışında tutun. Büyük ikili varlıklar (akan arabalar, MLO) bir depo büyütür; git'te hiç olup olmadığını veya ayrı bir depoda tutulması gerekip gerekmediğini düşünün.

Anahtarları server.cfg dışında tutun

Bu çoğu zaman yanlış giden bölümdür. Bu satırlar gizlidir:

cfg
sv_licenseKey cfxk_xxxxxxxxxxxx
set mysql_connection_string "mysql://user:password@localhost/fivem"
set steam_webApiKey "xxxxxxxx"
rcon_password "xxxxxxxx"

Onları ayrı bir dosyaya taşıyın; .gitignore secrets.cfg:

cfg
# secrets.cfg  (never committed)
sv_licenseKey cfxk_xxxxxxxxxxxx
set mysql_connection_string "mysql://user:password@localhost/fivem"
set steam_webApiKey "xxxxxxxx"

Ve işlenen server.cfg en üste yükleyin:

cfg
exec secrets.cfg

endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"
sv_hostname "My Server"

ensure oxmysql
ensure ox_lib

Sonraki kişinin neyi dolduracağını bilmesi için boş değerler ile secrets.cfg.example işleyin. Ayarların kendileri için server.cfg açıklandı bölümüne bakın.

Dikkat: anahtar hiç işlenmişse, daha sonraki bir işlemde silinmesi yeterli değildir. Hala tarihte. Yeni bir anahtar veya şifre oluşturun ve eskisini sızdırılmış olarak kullanın.

Depo oluşturun

bash
cd /path/to/server-data
git init
git add .
git status

Bağlamadan önce git status listesini okuyun ve "işlemek" listesinden hiçbir şey hazırlanmadığını kontrol edin. Ardından:

bash
git commit -m "Initial server"
git branch -M main
git remote add origin [email protected]:youruser/your-server.git
git push -u origin main

Özel bir depo kullanın. Ücretli kaynaklar size lisanslanmış ve onları genel bir depoya koymak yeniden dağıtımdır; kod şifreli olsa da. Şifreli varlıklar nasıl hesabınıza bağlı olduğu hakkında bilgi için escrow eksik yetki bölümüne bakın.

Git pull ile dağıt

Sunucuyu çalıştıran makine tarafından; bir kez klonlandıktan sonra çek:

bash
git clone [email protected]:youruser/your-server.git server-data
cd server-data
# create secrets.cfg on this machine (not from git)

Geliştirme PC'nizden bir itme sonra güncellemek için:

bash
cd server-data
git pull

Ardından değişiklikleri yeniden yükleyin. Bir kaynak için sunucu konsolundan:

text
refresh
restart my_resource

server.cfg veya başlangıç sırası değiştiyse; tam bir yeniden başlatma planlayın (bkz. zamanlanmış yeniden başlatmalar). Peak saatler ortasında bir plan olmadan git pull yapmayın; çünkü aynı anda birçok kaynağın yeniden başlatılması sunucuyu artırabilir.

Özel bir repo üzerinde kimlik doğrulaması için; SSH dağıtım anahtarını yalnızca okuma erişimi ile veya kişisel erişim jetonu kullanın. Asla kendi şifrenizi komut dosyalarına yazılı dönem yazmayın.

Basit bir dal alışkanlığı

Canlı olanı ana olarak tutun. Değişiklikler yapmak dalında; yerel veya hazırlama sunucusunda test edin; ardından birleştirin:

bash
git checkout -b new-police-job
# edit, test
git commit -am "Add police job"
git checkout main
git merge new-police-job
git push

Bir çekme sonra bir şey kırılırsa; git log değişiklikleri gösterir ve git revert <commit> tarihçeyi kayıp olmadan geri alır. Git veritabanı yedeği değildir; gerçek yedekler de tutun; FiveM sunucusuna yedek içinde olduğu gibi.

Kontrol listesi

Belirti Çözüm
Depoda lisans anahtarı secrets.cfg hareket ettirin, yoksayın ve anahtarını döndürün
Taahhüt edilen cache/ veya txData .gitignore ekleyin; ardından git rm -r --cached cache txData
Klonladıktan sonra sunucu hiçbir anahtarı başlatır Sunucuda secrets.cfg oluşturun; git içinde değil
Yeni kaynak git pull sonra bulunamadı refresh çalıştırın; ardından ensure veya restart
Depo çok büyük Büyük akan varlıkları git dışında veya kendi mağazalarında tutun
Değişikliği geri al gerekir git revert <commit> ve sunucuda çek

Kısa yanıtlar

Tüm FiveM sunucusunu git'e koymalı mıyım?

Kaynakları ve temiz server.cfg işleyin. cache/, txAdmin txData klasörü, günlükleri ve gizli herhangi bir şeyi bırakın. Nokta, taze bir makinede klonlanabilecek ve çalıştırılabilecek bir depo.

Lisans anahtarımı git'ten uzak tutarım?

sv_licenseKey, veritabanı dizeleri ve API anahtarlarını .gitignore veya secrets.cfg yapın ve server.cfg exec secrets.cfg ile yükleyin.

Genel bir depo kullanmak güvenli mi?

Canlı sunucu için değil. Gizleri olmasa da, depo yeniden dağıtmaya izin verilmez. Özel bir depo kullanın.

Bu sorunu yaşatmayan scriptler

Shop CreatorBir dakikadan kısa sürede dükkân kurun — sahipler, çalışanlar, kasalar ve soygunlar dahil.Scripti gör →Item Creator V2Animasyonlar, proplar, efektler ve daha fazlasıyla kullanılabilir eşyalar oluşturun — kod yazmadan.Scripti gör →Quest CreatorGörevler ve NPC diyalogları için oyun içinde düğüm düğüm kurulan görsel editör.Scripti gör →

Okumaya devam edin