# Installation ## Requirements - Docker Engine - Docker Compose No local Java or Node.js installation is required — the Dockerfile uses multi-stage build to compile everything inside Docker. ## Build and start with Docker Compose From the repository root, run a single command: ```bash docker compose up -d --build ``` The `--build` flag triggers the multi-stage Docker build that compiles both the Angular frontend and the Spring Boot backend inside Docker. No local JDK or Node.js is needed. The default Compose configuration maps host port `8088` to container port `8080`. Open http://localhost:8088 in your browser. ## Alternative: Build the image manually If you prefer to build the Docker image separately: ```bash docker build -t htop-web . docker compose up -d ``` ## Alternative: Local Gradle build (requires Java 21 and Node.js) If you need to build locally (for example, to run tests): ```bash cd backend ./gradlew clean build cd .. ``` The Gradle build also builds the Angular frontend and packages its production assets into the Spring Boot application. ## Check status and logs ```bash docker compose ps docker compose logs -f htop-web ``` ## Stop the application ```bash docker compose down ``` ## Simple Scenario of using ```yaml services: htop-web: image: gitea.jambotron.com/liosha84/htop-web:latest container_name: htop-web restart: unless-stopped pid: host read_only: true security_opt: - no-new-privileges:true tmpfs: - /tmp:noexec,nosuid,size=64m volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /etc/hostname:/host/etc/hostname:ro - /etc/os-release:/host/etc/os-release:ro - /var:/host/var:ro - /home:/host/home:ro - /opt:/host/opt:ro - /tmp:/host/tmp:ro - /srv:/host/srv:ro - /usr:/host/usr:ro labels: caddy: htop-web.jambotron.com caddy.reverse_proxy: "{{upstreams 8080}}" networks: - jambotron-net networks: jambotron-net: external: true ``` ```bash docker compose up -d ```