Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rosalina121/pc-remote-control
Bun server for controlling your PC remotely!
https://github.com/rosalina121/pc-remote-control
bun express nircmd rest typescript
Last synced: about 1 month ago
JSON representation
Bun server for controlling your PC remotely!
- Host: GitHub
- URL: https://github.com/rosalina121/pc-remote-control
- Owner: Rosalina121
- License: mit
- Created: 2024-04-02T15:02:15.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-05-03T17:14:01.000Z (8 months ago)
- Last Synced: 2024-05-28T16:30:40.914Z (8 months ago)
- Topics: bun, express, nircmd, rest, typescript
- Language: TypeScript
- Homepage:
- Size: 846 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# pc-remote-control
A [Bun](https://bun.sh) server for remote control for your PC. Loosely based on my old [SiriFlask](https://github.com/Rosalina121/SiriFlask) project.
![Example CLI](example.png)
## Quickstart
```bash
bun install
```To run:
```bash
bun run start
```## Config
`config.json` contains configuration for general app use (like files upload folder for Multer)
Each Module may have it's own config for more specific use.## Modules
Each functionality is split into modules in, well, `/modules`. It's just a TS class extending the `IModule`. All are loaded dynamically, so if you want to add something new, just create a new class and export the instance (or copy and adapt `Template.ts`).
A module has an `emoji`, `name`, `path` to be invoked on and `fn(request: moduleReq): IModuleResponse` performing a task. `IModuleResponse` is just a response string and a status code and `moduleReq` just an alias for the Express Request.
Some modules have an extra `.json` file named same as the module, which contains extra configs. These have to be created manually, as in most cases they include things like tokens, or personal stuff.
## In this repo
### Available modules
Following modules are available when you pull this repo:
- Ping - just responds with "Pong!"
- Shutdown - performs a shutdown in 60s or after specified time
- Also you can reboot and abort the shutdown
- On Linux the seconds are rounded to minutes
- Volume - changes volume to provided value
- Clipboard - sets clipboard to provided string
- Upload - saves uploaded file to folder
- Switch Audio - switches to the audio device of provided name### OS support
Most modules will work regardless of the platform, but some may only work on a specific OS.
Also some modules may require extra dependencies to work correctly on certain systems.Extra dependencies:
- `Clipboard` requires `libxtst-dev` on a Linux system (simple `apt install` works).
- `Volume`, `Switch Audio` and `Shutdown` use [NirCMD](https://www.nirsoft.net/utils/nircmd.html) to work on Windows.