Tags
#python
Nginx and Gunicorn for Django: production config, static files and HTTPS
Deploy Django with Gunicorn behind Nginx: a complete HTTPS config, a socket with systemd, static and media files, the settings you need behind a proxy, and common errors.
Intermediate · 3 min read
Nginx reverse proxy for FastAPI and Uvicorn, with HTTPS and WebSockets
Run FastAPI behind Nginx: a complete HTTPS config, Uvicorn in a systemd service, proxy headers for the real client IP, a subpath, WebSockets, and common errors.
Intermediate · 3 min read
JWT "jwt expired" and "invalid signature": how to find out what is wrong with a token
Fix JWT "jwt expired" and "invalid signature": read the exp claim, check clock differences, the secret, HS256 vs RS256 and rotated keys, without turning verification off.
Intermediate · 5 min read
pip "error: externally-managed-environment": install Python packages the right way
Fix pip "externally-managed-environment" on Ubuntu 24.04 and Debian 12: use apt, a virtual environment or pipx, and know when --break-system-packages is acceptable.
Beginner · 3 min read