# Hiyv nginx A small, Hiyv-branded nginx base image. The landing page displays the exact Git commit used to build the published container. ## Run it ```sh docker run --rm -p 8080:80 git.mancheff.com/hiyv-demo/hiyv-nginx:1.0.3 ``` Open . The health endpoint is available at . ## Publish a version Publishing is driven by semantic-version Git tags: ```sh git tag v1.0.0 git push origin main v1.0.0 ``` The Gitea Actions workflow publishes the following tags for `v1.2.3`: - `1.2.3` - `1.2` - `1` - the full Git commit SHA - `latest` The workflow publishes `linux/amd64` images to `git.mancheff.com/hiyv-demo/hiyv-nginx`. The pinned upstream nginx base is mirrored at `git.mancheff.com/hiyv-demo/nginx-base:1.28-alpine-amd64` so the self-hosted runner does not depend on Docker Hub connectivity during releases. The repository must define two Actions secrets: `REGISTRY_USERNAME` with the Gitea username and `REGISTRY_TOKEN` with a personal access token that has package write access. Gitea's automatic job token cannot currently publish OCI packages. ## Build locally ```sh docker build --build-arg COMMIT_ID="$(git rev-parse HEAD)" -t hiyv-nginx:local . ``` ## Deploy with Argo CD The Kubernetes manifests in `k8s/` deploy two HIYV replicas and expose them through a cluster-internal Service. They use the public Gitea image directly; no `imagePullSecrets` are required. The repository URL is deliberately not hard-coded. Set `HIYV_GIT_REPO` to the public Git repository that contains these manifests, make sure the Argo CD CLI is authenticated, and run: ```sh export HIYV_GIT_REPO='' ./scripts/create-argocd-application.sh ``` If `HIYV_GIT_REPO` is unset, the script explains what is missing and exits without changing Argo CD. When it is set, the script creates or updates the `hiyv` Application with automated sync, pruning, self-healing, and namespace creation enabled. Optional configuration: - `HIYV_GIT_REVISION` (default: `main`) - `HIYV_MANIFEST_PATH` (default: `k8s`) - `HIYV_ARGOCD_APP_NAME` (default: `hiyv`) - `HIYV_DESTINATION_SERVER` (default: in-cluster Kubernetes API) - `HIYV_DESTINATION_NAMESPACE` (default: `hiyv`)