LeoVasanko
42adf6120d
Replace startupbox in code box with an actual screenshot.
2026-09-14 03:38:36 +00:00
LeoVasanko
5ab12187bd
Add new screenshot of a simulated My App run.
2026-09-14 03:05:17 +00:00
LeoVasanko
5d1ba2f58c
Add README images.
v1.6.0
2026-09-14 02:26:50 +00:00
LeoVasanko
cf2957ab8d
Add images for docs.
2026-09-14 02:19:03 +00:00
LeoVasanko
fbfd2ba1bb
Rewritten fastapi-vue-setup README.
2026-09-14 01:48:26 +00:00
LeoVasanko
ff33df0ebc
Rewritten fastapi-vue README. Add listen URLs on startup box default template.
2026-09-13 22:59:48 +00:00
LeoVasanko
dec5191157
Add fastapi_vue.env accessor with FASTAPI_VUE prefix
2026-09-13 21:24:51 +00:00
LeoVasanko
baab37ae2d
Startup box improvements.
2026-09-13 06:04:10 +00:00
LeoVasanko
ab2d721723
Devutil ready() now logs and raises RuntimeError on timeout.
2026-09-13 05:36:40 +00:00
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
d4f835428b
Update vite-plugin-fastapi.js formatting to match modern vue/prettier/biome defaults.
2026-09-13 04:32:02 +00:00
LeoVasanko
1a22ec9dce
devutil template made fully compatible and ruff-clean across python 3.11-3.14 target projects.
2026-09-13 04:12:13 +00:00
LeoVasanko
02b3890cd3
Proper error messages on npm and port check failures, avoid leaking asyncio tasks.
v1.5.0
2026-09-12 05:50:52 +00:00
LeoVasanko
4c0be1bfa7
Forward extra args to create-vue, e.g. for no-interactive use.
2026-09-12 05:15:50 +00:00
LeoVasanko
beca6806ef
Tidy up HTTP client; nowadays we have UTF-8 headers.
2026-09-12 04:56:18 +00:00
LeoVasanko
c25835f467
Rewritten devutil.ProcessGroup with proper handling of subprocess deaths
...
- Terminates instantly when vital process dies (e.g. backend doesn't start)
- Derived of TaskGroup, augmenting its functionality with similar semantics
2026-09-12 04:48:03 +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).
v1.4.2
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...
v1.4.1
2026-09-02 13:56:25 +00:00
LeoVasanko
372d91bf49
Pin fastapi-vue minimum patch version to that of fastapi-vue-setup when ran, to force upgrades.
2026-08-31 21:14:04 +00:00
LeoVasanko
b0b216b784
Run backend as module (python -m) in devserver instead of PATH-installed CLI.
v1.4.0
2026-08-31 20:26:30 +00:00
LeoVasanko
475a2cdc3c
Cleaner and non-deprecated typing for template app module. Avoids ruff errors with strict configurations.
2026-08-31 20:14:39 +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
be8dc0c513
Don't clear screen on vite startup as that hides our own startup banner.
2026-08-31 19:53:22 +00:00
LeoVasanko
e4c21109d9
Prettier logging of errors in lifespan startup/shutdown.
2026-08-31 19:23:59 +00:00
LeoVasanko
1287ba4077
Load tracerite for devserver script too.
2026-08-31 19:23:07 +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
5dbe9a0dcd
Ignore executable flag of the temporary file being used to build devserver script.
2026-08-31 15:52:56 +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
52ca3f4f49
Update project URLs.
2026-08-31 02:18:08 +00:00
LeoVasanko
ebc13c0ee4
Add ruff ignores for the check phase to avoid useless diagnostics.
v1.3.2
2026-08-26 01:07:24 +00:00
LeoVasanko
7a64d8f73b
Disable server: uvicorn header.
2026-08-25 23:42:21 +00:00
LeoVasanko
a5b7d88a89
Fix typo in devserver.py comment
...
'Tell the everyone' -> 'Tell everyone via environment'.
2026-08-25 23:41:46 +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
ec6a084969
Fix hardcoded project dir in template __main__.py (regression in commit 1b24a7).
2026-06-29 18:18:04 +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.
v1.3.1
2026-03-08 17:30:42 +00:00
LeoVasanko
79316eebd4
Rename build-frontend.py to buildhook.py.
v1.3.0
2026-03-08 15:40:49 +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
1aaf040db7
Make devserver backend health check endpoint configurable, preserved in upgrades and optional.
v1.2.0
2026-03-07 23:55:10 +00:00
LeoVasanko
aac27da67c
Suppress CancelledError along with KeyboardInterrupt as a normal exit from server.run().
v1.1.1
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.
v1.1.0
2026-02-18 17:05:10 +00:00
LeoVasanko
8b8a24a6b2
Determine app module path correctly even when in a submodule. A bit cleaner dev options.
v1.0.2
2026-02-11 20:41:36 +00:00
LeoVasanko
cb6017cedf
Find custom CLI main before looking up existing DEFAULT_PORT. Cleaner messages when Vue doesn't need patching.
2026-02-11 20:27:35 +00:00
LeoVasanko
fab4108e92
Cleaner devserver help message.
2026-02-11 20:06:36 +00:00