Documentation

Docker

Docker Hub image, run options, publishing, and repo layout.

End users: pull pomtom44/glancerf from Docker Hub—same codebase as the desktop installers. For a minimal docker build from a repo clone, see Installation (Docker section); everything else (run flags, volumes, publishing) is on this page.


Quick start (users)

docker run -p 8080:8080 pomtom44/glancerf

Then open http://localhost:8080 in your browser. Docker always runs in headless mode (server only, no desktop window)—desktop_mode from config is ignored when GLANCERF_DOCKER=1.


For maintainers: publishing to Docker Hub

1. One-time setup

  1. Create a Docker Hub account at https://hub.docker.com (if you don't have one).

  2. Create a repository on Docker Hub:

  3. Go to https://hub.docker.com/repository/create
  4. Name: glancerf (or pomtom44/glancerf if your username is pomtom44)
  5. Visibility: Public
  6. Create

  7. Connect GitHub to Docker Hub (for automatic builds):

  8. Docker Hub → Account Settings → Linked Accounts
  9. Connect your GitHub account and authorize pomtom44/GlanceRF

  10. Create an Automated Build:

  11. Docker Hub → Create → Create Automated Build
  12. Select GitHub → pomtom44/GlanceRF
  13. Configure:
    • Dockerfile location: Project-GitHubReady/Dockerfile (or Project/Dockerfile if you only push Project)
    • Build context: Project-GitHubReady (or Project)
    • Build triggers: On push to main (or your default branch)
  14. Save and Build

Use the script to build, tag with version + release notes, and push:

cd Scripts
powershell -ExecutionPolicy Bypass -File Build_Docker_Push.ps1

The script:

  • Builds from Project-GitHubReady (run Create_GitHubReady_Clone.ps1 first to sync)
  • Reads version from glancerf/__init__.py (__version__)
  • Reads release notes from Current Change List.txt (content after first line)
  • Tags the image as pomtom44/glancerf:3.0.0 and pomtom44/glancerf:latest
  • Adds Docker labels for version and description
  • Pushes both tags to Docker Hub

Prerequisites: Docker installed, docker login completed.

3. Manual build & push (alternative)

If you prefer to build and push manually, first run Create_GitHubReady_Clone.ps1 to sync Project-GitHubReady, then:

# From the GlanceRF repo root
cd Project-GitHubReady
docker build -t pomtom44/glancerf .
docker push pomtom44/glancerf

Or from the repo root in one command:

docker build -f Project-GitHubReady/Dockerfile -t pomtom44/glancerf Project-GitHubReady
docker push pomtom44/glancerf

4. How updates flow

Install Method Source When It Updates
Single installers (Windows/Mac/Linux) https://github.com/pomtom44/GlanceRF/archive/refs/heads/main.zip On every run (downloads latest)
Docker Hub Same repo, built from Project-GitHubReady/ On every push to main (if automated) or when you manually build & push

All methods pull from the same GitHub repo. Push to main → single installers get it on next run, Docker gets it on next build.


Docker run options

# Basic run (main port 8080)
docker run -p 8080:8080 pomtom44/glancerf

# Map both main (8080) and read-only (8081) ports
docker run -p 8080:8080 -p 8081:8081 pomtom44/glancerf

# Custom port mapping (host 9000 → container 8080)
docker run -p 9000:8080 pomtom44/glancerf

# Run in background
docker run -d -p 8080:8080 --name glancerf pomtom44/glancerf

# Stop
docker stop glancerf

Environment variables

Variable Description
GLANCERF_DOCKER=1 Set automatically in the image. Forces headless mode (no desktop window).
GLANCERF_PORT Override main server port (default: 8080).
GLANCERF_READONLY_PORT Override read-only server port (default: 8081).
GLANCERF_PROJECT Config directory path. Use with a mounted volume for config persistence.

Config persistence

Config is stored in glancerf_config.json. To persist across container restarts, mount a volume and set GLANCERF_PROJECT:

docker run -p 8080:8080 -e GLANCERF_PROJECT=/app/config -v glancerf-config:/app/config pomtom44/glancerf

Health check

The image includes a HEALTHCHECK that pings /api/time every 30 seconds. Docker and orchestrators (e.g. Kubernetes) use this to determine container health.


File layout (repo)

GlanceRF/
├── Project/                  ← Source (local dev)
├── Project-GitHubReady/      ← Clean clone for GitHub & Docker (created by Create_GitHubReady_Clone.ps1)
│   ├── Dockerfile            ← Docker image definition
│   ├── .dockerignore         ← Excludes installers, caches, etc.
│   ├── run.py
│   ├── glancerf/
│   │   └── __init__.py       ← __version__ for Docker tag
│   └── requirements/
│       ├── requirements-linux.txt
│       └── ...
├── Scripts/
│   ├── Create_GitHubReady_Clone.ps1  ← Syncs Project → Project-GitHubReady
│   └── Build_Docker_Push.ps1         ← Build, tag, push (uses Project-GitHubReady)
├── Current Change List.txt   ← Release notes for Docker label
├── Single Installers/        ← Bootstrap scripts (download from GitHub)
└── Project/docs/05.Docker.md  ← This guide (numbered docs)

The Docker build uses Project-GitHubReady/—the same content published to GitHub.

Source: view on GitHub