This commit is contained in:
hibna
2026-02-21 13:02:41 +03:00
commit 2215003a4d
59 changed files with 6100 additions and 0 deletions
+115
View File
@@ -0,0 +1,115 @@
import { createDb } from './client';
import { games } from './schema/games';
async function seed() {
const databaseUrl = process.env.DATABASE_URL;
if (!databaseUrl) {
console.error('DATABASE_URL is required');
process.exit(1);
}
const db = createDb(databaseUrl);
console.log('Seeding games...');
await db
.insert(games)
.values([
{
slug: 'minecraft-java',
name: 'Minecraft: Java Edition',
dockerImage: 'itzg/minecraft-server:latest',
defaultPort: 25565,
startupCommand: '/start',
stopCommand: 'stop',
configFiles: JSON.stringify([
{
path: 'server.properties',
parser: 'properties',
editableKeys: [
'server-port',
'max-players',
'motd',
'difficulty',
'gamemode',
'level-seed',
'pvp',
'spawn-protection',
'view-distance',
'online-mode',
'white-list',
],
},
{ path: 'ops.json', parser: 'json' },
{ path: 'whitelist.json', parser: 'json' },
{ path: 'bukkit.yml', parser: 'yaml' },
{ path: 'spigot.yml', parser: 'yaml' },
]),
environmentVars: JSON.stringify([
{ key: 'EULA', default: 'TRUE', description: 'Accept Minecraft EULA', required: true },
{
key: 'TYPE',
default: 'PAPER',
description: 'Server type (VANILLA, PAPER, SPIGOT, FORGE, FABRIC)',
required: true,
},
{
key: 'VERSION',
default: 'LATEST',
description: 'Minecraft version',
required: true,
},
{ key: 'MEMORY', default: '1G', description: 'JVM memory allocation', required: false },
]),
},
{
slug: 'cs2',
name: 'Counter-Strike 2',
dockerImage: 'cm2network/csgo:latest',
defaultPort: 27015,
startupCommand:
'./srcds_run -game csgo -console -usercon +game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2',
stopCommand: 'quit',
configFiles: JSON.stringify([
{
path: 'csgo/cfg/server.cfg',
parser: 'keyvalue',
editableKeys: [
'hostname',
'sv_password',
'rcon_password',
'sv_cheats',
'mp_autoteambalance',
'mp_limitteams',
],
},
{ path: 'csgo/cfg/autoexec.cfg', parser: 'keyvalue' },
]),
environmentVars: JSON.stringify([
{
key: 'SRCDS_TOKEN',
default: '',
description: 'Steam Game Server Login Token',
required: true,
},
{ key: 'SRCDS_RCONPW', default: '', description: 'RCON password', required: false },
{ key: 'SRCDS_PW', default: '', description: 'Server password', required: false },
{
key: 'SRCDS_MAXPLAYERS',
default: '16',
description: 'Max players',
required: false,
},
]),
},
])
.onConflictDoNothing();
console.log('Seed completed successfully!');
process.exit(0);
}
seed().catch((err) => {
console.error('Seed failed:', err);
process.exit(1);
});