Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
5decf9b
fix: for local dev env
CodeMaster4711 Jun 25, 2026
e818f2f
feat: added ressource groups
CodeMaster4711 Jun 25, 2026
b1cb885
fix: build errors and added frontend
CodeMaster4711 Jun 25, 2026
7b32db8
feat(resource-groups): add container deploy, volume management, and d…
CodeMaster4711 Jun 28, 2026
d8c098b
feat(ui,agent,registry): add WireGuard P2S VPN, modal forms, and Node…
CodeMaster4711 Jun 28, 2026
7f52f2d
Merge pull request #194 from CSFX-cloud/feat/ressource-groups
CodeMaster4711 Jun 28, 2026
6507c18
refactor: rm unused code
CodeMaster4711 Jun 30, 2026
86a2d7c
fix(agent): start docker on demand via systemd instead of at boot
CodeMaster4711 Jun 30, 2026
48190b7
feat: added logo in header for svelte
CodeMaster4711 Jul 1, 2026
e37e88b
fix: load times on svg main
CodeMaster4711 Jul 1, 2026
fcf45a2
feat: animated login button and fail modal
CodeMaster4711 Jul 1, 2026
73ab945
fix: format
CodeMaster4711 Jul 1, 2026
ac4bd51
Merge pull request #197 from CSFX-cloud/fix/small-bugs-and-opt
CodeMaster4711 Jul 1, 2026
509f7a8
feat: add centralized log viewer with per-service tracing capture and…
CodeMaster4711 Jul 1, 2026
a6f7510
fix: filter noisy access, sql, heartbeat and performance events from …
CodeMaster4711 Jul 2, 2026
4f166c3
fix: rate limit by authenticated user instead of shared ip bucket
CodeMaster4711 Jul 2, 2026
f09bd60
Merge pull request #198 from CSFX-cloud/feat/logs-page
CodeMaster4711 Jul 2, 2026
3de5fab
feat: add container status detail, log streaming, and exec shell for …
CodeMaster4711 Jul 2, 2026
db41761
fix: load xterm dynamically to avoid SSR CJS named export error
CodeMaster4711 Jul 4, 2026
b67e6f1
fix: wait for auth token before loading resource group on mount
CodeMaster4711 Jul 4, 2026
bf050ae
fix: sync missing permissions to existing Admin role on startup
CodeMaster4711 Jul 4, 2026
9ff3735
fix: wait for auth token before loading data on nodes, resource-group…
CodeMaster4711 Jul 4, 2026
4fef60f
feat: add docker compose stack deployment with service discovery and …
CodeMaster4711 Jul 4, 2026
caf3acb
feat: add resource picker with docker compose stacks and dynamic serv…
CodeMaster4711 Jul 4, 2026
46266c7
fix: correct pre-release version comparison and let forced updates by…
CodeMaster4711 Jul 4, 2026
72c46e3
feat: propagate agent version on every heartbeat and add live node me…
CodeMaster4711 Jul 4, 2026
f673fef
ci: replace develop branch with continuous alpha releases on main
CodeMaster4711 Jul 4, 2026
2216044
style: apply cargo fmt and clippy fixes
github-actions[bot] Jul 4, 2026
346e5f4
fix: strip trailing semicolon from parsed nix version strings
CodeMaster4711 Jul 4, 2026
8cb3f72
style: apply cargo fmt and clippy fixes
github-actions[bot] Jul 4, 2026
193e294
ci: post clippy and audit findings as pr comments
CodeMaster4711 Jul 4, 2026
0492566
ci: fix invalid clippy pr-annotation action reference
CodeMaster4711 Jul 4, 2026
fbea4c2
ci: split clippy job by trigger to avoid skipped-step noise
CodeMaster4711 Jul 4, 2026
ab3648c
Merge pull request #200 from CSFX-cloud/feat/rework-docker-setup
CodeMaster4711 Jul 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/delete-merged-branch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:

jobs:
delete-branch:
if: github.event.pull_request.merged == true && github.event.pull_request.head.ref != 'develop'
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
permissions:
contents: write
Expand Down
53 changes: 53 additions & 0 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Format

on:
push:
branches:
- "feat/**"
- "fix/**"
- "chore/**"

permissions:
contents: write

jobs:
format:
name: Auto-format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
ref: ${{ github.ref_name }}
token: ${{ secrets.GITHUB_TOKEN }}

- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy

- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y pkg-config libssl-dev libpq-dev protobuf-compiler

- uses: actions/cache@v5
with:
path: |
~/.cargo/registry
~/.cargo/git
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}

- name: cargo fmt
run: cargo fmt --all

- name: cargo clippy --fix
run: cargo clippy --fix --allow-dirty --allow-staged --workspace --all-targets

- name: Commit and push fixes
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
if ! git diff --quiet; then
git add -A
git commit -m "style: apply cargo fmt and clippy fixes"
git push origin HEAD:${{ github.ref_name }}
fi
84 changes: 82 additions & 2 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,42 @@ on:
push:
branches:
- main
workflow_run:
workflows: ["Format"]
types: [completed]
workflow_dispatch:

permissions:
contents: read
pull-requests: write
checks: write
actions: read

jobs:
clippy:
wait-for-format:
name: Wait for auto-format
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- name: Poll for in-flight format run
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
BRANCH="${{ github.event.pull_request.head.ref }}"
REPO="${{ github.repository }}"
for _ in $(seq 1 30); do
STATUS=$(gh run list --repo "$REPO" --workflow Format --branch "$BRANCH" \
--limit 1 --json status -q '.[0].status' 2>/dev/null || echo "")
if [ "$STATUS" != "in_progress" ] && [ "$STATUS" != "queued" ]; then
exit 0
fi
sleep 5
done

clippy-push:
name: Clippy
runs-on: ubuntu-latest
if: github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v6

Expand All @@ -34,11 +64,49 @@ jobs:
- name: Clippy
run: cargo clippy --workspace --all-targets -- -D warnings

clippy-pr:
name: Clippy
runs-on: ubuntu-latest
needs: wait-for-format
if: github.event_name == 'pull_request' && always() && (needs.wait-for-format.result == 'success' || needs.wait-for-format.result == 'skipped')
steps:
- uses: actions/checkout@v6
with:
ref: ${{ github.event.pull_request.head.ref }}

- uses: dtolnay/rust-toolchain@stable
with:
components: clippy

- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y pkg-config libssl-dev libpq-dev protobuf-compiler

- uses: actions/cache@v5
with:
path: |
~/.cargo/registry
~/.cargo/git
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}

- name: Clippy with PR annotations
uses: giraffate/clippy-action@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-review
fail_on_error: true
clippy_flags: --workspace --all-targets -- -D warnings

rustfmt:
name: rustfmt
runs-on: ubuntu-latest
needs: wait-for-format
if: always() && (needs.wait-for-format.result == 'success' || needs.wait-for-format.result == 'skipped')
steps:
- uses: actions/checkout@v6
with:
ref: ${{ github.event.pull_request.head.ref || github.ref }}

- uses: dtolnay/rust-toolchain@stable
with:
Expand All @@ -59,4 +127,16 @@ jobs:
run: cargo install cargo-audit --locked

- name: Audit
run: cargo audit
id: audit
run: cargo audit --json > audit-report.json || echo "failed=true" >> "$GITHUB_OUTPUT"

- name: Post audit findings to PR
if: github.event_name == 'pull_request' && steps.audit.outputs.failed == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
SUMMARY=$(jq -r '.vulnerabilities.list[] | "- **\(.advisory.id)** \(.package.name)@\(.package.version): \(.advisory.title)"' audit-report.json)
gh pr comment "${{ github.event.pull_request.number }}" \
--repo "${{ github.repository }}" \
--body "$(printf 'cargo audit found vulnerabilities:\n\n%s' "$SUMMARY")"
exit 1
5 changes: 3 additions & 2 deletions .github/workflows/prerelease.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Pre-release Build
on:
push:
branches:
- develop
- main
workflow_dispatch:
inputs:
version:
Expand Down Expand Up @@ -38,7 +38,7 @@ jobs:
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "version=${{ inputs.version }}" >> $GITHUB_OUTPUT
else
BASE=$(grep '^version' Cargo.toml | head -1 | sed 's/.*"\(.*\)"/\1/')
BASE=$(grep -m1 '^version' Cargo.toml | sed 's/[^"]*"\([^"]*\)".*/\1/')
COUNT=$(git rev-list --count HEAD)
echo "version=${BASE}-alpha.${COUNT}" >> $GITHUB_OUTPUT
fi
Expand Down Expand Up @@ -262,6 +262,7 @@ jobs:
with:
repository: ${{ github.repository_owner }}/CSFX-Infra
token: ${{ secrets.INFRA_REPO_TOKEN }}
ref: main
path: infra

- uses: actions/download-artifact@v8
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
name: Release Build & Push

on:
workflow_run:
workflows: ["Release Please"]
types: [completed]
workflow_dispatch:
inputs:
version:
Expand All @@ -19,32 +16,13 @@ jobs:
prepare:
name: Prepare Build Context
runs-on: ubuntu-latest
if: >
github.event_name == 'workflow_dispatch' ||
(github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success')
outputs:
version: ${{ steps.version.outputs.version }}
should_build: ${{ steps.version.outputs.should_build }}
should_build: "true"
steps:
- uses: actions/checkout@v6

- name: Resolve version
id: version
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "version=${{ inputs.version }}" >> $GITHUB_OUTPUT
echo "should_build=true" >> $GITHUB_OUTPUT
else
TAG=$(gh release list --limit 1 --json tagName -q '.[0].tagName' 2>/dev/null || echo "")
if [ -z "$TAG" ]; then
echo "should_build=false" >> $GITHUB_OUTPUT
else
echo "version=${TAG#v}" >> $GITHUB_OUTPUT
echo "should_build=true" >> $GITHUB_OUTPUT
fi
fi
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: echo "version=${{ inputs.version }}" >> $GITHUB_OUTPUT

build-binaries:
name: Build ${{ matrix.binary }} (${{ matrix.arch }})
Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,12 @@ jobs:
config-file: release-please-config.json
manifest-file: .release-please-manifest.json
token: ${{ secrets.RELEASE_PLEASE_TOKEN || secrets.GITHUB_TOKEN }}

- name: Trigger full release build
if: steps.release.outputs.release_created == 'true'
env:
GH_TOKEN: ${{ secrets.RELEASE_PLEASE_TOKEN || secrets.GITHUB_TOKEN }}
run: |
gh workflow run release-build.yml \
--repo "${{ github.repository }}" \
--field version="${{ steps.release.outputs.version }}"
Loading
Loading