From 9d5c3c72f6835f620bb9d51501bdcfddd35e013a Mon Sep 17 00:00:00 2001 From: Edwin Eames Date: Sun, 8 Feb 2026 17:54:29 -0500 Subject: [PATCH] feat: add scraper service to all Docker environments Add eamco_scraper container definitions for dev, local, prod, and Unraid deployments on port 9519. Remove unused Authorize env_file references from dev config. Include add_towns.sh helper script for bootstrapping street reference data. Co-Authored-By: Claude Opus 4.6 --- add_towns.sh | 11 +++++++++++ docker-compose.dev.yml | 17 +++++++++++++---- docker-compose.local.yml | 17 +++++++++++++++++ docker-compose.prod.yml | 14 ++++++++++++++ unraid-docker-compose.yml | 9 +++++++++ unraid-env | 1 + 6 files changed, 65 insertions(+), 4 deletions(-) create mode 100755 add_towns.sh diff --git a/add_towns.sh b/add_towns.sh new file mode 100755 index 0000000..16cb272 --- /dev/null +++ b/add_towns.sh @@ -0,0 +1,11 @@ +#!/bin/bash +towns=("Sutton" "Oxford" "North Oxford" "Webster" "Grafton" "Dudley" "Charlton" "Cherry Valley" "Rochdale" "Paxton" "Spencer" "Worcester") +base_url="http://localhost:9618/streets" +state="MA" + +for town in "${towns[@]}"; do + encoded_town="${town// /%20}" + echo "Adding $town..." + curl -s -X POST "$base_url/$encoded_town/$state" + echo "" +done diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 81d6844..73c7219 100755 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -76,12 +76,8 @@ services: - ../eamco_authorize:/app ports: - '9516:8000' - env_file: - - .env environment: - MODE=DEVELOPMENT - - AUTHORIZE_API_LOGIN_ID_DEV=${AUTHORIZE_API_LOGIN_ID_DEV} - - AUTHORIZE_TRANSACTION_KEY_DEV=${AUTHORIZE_TRANSACTION_KEY_DEV} - POSTGRES_USERNAME=postgres - POSTGRES_PW=postgres - POSTGRES_SERVER=postgres_dev @@ -112,6 +108,19 @@ services: - '9618:8000' command: 'uvicorn app.main:app --reload --host 0.0.0.0 --port 8000' + scraper_dev: + restart: on-failure + build: + context: ../eamco_scraper + dockerfile: Dockerfile.dev + volumes: + - ../eamco_scraper:/app + environment: + - MODE=dev + ports: + - '9619:8000' + command: 'uvicorn app.main:app --reload --host 0.0.0.0 --port 8000' + postgres_dev: image: postgres:13 restart: always diff --git a/docker-compose.local.yml b/docker-compose.local.yml index 7b45bc9..55195c0 100644 --- a/docker-compose.local.yml +++ b/docker-compose.local.yml @@ -121,3 +121,20 @@ services: ports: - '9618:8000' command: 'uvicorn app.main:app --reload --host 0.0.0.0 --port 8000' + + scraper_local: + restart: on-failure + build: + context: ../eamco_scraper + dockerfile: Dockerfile.local + volumes: + - ../eamco_scraper:/app + environment: + - MODE=LOCAL + - POSTGRES_USERNAME=${POSTGRES_USERNAME} + - POSTGRES_PW=${POSTGRES_PW} + - POSTGRES_SERVER=${POSTGRES_SERVER} + - POSTGRES_DBNAME=${POSTGRES_DBNAME} + ports: + - '9619:8000' + command: 'uvicorn app.main:app --reload --host 0.0.0.0 --port 8000' diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index ad73bd8..cf06ca1 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -120,3 +120,17 @@ services: - POSTGRES_DBNAME=${POSTGRES_DBNAME} ports: - '9518:8000' + + scraper_prod: + restart: on-failure + build: + context: ../eamco_scraper + dockerfile: Dockerfile.prod + environment: + - MODE=PRODUCTION + - POSTGRES_USERNAME=${POSTGRES_USERNAME} + - POSTGRES_PW=${POSTGRES_PW} + - POSTGRES_SERVER=${POSTGRES_SERVER} + - POSTGRES_DBNAME=${POSTGRES_DBNAME} + ports: + - '9519:8000' diff --git a/unraid-docker-compose.yml b/unraid-docker-compose.yml index afe4dc0..5d3fd36 100644 --- a/unraid-docker-compose.yml +++ b/unraid-docker-compose.yml @@ -69,3 +69,12 @@ services: - '9518:8000' env_file: - unraid-env + + scraper_prod: + restart: on-failure + image: anekdotin/eamco-scraper_prod:latest + ports: + - '9519:8000' + env_file: + - unraid-env + command: 'uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 2' diff --git a/unraid-env b/unraid-env index 5c4bfd8..5e8b8f0 100644 --- a/unraid-env +++ b/unraid-env @@ -16,6 +16,7 @@ VITE_AUTO_URL="http://192.168.1.204:9514" VITE_SERVICE_URL="http://192.168.1.204:9515" VITE_AUTHORIZE_URL="http://192.168.1.204:9516" VITE_ADDRESS_CHECKER_URL="http://192.168.1.204:9518" +VITE_SCRAPER_URL="http://192.168.1.204:9519" # =========================================== # Database Credentials