Commit Graph

149 Commits

Author SHA1 Message Date
jasonwitty 5637dea10b Gate image builds on socktop CLI compatibility; fix agent probe; caps for entrypoint
Build and Deploy to K3s / test (push) Successful in 1m31s
Build and Deploy to K3s / lint (push) Successful in 59s
Build and Deploy to K3s / build-and-push (push) Successful in 5m40s
Build and Deploy to K3s / deploy (push) Successful in 1m9s
- CI now builds the image locally on the (arm64) runner and runs
  scripts/verify-image-socktop-flags.sh before pushing: every --flag the
  restricted/session shells pass must be documented by the socktop
  binary actually installed in the image. Catches the 0.3.9 failure
  class (cached apt layer shipping a pre-flag socktop) at build time.
- Manifest adds CHOWN/DAC_OVERRIDE/FOWNER alongside SETUID/SETGID:
  with ALL dropped, uid 0 has no implicit file privilege and
  prepare_demo_home crash-looped on the demo-owned 700 home dir.
  Sessions still run with zero capabilities via setpriv.
- Agent liveness probe uses /proc instead of kill -0: without CAP_KILL
  even root gets EPERM signalling the socktop-user agent, so the old
  check false-alarmed in the pod logs.
- 0.3.11

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-24 09:46:27 -07:00
jasonwitty 6711ac030f Pin socktop apt version (1.60.2-1); bump to 0.3.10
Build and Deploy to K3s / test (push) Successful in 1m33s
Build and Deploy to K3s / lint (push) Successful in 1m0s
Build and Deploy to K3s / build-and-push (push) Successful in 5m17s
Build and Deploy to K3s / deploy (push) Successful in 1m9s
Image 0.3.9 baked socktop 1.60.1 because CI's registry layer cache reused
the apt-install layer from before the 1.60.2 release. 1.60.1 has no
--no-kill flag, so the restricted shell's invocation parsed it as the
positional websocket URL, breaking (and on overwrite, corrupting) the
local profile. Pinning the package version busts the cache and ties the
installed binary to the flags the restricted shell uses.

Also point the manifest's webterm container at the current tag so a
manual kubectl apply cannot roll the image back to 0.2.2.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-24 09:16:29 -07:00
jasonwitty 768487c268 bump cargo version
Build and Deploy to K3s / test (push) Successful in 1m35s
Build and Deploy to K3s / lint (push) Successful in 59s
Build and Deploy to K3s / build-and-push (push) Successful in 5m37s
Build and Deploy to K3s / deploy (push) Successful in 1m20s
2026-08-24 08:34:22 -07:00
jasonwitty 15ace386e3 update restricted shell to force (–no-kill) option.
Build and Deploy to K3s / test (push) Successful in 1m34s
Build and Deploy to K3s / lint (push) Successful in 58s
Build and Deploy to K3s / build-and-push (push) Successful in 2m3s
Build and Deploy to K3s / deploy (push) Successful in 8s
2026-08-24 07:33:43 -07:00
jasonwitty c540beba18 update restricted shell to force (--no-kill) option.
Build and Deploy to K3s / test (push) Has been cancelled
Build and Deploy to K3s / lint (push) Has been cancelled
Build and Deploy to K3s / build-and-push (push) Has been cancelled
Build and Deploy to K3s / deploy (push) Has been cancelled
2026-08-24 07:33:11 -07:00
jasonwitty 0b05f4bb92 remove node_modules from required_dirs
Build and Deploy to K3s / test (push) Successful in 17s
Build and Deploy to K3s / lint (push) Successful in 1m3s
Build and Deploy to K3s / build-and-push (push) Successful in 35s
Build and Deploy to K3s / deploy (push) Successful in 2m0s
2026-08-23 23:57:31 -07:00
jasonwitty e6d1e170fd fix build warnings
Build and Deploy to K3s / lint (push) Has been cancelled
Build and Deploy to K3s / build-and-push (push) Has been cancelled
Build and Deploy to K3s / deploy (push) Has been cancelled
Build and Deploy to K3s / test (push) Has been cancelled
2026-08-23 23:50:04 -07:00
jasonwitty f630a44a5d cancel previous builds on workflow run to avoid race condition.
Build and Deploy to K3s / test (push) Has been cancelled
Build and Deploy to K3s / lint (push) Has been cancelled
Build and Deploy to K3s / build-and-push (push) Has been cancelled
Build and Deploy to K3s / deploy (push) Has been cancelled
2026-08-23 23:42:52 -07:00
jasonwitty dc7b51453e remove known issues page
Build and Deploy to K3s / test (push) Failing after 15m2s
Build and Deploy to K3s / lint (push) Has been skipped
Build and Deploy to K3s / build-and-push (push) Has been skipped
Build and Deploy to K3s / deploy (push) Has been cancelled
2026-08-23 23:26:28 -07:00
jasonwitty 74726441c6 bump cargo version
Build and Deploy to K3s / test (push) Failing after 16m38s
Build and Deploy to K3s / lint (push) Has been skipped
Build and Deploy to K3s / build-and-push (push) Has been skipped
Build and Deploy to K3s / deploy (push) Failing after 12m32s
2026-08-23 23:09:18 -07:00
jasonwitty 5c03b92807 docs: 1.60 update — fix fabricated content, add kill/platform/known-issues docs
Build and Deploy to K3s / test (push) Successful in 1m55s
Build and Deploy to K3s / lint (push) Failing after 13m39s
Build and Deploy to K3s / build-and-push (push) Has been skipped
Build and Deploy to K3s / deploy (push) Failing after 14m58s
- Rewrite configuration.md from the real CLI/env surface (the page documented
  ~10 agent flags, /etc/default/socktop-agent, and env vars that don't exist)
- Fix token docs: SOCKTOP_TOKEN env + URL query param; client -t is --tls-ca,
  not a token flag
- Rewrite agent-integration.md: requests are plain text (get_metrics, ...),
  not JSON; correct proto schema, real GPU/metrics fields, 1.60 additive
  fields (sampled_at_ms, timestamp_us, journal notice)
- Fix connector.md: real ConnectorConfig builder API, error variants,
  examples list; bump to 1.60
- Document the 1.60 process kill feature (usage/general + keyboard-mouse)
- TLS: document exact-match pinning semantics, cert rotation, key perms,
  upgrade-clients-first note; genericize profile example
- Agent service: journal access setup (systemd-journal group), packaged-
  service cert path, drop fake positional-port form, fix broken fences
- New pages: Platform Notes (Windows/macOS/RISC-V/Pi kernel tip, ARMv7
  --no-default-features) and Known Issues
- Fedora build prereqs: libdrm-devel + libdrm-amdgpu (closes socktop#35)
- Freshen intro (1.60, new demo apng, correct crates.io names, GitHub
  Releases link), quick-start, upgrading (order notes, stale-binary tip),
  zellij (remove invalid pane_template example)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-23 21:35:27 -07:00
jasonwitty 98f8b4a865 increment cargo version
Build and Deploy to K3s / test (push) Successful in 1m32s
Build and Deploy to K3s / lint (push) Successful in 58s
Build and Deploy to K3s / build-and-push (push) Successful in 5m12s
Build and Deploy to K3s / deploy (push) Successful in 2m11s
2026-05-19 11:18:00 -07:00
jasonwitty af5ab94521 fix: add ~/.cargo/bin to PATH for inline rustup run steps
Build and Deploy to K3s / test (push) Successful in 1m33s
Build and Deploy to K3s / lint (push) Successful in 58s
Build and Deploy to K3s / build-and-push (push) Successful in 7m56s
Build and Deploy to K3s / deploy (push) Successful in 9s
The act runner uses a minimal PATH for inline run: steps that does not
include ~/.cargo/bin. Add it explicitly via both export PATH and
GITHUB_PATH so rustup/cargo are available in the setup step and all
subsequent steps.
2026-05-18 16:29:03 -07:00
jasonwitty 1ea8768616 fix: replace setup-rust-toolchain action with inline rustup commands
Build and Deploy to K3s / test (push) Failing after 5s
Build and Deploy to K3s / lint (push) Has been skipped
Build and Deploy to K3s / build-and-push (push) Has been skipped
Build and Deploy to K3s / deploy (push) Has been skipped
The Swatinem/rust-cache action bundled in actions-rust-lang/setup-rust-toolchain@v1
was updated to require node24, which is not supported by the self-hosted act
runner (v0.2.6). Even with cache:false, act eagerly loads pre-steps for all
nested actions regardless of conditions, and the node24 incompatibility in
the rust-cache pre-step caused the parent step to be marked as failed —
skipping Run tests entirely.

Replace both test and lint toolchain setup steps with direct rustup shell
commands to eliminate the dependency on the composite action entirely.
2026-05-18 16:26:26 -07:00
jasonwitty 7e5a246269 resolve build failures
Build and Deploy to K3s / test (push) Failing after 11s
Build and Deploy to K3s / lint (push) Has been skipped
Build and Deploy to K3s / build-and-push (push) Has been skipped
Build and Deploy to K3s / deploy (push) Has been skipped
https://gt.wittyoneoff.com/jason/socktop-webterm/actions/runs/30
Removed `use std::convert::TryFrom` — redundant in Rust 2021 edition (belt-and-suspenders cleanup)
Removed `use std::convert::TryFrom` — redundant in Rust 2021 edition (belt-and-suspenders cleanup)
2026-05-18 16:22:41 -07:00
jasonwitty 828bc39229 Update quick-start.md
Build and Deploy to K3s / test (push) Failing after 46s
Build and Deploy to K3s / lint (push) Has been skipped
Build and Deploy to K3s / build-and-push (push) Has been skipped
Build and Deploy to K3s / deploy (push) Has been skipped
add missing apt update command to quick start documentation
2026-05-18 15:55:58 -07:00
jasonwitty 6ea9c6a7a1 add analytics to docs pages
Build and Deploy to K3s / test (push) Successful in 2m9s
Build and Deploy to K3s / lint (push) Successful in 1m35s
Build and Deploy to K3s / build-and-push (push) Successful in 4m29s
Build and Deploy to K3s / deploy (push) Successful in 9s
2025-12-07 00:43:10 -08:00
jason dd11072560 Fix clippy warnings: remove needless borrows in build.rs
Build and Deploy to K3s / test (push) Successful in 2m8s
Build and Deploy to K3s / lint (push) Successful in 1m36s
Build and Deploy to K3s / build-and-push (push) Successful in 4m7s
Build and Deploy to K3s / deploy (push) Successful in 11s
2025-12-01 15:28:51 -08:00
jason bd31410d5a Add mdBook documentation with Ghostty-style sidebar
Build and Deploy to K3s / test (push) Successful in 2m10s
Build and Deploy to K3s / lint (push) Failing after 1m27s
Build and Deploy to K3s / build-and-push (push) Has been skipped
Build and Deploy to K3s / deploy (push) Has been skipped
2025-12-01 15:17:35 -08:00
jason ef7d4cccc1 Add mdBook documentation with Ghostty-style sidebar 2025-12-01 15:17:35 -08:00
jason 012e22ea6f Update README.md
Build and Deploy to K3s / test (push) Successful in 2m8s
Build and Deploy to K3s / lint (push) Successful in 1m34s
Build and Deploy to K3s / build-and-push (push) Successful in 5m17s
Build and Deploy to K3s / deploy (push) Successful in 9s
2025-12-01 08:53:56 +00:00
jason d7efa60cea send command telemetry one word at a time instead of one letter at a
Build and Deploy to K3s / deploy (push) Blocked by required conditions
Build and Deploy to K3s / test (push) Successful in 2m9s
Build and Deploy to K3s / lint (push) Successful in 1m34s
Build and Deploy to K3s / build-and-push (push) Has been cancelled
time. remove escape sequences.
2025-12-01 00:48:25 -08:00
jason 7bfbe0d86e Switch to forked pop-telemetry with custom Umami endpoint support
Build and Deploy to K3s / test (push) Successful in 2m13s
Build and Deploy to K3s / lint (push) Successful in 1m37s
Build and Deploy to K3s / build-and-push (push) Successful in 5m22s
Build and Deploy to K3s / deploy (push) Successful in 9s
- Use forked pop-telemetry from github.com/jasonwitty/pop-cli
- Implement init_with_website_id to configure custom endpoint and website ID
- Add --umami-endpoint and --umami-website-id CLI parameters
- Default endpoint: http://unami.wittyoneoff.com/api/send
- Default website ID: caefa16f-86af-4835-8b82-c8649aea0e2a
- Maintains backward compatibility with config file opt-out support

This allows webterm to send analytics to our self-hosted Umami instance
instead of the default pop-cli telemetry endpoint.
2025-11-30 22:44:19 -08:00
jason 4204773492 connect to unami over https./
Build and Deploy to K3s / test (push) Successful in 2m6s
Build and Deploy to K3s / lint (push) Successful in 1m31s
Build and Deploy to K3s / build-and-push (push) Successful in 5m21s
Build and Deploy to K3s / deploy (push) Successful in 1m14s
2025-11-30 09:44:00 -08:00
jason 57e8ad6f78 Revert "Update deployment to use version 0.3.5 from Cargo.toml"
This reverts commit 634e28113b.
2025-11-30 09:23:48 -08:00
jason 634e28113b Update deployment to use version 0.3.5 from Cargo.toml
Build and Deploy to K3s / test (push) Successful in 2m6s
Build and Deploy to K3s / lint (push) Successful in 1m33s
Build and Deploy to K3s / build-and-push (push) Successful in 37s
Build and Deploy to K3s / deploy (push) Successful in 1m59s
2025-11-30 09:09:15 -08:00
jason ffbdd5da0b update cargo version
Build and Deploy to K3s / test (push) Successful in 2m5s
Build and Deploy to K3s / lint (push) Successful in 1m34s
Build and Deploy to K3s / build-and-push (push) Successful in 5m1s
Build and Deploy to K3s / deploy (push) Failing after 10m9s
2025-11-30 08:39:48 -08:00
jason 6915079e5c Fix K8s deployment with init container and proper security context
Build and Deploy to K3s / test (push) Successful in 2m5s
Build and Deploy to K3s / lint (push) Successful in 1m33s
Build and Deploy to K3s / build-and-push (push) Successful in 48s
Build and Deploy to K3s / deploy (push) Failing after 5m42s
- Add init container to set up config files with correct ownership
- Run main container as socktop user (UID 100, GID 101) from the start
- Use fsGroup to ensure proper volume permissions
- Add emptyDir volume for /var/lib/socktop to avoid permission issues
- Create docker-entrypoint.sh wrapper to detect root vs non-root execution
  - Root mode: uses init-config.sh for Docker/docker-compose
  - Non-root mode: directly runs entrypoint.sh for K8s
- Update deployment command format to work with new entrypoint

This resolves 'Operation not permitted' errors when running in K8s
with security contexts that restrict user switching and ownership changes.
2025-11-30 04:22:43 -08:00
jason e870e2e4ec Upgrade to Rust 1.91 and migrate to pop-telemetry 0.12.1
Build and Deploy to K3s / test (push) Successful in 2m6s
Build and Deploy to K3s / lint (push) Successful in 1m33s
Build and Deploy to K3s / build-and-push (push) Successful in 5m24s
Build and Deploy to K3s / deploy (push) Failing after 10m8s
- Updated Rust toolchain from 1.90 to 1.91 (required by pop-telemetry)
- Migrated analytics to use pop-telemetry crate for privacy-focused telemetry
- Added dirs dependency for cross-platform config directory handling
- Refactored init-config.sh to handle permission restrictions in K8s
  - Gracefully handles chown failures in restricted security contexts
  - Uses alternative copy methods (cat > file) when cp fails
  - Continues operation with warnings instead of failing
- Updated Dockerfile to use rust:1.91-slim-bookworm base image
- Changed telemetry configuration from endpoint/website_id to config file path

This addresses permission denied errors when deploying to K3s with
security contexts that prevent ownership changes on pre-existing directories.
2025-11-30 04:01:43 -08:00
jason 39e0f55fc4 permission issue hotfix
Build and Deploy to K3s / test (push) Successful in 2m6s
Build and Deploy to K3s / lint (push) Successful in 1m33s
Build and Deploy to K3s / build-and-push (push) Successful in 53s
Build and Deploy to K3s / deploy (push) Failing after 8s
2025-11-30 03:49:09 -08:00
jason e0535a033b hotfix for telemetry hotfix for profiles config
Build and Deploy to K3s / test (push) Successful in 2m6s
Build and Deploy to K3s / lint (push) Successful in 1m33s
Build and Deploy to K3s / build-and-push (push) Successful in 5m35s
Build and Deploy to K3s / deploy (push) Failing after 8s
2025-11-30 03:34:08 -08:00
jason d3f95b8c52 patch for missing profiles file
Build and Deploy to K3s / test (push) Successful in 2m3s
Build and Deploy to K3s / lint (push) Successful in 1m31s
Build and Deploy to K3s / build-and-push (push) Successful in 5m17s
Build and Deploy to K3s / deploy (push) Failing after 10m8s
2025-11-30 02:33:43 -08:00
jason d554574e30 fix certs path, increment cargo version.
Build and Deploy to K3s / test (push) Successful in 2m5s
Build and Deploy to K3s / lint (push) Successful in 1m33s
Build and Deploy to K3s / build-and-push (push) Successful in 5m21s
Build and Deploy to K3s / deploy (push) Successful in 1m50s
2025-11-30 01:57:56 -08:00
jason 850cf32b50 - add cargo fmt / clippy to actions build. - add common unit tests. -
Build and Deploy to K3s / test (push) Successful in 2m40s
Build and Deploy to K3s / lint (push) Successful in 1m33s
Build and Deploy to K3s / build-and-push (push) Successful in 5m17s
Build and Deploy to K3s / deploy (push) Successful in 9s
improved security sanitization - security spcecific unit tests - add
unit tests to workflow build - add unami analytics.
2025-11-30 01:37:07 -08:00
jason 9fb9d9ab50 --no-install-recommends to trim image size
Build and Deploy to K3s / build-and-push (push) Successful in 5m30s
Build and Deploy to K3s / deploy (push) Successful in 8s
2025-11-28 16:22:08 -08:00
jason 2012504616 - trim container image size - sanitize socktop inputs 2025-11-28 16:20:18 -08:00
jason e224989702 - remove random ass copypasta in deployment yaml - fix gitea link
Build and Deploy to K3s / build-and-push (push) Successful in 4m24s
Build and Deploy to K3s / deploy (push) Successful in 10m12s
2025-11-28 14:59:42 -08:00
jason 29a97a43a9 update README and CARGO VERSION
Build and Deploy to K3s / build-and-push (push) Successful in 4m22s
Build and Deploy to K3s / deploy (push) Failing after 9s
2025-11-28 14:45:14 -08:00
jason 12f2d6e6af - modernize packages and rust edition. - increase timeout for rollout -
Build and Deploy to K3s / deploy (push) Blocked by required conditions
Build and Deploy to K3s / build-and-push (push) Has been cancelled
increment cargo version
2025-11-28 14:43:49 -08:00
jason b365ac38e3 add screenshot 2025-11-28 14:12:14 -08:00
jason b1030154ea use https container path
Build and Deploy to K3s / build-and-push (push) Successful in 36s
Build and Deploy to K3s / deploy (push) Failing after 5m9s
2025-11-28 13:05:11 -08:00
jason 61297c66dd specify coprret kube namespace
Build and Deploy to K3s / build-and-push (push) Successful in 37s
Build and Deploy to K3s / deploy (push) Failing after 5s
2025-11-28 12:58:59 -08:00
jason b50cb50f14 set host networking to false 2025-11-28 12:49:54 -08:00
jason 01c85cbb7a Add deployment creation if it doesn't exist
Build and Deploy to K3s / build-and-push (push) Successful in 34s
Build and Deploy to K3s / deploy (push) Failing after 5m9s
2025-11-28 12:41:34 -08:00
jason 58fd99b760 Verify deployment access instead of node access
Build and Deploy to K3s / build-and-push (push) Successful in 35s
Build and Deploy to K3s / deploy (push) Failing after 6s
2025-11-28 12:36:09 -08:00
jason 77e4c1a530 Remove cluster-info check
Build and Deploy to K3s / build-and-push (push) Successful in 34s
Build and Deploy to K3s / deploy (push) Failing after 6s
2025-11-28 12:34:21 -08:00
jason eeb8c7f334 fix kubectl arch so can build on ARM.
Build and Deploy to K3s / build-and-push (push) Successful in 34s
Build and Deploy to K3s / deploy (push) Failing after 6s
2025-11-28 12:32:21 -08:00
jason e2ddc721f2 remove port from registry location, connect over port 443 (default)
Build and Deploy to K3s / build-and-push (push) Successful in 10m3s
Build and Deploy to K3s / deploy (push) Has been cancelled
2025-11-28 12:10:26 -08:00
jason 1257912c08 switch to https domain name for image registry.
Build and Deploy to K3s / build-and-push (push) Failing after 36s
Build and Deploy to K3s / deploy (push) Has been skipped
2025-11-28 12:08:24 -08:00
jason 95e1212256 add network diagram 2025-11-28 11:48:46 -08:00