feat: add comprehensive CLI with API client, session management, and data seeding

- Binary renamed from 'api' to 'xevion' with full CLI command structure
- Authentication: login/logout with session persistence to .xevion-session
- API commands: projects, tags, settings CRUD operations with JSON/table output
- Serve command: run production server with configurable listen addresses
- Seed command: moved from bin/ to CLI subcommand for database initialization
- HTTP client abstraction supporting both TCP and Unix socket connections
This commit is contained in:
2026-01-13 19:55:45 -06:00
parent b6d377a143
commit aa56d31067
18 changed files with 1849 additions and 243 deletions
+3 -3
View File
@@ -29,7 +29,7 @@ RUN mkdir -p web/build/client && \
echo "placeholder" > web/build/client/.gitkeep
RUN cargo build --release && \
strip target/release/api
strip target/release/xevion
# ========== Stage 4: Frontend Builder ==========
FROM oven/bun:1 AS frontend
@@ -66,7 +66,7 @@ COPY --from=frontend /build/build/prerendered ./web/build/prerendered
# Build with real assets (use sqlx offline mode)
ENV SQLX_OFFLINE=true
RUN cargo build --release && \
strip target/release/api
strip target/release/xevion
# ========== Stage 6: Runtime ==========
FROM oven/bun:1-alpine AS runtime
@@ -76,7 +76,7 @@ WORKDIR /app
RUN apk add --no-cache ca-certificates tzdata
# Copy Rust binary
COPY --from=final-builder /build/target/release/api ./api
COPY --from=final-builder /build/target/release/xevion ./xevion
# Copy Bun SSR server and client assets (including fonts for OG images)
COPY --from=frontend /build/build/server ./web/build/server