🎧 Blind Test
Nouveau morceau
+Colle l'URL d'une vidéo YouTube puis valide.
+diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..c02037b --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +node_modules +.git +.gitea diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..2e010b9 --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,15 @@ +name: Deploy +on: + push: + branches: [master] + +jobs: + deploy: + # Doit correspondre à un label de ton act_runner, installé sur le serveur qui héberge Docker + runs-on: self-hosted + steps: + - uses: actions/checkout@v4 + - name: Build et redémarrage du conteneur + run: docker compose up -d --build --remove-orphans + - name: Nettoyage des anciennes images + run: docker image prune -f diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..65b78eb --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +FROM node:22-alpine +WORKDIR /app +COPY package*.json ./ +RUN npm install --omit=dev +COPY . . +ENV NODE_ENV=production +EXPOSE 3000 +USER node +HEALTHCHECK --interval=30s --timeout=3s CMD wget -qO- http://localhost:3000/healthz || exit 1 +CMD ["node", "server.js"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..60f8ab8 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,8 @@ +name: blindtest +services: + blindtest: + build: . + container_name: blindtest + restart: unless-stopped + ports: + - "3000:3000" diff --git a/package.json b/package.json new file mode 100644 index 0000000..310bb94 --- /dev/null +++ b/package.json @@ -0,0 +1,12 @@ +{ + "name": "blindtest", + "version": "1.0.0", + "private": true, + "main": "server.js", + "scripts": { "start": "node server.js" }, + "dependencies": { + "express": "^4.21.0", + "qrcode": "^1.5.4", + "socket.io": "^4.8.0" + } +} diff --git a/public/buzzer.html b/public/buzzer.html new file mode 100644 index 0000000..482bc91 --- /dev/null +++ b/public/buzzer.html @@ -0,0 +1,109 @@ + + +
+ + +Colle l'URL d'une vidéo YouTube puis valide.
+