Add invite and QR code features to backtunnel-share

This commit is contained in:
2025-09-14 12:54:06 +02:00
parent d510d777ca
commit 07dbd79aa2
3 changed files with 134 additions and 4 deletions

View File

@@ -17,6 +17,32 @@ backtunnel-share /path/to/folder with remoteuser:remotehost for <duration> [opti
**Options**
- `-p, --tunnel-port <PORT>`: Remote port to expose with `-R` (default: 2222)
- `-l, --local-ssh-port <PORT>`: Local sshd port to forward to (default: 22)
- `-i, --invite`: Print a ready-to-copy access command for the remote user
- `--invite-mount <PATH>`: Suggest mount point in the invite (default: `/mnt/remote-rssh`)
- `--invite-file <FILE>`: Also write the invite text (including unmount hint) to a file
- `--qr`: Render the invite as a QR code (requires `qrencode`)
**Examples**
```bash
# Share for 2h
backtunnel-share ~/projects with alice@vps.example.com for 2h
# Share and print a one-liner invite for chat
backtunnel-share ~/projects with alice@vps.example.com for 2h -i
# Share with custom ports and QR invite
backtunnel-share ~/projects with alice@vps.example.com for 1d -p 4422 -l 2222 -i --qr
```
The invite will look like this and can be pasted on the remote host:
```bash
backtunnel-access '/home/user/projects' from alice@vps.example.com -p 4422 -m '/mnt/remote-rssh'
```
Unmount on the remote side with:
```bash
fusermount -u /mnt/remote-rssh
```
### `backtunnel-access`
Mount a folder from the *remote* side via SSHFS.
@@ -30,6 +56,8 @@ backtunnel-access /path/to/folder from remoteuser:remotehost [options]
- `-p, --port <PORT>`: Port on the remote host where the reverse tunnel listens (default: 2222)
- `-m, --mount-point <PATH>`: Local mount point (default: `/mnt/remote-rssh`)
---
## 🧰 Dolphin Service Menus
Two context actions for Dolphin:
@@ -40,9 +68,15 @@ Installed into:
- Plasma 6: `/usr/share/kio/servicemenus/`
- Plasma 5: `/usr/share/kservices5/ServiceMenus/`
---
## 🔐 Requirements
- `ssh`, `sshfs`, `timeout`, `konsole`, `kdialog`
- Optional: `bash-completion`
- Optional:
- `bash-completion`
- `qrencode` (for QR-code invites)
---
## 📦 Install
```bash
@@ -53,10 +87,14 @@ Uninstall:
sudo bash scripts/uninstall.sh
```
---
## 📖 Man Page
```bash
man backtunnel
```
---
## 🧾 License
Licensed under **GNU GPL v3.0**. See `LICENSE`.