Commit Graph

17 Commits

Author SHA1 Message Date
t8y2 75c7e11f55 fix(docker): touch source files to force cargo recompilation
Docker COPY preserves original file timestamps, which can be older than
the dummy-source binary compiled in the dependency caching layer. Cargo
sees the sources as unchanged and skips recompilation, producing a 329KB
empty binary instead of the real web server.
2026-05-07 21:12:41 +08:00
t8y2 63a32c816b fix(docker): pass library search path via RUSTFLAGS for zig linker
cargo zigbuild's zig linker ignores LIBRARY_PATH; pass -L native=
through RUSTFLAGS so it can find libodbc.so during linking.
2026-05-07 18:40:42 +08:00
t8y2 84cc42a0d4 fix: manually extract arm64 unixodbc debs instead of multiarch apt
Debian multiarch apt sources cause dependency conflicts with
gcc-x86-64-linux-gnu. Instead, download arm64 .deb packages directly
from deb.debian.org and extract with dpkg -x to get the arm64
libodbc headers and libraries without apt dependency resolution.
2026-05-07 15:15:10 +08:00
t8y2 ddd1733e8f fix: configure Debian multiarch apt sources for arm64 cross-compilation
The rust:1-bookworm image only has amd64 apt sources. Add explicit
arm64 sources from deb.debian.org so unixodbc-dev:arm64 can be
installed alongside the native amd64 version.
2026-05-07 15:07:36 +08:00
t8y2 d4aeb7af68 fix: install cross-architecture unixodbc-dev for Docker multi-platform builds
Install both arm64 and amd64 versions of unixodbc-dev and set
LIBRARY_PATH/PKG_CONFIG_PATH to the target architecture's lib dir
so cargo-zigbuild can find the correct libodbc when cross-compiling.
2026-05-07 14:45:17 +08:00
t8y2 13f72a6e23 fix(docker): remove multi-arch libodbc2 from build stage 2026-05-07 11:56:09 +08:00
t8y2 4bf4f3b77f feat: add DM (Dameng) database support via ODBC
Connect to DM8 databases using the odbc-api crate with unixODBC.
Includes schema browsing, query execution, DDL generation,
and full frontend integration with download link to DM ODBC driver.
2026-05-07 01:02:56 +08:00
t8y2 dc9d4e2b9c perf(docker): parallelize multi-arch build and improve layer caching
Split the single docker job into a matrix (amd64/arm64) that builds in
parallel, then merge via docker-manifest job. Also restructure the
Dockerfile to pre-compile dependencies with dummy sources so the dep
layer is cached by GHA when only application code changes.
2026-05-06 00:14:05 +08:00
t8y2 8098f766ec fix(docker): isolate cargo cache per target arch to prevent race condition 2026-05-05 22:36:52 +08:00
t8y2 0f40488bf1 feat(web): add password setup page, change password, and settings tabs
- First-time visitors see a password setup page instead of open access
- Password persisted to SQLite (env var DBX_PASSWORD takes priority)
- Add change password in settings dialog (Security tab, web only)
- Split settings dialog into Editor and Security tabs
- Argon2 hashing for all password storage
2026-05-05 22:22:04 +08:00
t8y2 8cc4dfb268 fix: update workspace paths and optimize Rust caching in CI workflows 2026-05-05 21:45:17 +08:00
t8y2 2ac29879e4 feat(docker): use cargo-zigbuild for native cross-compilation
- Switch sqlx, reqwest, tiberius from native-tls to rustls to eliminate
  OpenSSL dependency, enabling clean cross-compilation
- Use cargo-zigbuild to cross-compile dbx-web for both amd64 and arm64
  natively without QEMU emulation for Rust compilation
- Frontend and backend stages use --platform=$BUILDPLATFORM to avoid
  emulation during build
- Remove libssl3 from runtime image (no longer needed with rustls)
2026-05-05 21:05:44 +08:00
t8y2 e0cd2e88a6 fix(docker): add libssl3 and ca-certificates to runtime image 2026-05-05 20:16:26 +08:00
t8y2 1a586ffbeb ci(docker): add build caches for Rust and pnpm
- Cache Cargo registry and target dir to speed up incremental Rust builds
- Cache pnpm store for faster dependency installs
2026-05-05 18:28:20 +08:00
t8y2 9fde971f6e feat(Dockerfile): add public directory copy for frontend build 2026-05-05 16:55:29 +08:00
t8y2 371a763b9e feat: add Docker workflow for building and pushing images 2026-05-05 05:09:01 +08:00
t8y2 41bceffc0e feat: add web deployment with axum server, Docker support, and browser UI
Introduce src-web (axum HTTP server) exposing all 43 database operations
as REST APIs with SSE streaming for AI, transfers, and SQL file execution.
Frontend adapts automatically between Tauri and HTTP backends via api.ts.
Includes password authentication, Docker packaging, and login page.
2026-05-05 03:16:50 +08:00