chore: refactored parcels storage 59ce144c
defaulted to /data directory in docker to match other app patterns
Steve · 2026-04-02 20:16 5 file(s) · +7 −13
apps/parcels/.env.example +1 −1
1 1
APP_PASSWORD=changeme
2 -
DATABASE_URL=sqlite://parcels.db
2 +
PARCELS_DB_PATH=parcels.db
3 3
USPS_CLIENT_ID=your_client_id_here
4 4
USPS_CLIENT_SECRET=your_client_secret_here
5 5
PORT=3000
apps/parcels/Dockerfile +3 −4
31 31
32 32
FROM debian:bookworm-slim
33 33
RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/lists/*
34 -
WORKDIR /app
35 -
COPY --from=builder /app/target/release/parcels ./parcels
34 +
COPY --from=builder /app/target/release/parcels /usr/local/bin/parcels
35 +
WORKDIR /data
36 36
COPY --from=builder /app/apps/parcels/static ./static
37 -
COPY --from=builder /app/apps/parcels/templates ./templates
38 37
EXPOSE 3000
39 -
CMD ["./parcels"]
38 +
CMD ["parcels"]
apps/parcels/README.md +1 −1
25 25
| Variable | Description | Default |
26 26
|---|---|---|
27 27
| `APP_PASSWORD` | Password for login authentication | *required* |
28 -
| `DATABASE_URL` | SQLite database path (e.g. `sqlite:///app/data/parcels.db`) |
28 +
| `PARCELS_DB_PATH` | SQLite database file path | `parcels.db` |
29 29
| `USPS_CLIENT_ID` | USPS OAuth2 client ID | *required* |
30 30
| `USPS_CLIENT_SECRET` | USPS OAuth2 client secret | *required* |
31 31
| `PORT` | Server port | `3000` |
apps/parcels/docker-compose.yml +1 −1
6 6
    ports:
7 7
      - "3000:3000"
8 8
    volumes:
9 -
      - parcels_data:/app/data
9 +
      - parcels_data:/data
10 10
    env_file:
11 11
      - .env
12 12
    restart: unless-stopped
apps/parcels/src/db.rs +1 −6
60 60
// ── Pool Setup ──────────────────────────────────────────────────────────────
61 61
62 62
pub fn database_path() -> String {
63 -
    let raw = std::env::var("DATABASE_URL").unwrap_or_else(|_| "parcels.db".to_string());
64 -
    // Strip sqlite:// or sqlite:/// prefix if present
65 -
    raw.strip_prefix("sqlite:///")
66 -
        .or_else(|| raw.strip_prefix("sqlite://"))
67 -
        .unwrap_or(&raw)
68 -
        .to_string()
63 +
    std::env::var("PARCELS_DB_PATH").unwrap_or_else(|_| "parcels.db".to_string())
69 64
}
70 65
71 66
pub fn init_db(path: &str) -> Result<Db, DbError> {