From 60a5fe96876287f54a262bb4a0098ba007d0af03 Mon Sep 17 00:00:00 2001 From: mvbingham Date: Thu, 4 Jun 2026 13:03:26 -0400 Subject: [PATCH] docker-added --- .dockerignore | 9 +++++++++ Dockerfile | 13 +++++++++++++ README.md | 31 +++++++++++++++++++++++++++++++ docker-compose.yml | 8 ++++++++ 4 files changed, 61 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..cb6224e --- /dev/null +++ b/.dockerignore @@ -0,0 +1,9 @@ +node_modules/ +data/ +.git/ +.wolf/ +.gitignore +.dockerignore +*.bat +*.sh +README.md diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..3c13381 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,13 @@ +FROM node:20-alpine + +WORKDIR /app + +COPY package*.json ./ +RUN npm ci --omit=dev + +COPY server.js ./ +COPY vps_manager.html ./ + +EXPOSE 8095 + +CMD ["node", "server.js"] diff --git a/README.md b/README.md index d948d7e..d70d523 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,37 @@ Open `http://localhost:8095` in your browser. --- +## Docker + +**One command — no Node.js install required.** + +```bash +docker compose up -d +``` + +Open `http://localhost:8095` in your browser. Server data is persisted in `./data/` on the host via a bind mount, so it survives container restarts and rebuilds. + +To stop: + +```bash +docker compose down +``` + +To rebuild after pulling changes: + +```bash +docker compose up -d --build +``` + +To run without Compose (manual): + +```bash +docker build -t vps-fleet . +docker run -d -p 8095:8095 -v "$(pwd)/data:/app/data" --name vps-fleet vps-fleet +``` + +--- + ## Usage **Add a server** — click **+ Add Server** in the top-right corner. Only the hostname is required; all other fields are optional. Enter a location and a map pin is placed automatically. diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..b6c0518 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,8 @@ +services: + vps-fleet: + build: . + ports: + - "8095:8095" + volumes: + - ./data:/app/data + restart: unless-stopped