diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 4d33102..36ca010 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -39,3 +39,36 @@ jobs: --label "traefik.http.routers.chad-server.tls.certresolver=myresolver" \ --label "traefik.http.services.chad-server.loadbalancer.server.port=80" \ chad-server:latest + + client: + runs-on: ubuntu-latest + + steps: + - name: Keyscan + run: | + ssh-keyscan git.koptilnya.xyz >> ~/.ssh/known_hosts + + - name: Checkout + uses: actions/checkout@v4 + with: + ssh-key: ${{ secrets.SSH_PRIVATE_KEY }} + ssh-strict: false + persist-credentials: false + + - name: Build + run: docker build -t chad-client ./client + + - name: Stop old container + run: docker rm -f chad-client || true + + - name: Run + run: | + docker run -d \ + --name chad-client \ + --network traefik \ + --label "traefik.enable=true" \ + --label "traefik.http.routers.chad-client.rule=Host(\`chad.koptilnya.xyz\`)" \ + --label "traefik.http.routers.chad-client.entrypoints=websecure" \ + --label "traefik.http.routers.chad-client.tls.certresolver=myresolver" \ + --label "traefik.http.services.chad-client.loadbalancer.server.port=80" \ + chad-client:latest diff --git a/client/Dockerfile b/client/Dockerfile new file mode 100644 index 0000000..0a3d9d7 --- /dev/null +++ b/client/Dockerfile @@ -0,0 +1,17 @@ +FROM node:lts-alpine AS builder + +WORKDIR /app + +COPY package.json yarn.lock ./ + +RUN yarn install --frozen-lockfile +COPY . . +RUN yarn build + +FROM nginx:stable-alpine + +COPY --from=builder /app/dist /usr/share/nginx/html + +EXPOSE 80 + +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/client/app/composables/use-mediasoup.ts b/client/app/composables/use-mediasoup.ts index 3ec2b3a..8ad0e1e 100644 --- a/client/app/composables/use-mediasoup.ts +++ b/client/app/composables/use-mediasoup.ts @@ -43,7 +43,13 @@ export const useMediasoup = createGlobalState(() => { async function createSendTransport() { const params = await socket.emitWithAck('createTransport') - sendTransport = device.createSendTransport(params) + sendTransport = device.createSendTransport({ + ...params, + iceServers: [ + { urls: 'stun:stun.sipnet.ru:3478' }, + ...(params.iceServers ?? []), + ], + }) sendTransport.on('connect', async ({ dtlsParameters }, callback, errback) => { try { @@ -83,7 +89,13 @@ export const useMediasoup = createGlobalState(() => { async function createRecvTransport() { const params = await socket.emitWithAck('createTransport') - recvTransport = device.createRecvTransport(params) + recvTransport = device.createRecvTransport({ + ...params, + iceServers: [ + { urls: 'stun:stun.sipnet.ru:3478' }, + ...(params.iceServers ?? []), + ], + }) recvTransport.on('connect', async ({ dtlsParameters }, callback, errback) => { try { diff --git a/server/Dockerfile b/server/Dockerfile index 1bcc467..7f21cfa 100644 --- a/server/Dockerfile +++ b/server/Dockerfile @@ -4,7 +4,7 @@ RUN corepack enable COPY package.json yarn.lock ./ RUN apt update && apt install --yes python3 python3-pip build-essential RUN yarn set version latest -RUN yarn install +RUN yarn install --frozen-lockfile COPY . . ENV PORT=80 diff --git a/server/index.mjs b/server/index.mjs index 95c7dbb..9a3efec 100644 --- a/server/index.mjs +++ b/server/index.mjs @@ -55,7 +55,7 @@ io.on("connection", (socket) => { socket.on("createTransport", async (cb) => { try { const transport = await router.createWebRtcTransport({ - listenIps: [{ ip: "0.0.0.0", announcedIp: "127.0.0.1" }], + listenIps: [{ ip: "0.0.0.0", announcedIp: "91.144.171.182" }], enableUdp: true, enableTcp: true, preferUdp: true,