Modüler ve Profesyonel - HarmonyDB ile Roblox isteklerini kaydeden Node.js Fastify sunucusu.
roblox-fastify-server/
├── src/ # Kaynak kodlar
│ ├── config/ # Yapılandırma dosyaları
│ │ └── database.js # HarmonyDB ayarları
│ ├── routes/ # API endpoint'leri
│ │ └── log.js # Log route'ları
│ └── app.js # Ana Fastify uygulaması
├── examples/ # Kullanım örnekleri
│ └── roblox/ # Roblox Lua örnekleri
│ ├── localscript.lua
│ ├── serverscript.lua
│ └── README.md
├── data/ # Veritabanı dosyaları (otomatik)
│ └── requests.json
├── index.js # Giriş noktası
├── package.json
├── .gitignore
└── README.md
# Bağımlılıkları yükle
npm install# Normal mod
npm start
# Geliştirme modu (auto-reload)
npm run devSunucu http://localhost:3000 adresinde çalışacaktır.
Ana sayfa - Sunucu durumu ve son istek bilgisi
Yanıt:
{
"message": "Roblox Fastify Sunucusu Çalışıyor! 🚀",
"totalRequests": 42,
"lastRequest": { ... }
}Roblox'tan gelen istekleri kaydet
İstek:
{
"userId": 123456,
"username": "Player1",
"message": "Merhaba!"
}Yanıt:
{
"success": true,
"message": "İstek kaydedildi!",
"id": 1
}Test isteği kaydet (GET parametreleri ile)
Son N isteği listele (varsayılan: 10)
Yanıt:
{
"total": 100,
"showing": 10,
"requests": [ ... ]
}İstatistikleri görüntüle
Yanıt:
{
"totalRequests": 100,
"todayRequests": 25,
"firstRequest": "2024-01-01T12:00:00.000Z",
"lastRequest": "2024-01-01T18:30:00.000Z"
}Tüm kayıtlı istekleri temizle
examples/roblox/klasöründen uygun script'i seçin- Script'i Roblox Studio'da ilgili konuma kopyalayın
SERVER_URLdeğişkenini kendi sunucu adresinizle değiştirin- Game Settings → Security → "Allow HTTP Requests" açın
Detaylı kullanım için: examples/roblox/README.md
LocalScript:
local HttpService = game:GetService("HttpService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local data = {
userId = player.UserId,
username = player.Name,
message = "Oyuna katıldı!"
}
HttpService:PostAsync(
"http://localhost:3000/log",
HttpService:JSONEncode(data),
Enum.HttpContentType.ApplicationJson
)- ✅ Modüler Yapı - Kolay genişletilebilir ve bakımı yapılabilir
- ✅ HarmonyDB Entegrasyonu - Otomatik veri kaydetme
- ✅ Detaylı Loglama - Konsola tüm istekleri yazdırma
- ✅ RESTful API - Standart HTTP metodları
- ✅ CORS Desteği - Cross-origin isteklere izin
- ✅ Zaman Damgası - Her istek için otomatik timestamp
- ✅ IP Kaydı - İstek yapan IP adresini kaydet
- ✅ Roblox Örnekleri - Kullanıma hazır Lua script'leri
Tüm istekler data/requests.json dosyasında saklanır. HarmonyDB otomatik olarak:
- Değişiklikleri kaydeder (auto-save)
- JSON formatını güzel tutar (pretty print)
- Debounce ile performans optimize eder (100ms)
Sunucu her istek geldiğinde detaylı bilgi yazdırır:
📥 YENİ İSTEK GELDİ:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🆔 ID: 1
⏰ Zaman: 2024-01-01T12:00:00.000Z
📍 IP: 127.0.0.1
📦 Data: {
"userId": 123456,
"username": "Player1",
"message": "Merhaba!"
}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Sunucu varsayılan olarak 0.0.0.0:3000 adresinde çalışır. Farklı bir port kullanmak için index.js dosyasını düzenleyebilirsiniz.
ÖNEMLİ: Roblox'ta HTTP istekleri yapabilmek için:
- Roblox Studio'da oyununuzu açın
- Home → Game Settings
- Security sekmesi
- "Allow HTTP Requests" → AÇIK
src/routes/ klasörüne yeni route dosyası ekleyin:
// src/routes/custom.js
export function setupCustomRoutes(fastify, db, dbManager) {
fastify.get('/custom', async (request, reply) => {
return { message: 'Custom route!' };
});
}src/app.js içinde import edin:
import { setupCustomRoutes } from './routes/custom.js';
setupCustomRoutes(fastify, db, dbManager);- fastify - Hızlı web framework
- @fastify/cors - CORS desteği
- harmonydb - Basit JSON veritabanı
- pino-pretty - Güzel log çıktısı
- Sunucu
0.0.0.0:3000adresinde dinler (tüm network interface'lerden erişilebilir) - HarmonyDB Magic Proxy API kullanılır
- Otomatik kaydetme 100ms debounce ile aktiftir
- Roblox HTTP istekleri için game settings'de izin gereklidir
ISC
Pull request'ler kabul edilir. Büyük değişiklikler için önce issue açın.
Made with ❤️ for Roblox developers