diff --git a/.gitea/workflows/release-binaries.yml b/.gitea/workflows/release-binaries.yml index 73be53d..29a006f 100644 --- a/.gitea/workflows/release-binaries.yml +++ b/.gitea/workflows/release-binaries.yml @@ -53,6 +53,7 @@ jobs: GORELEASER_FORCE_TOKEN: gitea GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN }} GITEA_API_URL: http://gitea:3000/api/v1 + HOMEBREW_TAP_GITHUB_TOKEN: ${{ secrets.HOMEBREW_TAP_GITHUB_TOKEN }} # GitHub release relaying is handled by .github/workflows/mirror-release.yml, # which runs on GitHub Actions when the push mirror delivers the tag and diff --git a/.gitea/workflows/release-docker.yml b/.gitea/workflows/release-docker.yml index 5db40b4..a400323 100644 --- a/.gitea/workflows/release-docker.yml +++ b/.gitea/workflows/release-docker.yml @@ -35,11 +35,16 @@ jobs: TAGS="lerkolabs/uptop:${TAG}" TAGS="${TAGS},lerkolabs/uptop:sha-${SHORT_SHA}" + TAGS="${TAGS},ghcr.io/lerkolabs/uptop:${TAG}" + TAGS="${TAGS},ghcr.io/lerkolabs/uptop:sha-${SHORT_SHA}" # :latest only for real releases — rc rehearsal tags must not move it if [ "${{ github.ref_type }}" = "tag" ]; then case "$TAG" in *-*) ;; - *) TAGS="${TAGS},lerkolabs/uptop:latest" ;; + *) + TAGS="${TAGS},lerkolabs/uptop:latest" + TAGS="${TAGS},ghcr.io/lerkolabs/uptop:latest" + ;; esac fi echo "tags=$TAGS" >> "$GITHUB_OUTPUT" @@ -56,6 +61,13 @@ jobs: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Log in to GHCR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ secrets.GHCR_USERNAME }} + password: ${{ secrets.GHCR_TOKEN }} + # Scan must gate the push: build amd64 locally, scan it, and only then run # the multi-arch push (amd64 layers come from the builder cache, so the # second build only adds the arm64 work). diff --git a/.gitignore b/.gitignore index 9a45e2f..fb07593 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,4 @@ tmp *.local.md data/ .env +vhs diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 88dc631..d65b920 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -59,6 +59,24 @@ nfpms: dst: /usr/share/doc/uptop/LICENSE type: doc +brews: + - name: uptop + repository: + owner: lerkolabs + name: homebrew-tap + token: "{{ .Env.HOMEBREW_TAP_GITHUB_TOKEN }}" + url_template: "https://github.com/lerkolabs/uptop/releases/download/{{ .Tag }}/{{ .ArtifactName }}" + commit_author: + name: lerkolabs-bot + email: bot@lerkolabs.com + homepage: https://github.com/lerkolabs/uptop + description: Self-hosted uptime monitoring with a TUI over SSH + license: MIT + install: | + bin.install "uptop" + test: | + system bin/"uptop", "version" + # Changelog generation must stay enabled: the --release-notes flag is consumed # by the changelog pipe, so disabling it silently drops the git-cliff notes # (empty release body on v0.1.0-rc.1). With --release-notes set, GoReleaser diff --git a/README.md b/README.md index 699c69b..479da5c 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,18 @@
-

uptop

+ uptop

Self-hosted uptime monitoring with a TUI over SSH.

No browser. No client install. Just ssh -p 23234 your-server.

CI - MIT License + Latest Release + Go Report Card Go 1.26 Docker Pulls + MIT License

- uptop monitors view + uptop demo
## What is this @@ -38,18 +40,27 @@ Canonical repo: [gitea.lerkolabs.com/lerkolabs/uptop](https://gitea.lerkolabs.co + + + - - - - + +
monitors dashboard detail panel
alerts view
logs viewcluster nodes
theme selectioncluster nodestheme selection
+### Themes + +Five built-in themes: Flexoki Dark, Tokyo Night, Catppuccin Mocha, Nord, Gruvbox. Press `T` to cycle. + +

+ all five themes +

+ ## Quick start ```bash diff --git a/assets/alerts.png b/assets/alerts.png index 9a4e0fe..2c5b98a 100644 Binary files a/assets/alerts.png and b/assets/alerts.png differ diff --git a/assets/demo.gif b/assets/demo.gif new file mode 100644 index 0000000..9a1c7a9 Binary files /dev/null and b/assets/demo.gif differ diff --git a/assets/detail.png b/assets/detail.png index 0c8e8ca..563713a 100644 Binary files a/assets/detail.png and b/assets/detail.png differ diff --git a/assets/logo.svg b/assets/logo.svg new file mode 100644 index 0000000..c9683ff --- /dev/null +++ b/assets/logo.svg @@ -0,0 +1,10 @@ + + + + + + + uptop + + + diff --git a/assets/logs.png b/assets/logs.png index d0aab0a..29be4ac 100644 Binary files a/assets/logs.png and b/assets/logs.png differ diff --git a/assets/monitors.png b/assets/monitors.png index 867a875..3e1da06 100644 Binary files a/assets/monitors.png and b/assets/monitors.png differ diff --git a/assets/nodes.png b/assets/nodes.png index 53efc1b..4f697b5 100644 Binary files a/assets/nodes.png and b/assets/nodes.png differ diff --git a/assets/theme.png b/assets/theme.png index 9bdd920..4f1c012 100644 Binary files a/assets/theme.png and b/assets/theme.png differ diff --git a/assets/themes.png b/assets/themes.png new file mode 100644 index 0000000..77bc8d0 Binary files /dev/null and b/assets/themes.png differ