This commit is contained in:
Raven Scott 2024-09-19 01:34:06 -04:00
parent dd89a3c577
commit 5bd27c069e

View File

@ -1985,9 +1985,9 @@ func main() {
``` ```
#### How It Works: #### How It Works:
1. **Fetch Hostname**: The script retrieves the server's hostname using `os.Hostname()`, which is later sent as part of the request to identify the sender. **Fetch Hostname**: The script retrieves the server's hostname using `os.Hostname()`, which is later sent as part of the request to identify the sender.
2. **Build Message**: The message is constructed from command-line arguments and passed into the API request. **Build Message**: The message is constructed from command-line arguments and passed into the API request.
3. **Send Notification**: The client sends a GET request to the server, including the API key, hostname, and message content. **Send Notification**: The client sends a GET request to the server, including the API key, hostname, and message content.
### Use Cases ### Use Cases
@ -2050,11 +2050,11 @@ sudo chmod +x /usr/bin/sshup-all
``` ```
#### How it works: #### How it works:
1. **User Prompts**: The script prompts the user for their `SSHID` and `KEY`, which are necessary for identifying the container and validating the upload. **User Prompts**: The script prompts the user for their `SSHID` and `KEY`, which are necessary for identifying the container and validating the upload.
2. **Creating Upload Scripts**: **Creating Upload Scripts**:
- `sshup`: A command-line utility for uploading a single file. - `sshup`: A command-line utility for uploading a single file.
- `sshup-all`: A utility for uploading all files in the current directory. - `sshup-all`: A utility for uploading all files in the current directory.
3. **Permissions**: The scripts are saved under `/usr/bin/` and made executable, allowing users to run the uploader from anywhere on their system. **Permissions**: The scripts are saved under `/usr/bin/` and made executable, allowing users to run the uploader from anywhere on their system.
Once installed, users can upload files using the command `sshup <filename>` and receive an output like: Once installed, users can upload files using the command `sshup <filename>` and receive an output like:
@ -2093,10 +2093,10 @@ const connection = mysql.createConnection({
``` ```
#### Key Components: #### Key Components:
1. **Express.js**: Handles incoming HTTP requests and manages file uploads. **Express.js**: Handles incoming HTTP requests and manages file uploads.
2. **multer**: A middleware for handling file uploads. **multer**: A middleware for handling file uploads.
3. **cmd-promise**: Used to execute system commands, such as copying the file to the Docker container. **cmd-promise**: Used to execute system commands, such as copying the file to the Docker container.
4. **MySQL Database**: Stores user information, including SSH IDs and keys, to verify upload requests. **MySQL Database**: Stores user information, including SSH IDs and keys, to verify upload requests.
#### Upload Logic #### Upload Logic
@ -2143,11 +2143,11 @@ app.post('/', multer({ dest: "uploads/" }).single('myFile'), (req, res) => {
``` ```
#### Step-by-Step Process: #### Step-by-Step Process:
1. **Receive File**: The file is uploaded to a temporary directory. **Receive File**: The file is uploaded to a temporary directory.
2. **Verify Key**: The server checks the provided key to ensure the upload is authorized. **Verify Key**: The server checks the provided key to ensure the upload is authorized.
3. **Check Container**: The server checks if the container exists and is running. **Check Container**: The server checks if the container exists and is running.
4. **Copy File**: If everything checks out, the file is copied to the users container using `docker cp`. **Copy File**: If everything checks out, the file is copied to the users container using `docker cp`.
5. **Cleanup**: The temporary file is removed from the server after the upload is complete. **Cleanup**: The temporary file is removed from the server after the upload is complete.
#### Example Output: #### Example Output:
```bash ```bash