# Game Timer Multi-player game-timer timer with carousel navigation ## Project Structure ``` game-timer/ ├── docs/ # Documentation and project resources │ └── screenshots/ # Application screenshots ├── public/ # Static assets and public-facing resources │ ├── css/ # CSS stylesheets │ ├── images/ # Images used by the application │ ├── icons/ # App icons for PWA │ ├── audio/ # Audio files │ ├── index.html # Main HTML entry point │ ├── manifest.json # PWA manifest │ └── sw.js # Service Worker ├── src/ # Source code │ └── js/ # JavaScript files │ ├── core/ # Core application logic │ ├── ui/ # UI-related code │ ├── services/ # External services integration │ └── utils/ # Utility functions ├── Dockerfile # Docker container definition ├── .dockerignore # Files to exclude from Docker build └── package.json # Project metadata and dependencies ``` # PWA Containerized Deployment This document provides step-by-step instructions to pull the source code and deploy the Progressive Web App (PWA) using Docker on a production server. ## Prerequisites - **Git:** Installed on your production server. - **Docker:** Installed and running on your production server. - **Basic Knowledge:** Familiarity with the command line. ## Steps ### 1. Clone the Repository Log in to your production server and navigate to the directory where you want to store the project. Then run: ```bash git clone https://gitea.virtonline.eu/2HoursProject/game-timer.git cd game-timer ``` ### 2. Build the Docker image From the repository root, run the following command to build your Docker image: ```bash docker build -t 'game-timer:latest' . ``` ### 3. Run the Docker Container Once the image is built, run the container on port 8080 with: ```bash docker run -d -p 8080:80 --name game-timer-container game-timer:latest ``` ### 4. Verify the Deployment Check if it's running: ```bash docker ps ``` View logs (if needed): ```bash docker logs game-timer-container ``` After running the container, open your web browser and navigate to: ```bash http://localhost:8080 ``` ### 5. Terminate To stop your running game-timer-container, use: ```bash docker stop game-timer-container ``` ## Development For local development without Docker, you can use: ```bash npm run dev ``` This will start a local development server and open the application in your browser.