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.
- 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
- Python 3.6+
- Flask
- Pillow (PIL)
- SSH access to the remote server
You can install PyRemoteView directly from PyPI using pip:
pip install pyremoteview
This will install all required dependencies automatically.
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 .
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-serverOr manually add the content of
~/.ssh/id_rsa.pubto the remote server's~/.ssh/authorized_keysfile. -
Test your passwordless login:
ssh username@remote-serverYou should be able to log in without entering a password.
If you installed PyRemoteView from PyPI, you can start it directly from the command line:
pyremoteview --remote-host remoteserver --remote-path /path/to/images
python remote_gallery.py --remote-host remoteserver --remote-path /path/to/images
--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")
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
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;
}After starting the server, access the gallery by opening a web browser and navigating to:
http://localhost:8080
- 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
Access the debug page for detailed information about the server status, SSH connection, and cache:
http://localhost:8080/debug
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.