import paramiko, os c = paramiko.SSHClient() c.set_missing_host_key_policy(paramiko.AutoAddPolicy()) c.connect("140.44.4.71", username="root", key_filename=r'C:\Users\Snarf\.ssh\id_ed25519_snarfnet', timeout=10) sftp = c.open_sftp() remote_dir = "/var/lib/docker/volumes/nginx-proxy-manager_nginx-data/_data/topology" c.exec_command(f"mkdir -p {remote_dir}") local_html = os.path.abspath("docs/snarfnet_homelab_topology.html") local_png = os.path.abspath("docs/snarfnet_homelab_topology.png") print(f"Uploading HTML ({os.path.getsize(local_html)} bytes)...") sftp.put(local_html, f"{remote_dir}/snarfnet_homelab_topology.html") print(f"Uploading PNG ({os.path.getsize(local_png)} bytes)...") sftp.put(local_png, f"{remote_dir}/snarfnet_homelab_topology.png") sftp.close() # Verify files inside container stdin, stdout, stderr = c.exec_command("docker exec $(docker ps -q --filter name=nginx-proxy-manager_app) ls -la /data/topology") print("Container /data/topology:") print(stdout.read().decode()) # Check md5sum locally and remotely stdin, stdout, stderr = c.exec_command(f"md5sum {remote_dir}/*") print("Remote md5sum:\n", stdout.read().decode()) c.close()