---
title: FAQ
description: Frequently asked questions about the containers.
url: https://containers.supanadit.com/faq.md
---

# Containers — FAQ

## 1. What is this collection?

A set of production-ready Docker containers — PostgreSQL, MariaDB, Kafka, etcd, MinIO, the Grafana observability stack, Airflow, Spark, and more — intended as a transparent alternative to Bitnami images. Every build and runtime decision is visible in the repository.

## 2. What makes these different from other community images?

Nothing is hidden in shell scripts. Builds are declared in a forge.toml manifest executed by forge; the entrypoint is a small set of JavaScript modules executed by ezx, a Go supervisor that stays PID 1. Applications run as dedicated non-root users, downloads are checksum-verified, and every container ships compose-based CI tests.

## 3. Where do the images live?

On GHCR under ghcr.io/supanadit/containers/<container>, tagged per container as <container>-rX.Y.Z (sometimes prefixed with the upstream version, e.g. wordpress-apache-6.9-r5). Pull the tag that matches your container.

## 4. How do I configure a container?

With environment variables only. Each container declares its variables in a single env.js module, validates them at boot, and generates the application config file from them. Invalid environments fail fast — before any side effect.

## 5. Where are the volume paths?

Every container uses the same tree: /opt/containers/data, config, logs, run, and backup, pre-created and owned by the application user in the image. Mount your volumes directly onto those paths.

## 6. Is there an example for my use case?

Yes — the documentation site at docs.containers.supanadit.com has per-container guides and compose scenarios, including TLS setups, etcd and Kafka clusters, and S3-backed observability stacks.

## 7. What licence is this under?

MIT. The forge build tool and the ezx supervisor are separate open-source projects of the same author.

