https://github.com/shiftinbits/pmux-server
Cloudflare worker signaling server for pmux
https://github.com/shiftinbits/pmux-server
cloudflare pmux pocketmux privacy remote shell ssh terminal tmux webrtc worker
Last synced: about 1 month ago
JSON representation
Cloudflare worker signaling server for pmux
- Host: GitHub
- URL: https://github.com/shiftinbits/pmux-server
- Owner: ShiftinBits
- License: mit
- Created: 2026-02-23T18:15:34.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-05-11T18:38:50.000Z (about 2 months ago)
- Last Synced: 2026-05-11T20:32:56.084Z (about 2 months ago)
- Topics: cloudflare, pmux, pocketmux, privacy, remote, shell, ssh, terminal, tmux, webrtc, worker
- Language: TypeScript
- Homepage: https://docs.pmux.io
- Size: 307 KB
- Stars: 2
- Watchers: 0
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# pmux-server
[](https://github.com/shiftinbits/pmux-server/actions/workflows/test.yml?query=branch%3Amain) [](https://app.codecov.io/gh/shiftinbits/pmux-server/) [](https://github.com/ShiftinBits/pmux-server/actions/workflows/github-code-scanning/codeql) [](https://snyk.io/test/github/shiftinbits/pmux-server) [](LICENSE)
Cloudflare Worker + Durable Object signaling server for [pmux](https://pmux.io).
## Architecture
- **Worker** — HTTP ingress, auth middleware, REST endpoints for pairing and TURN credentials
- **Durable Object** — WebSocket signaling for SDP/ICE relay, device presence tracking, SQLite storage for device pairings
The server is a zero-knowledge relay. It facilitates WebRTC connection establishment between agents and mobile clients but **never** sees terminal content, session metadata, or user activity.
## Development
```bash
# Install dependencies
npm install
# Start local dev server
npm run dev # → http://localhost:8787
# Health check
curl http://localhost:8787/health
```
## Environment Secrets
Set via `wrangler secret put `:
| Secret | Description |
|--------|-------------|
| `TURN_TOKEN_ID` | Cloudflare Realtime TURN Token ID |
| `TURN_API_TOKEN` | Cloudflare Realtime API token |
| `JWT_SECRET` | Secret for signing JWTs |
## Deployment
```bash
npm run deploy # → deploys to Cloudflare
```
## License
MIT — see [LICENSE](./LICENSE)