This repository is responsible for the Podplane "Hello World" container image published at:
ghcr.io/podplane/hello:latest
which is used as an example image for the web app template.
Set HELLO_MESSAGE env var to change the message shown on the page:
HELLO_MESSAGE="Hello from my app!" make run
If HELLO_MESSAGE starts with /, it is treated as an absolute file path. The page shows the file contents, or the read error if the file cannot be opened or read. File messages must be UTF-8 text, must not contain binary control bytes, and are limited to 200 KiB. Messages are HTML-escaped before rendering.
If HELLO_MESSAGE is not set, the page shows Hello, World! by default.
The image listens on port 8080 by default; set PORT to choose a different port.
By default, the container serves HTTP on its listening port. You can test this with:
docker run --rm -p 8080:8080 ghcr.io/podplane/hello:latest
curl http://localhost:8080/healthzIf you set both TLS_CERT_FILE and TLS_KEY_FILE, the container will serve HTTPS instead of HTTP on the configured listening port.
Those files must not be included in the image, and should be mounted into the container read-only. For example, mount a certificate and private key at /tls/tls.crt and /tls/tls.key and test HTTPS with:
docker run --rm -p 8443:8080 \
-e TLS_CERT_FILE=/tls/tls.crt \
-e TLS_KEY_FILE=/tls/tls.key \
-v "$PWD/tls.crt:/tls/tls.crt:ro" \
-v "$PWD/tls.key:/tls/tls.key:ro" \
ghcr.io/podplane/hello:latest
curl --cacert "$PWD/tls.crt" https://localhost:8443/healthzHTTPS mode does not start a separate HTTP listener. Configure both TLS variables or neither; setting only one causes the container to exit with a configuration error. The /healthz route remains available over the selected protocol, and HTTPS deployments can alternatively use a TCP health probe against the application port.
Set TEMPLATES_DIR to a directory of overrides. Files replace built-ins with the same relative path; missing files use the embedded defaults.
docker run --rm -p 8080:8080 \
-e TEMPLATES_DIR=/templates \
-v "$PWD/templates:/templates:ro" \
ghcr.io/podplane/hello:latestOverride index.html, index.css, logo.svg, favicon.svg, or favicon.ico. index.html receives .Message, .BrandName, .BrandURL, .BrandHost, and .BrandLogo. All files in this directory are public; do not store secrets there.
If you don't want to change any tmeplates/assets and just want to change the branding, you can set BRAND_NAME and BRAND_URL to replace the default Podplane and https://podplane.dev values. BRAND_LOGO defaults to logo.svg; set it to another path or URL, or explicitly set it empty to show the brand name as text instead of the logo.
Read more about how templates work in the Podplane templates documentation.
Learn more about Podplane at the official project website: podplane.dev
Podplane is licensed under the Apache License, Version 2.0. Copyright The Podplane Authors.
See the LICENSE file for details.