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ü):
cache/
txData/
*.log
*.dmp
node_modules/
secrets.cfg
.envBilerek 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:
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:
# 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:
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_libSonraki 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
cd /path/to/server-data
git init
git add .
git statusBağlamadan önce git status listesini okuyun ve "işlemek" listesinden hiçbir şey hazırlanmadığını kontrol edin. Ardından:
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:
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:
cd server-data
git pullArdından değişiklikleri yeniden yükleyin. Bir kaynak için sunucu konsolundan:
refresh
restart my_resourceserver.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:
git checkout -b new-police-job
# edit, test
git commit -am "Add police job"
git checkout main
git merge new-police-job
git pushBir ç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 →