diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..1c54ab7 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,34 @@ +name: build + +on: + push: + branches: + - main + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Login Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }} + + - name: Build and publish + uses: docker/build-push-action@v3 + with: + context: ./ + file: ./Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: mirotalk/c2c:latest \ No newline at end of file diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..26f5c15 --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +.github diff --git a/Dockerfile b/Dockerfile index 113b9be..21ed1db 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,22 +1,24 @@ -FROM node:18-alpine +# Use a lightweight Node.js image +FROM node:20-alpine +# Set working directory WORKDIR /src -RUN apk add --no-cache \ - bash \ - vim - +# Copy package.json and .env dependencies COPY package.json . -COPY .env ./.env +COPY .env.template ./.env -RUN \ - npm install && \ - npm cache clean --force && \ - rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/* /usr/share/doc/* +# Install necessary system packages and dependencies +RUN apk add --no-cache \ + bash \ + vim \ + && npm install \ + && npm cache clean --force \ + && rm -rf /tmp/* /var/tmp/* /usr/share/doc/* +# Copy the application code COPY frontend frontend COPY backend backend -EXPOSE 8080/tcp - -CMD npm start \ No newline at end of file +# Set default command to start the application +CMD ["npm", "start"] \ No newline at end of file diff --git a/backend/server.js b/backend/server.js index d27bcf1..7f4e76a 100644 --- a/backend/server.js +++ b/backend/server.js @@ -9,7 +9,7 @@ * @license For private project or commercial purposes contact us at: license.mirotalk@gmail.com or purchase it directly via Code Canyon: * @license https://codecanyon.net/item/mirotalk-c2c-webrtc-real-time-cam-2-cam-video-conferences-and-screen-sharing/43383005 * @author Miroslav Pejic - miroslav.pejic.85@gmail.com - * @version 1.1.18 + * @version 1.1.19 */ require('dotenv').config(); diff --git a/frontend/js/client.js b/frontend/js/client.js index 39d444c..a7356ef 100644 --- a/frontend/js/client.js +++ b/frontend/js/client.js @@ -9,7 +9,7 @@ * @license For private project or commercial purposes contact us at: license.mirotalk@gmail.com or purchase it directly via Code Canyon: * @license https://codecanyon.net/item/mirotalk-c2c-webrtc-real-time-cam-2-cam-video-conferences-and-screen-sharing/43383005 * @author Miroslav Pejic - miroslav.pejic.85@gmail.com - * @version 1.1.18 + * @version 1.1.19 */ const roomId = new URLSearchParams(window.location.search).get('room'); diff --git a/package.json b/package.json index 6a68c39..e117fa4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mirotalkc2c", - "version": "1.1.18", + "version": "1.1.19", "description": "A free WebRTC Cam-2-Cam browser-based video calls", "main": "server.js", "scripts": {