Server
- Create VPS (2 vCPU, 2-4GB RAM)
- Open ports 80/443 in firewall
- SSH hardening (keys only)
This setup publishes your installers and release files so customers can download from your domain. Example target: Ubuntu 22.04+ VPS.
downloads.your-domain.comssh ubuntu@your-server-ip
sudo mkdir -p /var/www/contextproxy/releases
sudo chown -R $USER:$USER /var/www/contextproxy
# from local machine
scp ContextProxy-windows.zip ubuntu@your-server-ip:/var/www/contextproxy/releases/
scp ContextProxy-macos.dmg ubuntu@your-server-ip:/var/www/contextproxy/releases/
scp ContextProxy-linux.tar.gz ubuntu@your-server-ip:/var/www/contextproxy/releases/
sudo apt update
sudo apt install -y nginx
sudo tee /etc/nginx/sites-available/contextproxy-downloads >/dev/null <<'NGINX'
server {
listen 80;
server_name downloads.your-domain.com;
root /var/www/contextproxy;
autoindex off;
location / {
try_files $uri $uri/ =404;
}
}
NGINX
sudo ln -s /etc/nginx/sites-available/contextproxy-downloads /etc/nginx/sites-enabled/contextproxy-downloads
sudo nginx -t
sudo systemctl reload nginx
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d downloads.your-domain.com
# verify auto-renew
sudo systemctl status certbot.timer
downloads.your-domain.com {
root * /var/www/contextproxy
file_server
}
sha256sum /var/www/contextproxy/releases/*Apply Nginx rate limiting to mitigate abuse and scraping.
Put Cloudflare in front for global caching and DDoS filtering.
If you also want to host the API itself, run UPtrim headless behind Nginx reverse proxy and expose only HTTPS.
python3 main.py --headless --host 127.0.0.1 --port 9099 --workers 2
sudo tee /etc/systemd/system/contextproxy.service >/dev/null <<'SERVICE'
[Unit]
Description=UPtrim API
After=network.target
[Service]
User=ubuntu
WorkingDirectory=/opt/contextproxy
ExecStart=/opt/contextproxy/.venv/bin/python /opt/contextproxy/main.py --headless --host 127.0.0.1 --port 9099 --workers 2
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
SERVICE
sudo systemctl daemon-reload
sudo systemctl enable --now contextproxy
sudo systemctl status contextproxy
sudo tee /etc/nginx/sites-available/contextproxy-api >/dev/null <<'NGINX'
server {
listen 443 ssl;
server_name api.your-domain.com;
location / {
proxy_pass http://127.0.0.1:9099;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
NGINX