Skip to content

Docker oder Podman

Docker

docker run --name vm-tracker-api -p 8080:8080 -e API_BASE_URL="https://vm-tracker.example.com" -e BASE_URL="https://vm-tracker.example.com" ghcr.io/9it-full-service/vm-tracker-api:latest
Trying to pull ghcr.io/9it-full-service/vm-tracker-api:latest...
Getting image source signatures
Copying blob sha256:0f0ca6b5a1ca9c307068d15f78cb97535b046dc7e17f572af5feb1a40d7c29da
Copying blob sha256:f666d56f2fedad06f099603bdb75585bb052c1abc92052ddc11d8530f918fa0f
Copying blob sha256:a65eeab72e9e5c3c876006f5ff5b0ecfb6d1d214ebca3805e804391ef8775662
Copying blob sha256:410f95f84c11c0b1689f1613fde5a446783395943fda29ba36af33666b685926
Copying blob sha256:6b59a28fa20117e6048ad0616b8d8c901877ef15ff4c7f18db04e4f01f43bc39
Copying blob sha256:0ca76b08819330a943bbcaab84227863698e166cb67c0bfc53cdad3ba5cd771d
Copying config sha256:8cb2fbee4eb5399bc97ab862e7ce5f44a0125c3af08d9cb0599cb5b6537ff20d
Writing manifest to image destination
2025/11/03 17:02:16 API_BASE_URL: https://vm-tracker.example.com/api/register
2025/11/03 17:02:16 VM Tracker API starting on port 8080
2025/11/03 17:02:16 Web UI: https://vm-tracker.example.com:8080
2025/11/03 17:02:16 API endpoints:
2025/11/03 17:02:16   POST   /api/register
2025/11/03 17:02:16   GET    /api/vms
2025/11/03 17:02:16   DELETE /api/vms/{hostname}
2025/11/03 17:02:16   GET    /download/install
2025/11/03 17:02:16   GET    /

Podman

podman run --name vm-tracker-api -p 8080:8080 -e API_BASE_URL="https://vm-tracker.example.com" -e BASE_URL="https://vm-tracker.example.com" ghcr.io/9it-full-service/vm-tracker-api:latest
Trying to pull ghcr.io/9it-full-service/vm-tracker-api:latest...
Getting image source signatures
Copying blob sha256:0f0ca6b5a1ca9c307068d15f78cb97535b046dc7e17f572af5feb1a40d7c29da
Copying blob sha256:f666d56f2fedad06f099603bdb75585bb052c1abc92052ddc11d8530f918fa0f
Copying blob sha256:a65eeab72e9e5c3c876006f5ff5b0ecfb6d1d214ebca3805e804391ef8775662
Copying blob sha256:410f95f84c11c0b1689f1613fde5a446783395943fda29ba36af33666b685926
Copying blob sha256:6b59a28fa20117e6048ad0616b8d8c901877ef15ff4c7f18db04e4f01f43bc39
Copying blob sha256:0ca76b08819330a943bbcaab84227863698e166cb67c0bfc53cdad3ba5cd771d
Copying config sha256:8cb2fbee4eb5399bc97ab862e7ce5f44a0125c3af08d9cb0599cb5b6537ff20d
Writing manifest to image destination
2025/11/03 17:02:16 API_BASE_URL: https://vm-tracker.example.com/api/register
2025/11/03 17:02:16 VM Tracker API starting on port 8080
2025/11/03 17:02:16 Web UI: https://vm-tracker.example.com:8080
2025/11/03 17:02:16 API endpoints:
2025/11/03 17:02:16   POST   /api/register
2025/11/03 17:02:16   GET    /api/vms
2025/11/03 17:02:16   DELETE /api/vms/{hostname}
2025/11/03 17:02:16   GET    /download/install
2025/11/03 17:02:16   GET    /

Docker Compose

compose.yaml
services:
  vm-tracker-api:
    image: ghcr.io/9it-full-service/vm-tracker-api:latest
    container_name: vm-tracker-api
    ports:
      - "8080:8080"
    environment:
      API_BASE_URL: "${API_BASE_URL:-https://vm-tracker.example.com}"
      BASE_URL: "${BASE_URL:-https://vm-tracker.example.com}"
    restart: unless-stopped

.env das compose file

.env
API_BASE_URL=https://vm-tracker.example.com
BASE_URL=https://vm-tracker.example.com

Starten mit docker-compose oder podman-compose

Docker

docker compose up -d

Podman

podman compose up -d