Commit graph

  • 1e62a44c16
    docs(deploy): replace globals overlay description with script overlays master mwiegand 2026-05-08 15:56:24 +0200
  • e51a4d58a4
    chore(deploy): provision l4d2-sandbox + bubblewrap; drop globals refresh timer mwiegand 2026-05-08 15:54:57 +0200
  • 75e703e1a4
    feat(deploy): left4me-script-sandbox helper + sudoers fragment mwiegand 2026-05-08 15:53:21 +0200
  • d351bcbee5
    feat(l4d2-web): script overlay UI mwiegand 2026-05-08 15:50:36 +0200
  • be22744d54
    feat(l4d2-web): script overlay routes (script update / wipe / build) mwiegand 2026-05-08 15:48:15 +0200
  • 879c54cbda
    refactor(l4d2-web): drop refresh_global_overlays from scheduler mwiegand 2026-05-08 15:45:34 +0200
  • 9f476e3456
    refactor(l4d2-web): drop global-overlays subsystem in favor of script type mwiegand 2026-05-08 15:43:41 +0200
  • d29afa41fa
    feat(l4d2-web): ScriptBuilder + BUILDERS registry update mwiegand 2026-05-08 15:39:13 +0200
  • 43dc9b0ccf
    feat(l4d2-web): script overlay schema — add overlay.script + last_build_status, drop globals tables mwiegand 2026-05-08 15:33:04 +0200
  • 78ead0b41d
    docs(specs): script overlay type — design + implementation plan mwiegand 2026-05-08 15:27:14 +0200
  • 9985ecc56c
    chore(deploy): cleanup left4me-web hardening + docs for kernel overlayfs mwiegand 2026-05-08 12:29:49 +0200
  • 172e574a00
    chore(deploy): drop fuse-overlayfs apt dep + one-shot migrate upper/work mwiegand 2026-05-08 12:28:00 +0200
  • 93a60befb6
    refactor(l4d2-host): start/stop/delete go through OverlayMounter; drop fuse module mwiegand 2026-05-08 12:26:28 +0200
  • d5b321b557
    feat(l4d2-host): KernelOverlayFSMounter + left4me-overlay helper mwiegand 2026-05-08 12:23:58 +0200
  • db120d77d3
    docs(specs): kernel overlayfs migration design + plan mwiegand 2026-05-08 12:19:26 +0200
  • d5d710afa7
    fix(l4d2-host): make stop_instance idempotent on the unmount step mwiegand 2026-05-08 11:24:04 +0200
  • 38548ab0d7
    chore(deploy): raise gunicorn thread pool to 32 for SSE headroom mwiegand 2026-05-08 11:19:03 +0200
  • 4552af6544
    fix(l4d2-web): keep SSE log stream from pinning gunicorn threads mwiegand 2026-05-08 11:18:56 +0200
  • ffc4cdbd7d
    refactor(l4d2-web): remove legacy external overlay type mwiegand 2026-05-08 09:31:04 +0200
  • 92d6ebbe82
    feat(l4d2-web): managed global map overlays with daily refresh mwiegand 2026-05-08 08:05:14 +0200
  • 4f78574edd
    fix(l4d2-web): keep workshop refresh responsive mwiegand 2026-05-07 17:31:12 +0200
  • 0e83ee07d7
    fix(deploy): make test deployments safe to rerun mwiegand 2026-05-07 17:16:58 +0200
  • b2a8d3d5e0
    feat(deploy): workshop_cache provisioning mwiegand 2026-05-07 16:53:49 +0200
  • ac020d1e77
    feat(l4d2-web): initialize-time guard for uncached workshop items mwiegand 2026-05-07 16:53:04 +0200
  • df1ccb4cca
    feat(l4d2-web): workshop overlay UI (routes + templates) mwiegand 2026-05-07 16:50:54 +0200
  • 38a6fbbe1e
    feat(l4d2-web): worker support for build_overlay and refresh_workshop_items mwiegand 2026-05-07 16:44:10 +0200
  • 700940d578
    feat(l4d2-web): overlay builder registry with workshop builder mwiegand 2026-05-07 16:40:30 +0200
  • f0230e17d3
    feat(l4d2-web): overlay path helpers and creation mwiegand 2026-05-07 16:38:39 +0200
  • c6b41429ee
    feat(l4d2-web): steam workshop API client and downloader mwiegand 2026-05-07 16:37:39 +0200
  • 2543a05c12
    feat(l4d2-web): typed overlays + workshop schema migration mwiegand 2026-05-07 16:35:13 +0200
  • b46f52258d
    docs(workshop): spec and plan for steam workshop overlays mwiegand 2026-05-07 16:25:13 +0200
  • d18b397330
    fix(host): create ~/.steam/sdk32 and sdk64 symlinks during install mwiegand 2026-05-07 02:11:27 +0200
  • 1968684c03
    fix(deploy): MountFlags=shared on web service for fuse mount propagation mwiegand 2026-05-07 02:01:24 +0200
  • 593611e194
    fix(deploy): drop PrivateTmp on web service so fuse mounts propagate mwiegand 2026-05-07 01:57:43 +0200
  • 56b9523d88
    fix(deploy): drop NoNewPrivileges on web service so FUSE mounts work mwiegand 2026-05-07 01:51:39 +0200
  • d14ed9c117
    feat(web): blueprint-prefilled create-server flow + empty-state CTA mwiegand 2026-05-07 01:47:33 +0200
  • 923a1840f4
    feat(web): forms in modals, edit/delete on detail pages, port auto-assign mwiegand 2026-05-07 01:30:33 +0200
  • 7d9939c71d
    fix(deploy): exclude macOS AppleDouble files from deploy archive mwiegand 2026-05-07 00:58:29 +0200
  • 0210ecd301
    config: allow SESSION_COOKIE_SECURE override and disable on test deploy mwiegand 2026-05-07 00:56:48 +0200
  • f81e839ba2
    security: harden boundary inputs and production defaults harden-boundary-inputs mwiegand 2026-05-07 00:53:33 +0200
  • 3809f85795
    fix: load environment variables for alembic upgrade in deploy script to ensure database url is set properly mwiegand 2026-05-06 21:01:35 +0200
  • 441c1db79b
    fix: change directory before running alembic upgrade in deploy script to avoid pyproject.toml permission issues mwiegand 2026-05-06 21:00:59 +0200
  • fa566db820
    fix: apply alembic migrations automatically on deployment mwiegand 2026-05-06 21:00:25 +0200
  • c01359002a
    fix: enable batch operations in alembic for sqlite unique constraints mwiegand 2026-05-06 20:59:18 +0200
  • 7e5a8f89b5
    docs: add server port constraint implementation plan mwiegand 2026-05-06 20:53:50 +0200
  • 114b141e2a
    test: add test for duplicate port constraint mwiegand 2026-05-06 20:53:04 +0200
  • fa002ce0f2
    feat: enforce unique port constraint on servers mwiegand 2026-05-06 20:52:46 +0200
  • 833ae318cf
    fix(deploy): add venv to PATH in left4me-web systemd service mwiegand 2026-05-06 20:45:37 +0200
  • 1604859f41
    feat(host): add step logging to steam_install mwiegand 2026-05-06 20:36:24 +0200
  • 005d2d8458
    fix(host): enforce flush=True to prevent pipeline block buffering mwiegand 2026-05-06 20:30:00 +0200
  • 27a905c22b
    feat(web): add boundary log lines to job worker execution mwiegand 2026-05-06 20:12:26 +0200
  • 38d04e8551
    feat(host): emit steps during start, stop, and delete operations mwiegand 2026-05-06 20:07:00 +0200
  • d977098344
    feat(host): emit steps during initialize_instance mwiegand 2026-05-06 20:02:02 +0200
  • 700b5be6f8
    feat(host): add _emit_step helper for lifecycle logging mwiegand 2026-05-06 19:57:56 +0200
  • ee144fad96
    feat(l4d2-web): add server creation form mwiegand 2026-05-06 19:41:04 +0200
  • bbfc528354
    feat(deploy): add production-like test deployment mwiegand 2026-05-06 19:30:10 +0200
  • de86139323
    feat(l4d2): add l4d2ctl host command boundary mwiegand 2026-05-06 16:35:20 +0200
  • a347829608
    feat(l4d2-web): add job pages and cancellation mwiegand 2026-05-06 15:05:13 +0200
  • 91d042cf33
    feat(l4d2-web): execute queued lifecycle jobs mwiegand 2026-05-06 14:08:18 +0200
  • df680f6226
    fix(l4d2-web): reject encoded unsafe redirects mwiegand 2026-05-06 13:24:04 +0200
  • 58fb8b2b63
    fix(l4d2-web): harden auth redirect targets mwiegand 2026-05-06 13:01:48 +0200
  • deca2c9153
    docs(l4d2-web): update auth contract mwiegand 2026-05-06 12:55:38 +0200
  • 0aca36506f
    feat(l4d2-web): add login page and safe redirects mwiegand 2026-05-06 12:52:22 +0200
  • 942dada807
    docs(l4d2-web): plan auth pages mwiegand 2026-05-06 12:48:03 +0200
  • 84f325bb03
    chore(l4d2-web): remove obsolete admin overlay template mwiegand 2026-05-06 12:44:06 +0200
  • 08b32bb26f
    docs(l4d2-web): design auth pages mwiegand 2026-05-06 12:40:15 +0200
  • 07495f9319
    docs(l4d2-web): update ui color contract mwiegand 2026-05-06 12:10:15 +0200
  • 4b326736fe
    feat(l4d2-web): add admin landing and system pages mwiegand 2026-05-06 12:09:36 +0200
  • feab09db07
    feat(l4d2-web): add form-based blueprint editor mwiegand 2026-05-06 12:09:08 +0200
  • 71004a9deb
    feat(l4d2-web): add server pages and lifecycle forms mwiegand 2026-05-06 12:08:19 +0200
  • 6559cf314e
    feat(l4d2-web): consolidate overlay catalog page mwiegand 2026-05-06 12:07:28 +0200
  • 881b6635f9
    feat(l4d2-web): add neutral shell and theme tokens mwiegand 2026-05-06 12:06:23 +0200
  • 98872727a7
    chore(l4d2): add worktree constraint and update color contract mwiegand 2026-05-06 11:57:04 +0200
  • d090750a50
    docs(l4d2-web): plan functional web ui mwiegand 2026-05-06 11:34:23 +0200
  • a766fe631d
    chore: ignore code index files mwiegand 2026-05-05 23:48:39 +0200
  • 288eda7c37
    chore(l4d2): flatten component layout mwiegand 2026-05-05 23:47:06 +0200
  • 7bac34c886
    docs(l4d2): document host prerequisites mwiegand 2026-05-05 23:30:34 +0200
  • 16412f37f2
    fix(l4d2): stabilize host smoke lifecycle mwiegand 2026-05-05 23:23:26 +0200
  • 2621b56627
    chore: ignore local sqlite runtime artifacts mwiegand 2026-04-23 01:24:53 +0200
  • d76d72f37e
    docs(l4d2-web): finalize blueprint-driven ui and deployment contracts mwiegand 2026-04-23 01:23:17 +0200
  • ec74563705
    feat(l4d2-web): add csrf, rate limiting, and sqlite reliability settings mwiegand 2026-04-23 01:19:29 +0200
  • f9c98506bd
    feat(l4d2-web): add live server logs and desired-vs-actual status model mwiegand 2026-04-23 01:16:37 +0200
  • 271b2d347c
    feat(l4d2-web): persist command logs and stream them with sse mwiegand 2026-04-23 01:15:12 +0200
  • fd320879c8
    feat(l4d2-web): add async scheduler with lock rules and crash recovery mwiegand 2026-04-23 01:13:51 +0200
  • cb68a1f7b2
    feat(l4d2-web): resolve live-linked blueprints to runtime specs via l4d2host mwiegand 2026-04-23 01:12:45 +0200
  • a5a3f66b34
    feat(l4d2-web): add server creation and blueprint reassignment routes mwiegand 2026-04-23 01:11:07 +0200
  • 896e456513
    feat(l4d2-web): add private blueprint CRUD with in-use deletion guard mwiegand 2026-04-23 01:09:58 +0200
  • d0614b90fb
    feat(l4d2-web): add admin overlay catalog CRUD with path validation mwiegand 2026-04-23 01:08:41 +0200
  • a516402163
    feat(l4d2-web): add public auth and admin bootstrap command mwiegand 2026-04-23 01:07:16 +0200
  • 4e9c0172ef
    feat(l4d2-web): add sqlite schema including blueprints and job logs mwiegand 2026-04-23 01:05:14 +0200
  • 4193ce3b4e
    feat(l4d2-web): scaffold flask app and health endpoint mwiegand 2026-04-23 01:02:33 +0200
  • 466abe66ee
    docs(l4d2): finalize v1 CLI contracts and web-facing read APIs mwiegand 2026-04-23 01:01:14 +0200
  • a6c4a6c50f
    feat(l4d2): add status and journald log read APIs mwiegand 2026-04-23 01:00:02 +0200
  • 270f31f6e7
    feat(l4d2): implement start stop delete lifecycle with callback support mwiegand 2026-04-23 00:58:56 +0200
  • 60bb709916
    feat(l4d2): implement initialize flow and systemd user template management mwiegand 2026-04-23 00:57:00 +0200
  • 3c92721973
    feat(l4d2): implement callback-aware install command mwiegand 2026-04-23 00:55:36 +0200
  • 60de361706
    feat(l4d2): add callback-capable streaming process runner mwiegand 2026-04-23 00:54:55 +0200
  • 7d3cf66ed4
    feat(l4d2): add spec parser with required port and permissive fields mwiegand 2026-04-23 00:53:59 +0200
  • f2ef7e2f24
    feat(l4d2): scaffold package and v1 CLI entrypoint mwiegand 2026-04-23 00:53:19 +0200
  • bf4d5b4f6d
    chore: ignore local worktree directory mwiegand 2026-04-23 00:51:06 +0200