Project Overview ================ The Evercycle API project is a Python-based middleware layer that provides both a command-line interface (CLI) and a RESTful HTTP server for interacting with the Evercycle backend API (``https://api.evercycle.io``). Project Structure ----------------- :: /opt/evercycle-api/ ├── evercycle-api/ # Markdown API specs & auth config │ ├── *.md # Endpoint documentation files │ ├── auth.properties # Saved access/id/refresh tokens │ └── config/ # Generated JSON configs per endpoint ├── src/ # Shared library code │ ├── api_client.py # Generic HTTP API client (requests) │ ├── api_runner.py # Config generator & batch runner │ ├── evercycle_api.py # Thin CLI wrapper for Evercycle │ └── evercycle_api_runner.py # Interactive TUI menu runner ├── verae-api/ # Flask REST server │ ├── api_server.py # Main Flask application │ ├── test_api_server.py # HTTP integration tests │ ├── test_create_api.py # Create-asset endpoint test │ └── requirements.txt # Python dependencies ├── Dockerfile ├── docker-compose.yml └── README.md Key Technologies ---------------- * **Python 3.12** * **Flask 2.3.3** — HTTP REST server * **Flask-CORS 4.0.0** — Cross-origin request handling * **Requests 2.31.0** — HTTP client library Deployment ---------- The Flask server is deployed as a systemd service inside Proxmox CT 400 (``evercycle-api``, IP ``10.1.10.173``). Caddy on the host reverse-proxies ``api.veraetime.net`` to CT 400 port 5000.