parent
d5915a9d40
commit
7b4be60099
@ -24,6 +24,9 @@ jobs:
|
|||||||
ssh-strict: false
|
ssh-strict: false
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
|
|
||||||
|
- name: Backup DB
|
||||||
|
run: cp /home/koptilnya/chad/data/database.db /home/koptilnya/chad/database-$(date +"%d-%m-%Y").db
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: docker build -t chad-server ./server
|
run: docker build -t chad-server ./server
|
||||||
|
|
||||||
|
|||||||
@ -4,17 +4,4 @@ import prisma from '../prisma/client'
|
|||||||
|
|
||||||
export const auth = new Lucia<object, { username: string, displayName: string }>(new PrismaAdapter(prisma.session, prisma.user))
|
export const auth = new Lucia<object, { username: string, displayName: string }>(new PrismaAdapter(prisma.session, prisma.user))
|
||||||
|
|
||||||
// export const auth = new Lucia({
|
|
||||||
// adapter: new PrismaAdapter(prisma.session, prisma.user),
|
|
||||||
// env: process.env.NODE_ENV === 'production' ? 'PROD' : 'DEV',
|
|
||||||
// middleware: req => ({
|
|
||||||
// headers: req.headers,
|
|
||||||
// }),
|
|
||||||
// transformUserData: user => ({
|
|
||||||
// id: user.id,
|
|
||||||
// username: user.username,
|
|
||||||
// displayName: user.username,
|
|
||||||
// }),
|
|
||||||
// })
|
|
||||||
|
|
||||||
export type Auth = typeof auth
|
export type Auth = typeof auth
|
||||||
|
|||||||
@ -1,21 +1,59 @@
|
|||||||
|
import { createServer as createHttpServer } from 'node:http'
|
||||||
import { createExpressMiddleware } from '@trpc/server/adapters/express'
|
import { createExpressMiddleware } from '@trpc/server/adapters/express'
|
||||||
|
import { consola } from 'consola'
|
||||||
import cookieParser from 'cookie-parser'
|
import cookieParser from 'cookie-parser'
|
||||||
import express from 'express'
|
import express from 'express'
|
||||||
|
import * as mediasoup from 'mediasoup'
|
||||||
|
import { Server as SocketServer } from 'socket.io'
|
||||||
import { createContext } from './trpc/context'
|
import { createContext } from './trpc/context'
|
||||||
import { appRouter } from './trpc/routers'
|
import { appRouter } from './trpc/routers'
|
||||||
|
import webrtcSocket from './webrtc/socket'
|
||||||
|
|
||||||
const app = express()
|
(async () => {
|
||||||
app.use(cookieParser())
|
const app = express()
|
||||||
app.use(express.json())
|
|
||||||
|
|
||||||
app.use(
|
app.use(cookieParser())
|
||||||
|
app.use(express.json())
|
||||||
|
|
||||||
|
app.use(
|
||||||
'/chad/trpc',
|
'/chad/trpc',
|
||||||
createExpressMiddleware({
|
createExpressMiddleware({
|
||||||
router: appRouter,
|
router: appRouter,
|
||||||
createContext,
|
createContext,
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
|
|
||||||
app.listen(process.env.PORT || 4000, () => {
|
const server = createHttpServer(app)
|
||||||
|
|
||||||
|
const worker = await mediasoup.createWorker()
|
||||||
|
worker.on('died', () => {
|
||||||
|
consola.error('[Mediasoup]', 'Worker died, exiting...')
|
||||||
|
|
||||||
|
process.exit(1)
|
||||||
|
})
|
||||||
|
|
||||||
|
const router = await worker.createRouter({
|
||||||
|
mediaCodecs: [
|
||||||
|
{
|
||||||
|
kind: 'audio',
|
||||||
|
mimeType: 'audio/opus',
|
||||||
|
clockRate: 48000,
|
||||||
|
channels: 2,
|
||||||
|
parameters: { useinbandfec: 1, stereo: 1 },
|
||||||
|
},
|
||||||
|
],
|
||||||
|
})
|
||||||
|
|
||||||
|
const io = new SocketServer(server, {
|
||||||
|
path: '/chad/ws',
|
||||||
|
cors: {
|
||||||
|
origin: process.env.CORS_ORIGIN || '*',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
webrtcSocket(io, router)
|
||||||
|
|
||||||
|
server.listen(process.env.PORT || 4000, () => {
|
||||||
console.log('✅ Server running')
|
console.log('✅ Server running')
|
||||||
})
|
})
|
||||||
|
})()
|
||||||
|
|||||||
@ -1,5 +0,0 @@
|
|||||||
import webrtcSocket from './webrtc'
|
|
||||||
|
|
||||||
export {
|
|
||||||
webrtcSocket,
|
|
||||||
}
|
|
||||||
@ -1,8 +1,10 @@
|
|||||||
import { router } from '../router'
|
import { router } from '../router'
|
||||||
import { authRouter } from './auth'
|
import { authRouter } from './auth'
|
||||||
|
import { webrtcRouter } from './webrtc'
|
||||||
|
|
||||||
export const appRouter = router({
|
export const appRouter = router({
|
||||||
auth: authRouter,
|
auth: authRouter,
|
||||||
|
webrtc: webrtcRouter,
|
||||||
})
|
})
|
||||||
|
|
||||||
export type AppRouter = typeof appRouter
|
export type AppRouter = typeof appRouter
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user