Skip to content

Community Solution Starting Off #347

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Aug 19, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
146 changes: 146 additions & 0 deletions community-solutions/copyparty-file-manager/overview.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
---
title: CopyParty file manager
description: Web-based GUI for easy file browsing, uploading, downloading, and media viewing on Runpod
icon: "party-horn"
---

# Setting up CopyParty on Runpod

CopyParty provides a webbased GUI that makes file management simple on Runpod instances. With its intuitive interface, you can browse directories, upload/download files, preview images and videos, and manage your Pod's filesystem without complex command-line operations.

## About CopyParty

CopyParty is an open-source project created that provides a portable file server with a web UI. It's perfect for managing files on cloud GPU instances where traditional file transfer methods might be cumbersome.

For a video demonstration, you can watch the [creator's YouTube tutorial](https://youtu.be/15_-hgsX2V0?si=AXArKvI79LEscpNn).

<Note>
Check the repository for additional features, updates, and documentation: [github.com/9001/copyparty](https://github.com/9001/copyparty)
</Note>

## Requirements

To use CopyParty on Runpod, you need:
- **Terminal access to your Pod** - Either through web terminal or Jupyter Labs terminal.
- An available HTTP port on your Pod.

### Verifying terminal access

You can access the terminal in two ways:

#### Option 1: Web terminal
If you see this option when clicking "Connect" on your Pod page, you have web terminal access:
![Web Terminal Access](webterminal.png)

#### Option 2: JupyterLab terminal
If you have JupyterLab installed on your Pod, you can access the terminal there:
![JupyterLab Terminal](labsterminal.png)

## Installation steps

### Step 1: Access your Pod settings

Navigate to your Pod page and locate the settings:
![Edit Pod Settings](edit.png)

### Step 2: Add an HTTP port

<Warning>
**Adding a new port will restart your Pod and erase any data not stored in `/workspace`**

Before proceeding, ensure all important files are saved in `/workspace` or backed up elsewhere. Any installed libraries or files outside of `/workspace` will be lost.
</Warning>

Add a dedicated HTTP port for the CopyParty interface. If port 8888 is already in use (common for Jupyter), try port 8000 or another available port.

![Add HTTP Port](addhttp.png)

### Step 3: Install and run CopyParty

Open your terminal (web terminal or Jupyter terminal) and run one of the following commands:

#### Option 1: Standard installation
Run CopyParty directly (the session will end if you close the terminal):

```bash
curl -LsSf https://astral.sh/uv/install.sh | sh && source $HOME/.local/bin/env && uv tool run copyparty -p 8000 --allow-csrf
```

Replace `-p 8000` with your chosen port number if different.

#### Option 2: Background installation with tmux

To keep CopyParty running even after closing the terminal, use `tmux`:

```bash
apt-get update && apt-get install tmux -y && tmux new-session -d -s copyparty 'curl -LsSf https://astral.sh/uv/install.sh | sh && source $HOME/.local/bin/env && uv tool run copyparty -p 8000 --allow-csrf' && tmux attach -t copyparty
```

<Info>
**What is tmux?**

`tmux` (terminal multiplexer) is a tool that lets you run terminal sessions in the background. Think of it as a way to keep programs running even after you close your terminal window, like minimizing an app instead of closing it. This is particularly useful on Runpod where you want CopyParty to keep running even if you disconnect.

For a more in-depth tmux tutorial, check out this [comprehensive video guide](https://youtu.be/nTqu6w2wc68?si=OcI3qbh2kGH7_3fh).
</Info>

This command:
1. Installs tmux (a terminal multiplexer)
2. Creates a new tmux session named "copyparty"
3. Runs CopyParty in the background
4. Attaches you to the session to see the output

<Tip>
**Quick tmux Commands**
- To detach from tmux and leave CopyParty running: Press `Ctrl+B` then `D`
- To reattach to the session later: `tmux attach -t copyparty`
- To stop CopyParty: Reattach and press `Ctrl+C`
</Tip>

### Step 4: Access the CopyParty interface

Once CopyParty is running, click on the port number in your Runpod dashboard:
![Access Port](port.png)

## Using CopyParty

### File navigation

The interface displays your file system on the left side:
![Directory View](directory.png)

### Uploading files

Simply drag and drop files into the interface to upload them:
![Upload Files](upload.png)

### Downloading files

To download files:
1. Click on files to select them (they'll be highlighted in pink)
2. Use the buttons in the bottom right:
- **"dl"** - Download individual files
- **"zip"** - Download multiple files as a zip archive

![Download Files](download.png)

## Tips and best practices

1. **Data Persistence**: Always store important files in `/workspace` to survive pod restarts
2. **Port Selection**: Choose a port that doesn't conflict with other services (avoid 8888 if using Jupyter)
3. **Large Files**: CopyParty handles large file transfers well, making it ideal for model weights and datasets

## Troubleshooting

### Session ends when terminal closes
Use the tmux option (Option 2) to keep CopyParty running in the background

## Alternative file transfer methods

While CopyParty provides an excellent web-based solution, Runpod also supports:
- Direct SSH/SCP transfers (if SSH is enabled)
- JupyterLab file browser
- [Runpod CLI](/runpodctl/overview) tool
- [Cloud storage integration](/pods/storage/cloud-sync) (S3, Google Drive, etc.)

Choose the method that best fits your workflow and security requirements.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
156 changes: 156 additions & 0 deletions community-solutions/ohmyrunpod/overview.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
---
title: "OhMyRunPod"
description: "Community solution for easy (SFTP) setup on Runpod"
icon: "rocket"
---

## What is OhMyRunPod?

OhMyRunPod is a Python package that solves one of the most common Runpod user challenges: **easily transferring files to and from your Pod**.

While OhMyRunPod includes various features, **the SFTP setup functionality** is the one we want to highlight to help get you started with file transfer software such as FileZilla or similar tools.

<Note>
Check the repository for additional features, updates, and documentation: [github.com/kodxana/OhMyRunPod-python](https://github.com/kodxana/OhMyRunPod-python)
</Note>

## Key features

<CardGroup cols={2}>
<Card title="Easy File Transfer" icon="arrow-right-arrow-left">
Simplified file transfer between your local machine and Runpod instances using SFTP or Croc
</Card>
<Card title="Automatic SSH Setup" icon="key">
Automatically configures SSH access with secure key generation and password management
</Card>
</CardGroup>

## Requirements

Before getting started with OhMyRunPod, make sure you have:

- An active Runpod account with a running Pod.
- Python 3.6 or higher installed on your local machine.
- Port 22 exposed in your Pod's TCP ports configuration (for SFTP transfers).

## Installation

Install OhMyRunPod using pip:

```bash
pip install OhMyRunPod
```

## Quick start: file transfer

The most common use case for OhMyRunPod is transferring files between your local machine and Runpod instances.

<Steps>
<Step title="Ensure Port 22 is Exposed">
Before starting, make sure port 22 is exposed in your Pod. This is required for SFTP transfers.

To expose port 22:
1. Go to your Pod in the Runpod console
2. Click **Edit Pod**
3. Under the **TCP Ports** section, add port `22`
4. Save the changes

<Warning>
**Data loss warning**: Changing TCP ports will restart your pod and **erase all data outside of `/workspace`**. Ensure all important files are in `/workspace` (the default persistent directory) before making port changes.
</Warning>
</Step>

<Step title="Run the file transfer command">
Execute the file transfer command:
```bash
OhMyRunpod --file-transfer
```
</Step>

<Step title="Choose a transfer method">
You'll be presented with transfer options:

<Frame>
<img src="/images/ohmyrunpod-file-transfer-selection.png" alt="File transfer selection menu showing Croc and SFTP options" />
</Frame>

- **Croc**: Easy peer-to-peer file transfer (recommended for quick transfers)
- **SFTP**: Traditional file transfer via SSH/SFTP clients (recommended for persistent connections)

Use arrow keys to navigate and Enter to select.
</Step>

<Step title="SFTP setup complete">
If you choose SFTP, OhMyRunpod will automatically:
- Install and configure SSH server
- Set up SSH keys
- Generate a secure password
- Create connection scripts for your operating system

<Frame>
<img src="/images/ohmyrunpod-sftp-confirm.png" alt="SFTP setup confirmation showing connection details and instructions" />
</Frame>

The tool provides:
- Complete connection information (server address, port, username, password)
- Platform-specific connection instructions for FileZilla, WinSCP, Command Line, and VS Code
- Password saved to `/workspace/root_password.txt` for reference
</Step>
</Steps>

## What can you do after setup?

Once SFTP is configured, you can:

- **Upload datasets**: Transfer training data directly to `/workspace/`
- **Download models**: Pull trained checkpoints back to your local machine
- **Sync code**: Use VS Code Remote-SSH for live editing
- **Backup files**: Regular backups of important work
- **Use any SFTP client**: FileZilla, WinSCP, or command line tools


## Troubleshooting

<AccordionGroup>
<Accordion title="Connection refused on port 22">
**Problem:** Cannot connect via SFTP, getting "Connection refused" error

**Solution:**
1. Ensure port 22 is exposed in your Pod (Pod > Edit Pod > TCP Ports > Add 22)
2. Restart your Pod after adding the port
3. Re-run `OhMyRunpod --file-transfer` to reconfigure SSH
</Accordion>

<Accordion title="Permission denied when connecting">
**Problem:** Getting "Permission denied" when trying to connect via SFTP

**Solution:**
1. Check that you're using the correct password from `/workspace/root_password.txt`
2. Ensure you're using username `root`
3. Verify the port number matches what's shown in the connection details
</Accordion>

<Accordion title="SFTP client can't find host">
**Problem:** SFTP client cannot resolve the host address

**Solution:**
1. Verify your Pod is running and not stopped
2. Check that you're using the correct IP address and port from the connection details
3. Ensure your network allows outbound connections to the Runpod IP range
</Accordion>
</AccordionGroup>

## Tips

- The password is automatically saved to `/workspace/root_password.txt` for your reference.
- For large file transfers, use a dedicated SFTP client like FileZilla or WinSCP instead of the command line.

## More community solutions

Have a tool that solves common Runpod problems? Community contributions are welcome! Share your solutions in the [Runpod Discord](https://discord.gg/runpod) community.

## Related Runpod documentation

- [SSH Configuration Guide](/pods/configuration/use-ssh)
- [Managing Pods](/pods/manage-pods)
- [Connecting to Pods](/pods/connect-to-a-pod)
49 changes: 49 additions & 0 deletions community-solutions/overview.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
title: "Introduction"
description: "Community-created tools and solutions by and for Runpod users"
icon: "flask"
---

This section showcases innovative tools and solutions created by the Runpod community. These are tools and workflows developed by users who encountered common challenges and built creative solutions to share with others.

While these tools and solutions are not officially maintained by Runpod, we highlight them here because they demonstrate the ingenuity of our community and can be valuable resources for users facing similar challenges.

## Using community solutions

Community tools and solutions are provided as-is and maintained by their creators. While we showcase them for their utility, please note that you should test in a development environment first, review the source code when available, report issues to the tool creators, and ultimately use them at your own discretion.

## Featured tools & solutions

Explore these community-created tools that can enhance your Runpod workflow:

<CardGroup cols={1}>
<Card
title="OhMyRunPod"
icon="rocket"
href="/community-solutions/ohmyrunpod/overview"
>
Python package for easy SFTP setup and file transfers. Simplifies connecting to your Pods with file transfer software like FileZilla.
</Card>

<Card
title="SSH password setup & migration tools"
icon="arrows-rotate"
href="/community-solutions/ssh-password-migration/overview"
>
Bash and Python scripts for migrating data between Runpod instances when you need to move Pods or backup data.
</Card>

<Card
title="CopyParty file manager"
icon="folder-open"
href="/community-solutions/copyparty-file-manager/overview"
>
Web-based GUI for easy file browsing, uploading, downloading, and media viewing on Runpod without complex command-line operations.
</Card>
</CardGroup>

Browse through our community tools section in the sidebar for detailed documentation on each tool's purpose, installation, and usage.

## Contributing

Built something useful on Runpod? The community would love to learn about it! Share your tools and get feedback in the [Runpod Discord](https://discord.gg/runpod).
Loading