ocrmypdf and friends.
I've built an archival system based around Tesseract and PostgreSQL. It takes Images/PDFs, either scanned or generated, and rebuilds them as searchable PDFs before being extracted and inserted into Postgres' full-text search. I keep all of the original media because disk is cheap.
Originally I used Tesseract directly. But I found that ocrmypdf did a better job than my home-grown pipeline, so I switched.