Freelancer: HostAfrica VPS Setup & Python-Agent + Tampermonkey Integration

Job ID: 39558472

Budget: $250 – $750 USD

Project Description
We are looking for an experienced DevOps/Full-Stack freelancer to fully provision and configure our new Ubuntu 22.04 VPS at HostAfrica. The goal is a turnkey infrastructure where:
1. Our domains (e.g. wanyumba.com) point to the VPS via DNS.
2. Nginx is installed and serves as a reverse-proxy for HTTP/HTTPS.
3. A Python agent (Flask/Gunicorn/Systemd) runs continuously as a system service.
4. A Tampermonkey userscript in the browser relays ChatGPT-issued commands to that agent.
5. The agent records logs and status updates in a simple admin dashboard (Cockpit) viewable in the browser.

Once set up, I will control the entire marketplace purely via chat:
- I tell ChatGPT what code I need,
- ChatGPT wraps it in {{execute: …}},
- the userscript sends it to the agent,
- the agent runs it and shows results in the dashboard.
Scope of Work / Deliverables
1. 1. VPS Provisioning:
- Ubuntu 22.04 LTS installation & system updates
- UFW firewall setup (allow SSH, HTTP, HTTPS)
- Creation of a non-root sudo user
2. 2. DNS Configuration:
- Guide and implementation: create A/CNAME records so that wanyumba.com (and www) resolve to the VPS IP
3. 3. Web Server:
- Install Nginx
- Configure reverse-proxy rules for:
- Port 80 → Flask/Gunicorn on port 5000
- SSL via Let’s Encrypt (Certbot) for HTTPS
4. 4. Python Agent:
- Create project directory and virtualenv
- Implement a minimal Flask app with routes / and /agent
- Install and configure Gunicorn + systemd service (agent.service)
- Provide example endpoints for sending commands and collecting logs
5. 5. Admin Dashboard (Cockpit):
- Within the Flask app, add a protected route /dashboard
- Display recent commands, logs, agent health/status, errors
- Protect it with simple authentication (Basic Auth or static password)
6. 6. Tampermonkey Script:
- Installation instructions for Chrome/Firefox
- Userscript that scans the ChatGPT UI for {{execute:…}} tokens
- Sends them via fetch() to http(s)://wanyumba.com:5000/agent
- Optionally, allow clicking a link to view the dashboard or poll /dashboard/api for status
7. 7. Documentation:
- Step-by-step guide for future maintenance
- How to add new Python commands
- How to update or extend the Tampermonkey script
8. 8. Self-Update Endpoint:
- Implement a POST /update-agent route in the Flask app that:
1. Runs git pull in the agent directory
2. Restarts the systemd service (agent.service)
3. Returns the git output and restart status
- Extend the Tampermonkey script to recognize {{execute:update-agent}} and send it to /update-agent.
- Enables us to deploy any git push purely via chat:
{{execute:update-agent}}
Required Skills
- Linux server administration (Ubuntu 22.04, UFW, systemd)
- Web server & SSL management (Nginx, Certbot)
- Python web frameworks (Flask or FastAPI)
- Process management (Gunicorn, systemd)
- JavaScript (Tampermonkey, Fetch API)
- Basic frontend templating (HTML/CSS, Jinja2)
- Strong documentation skills in English
How to Apply
Please send us:
1. A brief portfolio of similar projects
2. Your rate (hourly or flat-fee) to complete the entire setup
3. Your availability (start date and estimated timeline)
Related categories: Python System Admin Linux Software Architecture Ubuntu