From 0ab2963e851593dadaaa3fcb91edbabbd4475664 Mon Sep 17 00:00:00 2001 From: Travis Southard Date: Thu, 23 Oct 2025 11:40:57 -0400 Subject: [PATCH 1/4] Update scraper version and set manifest for AMD machines --- eg-compose.yml | 3 +++ local-dev-compose.yml | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/eg-compose.yml b/eg-compose.yml index a7ed606..362914f 100644 --- a/eg-compose.yml +++ b/eg-compose.yml @@ -28,6 +28,7 @@ services: volumes: - type: mount target: /data + platform: linux/amd64 db: image: eg_db # or natev/eg-docker-db:latest build: @@ -43,6 +44,7 @@ services: - eg-net expose: - "3306" + platform: linux/amd64 docketscraper_api: image: "natev/docketscraper_api" restart: always @@ -50,5 +52,6 @@ services: - eg-net expose: - "8800" + platform: linux/amd64 networks: eg-net: diff --git a/local-dev-compose.yml b/local-dev-compose.yml index f9d441f..cc21a18 100644 --- a/local-dev-compose.yml +++ b/local-dev-compose.yml @@ -44,7 +44,7 @@ services: expose: - "3306" docketscraperapi: - image: "${REPOSITORY}/eg-docketscraper:v2.0.0" + image: "${REPOSITORY}/eg-docketscraper:v2.0.1" restart: always environment: GUNICORN_LOGGER: "true" From 61bcdc9b402e0253347a607bb20188a8d5e9f4a4 Mon Sep 17 00:00:00 2001 From: Travis Southard Date: Thu, 23 Oct 2025 16:41:52 -0400 Subject: [PATCH 2/4] Update for current systems --- Dockerfile | 4 ++-- Expungement-Generator/helpers/docketsearch_api.php | 3 +-- Makefile | 4 ++-- README.md | 14 ++++++++++++++ db_dockerfile | 5 +++-- eg-compose.yml | 2 +- 6 files changed, 23 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1cac8bc..e318ef0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,10 @@ # Dockerfile for Expungement Generator's frontend. -FROM php:7.2-apache-stretch +FROM php:8.1-apache-bullseye RUN apt-get update && \ apt-get upgrade -y && \ - apt-get install -y git nano wget python2.7 libfontconfig poppler-utils cron zlib1g-dev nano unattended-upgrades apt-listchanges && \ + apt-get install -y git nano wget python2.7 libfontconfig poppler-utils cron zlib1g-dev nano unattended-upgrades apt-listchanges libzip-dev && \ ln -s /usr/bin/pdftotext /usr/local/bin/pdftotext RUN cd /usr/local/include && \ diff --git a/Expungement-Generator/helpers/docketsearch_api.php b/Expungement-Generator/helpers/docketsearch_api.php index 0868453..d8ca6ad 100644 --- a/Expungement-Generator/helpers/docketsearch_api.php +++ b/Expungement-Generator/helpers/docketsearch_api.php @@ -15,8 +15,7 @@ // the search. function docketNameSearch($firstName, $lastName, $dob) { global $docketScraperAPIURL; - $ch = curl_init($docketScraperAPIURL . "/" . - "ujs/search/name/"); + $ch = curl_init($docketScraperAPIURL . "/ujs/search/name/"); $jsonData = array( "first_name" => $firstName, "last_name" => $lastName diff --git a/Makefile b/Makefile index 96282c2..67e1bbe 100644 --- a/Makefile +++ b/Makefile @@ -8,8 +8,8 @@ endif .PHONY: docker docker: - docker build -f Dockerfile --tag ${REPOSITORY}/${IMAGENAME}:${TAG} https://github.com/NateV/Expungement-Generator.git\#main - docker build -f db_dockerfile --tag ${REPOSITORY}/${IMAGENAME}_db:${TAG} https://github.com/NateV/Expungement-Generator.git\#main + docker build -f Dockerfile --tag ${REPOSITORY}/${IMAGENAME}:${TAG} . + docker build -f db_dockerfile --tag ${REPOSITORY}/${IMAGENAME}_db:${TAG} . .PHONY: push push: diff --git a/README.md b/README.md index 894ae28..dd4b1cf 100644 --- a/README.md +++ b/README.md @@ -98,6 +98,20 @@ However, if your instance of the EG has users from multiple organizations, only If a guest organization needs to record their expungements, they should host their own instance of the EG. +### Deploying + +You will need to have a `.env` file with the variables: + +``` +REPOSITORY= +IMAGENAME= +TAG= +SECRET_KEY= + +``` + +Once you have those with their respective values. You will need to run `make docker` and `make push` to build and push to the container registry. + ## Motivation Expungements are the most effective way to help an individual with a criminal record to find employment. It is near impossible to find decent work if you have a record that is visible to the world. Expungements are both time consuming and require the attention of a lawyer to properly prepare. But they are also very boring for lawyers to prepare. In an organization like CLS where we prepare thousands of expungement petitions a year, it is critical to speed up the process and remove much of the rote work from the lawyers working on expungements. The EG does both of those things. I am currently working on EG 2.0, which will be more accessible to non-lawyer petitioners. diff --git a/db_dockerfile b/db_dockerfile index 87f77fb..ddb07c1 100644 --- a/db_dockerfile +++ b/db_dockerfile @@ -1,6 +1,7 @@ -FROM mysql:5.7 +FROM --platform=linux/amd64 mysql:9.5 AS build_amd64 -RUN apt-get update && apt-get install -y unattended-upgrades apt-listchanges +RUN apt-get update +RUN apt-get install -y unattended-upgrades apt-listchanges COPY conf.d/disable_strict_mode.cnf /etc/mysql/conf.d/disable_strict_mode.cnf diff --git a/eg-compose.yml b/eg-compose.yml index 362914f..88914f7 100644 --- a/eg-compose.yml +++ b/eg-compose.yml @@ -20,7 +20,7 @@ services: DB_USER: eg_user DB_PASS: somerandompassword SENDGRID_KEY: somerandomkey - docketscaperAPIURL: "docketscraper_api" + docketscaperAPIURL: "https://recoscope-d4157e2ccc9b.herokuapp.com/api/ujs" networks: - eg-net ports: From 51894a6b3c8e7b7a3e5d34773a70be3eba05ed0f Mon Sep 17 00:00:00 2001 From: Travis Southard Date: Mon, 3 Nov 2025 11:58:43 -0500 Subject: [PATCH 3/4] Update for current building --- Expungement-Generator/manage.php | 2 +- Makefile | 4 ++-- conf.d/disable_strict_mode.cnf | 2 +- db_dockerfile | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Expungement-Generator/manage.php b/Expungement-Generator/manage.php index fb4b1c5..b036dc8 100644 --- a/Expungement-Generator/manage.php +++ b/Expungement-Generator/manage.php @@ -279,4 +279,4 @@ function displayAllOrgs() $result->close(); print ""; } -?> \ No newline at end of file +?> diff --git a/Makefile b/Makefile index 67e1bbe..7f063ce 100644 --- a/Makefile +++ b/Makefile @@ -8,8 +8,8 @@ endif .PHONY: docker docker: - docker build -f Dockerfile --tag ${REPOSITORY}/${IMAGENAME}:${TAG} . - docker build -f db_dockerfile --tag ${REPOSITORY}/${IMAGENAME}_db:${TAG} . + docker build -f Dockerfile --platform=linux/amd64 --tag ${REPOSITORY}/${IMAGENAME}:${TAG} . + docker build -f db_dockerfile --platform=linux/amd64 --tag ${REPOSITORY}/${IMAGENAME}_db:${TAG} . .PHONY: push push: diff --git a/conf.d/disable_strict_mode.cnf b/conf.d/disable_strict_mode.cnf index 19eb273..52f07de 100644 --- a/conf.d/disable_strict_mode.cnf +++ b/conf.d/disable_strict_mode.cnf @@ -1,2 +1,2 @@ [mysqld] -sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION +sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION diff --git a/db_dockerfile b/db_dockerfile index ddb07c1..11f5622 100644 --- a/db_dockerfile +++ b/db_dockerfile @@ -1,7 +1,7 @@ -FROM --platform=linux/amd64 mysql:9.5 AS build_amd64 +FROM mysql:9.5.0 -RUN apt-get update -RUN apt-get install -y unattended-upgrades apt-listchanges +RUN microdnf update +RUN microdnf upgrade -y COPY conf.d/disable_strict_mode.cnf /etc/mysql/conf.d/disable_strict_mode.cnf From a1a49568dd95e93fb90d6daa51c33f9937808b16 Mon Sep 17 00:00:00 2001 From: Travis Southard Date: Thu, 22 Jan 2026 11:02:36 -0500 Subject: [PATCH 4/4] Add missing sentence to sealing template --- .../templates/791SealingTemplate.docx | Bin 20133 -> 21434 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Expungement-Generator/templates/791SealingTemplate.docx b/Expungement-Generator/templates/791SealingTemplate.docx index 76a4fbd6109fb5da4021bac227a5583cebc20766..abebf744971a40bb8555f8eff9911b4f8a3bd899 100644 GIT binary patch literal 21434 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 YWgWL-r+p__ScGXmB+Vj$vZdes1K5$qf&c&j delta 18119 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