65aa9d66d3
ci: add Docker build and publish workflow
...
Add GitHub Actions workflow job to build and publish Docker images to GitHub Container Registry. Images are pushed on master branch commits and tags, with appropriate tagging strategy including semver, branch refs, and SHA.
2025-12-11 17:28:43 -06:00
e23c01e4fd
refactor: reorganize backend modules and create lib.rs
2025-12-11 17:22:05 -06:00
d4454d7367
refactor: extract handlers to handlers/ directory
2025-12-11 17:22:05 -06:00
1a2b8c4407
refactor: convert to Cargo workspace structure
2025-12-11 17:21:10 -06:00
702205e181
refactor(docker): optimize multi-stage build with cargo-chef and layer caching
...
Improves Docker build performance and security through better layer caching,
dependency pre-building, and a minimal non-root runtime container.
- Add cargo-chef for Rust dependency caching across demo and server builds
- Separate planner and builder stages for optimal layer reuse
- Use pnpm with frozen lockfile for reproducible frontend builds
- Switch to debian:12-slim runtime with non-root user (uid 1000)
- Add health check endpoint monitoring
- Strip release binaries to reduce image size
- Pre-compress frontend assets during build
2025-12-11 12:18:57 -06:00
006055cb7f
chore: add Justfile, apply clippy fixes, add frontend type checking
...
- Add Justfile with comprehensive development workflow commands (check,
lint, build, docker, etc.)
- Add @astrojs/check and typescript dependencies for frontend type
checking
2025-12-11 12:15:51 -06:00
8129975ecc
chore(deps): resolve cargo-audit warnings, update dependencies
2025-12-11 12:07:22 -06:00
3ba9250cca
refactor: apply clippy suggestions
2025-12-11 12:01:45 -06:00
82ac8caa88
refactor: migrate to envy for type-safe config parsing
...
Replace manual environment variable parsing with envy for structured configuration. Updates dotenv to dotenvy (maintained fork), adds dedicated Config struct with Railway-specific settings, and consolidates all environment variable access. Upgrades reqwest to 0.12.
2025-12-11 11:55:39 -06:00
a9e3ab8337
perf: optimize release profile for smaller binary size
...
Configure release profile with aggressive size optimizations:
- Set opt-level to 'z' for minimum binary size
- Enable LTO for better optimization across crates
- Strip debug info to reduce final binary size
- Use panic=abort to eliminate unwinding machinery
- Reduce codegen units to 1 for maximum optimization
- Keep overflow checks for safety in production
2025-12-11 11:51:30 -06:00
24c2c2b3c5
ci: add Renovate config and GitHub Actions quality workflow
...
Add automated dependency management with Renovate and comprehensive CI
checks including formatting, clippy, audit, and frontend build validation.
2025-12-11 11:50:59 -06:00
280f01bb28
feat: dynamic deployment id fetching in debug mode for development
2025-08-20 18:03:05 -05:00
1ffdd2b6eb
fix(demo): avoid logging assumptions about state
2025-08-20 17:51:16 -05:00
e0bb0f52f0
feat: dynamically set PORT from Dockerfile, add .env.example
2025-08-20 17:40:09 -05:00
d20f298da5
feat: fetch builds logs for Railway on startup
2025-08-20 17:40:09 -05:00
8431290ea7
fix: RAILWAY_PUBLIC_DOMAIN envvar not resolving, add fallback & warning, change Dockerfile interpolation
2025-08-20 16:45:18 -05:00
d0b17fdc94
Improve README, add badges, add demo links, add Security section
2025-01-06 16:09:10 -06:00
eed66f96d7
Use proper buildLog variable for download button
2025-01-06 15:37:47 -06:00
b22d92dfb3
Add screenshots to README
2025-01-06 15:37:29 -06:00
cdbc474819
Pass ARG RAILWAY_PUBLIC_DOMAIN
2025-01-02 16:56:06 -06:00
a5e93f2afc
debug log RAILWAY_PUBLIC_DOMAIN
2025-01-02 16:46:30 -06:00
8e0ca95c8a
Use buildLog href
2025-01-02 15:54:06 -06:00
e68384abcf
Use connectionStatus enum properly, further improve mobile scaling for screen-sm basis
2025-01-02 15:46:42 -06:00
721d0afc73
Add reconnection option, prevent autoplay, remove state on disconnect, mobile height adjustment
2025-01-02 15:40:58 -06:00
f18f4a0c7c
Finish up highlight, minor increase in time, switch to react-use-webhook, client only rendering
2025-01-02 15:21:29 -06:00
178eb40c1a
animate-pulse-border
2025-01-02 14:55:35 -06:00
bb224eed43
Audio via ref, DownloadButton key, highlight by token not index, deleteDownload onClick
2025-01-02 14:55:26 -06:00
d71433fa52
Fix minor react/badge issues
2025-01-02 14:54:56 -06:00
452f663884
Add delete_download incoming message handler, add future message logging for transmit
2025-01-02 14:39:27 -06:00
7736b0694e
Fix CORS options/ordering
2025-01-02 13:46:27 -06:00
0663d38834
Remove unnecessary logs, switch to simple window.open download, suppressHydrationWarning
2025-01-02 13:46:02 -06:00
2a2daefd8c
DownloadButton progress
2025-01-02 13:33:40 -06:00
5f2dcfa5c9
build log inte gration, delete-download-token name, fix className
2025-01-02 13:33:17 -06:00
4ae4e2c64e
build_log sent with executables, use Same-Site = None in dev, partitioned cookies, CORS OPTIONS
2025-01-02 13:32:34 -06:00
3de98ca7e2
class vs className
2025-01-02 10:39:30 -06:00
3e97becf67
Rename DeleteSessionToken to DeleteDownloadToken
2025-01-02 10:37:28 -06:00
e61c4715e1
Switch from preact to react
2025-01-02 10:36:58 -06:00
e8fe3e8ec9
Setup websocket reconnection logic
2025-01-01 11:21:32 -06:00
d2ec94f578
demo: Use strong binary size reduction for release profile
2024-12-23 21:14:39 -06:00
dc332d954b
server: switch to hexadecimal form, use proper download token instead of session id as key, stop panicing on unavailable websocket
2024-12-23 21:10:33 -06:00
a4f8aa1f23
demo: separate request function, switch to 0xABCD hex form, add debug / forced token env, add port to localhost default host
2024-12-23 21:09:52 -06:00
846a9adb51
fix preact.devtools config
2024-12-23 20:24:58 -06:00
c288c52517
include const time host info for reqwest endpoint
2024-12-23 20:24:50 -06:00
0ab8ad9660
Copy send_message result for send_state
2024-12-23 19:56:12 -06:00
bc39909f3c
Apply Session middleware to all but /notify with separate router, improve /notify key error handling
2024-12-23 19:53:26 -06:00
de3dacda77
Fix notify sending TokenAlert to incorrect session id, use 'notify' id for TokenAlert name
2024-12-23 19:36:51 -06:00
b5a5c47ece
Use query not param, anyhow for errors, websocket tx result tracing
2024-12-23 19:22:42 -06:00
61efe6c194
Add /notify route, fix filename extension generation, Message u32 id, 08x format pad
2024-12-23 19:13:22 -06:00
45bd617ba7
Remove extra type, fix deleteDownload type for useSocket
2024-12-23 19:12:20 -06:00
f228cbc7e4
Add token request step to demo with reqwest
2024-12-23 19:12:09 -06:00