| Tool | Description |
|---|---|
|
Multipurpose tool for the RtBrick Full Stack Network Operating System. See rtb-buddy documentation for details. |
curl -fsSL https://raw.githubusercontent.com/rtbrick/tools/main/install_rtb_buddy.sh | sudo bashThis detects your OS and architecture, downloads the latest release from GitHub, verifies the checksum, and installs rtb-buddy to /usr/local/bin.
# Install a specific version
curl -fsSL https://raw.githubusercontent.com/rtbrick/tools/main/install_rtb_buddy.sh | sudo bash -s -- --version v1.0.0
# Install to a custom directory
curl -fsSL https://raw.githubusercontent.com/rtbrick/tools/main/install_rtb_buddy.sh | bash -s -- --dir ~/.local/bin
# Uninstall
curl -fsSL https://raw.githubusercontent.com/rtbrick/tools/main/install_rtb_buddy.sh | sudo bash -s -- --uninstall-
Go 1.27+
-
Git
-
golangci-lint (optional, for
make lint)
We welcome contributions! Please follow these guidelines:
-
Search existing issues first to avoid duplicates
-
Use the issue template if available
-
Include: steps to reproduce, expected vs actual behavior, environment
-
Fork the repository
-
Create a feature branch:
git checkout -b feature/my-change -
Make your changes with clear, focused commits
-
Run
make fmtandmake lintbefore committing -
Add tests for new functionality
-
Open a PR with a descriptive title and description
-
Follow standard Go conventions (
gofmt,golint) -
Keep functions small and focused
-
Document exported types and functions with Go doc comments
-
Update documentation when behavior changes
-
GoReleaser v2+ (
go install github.com/goreleaser/goreleaser/v2@latest) -
jq(for install script testing)
Test cross-compilation and archive creation without publishing:
make snapshotThis builds all 6 binaries (linux/darwin/windows × amd64/arm64) and outputs them to dist/. Verify:
ls dist/
dist/rtb-buddy_linux_amd64/
dist/rtb-buddy_darwin_arm64/
dist/checksums.txt
...
# Test the local binary
./dist/rtb-buddy_linux_amd64/rtb-buddy versionPush a branch and open a PR to verify lint and tests run:
git checkout -b test-ci
git add . && git commit -m "ci: test workflow"
git push -u origin test-ci
# Open a PR → CI runs automaticallyCreate a pre-release tag to test the full release pipeline:
git tag v0.0.1-rc.1
git push --tagsThis triggers the release workflow which:
-
Builds all binaries via GoReleaser
-
Creates a GitHub release at https://github.com/rtbrick/tools/releases/tag/v0.0.1-rc.1
# Test against the pre-release
curl -fsSL https://raw.githubusercontent.com/rtbrick/tools/main/install_rtb_buddy.sh | sudo bash -s -- --version v0.0.1-rc.1
# Verify
rtb-buddy versionDelete the test release and tag:
gh release delete v0.0.1-rc.1 --yes --cleanup-tag| Command | What it tests |
|---|---|
|
Local cross-compilation, archives, checksums |
Push branch + open PR |
CI workflow (lint + test) |
|
Full release pipeline (build + publish) |
|
Install script (download + checksum + install) |
|
Version injection via ldflags |
BSD 3-Clause License — see the LICENSE file for details.
Copyright (c) 2026, RtBrick
BSD-3-Clause
rtb-buddy lix1 generate ca --cn rtbrick-lab --org rtbrick --ou devops rtb-buddy lix1 generate ca --cn rtbrick-lab --org rtbrick --ou devops --ca-crt client-ca.crt --ca-crt-key client-ca.key
rtb-buddy lix1 generate cert --cn ufi31 --org rtbrick --ou devops --crt ufi31.crt --crt-key ufi31.key
rtb-buddy lix1 generate cert --cn client1 --org rtbrick --ou devops --ca-crt client-ca.crt --ca-crt-key client-ca.key --crt client1.crt --crt-key client1.key
set lawful-intercept protocol x1 mutual-tls server certificate LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVjVENDQTFtZ0F3SUJBZ0lDQm5vd0RRWUpLb1pJaHZjT… set lawful-intercept protocol x1 mutual-tls server key-plain-text LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktL… set lawful-intercept protocol x1 mutual-tls client root-ca LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURYakNDQWthZ0F3SUJBZ0lSQVBtUjVoRWxtZ0NOaVliWVZ jZXV6Yll3RFFZSktvWklodmNOQVFFTEJRQXcKT1RFUU1BNEdBMVVFQ2hNSGNuUmljbWxqYXpFUE1BMEdBMVVFQ3hNR1pHVjJiM0J6TV JRd0VnWURWUVFERXd0eQpkR0p5YVdOckxXeGhZakFlRncweU5qRXdNVFF4TUR
curl --insecure -vvv --key client1.key --cert client1.crt --cacert ca.crt --location 'https://ufi31.q2a.u39.r3.nbg.rtbrick.net:12322/X1/NE' \
--header 'Content-Type: application/json' \
--data '<X1Request xmlns="http://uri.etsi.org/03221/X1/2017/10">
<x1RequestMessage xsi:type="PingRequest">
<admfIdentifier>ADMF-ID-01</admfIdentifier>
<neIdentifier>NE-ID-102</neIdentifier>
<messageTimestamp>2026-09-22T20:51:00Z</messageTimestamp>
<version>v1.12.1</version>
<x1TransactionId>f81d4fae-7dec-11d0-a765-00a0c91e6bf6</x1TransactionId>
</x1RequestMessage>
</X1Request>'2026/10/14 10:36:23 INFO Programm info version=0.4.0-g6daily.20261013144632+Bdevelopment.C53e4a3f0 runtime=go1.27.1