Skip to content

Repository files navigation

Podplane Hello World Image

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.

Configuration

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.

HTTP

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/healthz

HTTPS

If 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/healthz

HTTPS 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.

Custom templates and assets

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:latest

Override 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.

Learn More

Read more about how templates work in the Podplane templates documentation.

Learn more about Podplane at the official project website: podplane.dev

License

Podplane is licensed under the Apache License, Version 2.0. Copyright The Podplane Authors.

See the LICENSE file for details.

About

Podplane "Hello World" container image

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages