Commit Graph
23 Commits
Author SHA1 Message Date
LeoVasanko 2d7e119161 server: listen on both loopback families for localhost.
Bind sockets ourselves and pass them to uvicorn (Server.serve(sockets) or the
ChangeReload/Multiprocess supervisors, same API uvicorn.run uses). localhost
expands to 127.0.0.1 and ::1 so clients reach the server regardless of how
localhost resolves; individual bind failures degrade with a warning. Reload
mode now serves all endpoints instead of only the first, multi-endpoint
configs no longer run lifespan twice, and unix sockets are cleaned up on
exit.
2026-09-13 05:36:40 +00:00
LeoVasanko 38d5402045 Enable colored access log, tracerite and other software when running under systemd/journald which support colors (journalctl -ocat) and can strip them off (any other output mode). Sets environment FORCE_COLOR to full color if conditions are met. This is intended to affect all other modules and child processes alike (set NO_COLOR or FORCE_COLOR to override). 2026-09-03 17:27:48 +00:00
LeoVasanko 4f09622241 Suppress watchfiles "INFO: 1 change detected" which is useless given we already get a WARNING about which file and Reloading... 2026-09-02 13:56:25 +00:00
LeoVasanko 8774224545 Apply lifespan error logging patch in reload/worker subprocesses too. 2026-08-31 20:04:25 +00:00
LeoVasanko cb742000a8 Render debug-mode HTTP errors with tracerite, replacing Starlette's formatter. 2026-08-31 20:00:39 +00:00
LeoVasanko e4c21109d9 Prettier logging of errors in lifespan startup/shutdown. 2026-08-31 19:23:59 +00:00
LeoVasanko 9c51b89226 Make missing frontend files non-fatal: log an error and serve the placeholder page instead of raising during lifespan startup 2026-08-31 18:48:27 +00:00
LeoVasanko d5e94a2186 Startup box: server.run() prints app name, version and connect URL in a rounded unicode box on stderr. Shared termwidth module for ANSI-aware unicode display width and padding. 2026-08-31 18:22:06 +00:00
LeoVasanko c65d8eaa12 Target project no longer depends on httpx but depends on ~matching fastapi-vue version. Ruff cleanup. 2026-08-31 17:07:49 +00:00
LeoVasanko cb0b1f067d A hack to silence INFO level log chatter from uvicorn, while still doing this via log config. 2026-08-31 16:22:16 +00:00
LeoVasanko 0bba199376 Implement a pretty logging config by default. Emoji levels. Fixes root logger info being lost and warning+ printing with lastResort without any formatting. Replaces uvicorn's default formatter and log config that the author is not willing to fix (any time soon). 2026-08-31 15:52:23 +00:00
LeoVasanko 4232304a00 Added TraceRite CLI error logging. Simplified logging setup. 2026-08-31 05:34:33 +00:00
LeoVasanko 77a34753d9 Add colored HTTP/WebSocket access logging to fastapi_vue.server.
run() gains access_log (default on) and log_config parameters.  When
enabled, uvicorn's own access log is disabled (access_log=False) and
replaced by an ASGI middleware (adapted from the uvicorn access-log
branch) that logs colored request lines, WebSocket open/close pairs,
and pre-accept rejections in open format.

log_config dicts (uvicorn's default or user-supplied) are patched
best-effort via a registered patch pipeline in fastapi_vue.logging:
swapping in our AccessFormatter, routing our output to a private
fastapi_vue.access logger (uvicorn gates its protocol-level access
logging on uvicorn.access.hasHandlers(), so that logger must stay
handlerless), and filtering stock WebSocket handshake chatter from
uvicorn.error.  Non-dict or structurally unexpected configs pass
through untouched.

The middleware is installed by patching Config.load/load_app, hooked
into AccessFormatter instantiation so reload/worker subprocesses
(which re-apply log_config without re-calling run()) are covered.
2026-08-31 04:16:43 +00:00
LeoVasanko 03aa31cedb Implement smarter reload handing on fastapi_vue.server(), simplify __main__, reload the main folder regardless of CWD. 2026-06-29 18:49:18 +00:00
LeoVasanko 15a6710c17 [lint] Format template after change. 2026-03-08 17:35:02 +00:00
LeoVasanko dcaf415032 Fix a typing issue with the fastapi-vue staticfiles module causing problems with SPA mode handler. 2026-03-08 17:30:42 +00:00
LeoVasanko 682d70cb23 Cleanup for ALL ruff checks, and re-ruff to target project settings when installing templates, avoiding formatting errors after patching. 2026-03-08 15:25:52 +00:00
LeoVasanko aac27da67c Suppress CancelledError along with KeyboardInterrupt as a normal exit from server.run(). 2026-02-18 17:50:34 +00:00
LeoVasanko 79e645a263 Add parse_endpoints helper function that handles complicated listen structures alike server.run() already did, returning a simple list of every endpoint. 2026-02-18 17:05:10 +00:00
LeoVasanko 0e12e3a531 Improved error message. 2026-02-10 19:51:05 +00:00
LeoVasanko fbed7873e5 [fastapi_vue] Further cleanup, wildcards for favicon. 2026-02-06 18:09:22 +00:00
LeoVasanko 008b3593db [fastapi_vue] StaticFiles cleanup: use app.debug rather than env variables; default assets caching. 2026-02-06 17:21:40 +00:00
LeoVasanko 0e4f8f65f2 Moved fastapi-vue project to fastapi-vue-setup repository, using common version numbering (starting with v0.7.0). 2026-02-02 19:51:45 +00:00