This commit is contained in:
cpu
2025-05-08 13:29:51 +02:00
parent e9d202f5da
commit 9ab7500621
2 changed files with 21 additions and 13 deletions

View File

@@ -1,5 +1,5 @@
# Stage 1: Build the Vue.js application # Stage 1: Build the Vue.js application
FROM node:18-alpine AS builder FROM node:24-alpine AS builder
WORKDIR /app WORKDIR /app
COPY package*.json ./ COPY package*.json ./
RUN npm install RUN npm install
@@ -8,8 +8,10 @@ RUN npm run build
# Stage 2: Serve the application with Nginx # Stage 2: Serve the application with Nginx
FROM nginx:stable-alpine FROM nginx:stable-alpine
COPY --from=builder /app/dist /usr/share/nginx/html
COPY ./nginx.conf /etc/nginx/conf.d/default.conf COPY ./nginx.conf /etc/nginx/conf.d/default.conf
RUN find /usr/share/nginx/html -mindepth 1 -delete
COPY --from=builder /app/dist /usr/share/nginx/html
EXPOSE 80 EXPOSE 80
CMD ["nginx", "-g", "daemon off;"] CMD ["nginx", "-g", "daemon off;"]

View File

@@ -31,7 +31,10 @@ For an enhanced tactile experience, Nexus Timer supports Smart Buttons based on
* **Configuration:** * **Configuration:**
* **Player 1's Button:** Single Click: Emulates a key press (e.g., 'a'). Configure this as Player 1's "Pass Turn / My Pause" hotkey in the app. * **Player 1's Button:** Single Click: Emulates a key press (e.g., 'a'). Configure this as Player 1's "Pass Turn / My Pause" hotkey in the app.
* **Player 2's Button:** Single Click: Emulates a key press (e.g., 'b'). Configure as Player 2's "Pass Turn / My Pause" hotkey. * **Player 2's Button:** Single Click: Emulates a key press (e.g., 'b'). Configure as Player 2's "Pass Turn / My Pause" hotkey.
* **Player 3's Button:** Single Click: Emulates a key press (e.g., 'c'). Configure as Player 3's "Pass Turn / My Pause" hotkey. Long Press (if Player 3 is Game Admin): Emulates a key press (e.g., 's'). Configure as the "Global Stop/Pause All" hotkey in the app. * If Player 3 is Game Admin:
* **Player 3's Button:** Single Click: Emulates a key press (e.g., 'c'). Configure as Player 3's "Pass Turn / My Pause" hotkey.
* **Player 3's Button:** Double Click: Emulates a key press (e.g., 'x'). Configure as the "Global Run All Timers" hotkey in the app.
* **Player 3's Button:** Long Press: Emulates a key press (e.g., 's'). Configure as the "Global Stop/Pause All" hotkey in the app.
## Key Features ## Key Features
@@ -66,6 +69,7 @@ For an enhanced tactile experience, Nexus Timer supports Smart Buttons based on
* Set initial timer values per player (Default: 60:00). * Set initial timer values per player (Default: 60:00).
* Assign unique "Pass Turn / My Pause" hotkeys (single keypresses). E.g.: Use the Player's 1 "single click" action to insert the key. * Assign unique "Pass Turn / My Pause" hotkeys (single keypresses). E.g.: Use the Player's 1 "single click" action to insert the key.
* Assign the "Global Stop/Pause All" hotkey (single keypresses). E.g.: Use the Player's 3 "long press" action to insert the key. * Assign the "Global Stop/Pause All" hotkey (single keypresses). E.g.: Use the Player's 3 "long press" action to insert the key.
* Assign the "Run All Timers" hotkey (single keypresses). E.g.: Use the Player's 3 "double click" action to insert the key.
* Re-order players (drag-and-drop planned), reverse, shuffle. * Re-order players (drag-and-drop planned), reverse, shuffle.
* **Intuitive Controls:** * **Intuitive Controls:**
* **Swipe Up:** (On the Next Player's area). Primary gesture for passing turns (Normal Mode). * **Swipe Up:** (On the Next Player's area). Primary gesture for passing turns (Normal Mode).
@@ -95,27 +99,29 @@ For an enhanced tactile experience, Nexus Timer supports Smart Buttons based on
"players": [ "players": [
{ {
"id": "1", "id": "1",
"name": "Alice", "name": "Player 1",
"avatar": "image", "avatar": null,
"initialTimer": "60:00", "initialTimerSec": 3600,
"currentTimer": "60:00", "currentTimerSec": 3600,
"hotkey": "a", "hotkey": "a",
"isSkipped": false "isSkipped": false
}, },
{ {
"id": "2", "id": "2",
"name": "Bob", "name": "Player 2",
"avatar": "image", "avatar": null,
"initialTimer": "60:00", "initialTimerSec": 3600,
"currentTimer": "60:00", "currentTimerSec": 3600,
"hotkey": "b", "hotkey": "b",
"isSkipped": false "isSkipped": false
} }
], ],
"globalHotkey": "s", "globalHotkeyStopPause": "s",
"globalHotkeyRunAll": "x",
"currentPlayerIndex": 0, "currentPlayerIndex": 0,
"gameMode": "normal", // "normal" or "allTimers" "gameMode": "normal", // "normal" or "allTimers"
"isMuted": false "isMuted": false,
"theme": "dark"
} }
``` ```
## Installation ## Installation