Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
62 changes: 62 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -245,3 +245,65 @@ jobs:
git add Casks/mcpmux.rb
git commit -m "Update mcpmux to ${VERSION}"
git push

# ─────────────────────────────────────────────────────────────
# Update APT Repository: Add .deb to self-hosted APT repo on R2
# ─────────────────────────────────────────────────────────────
update-apt-repo:
needs: [release-please, publish-release]
if: needs.release-please.outputs.release_created == 'true'
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4

- name: Install tools
run: sudo apt-get update && sudo apt-get install -y reprepro

- name: Configure AWS CLI for R2
run: |
aws configure set aws_access_key_id "${{ secrets.R2_ACCESS_KEY_ID }}"
aws configure set aws_secret_access_key "${{ secrets.R2_SECRET_ACCESS_KEY }}"
aws configure set default.region auto
env:
AWS_DEFAULT_OUTPUT: json

- name: Import GPG signing key
run: echo "${{ secrets.APT_GPG_PRIVATE_KEY }}" | gpg --batch --import

- name: Download .deb from GitHub Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
VERSION="${{ needs.release-please.outputs.version }}"
mkdir -p artifacts
# Download all .deb files from the release
gh release download "v${VERSION}" --pattern "*.deb" --dir artifacts

- name: Sync existing APT repo from R2
run: |
mkdir -p repo
aws s3 sync "s3://mcpmux-apt/" repo/ \
--endpoint-url "${{ secrets.R2_ENDPOINT }}" \
|| echo "No existing repo (first run)"

- name: Update APT repo with new packages
run: |
# Copy reprepro config
cp -r scripts/apt-repo/conf repo/

# Add each .deb package
for deb in artifacts/*.deb; do
echo "Adding: $deb"
reprepro -b repo includedeb stable "$deb"
done

# Export public key
gpg --armor --export hello@mcpmux.com > repo/key.gpg

- name: Sync APT repo back to R2
run: |
aws s3 sync repo/ "s3://mcpmux-apt/" \
--endpoint-url "${{ secrets.R2_ENDPOINT }}" \
--delete
37 changes: 37 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,43 @@ That's the last config file you'll need to touch.

---

## Install on Linux

**Quick install** (detects your distro automatically):
```bash
curl -fsSL https://install.mcpmux.com | bash
```

<details>
<summary>Other install methods</summary>

**Debian / Ubuntu** (APT repository for automatic updates):
```bash
curl -fsSL https://install.mcpmux.com/apt | sudo bash
```

**Fedora / RHEL** (from GitHub Releases):
```bash
# Download the latest .rpm
sudo dnf install https://github.com/mcpmux/mcp-mux/releases/latest/download/mcpmux-0.0.12-1.amd64.rpm
```

**Arch Linux** (AUR):
```bash
yay -S mcpmux-bin
```

**AppImage** (any distro):
```bash
curl -fsSL https://install.mcpmux.com | bash # auto-detects, falls back to AppImage
```

Or download directly from [GitHub Releases](https://github.com/mcpmux/mcp-mux/releases/latest).

</details>

---

## Development

```bash
Expand Down
7 changes: 7 additions & 0 deletions scripts/apt-repo/conf/distributions
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Origin: McpMux
Label: McpMux
Codename: stable
Architectures: amd64 arm64
Components: main
Description: McpMux APT Repository
SignWith: yes