🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more

pyremoteview

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pyremoteview

Remote SSH or Local Image Gallery Viewer

1.0.2
Maintainers
1

PyPI version PyPI - Python Version License: MIT

PyRemoteView is a web-based application that allows you to remotely browse and view images stored locally on another server via SSH, with automatic thumbnail generation and caching for improved performance.

Features

  • Browse remote directories and view images via web interface
  • Automatic thumbnail generation for faster browsing
  • Local caching of images and thumbnails
  • Supports common image formats (JPG, PNG, GIF, WebP, BMP)
  • Responsive gallery with lightbox view and keyboard navigation
  • Debug interface for troubleshooting
  • Can be used to browse local files as well

Requirements

  • Python 3.6+
  • Flask
  • Pillow (PIL)
  • SSH access to the remote server

Installation

You can install PyRemoteView directly from PyPI using pip:

pip install pyremoteview

This will install all required dependencies automatically.

Manual Installation

If you prefer to install from source:

  • Clone or download this repository
  • Install required packages:
    pip install -r requirements.txt
    
  • Install the package:
    pip install .
    

Setting Up Passwordless SSH

For PyRemoteView to work properly, you need to set up passwordless SSH access to the remote server:

  • Generate an SSH key pair (if you don't already have one):

    ssh-keygen -t rsa -b 4096
    
  • Copy your public key to the remote server:

    ssh-copy-id username@remote-server
    

    Or manually add the content of ~/.ssh/id_rsa.pub to the remote server's ~/.ssh/authorized_keys file.

  • Test your passwordless login:

    ssh username@remote-server
    

    You should be able to log in without entering a password.

Usage

After PyPI Installation

If you installed PyRemoteView from PyPI, you can start it directly from the command line:

pyremoteview --remote-host remoteserver --remote-path /path/to/images

If Installed from Source

python remote_gallery.py --remote-host remoteserver --remote-path /path/to/images

Command Line Options

  • --port PORT: Port to run the server on (default: 8080)
  • --host HOST: Host to run the server on (default: 0.0.0.0)
  • --remote-host REMOTE_HOST: Remote host to fetch images from
  • --remote-path REMOTE_PATH: Path on remote host to browse
  • --proxy-path PROXY_PATH: Base path when accessed through a reverse proxy (e.g., "/sd_preview")

Serving Local Files

To browse images on your local machine, use localhost as the remote host:

python remote_gallery.py --remote-host localhost --remote-path /path/to/local/images

Using with a Reverse Proxy

If you're accessing PyRemoteView through a reverse proxy (e.g., Nginx), use the --proxy-path argument:

pyremoteview --remote-host remoteserver --remote-path /path/to/images --proxy-path="/your_proxy_path"

Example Nginx configuration:

location /your_proxy_path/ {
    proxy_pass http://localhost:8080/;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

Web Interface

After starting the server, access the gallery by opening a web browser and navigating to:

http://localhost:8080

Features:

  • Click on folders to navigate directories
  • Click on images to view them in a lightbox
  • Use arrow keys to navigate between images in lightbox view
  • Press Escape to exit lightbox view
  • Use "Clear Cache" button to refresh thumbnails and image cache

Troubleshooting

Access the debug page for detailed information about the server status, SSH connection, and cache:

http://localhost:8080/debug

Caching

The application caches thumbnails and recently viewed images in:

  • ~/.cache/pyremoteview/thumbnails
  • ~/.cache/pyremoteview/images

To clear the cache, use the "Clear Cache" button in the web interface or delete these directories.

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts