chore: update docker logic
c4b2f85a
6 file(s) · +21 −11
| 3 | 3 | BASE_URL=http://localhost:3000 |
|
| 4 | 4 | HOST=127.0.0.1 |
|
| 5 | 5 | PORT=3000 |
|
| 6 | - | DB_PATH=feeds.sqlite |
|
| 6 | + | FEEDS_DB_PATH=/data/feeds.sqlite |
|
| 7 | 7 | API_KEY= |
|
| 8 | 8 | DEFAULT_POLL_MINUTES=30 |
|
| 9 | 9 | ITEM_CAP_PER_FEED=200 |
| 36 | 36 | ||
| 37 | 37 | FROM debian:bookworm-slim |
|
| 38 | 38 | RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/lists/* |
|
| 39 | - | WORKDIR /data |
|
| 40 | 39 | COPY --from=builder /app/target/release/feeds /usr/local/bin/feeds |
|
| 40 | + | WORKDIR /data |
|
| 41 | 41 | EXPOSE 3000 |
|
| 42 | + | ENV HOST=0.0.0.0 |
|
| 43 | + | ENV PORT=3000 |
|
| 42 | 44 | CMD ["feeds"] |
| 36 | 36 | | `BASE_URL` | Public base URL of the app | `http://localhost:3000` | |
|
| 37 | 37 | | `HOST` | Bind address | `0.0.0.0` | |
|
| 38 | 38 | | `PORT` | Bind port | `3000` | |
|
| 39 | - | | `DB_PATH` | SQLite database path | `feeds.sqlite` | |
|
| 39 | + | | `FEEDS_DB_PATH` | SQLite database path | `/data/feeds.sqlite` | |
|
| 40 | 40 | | `DEFAULT_POLL_MINUTES` | Background poll interval in minutes (overridable from the admin panel) | `30` | |
|
| 41 | 41 | | `ITEM_CAP_PER_FEED` | Maximum stored items per subscription; older items pruned | `200` | |
|
| 42 | 42 | | `COOKIE_SECURE` | Enable HTTPS-only cookies | `false` | |
|
| 146 | 146 | docker compose up -d |
|
| 147 | 147 | ``` |
|
| 148 | 148 | ||
| 149 | - | Mount a volume at `DB_PATH` to persist the SQLite database. |
|
| 149 | + | Mount a volume at `FEEDS_DB_PATH` to persist the SQLite database. |
|
| 150 | 150 | ||
| 151 | 151 | ### Binary |
|
| 152 | 152 | ||
| 1 | 1 | services: |
|
| 2 | - | feeds: |
|
| 2 | + | app: |
|
| 3 | 3 | build: |
|
| 4 | 4 | context: ../.. |
|
| 5 | 5 | dockerfile: apps/feeds/Dockerfile |
|
| 6 | 6 | ports: |
|
| 7 | - | - "3000:3000" |
|
| 7 | + | - "${PORT:-3000}:${PORT:-3000}" |
|
| 8 | + | environment: |
|
| 9 | + | - ADMIN_PASSWORD=${ADMIN_PASSWORD:-changeme} |
|
| 10 | + | - API_KEY=${API_KEY:-} |
|
| 11 | + | - FEEDS_DB_PATH=/data/feeds.sqlite |
|
| 12 | + | - BASE_URL=${BASE_URL:-http://localhost:3000} |
|
| 13 | + | - COOKIE_SECURE=false |
|
| 14 | + | - HOST=0.0.0.0 |
|
| 15 | + | - PORT=${PORT:-3000} |
|
| 8 | 16 | volumes: |
|
| 9 | - | - feeds_data:/app/data |
|
| 10 | - | env_file: |
|
| 11 | - | - .env |
|
| 17 | + | - feeds-data:/data |
|
| 12 | 18 | restart: unless-stopped |
|
| 13 | 19 | ||
| 14 | 20 | volumes: |
|
| 15 | - | feeds_data: |
|
| 21 | + | feeds-data: |
| 558 | 558 | ) |
|
| 559 | 559 | .init(); |
|
| 560 | 560 | ||
| 561 | - | let db_path = std::env::var("DB_PATH").unwrap_or_else(|_| "feeds.sqlite".to_string()); |
|
| 561 | + | let db_path = |
|
| 562 | + | std::env::var("FEEDS_DB_PATH").unwrap_or_else(|_| "/data/feeds.sqlite".to_string()); |
|
| 562 | 563 | let conn = Connection::open(&db_path).expect("open sqlite"); |
|
| 563 | 564 | conn.execute_batch(SESSION_SCHEMA).expect("session schema"); |
|
| 564 | 565 | conn.execute_batch(fdb::FEEDS_SCHEMA).expect("feeds schema"); |
| 8 | 8 | environment: |
|
| 9 | 9 | - SIPP_API_KEY=${SIPP_API_KEY:-changeme} |
|
| 10 | 10 | - SIPP_AUTH_ENDPOINTS=api_delete,api_list |
|
| 11 | + | - SIPP_DB_PATH=/data/sipp.sqlite |
|
| 11 | 12 | volumes: |
|
| 12 | 13 | - sipp-data:/data |
|
| 13 | 14 | restart: unless-stopped |