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.