diff --git a/.changeset/clickstack-app-image.md b/.changeset/clickstack-app-image.md new file mode 100644 index 0000000000..aa42011529 --- /dev/null +++ b/.changeset/clickstack-app-image.md @@ -0,0 +1,7 @@ +--- +'@hyperdx/app': patch +--- + +feat: publish the HyperDX image as `clickhouse/clickstack` alongside +`hyperdx/hyperdx`, matching the other `clickhouse/clickstack-*` images. Release +workflows no longer log into ghcr.io, which received no pushes. diff --git a/.env b/.env index 835666b3b1..8ceaf87a8c 100644 --- a/.env +++ b/.env @@ -2,6 +2,7 @@ HDX_IMAGE_REPO=docker.hyperdx.io CH_IMAGE_REPO=docker.clickhouse.com IMAGE_NAME_DOCKERHUB=hyperdx/hyperdx +NEXT_IMAGE_NAME_DOCKERHUB=clickhouse/clickstack NEXT_LOCAL_IMAGE_NAME_DOCKERHUB=clickhouse/clickstack-local LOCAL_IMAGE_NAME_DOCKERHUB=hyperdx/hyperdx-local NEXT_ALL_IN_ONE_IMAGE_NAME_DOCKERHUB=clickhouse/clickstack-all-in-one diff --git a/.github/workflows/release-nightly.yml b/.github/workflows/release-nightly.yml index 6b967dffcf..3bd13af222 100644 --- a/.github/workflows/release-nightly.yml +++ b/.github/workflows/release-nightly.yml @@ -9,7 +9,6 @@ concurrency: cancel-in-progress: true permissions: contents: write - packages: write pull-requests: write actions: read jobs: @@ -39,12 +38,6 @@ jobs: with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - name: Load Environment Variables from .env uses: xom9ikk/dotenv@v2 - name: Build and Push @@ -114,12 +107,6 @@ jobs: with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - name: Load Environment Variables from .env uses: xom9ikk/dotenv@v2 - name: Build and Push @@ -136,6 +123,7 @@ jobs: CODE_VERSION=${{ env.IMAGE_NIGHTLY_TAG }} tags: | ${{ env.IMAGE_NAME_DOCKERHUB }}:${{ env.IMAGE_NIGHTLY_TAG }}-${{ matrix.arch }} + ${{ env.NEXT_IMAGE_NAME_DOCKERHUB }}:${{ env.IMAGE_NIGHTLY_TAG }}-${{ matrix.arch }} push: true sbom: true provenance: true @@ -158,14 +146,15 @@ jobs: password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Setup Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Create multi-arch manifest + - name: Create multi-arch manifests run: | TAG="${{ env.IMAGE_NIGHTLY_TAG }}" - IMAGE="${{ env.IMAGE_NAME_DOCKERHUB }}" - docker buildx imagetools create \ - -t "${IMAGE}:${TAG}" \ - "${IMAGE}:${TAG}-amd64" \ - "${IMAGE}:${TAG}-arm64" + for IMAGE in "${{ env.IMAGE_NAME_DOCKERHUB }}" "${{ env.NEXT_IMAGE_NAME_DOCKERHUB }}"; do + docker buildx imagetools create \ + -t "${IMAGE}:${TAG}" \ + "${IMAGE}:${TAG}-amd64" \ + "${IMAGE}:${TAG}-arm64" + done # --------------------------------------------------------------------------- # Local Nightly (all-in-one-noauth) @@ -193,12 +182,6 @@ jobs: with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - name: Load Environment Variables from .env uses: xom9ikk/dotenv@v2 - name: Build and Push @@ -276,12 +259,6 @@ jobs: with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - name: Load Environment Variables from .env uses: xom9ikk/dotenv@v2 - name: Build and Push diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3ddbe9f447..ae52bf1b2e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,7 +5,6 @@ on: workflow_dispatch: permissions: contents: write - packages: write pull-requests: write actions: read id-token: write @@ -817,12 +816,6 @@ jobs: with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - name: Load Environment Variables from .env uses: xom9ikk/dotenv@v2 - name: Build and Push @@ -897,12 +890,6 @@ jobs: with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - name: Load Environment Variables from .env uses: xom9ikk/dotenv@v2 - name: Build and Push @@ -919,6 +906,7 @@ jobs: CODE_VERSION=${{ env.CODE_VERSION }} tags: | ${{ env.IMAGE_NAME_DOCKERHUB }}:${{ env.IMAGE_VERSION }}${{ env.IMAGE_VERSION_SUB_TAG }}-${{ matrix.arch }} + ${{ env.NEXT_IMAGE_NAME_DOCKERHUB }}:${{ env.IMAGE_VERSION }}${{ env.IMAGE_VERSION_SUB_TAG }}-${{ matrix.arch }} push: true sbom: true provenance: true @@ -943,18 +931,19 @@ jobs: password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Setup Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Create multi-arch manifest + - name: Create multi-arch manifests run: | VERSION="${{ env.IMAGE_VERSION }}${{ env.IMAGE_VERSION_SUB_TAG }}" MAJOR="${{ env.IMAGE_VERSION }}" LATEST="${{ env.IMAGE_LATEST_TAG }}" - IMAGE="${{ env.IMAGE_NAME_DOCKERHUB }}" - docker buildx imagetools create \ - -t "${IMAGE}:${VERSION}" \ - -t "${IMAGE}:${MAJOR}" \ - -t "${IMAGE}:${LATEST}" \ - "${IMAGE}:${VERSION}-amd64" \ - "${IMAGE}:${VERSION}-arm64" + for IMAGE in "${{ env.IMAGE_NAME_DOCKERHUB }}" "${{ env.NEXT_IMAGE_NAME_DOCKERHUB }}"; do + docker buildx imagetools create \ + -t "${IMAGE}:${VERSION}" \ + -t "${IMAGE}:${MAJOR}" \ + -t "${IMAGE}:${LATEST}" \ + "${IMAGE}:${VERSION}-amd64" \ + "${IMAGE}:${VERSION}-arm64" + done # --------------------------------------------------------------------------- # Local (all-in-one-noauth) – build each arch natively, then merge @@ -984,12 +973,6 @@ jobs: with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - name: Load Environment Variables from .env uses: xom9ikk/dotenv@v2 - name: Build and Push @@ -1096,12 +1079,6 @@ jobs: with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - name: Load Environment Variables from .env uses: xom9ikk/dotenv@v2 - name: Build and Push diff --git a/DEPLOY.md b/DEPLOY.md index 52735ada6f..9c31726b8f 100644 --- a/DEPLOY.md +++ b/DEPLOY.md @@ -11,6 +11,24 @@ HyperDX can be deployed in a few different ways: - [All-in-one Docker Compose Stack](#all-in-one-docker-compose-stack) - [Local Development Mode](#local-development-mode) +## Container image names + +ClickStack images are published to Docker Hub under the `clickhouse` namespace +and are also served from `docker.clickhouse.com`: + +| Image | Name | +| --------------------------- | -------------------------------------- | +| HyperDX (UI + API) | `clickhouse/clickstack` | +| All-in-one (with auth) | `clickhouse/clickstack-all-in-one` | +| Local (all-in-one, no auth) | `clickhouse/clickstack-local` | +| OpenTelemetry collector | `clickhouse/clickstack-otel-collector` | + +The legacy `hyperdx/hyperdx`, `hyperdx/hyperdx-all-in-one`, +`hyperdx/hyperdx-local` and `hyperdx/hyperdx-otel-collector` names (also served +from `docker.hyperdx.io`) keep receiving the same tags for a transition period. +Switch to the `clickhouse/clickstack-*` names now; the date the legacy names +stop updating will be announced in the changelog. + ## Bring Your Own ClickHouse If you already have an existing ClickHouse cluster, you can simply deploy a @@ -81,5 +99,5 @@ authentication or configuration persistence. To get started, spin up the local mode container: ```bash -docker run -p 8080:8080 docker.hyperdx.io/hyperdx/hyperdx-local:2-beta +docker run -p 8080:8080 docker.clickhouse.com/clickhouse/clickstack-local:2 ``` diff --git a/LOCAL.md b/LOCAL.md index ccf36005c8..b6e98fc25a 100644 --- a/LOCAL.md +++ b/LOCAL.md @@ -22,7 +22,7 @@ And it has all the features you would expect from HyperDX: To get started, simply run the Docker container with the appropriate ports forwarded: ``` -docker run -p 8000:8000 -p 4318:4318 -p 4317:4317 -p 8080:8080 -p 8002:8002 docker.hyperdx.io/hyperdx/hyperdx-local +docker run -p 8000:8000 -p 4318:4318 -p 4317:4317 -p 8080:8080 -p 8002:8002 docker.clickhouse.com/clickhouse/clickstack-local ``` Afterwards, you can visit `http://localhost:8080` and immediately jump into the HyperDX UI. @@ -56,7 +56,7 @@ docker run \ -p 4318:4318 -p 4317:4317 \ -p $HYPERDX_APP_PORT:8080 \ -p 8002:8002 \ -docker.hyperdx.io/hyperdx/hyperdx-local +docker.clickhouse.com/clickhouse/clickstack-local ``` ## Open Source & Cloud Versions (Beyond Local) diff --git a/Makefile b/Makefile index 91896878ea..c682bacfc9 100644 --- a/Makefile +++ b/Makefile @@ -283,6 +283,7 @@ build-app: --build-context app=./packages/app \ --build-arg CODE_VERSION=${CODE_VERSION} \ -t ${IMAGE_NAME_DOCKERHUB}:${IMAGE_VERSION}${IMAGE_VERSION_SUB_TAG} \ + -t ${NEXT_IMAGE_NAME_DOCKERHUB}:${IMAGE_VERSION}${IMAGE_VERSION_SUB_TAG} \ --target prod .PHONY: build-otel-collector-nightly @@ -300,6 +301,7 @@ build-app-nightly: --build-context app=./packages/app \ --build-arg CODE_VERSION=${CODE_VERSION} \ -t ${IMAGE_NAME_DOCKERHUB}:${IMAGE_NIGHTLY_TAG} \ + -t ${NEXT_IMAGE_NAME_DOCKERHUB}:${IMAGE_NIGHTLY_TAG} \ --target prod .PHONY: build-local-nightly diff --git a/README.md b/README.md index 32e56a4c9f..a4d3f93c2f 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ HyperDX can be deployed as part of ClickStack, which includes ClickHouse, HyperDX, OpenTelemetry Collector and MongoDB. ```bash -docker run -p 8080:8080 -p 4317:4317 -p 4318:4318 docker.hyperdx.io/hyperdx/hyperdx-all-in-one +docker run -p 8080:8080 -p 4317:4317 -p 4318:4318 docker.clickhouse.com/clickhouse/clickstack-all-in-one ``` Afterwards, you can visit http://localhost:8080 to access the HyperDX UI.