37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
import {IpldStore} from '@adxp/common'
|
|
import PDSServer from '@adxp/server/dist/server.js'
|
|
import PDSDatabase from '@adxp/server/dist/db/index.js'
|
|
import WSRelayServer from '@adxp/ws-relay/dist/index.js'
|
|
import AuthLobbyServer from '@adxp/auth-lobby'
|
|
|
|
const PDS_PORT = 2583
|
|
const AUTH_LOBBY1_PORT = 3001
|
|
const AUTH_LOBBY2_PORT = 3002
|
|
const WSR_PORT = 3005
|
|
|
|
async function start() {
|
|
console.log('Initializing...')
|
|
|
|
const db = PDSDatabase.memory()
|
|
const serverBlockstore = IpldStore.createInMemory()
|
|
await db.dropTables()
|
|
await db.createTables()
|
|
PDSServer(serverBlockstore, db, PDS_PORT)
|
|
|
|
init(AuthLobbyServer, AUTH_LOBBY1_PORT, 'Auth lobby')
|
|
|
|
if (process.argv.includes('--relay')) {
|
|
init(AuthLobbyServer, AUTH_LOBBY2_PORT, 'Auth lobby 2')
|
|
init(WSRelayServer, WSR_PORT, 'Relay server')
|
|
} else {
|
|
console.log('Include --relay to start the WS Relay and second auth lobby')
|
|
}
|
|
}
|
|
start()
|
|
|
|
function init(fn, port, name) {
|
|
const s = fn(port)
|
|
s.on('listening', () => console.log(`✔ ${name} running on port ${port}`))
|
|
s.on('error', e => console.log(`${name} failed to start:`, e))
|
|
}
|