phonelink-rs
A rewrite of Phonelink for Windows Forms written in Rust, with cross-platform support.
Usage
- Clone the repository and build, or download a build from the releases section if it exists.
- Launch the executable for first time setup.
- Add the port chosen to your firewall if not already added.
- Use
phonelink
to start the server. - Use
phonelink config
to open the configuration menu.
- Find a phonelink client, or make your own. The only current clients are in the form of shortcuts for iOS.
- (Optional) make the application start at startup. Follow the guide for your OS here.
Clients
iOS
iOS clients come in the form of shortcuts.
Requests
Your password should be in the password
header.
URL
- Path:
[IP]:[PORT]/url/[URL]
- Method:
GET
- Info: Your
[URL]
must be URL encoded in order to support additional params. The URL should open in your computer's default browser.
File
- Path:
[IP]:[PORT]/file
- Method:
POST
- Info: Your file can have any key in your request body. The request body should be a form. It should be saved to the path specified in the config.
Notification
- Path:
[IP]:[PORT]/notification
- Method:
GET
- Info: Your title should be in the
title
header, and body in thebody
header.
Power
- Path:
[IP]:[PORT]/power/[TYPE]
- Method:
GET
- Info: Your
[TYPE]
must be either:shutdown
,restart
, orlogout
.
Start at Startup
Windows
- Hold
Win+R
and typeshell:startup
. - Create a new file named whatever you want, but ending in a
.vbs
extension. - Paste the following code into the file. This code will make phonelink run at startup, but not show the terminal window:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run """C:\tools\phonelink-rs\phonelink-rs.exe""", 0 'Change this to your install location
Set WshShell = Nothing
As i don't use linux or macos, if anybody wants to, please make a pull request with instructions on running this app on startup.
Roadmap
- Add link receiving
- Add notification receiving
- Add file receiving
- Create options menu
- Add password header
- Add power state controls
- Android client via Flutter