YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
βοΈ aipy-cloud β Cloud AppImage Deployment Kit
Deploy aipy-pro (or any AppImage) to a cloud VM and connect from NetHunter via VNC over SSH tunnel.
π Structure
aipy-cloud/
βββ .env.example β copy to .env, fill in values
βββ requirements.txt β Python deps (paramiko, rich, clickβ¦)
βββ bootstrap.sh β ONE-TIME: create venv + .env + SSH key
βββ manage.py β Python CLI: deploy / start / vnc / statusβ¦
βββ scripts/
β βββ nethunter.sh β Run from NetHunter: full interactive pipeline
β βββ server_setup.sh β Run ON server: installs all deps + starts VNC
β βββ quick_deploy.sh β Single-command deploy (reads .env)
βββ services/
β βββ aipy-pro.service β systemd unit (auto-start on reboot)
βββ config/
β βββ vnc_xstartup β VNC desktop startup script
βββ logs/ β Local log output
π Quick Start
From NetHunter (interactive wizard β recommended)
chmod +x bootstrap.sh scripts/nethunter.sh scripts/server_setup.sh
./bootstrap.sh # creates venv + .env + SSH key
nano .env # fill in SERVER_IP, VNC_PASSWORD
./scripts/nethunter.sh # uploads + deploys + opens VNC tunnel
From any Linux/macOS terminal
./bootstrap.sh # first time only
source .venv/bin/activate # activate venv
nano .env # fill in SERVER_IP etc.
python manage.py deploy # upload AppImage + install server deps
python manage.py start # start VNC + AppImage on server
python manage.py vnc # open SSH tunnel β connect VNC client
βοΈ .env Configuration
| Variable | Default | Description |
|---|---|---|
SERVER_IP |
(required) | Cloud VM public IP |
SERVER_USER |
ubuntu |
SSH username |
SERVER_PORT |
22 |
SSH port |
SSH_KEY |
~/.ssh/id_ed25519 |
Path to private key |
APPIMAGE_LOCAL_PATH |
~/Downloads/aipy-pro-*.AppImage |
Local AppImage |
VNC_PASSWORD |
changeme123 |
Change this! |
VNC_GEOMETRY |
1280x720 |
VNC resolution |
LOCAL_VNC_PORT |
15901 |
Local port for SSH tunnel |
USE_SSH_TUNNEL |
true |
Tunnel VNC over SSH (secure) |
APPIMAGE_EXTRACT |
false |
Extract instead of FUSE (for strict VMs) |
π₯οΈ manage.py Commands
python manage.py deploy Upload AppImage + install all server deps
python manage.py start Start VNC session + launch AppImage
python manage.py vnc Open SSH tunnel, print VNC connection info
python manage.py stop Stop AppImage + VNC on server
python manage.py status Live status table (SSH, process, memory, disk)
python manage.py logs Tail ~/aipy.log on server
python manage.py ssh Open interactive SSH shell
python manage.py keycopy Copy SSH public key to server
python manage.py service Install aipy-pro as systemd service
python manage.py clean Remove AppImage + logs from server
π VNC Connection from NetHunter
After python manage.py vnc (or ./scripts/nethunter.sh):
- Keep the SSH tunnel running in one terminal
- Open bVNC or VNC Viewer on your phone
- Connect to:
localhost:15901 - Password: value of
VNC_PASSWORDin.env
π Troubleshooting
| Problem | Fix |
|---|---|
libfuse2 missing |
Script tries libfuse2 then libfuse3 automatically |
| AppImage won't start | Set APPIMAGE_EXTRACT=true in .env β uses --appimage-extract |
| VNC blank screen | Check ~/aipy.log on server; python manage.py logs |
| SSH key rejected | Run python manage.py keycopy or add key via cloud console |
| Port 5901 blocked | Keep USE_SSH_TUNNEL=true β tunnel goes over port 22 |
| macOS bash error | brew install bash then /opt/homebrew/bin/bash nethunter.sh |
βοΈ Cloud Providers
Works with any Linux VM that has SSH access:
| Provider | Free Tier | SSH User |
|---|---|---|
| Oracle Cloud | β Always Free (4 OCPU / 24GB) | ubuntu or opc |
| AWS EC2 | β 12 months free (t2.micro) | ubuntu or ec2-user |
| Google Cloud | β $300 credit | your-username |
| Hetzner | β β¬20 credit | root |
| DigitalOcean | β $200 credit | root |
| Linode/Akamai | β $100 credit | root |
π Security Notes
.envis set tochmod 600β never commit it to git- VNC is tunnelled over SSH β port 5901 stays closed
- SSH key authentication only β no password auth
- Run
sudo ufw enable && sudo ufw allow 22on the server
Inference Providers NEW
This model isn't deployed by any Inference Provider. π Ask for provider support