# thePlug - plugger/proxy Barese icona di una presa della spina idk ## Architettura ``` FastAPI + MongoDB + Redis ``` ## Quick Setup (prod) ```bash bash <(curl -s https://git.reloia.uk/reloia/thePlug/raw/branch/master/setup.sh) ``` ## Setup Dev imposta le variabili d'ambiente ```bash cp .env.example .env # modifica le variabili nano .env ``` variabili auth richieste in `.env`: ```bash JWT_SECRET_KEY=change-this-secret JWT_ALGORITHM=HS256 JWT_EXPIRE_MINUTES=30 AUTH_USERNAME=admin AUTH_PASSWORD=change-this-password ``` avvia i servizi e il server locale ```bash docker compose up -d mongodb redis ``` ```bash fastapi dev app/main.py ``` accedi a FastAPI su: [FastAPI docs](http://localhost:3671/docs) ## Auth API Gli endpoint auth disponibili sono solo: - `POST /auth/login` - `POST /auth/logout` Esempio login: ```bash curl -X POST http://localhost:3671/auth/login \ -H "Content-Type: application/json" \ -d '{"username":"admin","password":"change-this-password"}' ``` L'access token ottenuto va inviato come bearer token: ```bash curl http://localhost:3671/proxy \ -H "Authorization: Bearer " ``` Esempio logout (revoca server-side del token): ```bash curl -X POST http://localhost:3671/auth/logout \ -H "Authorization: Bearer " ``` ## Documentazione per Sviluppo [MitMProxy examples](https://docs.mitmproxy.org/stable/addons/examples/)