Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
daa691e
Use clap enum & struct parser rather than macro fn
loriopatrick Jan 15, 2026
e4befe6
Oneshot doing a service
loriopatrick Jan 15, 2026
dbcb585
working :)
loriopatrick Jan 15, 2026
0904676
bugfixes
loriopatrick Jan 15, 2026
40dd04a
Improve log format
loriopatrick Jan 15, 2026
8594311
fix comp for unix
loriopatrick Jan 15, 2026
8e2d5bf
stage changes
loriopatrick Jan 16, 2026
725b57e
Move stuff around, improve ipc
loriopatrick Mar 30, 2026
d4cd61a
improvements...
loriopatrick Mar 30, 2026
4b56e0c
improve commands
loriopatrick Mar 30, 2026
70d7a65
Add window service support
loriopatrick Mar 30, 2026
711db4f
Setup macos
loriopatrick Mar 30, 2026
cf97193
UDP improvements
loriopatrick Mar 30, 2026
ac62e50
Start on MTU discovery logic
loriopatrick Mar 30, 2026
21a898a
Do not start windows service on install or boot
loriopatrick Mar 31, 2026
dab7ae4
change start condition for windows to fix service
loriopatrick Mar 31, 2026
01dd4f6
fix windows service and update service perms
loriopatrick Mar 31, 2026
70cd44f
Improve setup logic
loriopatrick Mar 31, 2026
8c6feaf
Add windows-build.sh
loriopatrick Mar 31, 2026
a253219
Improve secret setup logic
loriopatrick Mar 31, 2026
d9baf14
Add Windows tray companion for playitd (#136)
loriopatrick Apr 14, 2026
1f9b6b8
Split tray app into its own crate (#138)
loriopatrick Apr 14, 2026
3df192f
Switch Linux packaging to manage playit systemd unit (#140)
loriopatrick Apr 14, 2026
a0a28ac
Resolve origin hostnames asynchronously (#142)
loriopatrick Apr 14, 2026
870fa32
Update version
loriopatrick Apr 14, 2026
4cc4069
update package versions
loriopatrick Apr 15, 2026
760ab2b
fix daemon tunnel print
loriopatrick Apr 15, 2026
3dc8293
Update docker build
loriopatrick Apr 15, 2026
be08f5d
Include tray package in Windows release build (#145)
loriopatrick Apr 15, 2026
ffd056d
format action and update windows exe bin
loriopatrick Apr 15, 2026
95896ac
Refactor CLI attach UI and simplify stdout logging (#149)
loriopatrick Apr 15, 2026
245340b
Skip restarting active playitd and prompt before start
loriopatrick Apr 15, 2026
7f84069
Surface clearer Linux IPC socket errors
loriopatrick Apr 15, 2026
b2aad0b
Restrict Linux IPC socket to playit group
loriopatrick Apr 15, 2026
81ccb35
Improve Linux socket access errors
loriopatrick Apr 15, 2026
c478b2a
Refactor Linux service handling into shared modules
loriopatrick Apr 15, 2026
16a185d
fix service command
loriopatrick Apr 15, 2026
77d8acf
Handle agent-limit failures in CLI and daemon
loriopatrick Apr 15, 2026
55b0a97
Improve over-limit messaging across CLI and daemon
loriopatrick Apr 15, 2026
f3dd48d
Move tray startup shortcut management into tray app
loriopatrick Apr 15, 2026
9262595
Refine tray close and startup shortcut handling
loriopatrick Apr 15, 2026
8d81981
Enable status button only while service is running
loriopatrick Apr 15, 2026
1b1fde8
remove exe name and cleanup dead code
loriopatrick Apr 15, 2026
1169dae
bump readme
loriopatrick Apr 15, 2026
44b0b0d
remove broken & dead macos build scripts
loriopatrick Apr 15, 2026
7b852dd
Add hello handshake to IPC protocol
loriopatrick Apr 15, 2026
585c846
Handle unknown IPC message types without losing typed validation
loriopatrick Apr 15, 2026
c577f47
Simplify TUI to remove panel navigation
loriopatrick Apr 15, 2026
ebeceba
Handle stopped installed service in CLI stop flow
loriopatrick Apr 16, 2026
69429b7
Await UDP client cleanup and add tunnel integration tests
loriopatrick Apr 17, 2026
7b7613d
Add UDP tunnel stress throughput test
loriopatrick Apr 18, 2026
4f40ba8
incease stress packet count
loriopatrick Apr 18, 2026
04a5476
Support IPv6 UDP origin addresses (#152)
loriopatrick Apr 23, 2026
2fa9578
Harden Windows IPC ACLs and package secret files
loriopatrick Apr 23, 2026
74bfd65
Rewrite playit user messages for clarity (#154)
loriopatrick Apr 23, 2026
b0c2bb9
Refactor IPC paths and platform helpers
loriopatrick Apr 24, 2026
e34398d
Switch IdSlab to slotmap-backed storage
loriopatrick Apr 24, 2026
fa4d3ec
Switch IPC transport to framed JSON codecs
loriopatrick Apr 24, 2026
d47a65a
Consolidate tray menu display handling
loriopatrick Apr 24, 2026
471de87
Hide Windows consoles and remove legacy startup shortcuts
loriopatrick Apr 24, 2026
e5e40aa
Split Windows setup helper into its own binary
loriopatrick Apr 24, 2026
37c84c6
Refactor daemon startup and IPC response handling
loriopatrick Apr 24, 2026
f45f1e7
Propagate cancellation through agent TCP and UDP tasks
loriopatrick Apr 24, 2026
6c7ab85
add public cert and update windows sign script
loriopatrick Apr 24, 2026
0bb4520
Handle Windows service start and stop directly
loriopatrick Apr 24, 2026
ac4927a
Log client disconnects as debug in IPC server
loriopatrick Apr 24, 2026
cc79768
Disable duplicate service actions in tray
loriopatrick Apr 24, 2026
268474c
Remove legacy startup shortcut cleanup
loriopatrick Apr 24, 2026
c4fb50e
Remove obsolete test modules
loriopatrick Apr 24, 2026
2e4b4cc
update cert
loriopatrick Apr 25, 2026
c119936
update cert chain
loriopatrick Apr 25, 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
136 changes: 16 additions & 120 deletions .github/workflows/build-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,17 +40,17 @@ jobs:
artifact: playit-linux-i686
dpkg_arch: i386

# - name: linux mipsel
# os: ubuntu-latest
# arch: mipsel-unknown-linux-musl
# artifact: playit-linux-mipsel
# dpkg_arch: mipsel
#
# - name: linux mips
# os: ubuntu-latest
# arch: mips-unknown-linux-musl
# artifact: playit-linux-mips
# dpkg_arch: mips
# - name: linux mipsel
# os: ubuntu-latest
# arch: mipsel-unknown-linux-musl
# artifact: playit-linux-mipsel
# dpkg_arch: mipsel
#
# - name: linux mips
# os: ubuntu-latest
# arch: mips-unknown-linux-musl
# artifact: playit-linux-mips
# dpkg_arch: mips

runs-on: ${{ matrix.platform.os }}
steps:
Expand Down Expand Up @@ -81,7 +81,7 @@ jobs:

- name: Package .deb
shell: bash
run: 'bash ./build-scripts/package-linux-deb.sh "./target/${{ matrix.platform.arch }}/release/playit-cli" ${{ matrix.platform.dpkg_arch }}'
run: 'bash ./build-scripts/package-linux-deb.sh "./target/${{ matrix.platform.arch }}/release/playit-cli" "./target/${{ matrix.platform.arch }}/release/playitd" ${{ matrix.platform.dpkg_arch }}'

- name: Upload .deb
uses: actions/upload-release-asset@v1
Expand All @@ -92,111 +92,6 @@ jobs:
asset_path: ./target/deb/playit_${{ matrix.platform.dpkg_arch }}.deb
asset_name: playit_${{ matrix.platform.dpkg_arch }}.deb
asset_content_type: application/octet-stream


# build_macos:
# environment: production

# strategy:
# fail-fast: false
# matrix:
# platform:
# - name: macos intel
# os: macos-latest
# arch: x86_64-apple-darwin
# artifact: playit-darwin-intel

# - name: macos arm
# os: macos-latest
# arch: aarch64-apple-darwin
# artifact: playit-darwin-arm

# runs-on: ${{ matrix.platform.os }}
# steps:
# - uses: actions/checkout@v3

# - name: Get release
# id: get_release
# uses: bruceadams/get-release@v1.2.3
# env:
# GITHUB_TOKEN: ${{ github.token }}

# - uses: dtolnay/rust-toolchain@stable
# with:
# targets: ${{ matrix.platform.arch }}

# - name: build release
# uses: actions-rs/cargo@v1
# with:
# command: build
# args: --target ${{ matrix.platform.arch }} --release --all

# # reference: https://federicoterzi.com/blog/automatic-code-signing-and-notarization-for-macos-apps-using-github-actions/
# - name: Codesign binary
# # Extract the secrets we defined earlier as environment variables
# env:
# MACOS_CERTIFICATE: ${{ secrets.PROD_MACOS_CERTIFICATE }}
# MACOS_CERTIFICATE_PWD: ${{ secrets.PROD_MACOS_CERTIFICATE_PWD }}
# MACOS_CERTIFICATE_NAME: ${{ secrets.PROD_MACOS_CERTIFICATE_NAME }}
# MACOS_CI_KEYCHAIN_PWD: ${{ secrets.PROD_MACOS_CI_KEYCHAIN_PWD }}
# run: |
# # Turn our base64-encoded certificate back to a regular .p12 file

# echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12

# # We need to create a new keychain, otherwise using the certificate will prompt
# # with a UI dialog asking for the certificate password, which we can't
# # use in a headless CI environment

# security create-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain
# security default-keychain -s build.keychain
# security unlock-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain
# security import certificate.p12 -k build.keychain -P "$MACOS_CERTIFICATE_PWD" -T /usr/bin/codesign
# security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$MACOS_CI_KEYCHAIN_PWD" build.keychain

# /usr/bin/codesign --force -s "$MACOS_CERTIFICATE_NAME" --options runtime target/${{ matrix.platform.arch }}/release/playit-cli

# - name: Notorize binary
# env:
# PROD_MACOS_NOTARIZATION_APPLE_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_APPLE_ID }}
# PROD_MACOS_NOTARIZATION_TEAM_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_TEAM_ID }}
# PROD_MACOS_NOTARIZATION_PWD: ${{ secrets.PROD_MACOS_NOTARIZATION_PWD }}
# run: |
# echo "Create keychain profile"
# xcrun notarytool store-credentials "notarytool-profile" --apple-id "$PROD_MACOS_NOTARIZATION_APPLE_ID" --team-id "$PROD_MACOS_NOTARIZATION_TEAM_ID" --password "$PROD_MACOS_NOTARIZATION_PWD"

# # We can't notarize an app bundle directly, but we need to compress it as an archive.
# # Therefore, we create a zip file containing our app bundle, so that we can send it to the
# # notarization service

# echo "Creating temp notarization archive"
# ditto -c -k --keepParent "target/${{ matrix.platform.arch }}/release/playit-cli" "notarization.zip"

# # Here we send the notarization request to the Apple's Notarization service, waiting for the result.
# # This typically takes a few seconds inside a CI environment, but it might take more depending on the App
# # characteristics. Visit the Notarization docs for more information and strategies on how to optimize it if
# # you're curious

# echo "Notarize app"
# xcrun notarytool submit "notarization.zip" --keychain-profile "notarytool-profile"

# # Finally, we need to "attach the staple" to our executable, which will allow our app to be
# # validated by macOS even when an internet connection is not available.
# # REMOVED: don't wait for notarization, takes too long
# # echo "Attach staple"
# # xcrun stapler staple "target/${{ matrix.platform.arch }}/release/playit-cli"

# - name: Upload Binary
# if: matrix.platform.os != 'windows-latest'
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ github.token }}
# with:
# upload_url: ${{ steps.get_release.outputs.upload_url }}
# asset_path: ./target/${{ matrix.platform.arch }}/release/playit-cli
# asset_name: ${{ matrix.platform.artifact }}
# asset_content_type: application/octet-stream

build_windows:
strategy:
fail-fast: false
Expand Down Expand Up @@ -232,6 +127,7 @@ jobs:
targets: ${{ matrix.platform.arch }}

- run: cargo install cargo-wix
- run: cargo build --target ${{ matrix.platform.arch }} --release --package playit-cli --package playitd --package playitd-tray --package playitd-windows-setup
- run: cargo wix --target ${{ matrix.platform.arch }} --package playit-cli --nocapture --output=target/wix/${{ matrix.platform.artifact }}.msi

- name: Upload .exe
Expand All @@ -240,7 +136,7 @@ jobs:
GITHUB_TOKEN: ${{ github.token }}
with:
upload_url: ${{ steps.get_release.outputs.upload_url }}
asset_path: ./target/${{ matrix.platform.arch }}/release/playit-cli.exe
asset_path: ./target/${{ matrix.platform.arch }}/release/playitd.exe
asset_name: ${{ matrix.platform.artifact }}.exe
asset_content_type: application/octet-stream

Expand All @@ -256,7 +152,7 @@ jobs:

build_docker:
runs-on: ubuntu-latest
needs: [ build_linux ]
needs: [build_linux]
permissions:
contents: read
packages: write
Expand All @@ -274,7 +170,7 @@ jobs:
if: github.event_name != 'pull_request'
uses: sigstore/cosign-installer@59acb6260d9c0ba8f4a2f9d9b48431a222b68e20 #v3.5.0
with:
cosign-release: 'v2.2.4'
cosign-release: "v2.2.4"

# Set up BuildKit Docker container builder to be able to build
# multi-platform images and export cache
Expand Down
Loading