6dd07e8e8edf074731f6f03a08f71fd22e9c2e90
ESV Bible Markdown
A Docker-based web service for serving the ESV Bible in Markdown format with chapter-by-chapter organization.
Project Structure
esv-bible/
├── backend/ # Backend API server
│ ├── src/
│ │ └── index.js # Express server
│ ├── package.json
│ └── Dockerfile
├── frontend/ # React frontend application
│ ├── src/
│ ├── public/
│ ├── package.json
│ └── ...
├── bible-data/ # ESV Bible markdown files (auto-downloaded)
├── docker-compose.yml
└── README.md
Features
- Complete ESV Bible text in Markdown format from lguenth/mdbible
- Organized by book and chapter for easy navigation
- Docker containerized for easy deployment
- Modern React frontend with responsive design
- RESTful API for accessing Bible content
- Persistent volume storage for Bible data
- Optimized for remote hosting
Setup
- Clone this repository
- Run
docker-compose up(uses pre-built image from Docker Hub) - The ESV Bible data is included in the Docker image
Usage
The service will be available at http://localhost:3000
API Endpoints
GET /health- Health check endpointGET /books- List all available booksGET /books/:book- Get complete book (all chapters combined)GET /books/:book/:chapter- Get specific chapter
Example Usage
# List all books
curl http://localhost:3000/books
# Get the book of Genesis
curl http://localhost:3000/books/Genesis
# Get Genesis chapter 1
curl http://localhost:3000/books/Genesis/1
Development
Backend Development
cd backend
npm install
npm run dev
Frontend Development
cd frontend
npm install
npm start
Docker Deployment
Run with Docker Compose using pre-built Docker Hub image:
docker-compose up
The application uses the ryderjj89/esv-bible:latest image from Docker Hub. The Bible data is included in the Docker image and stored in a persistent Docker volume named bible_data for efficient storage and updates.
Data Source
Bible content is sourced from lguenth/mdbible, which provides the ESV Bible organized by book and chapter in Markdown format.
License
MIT
Languages
TypeScript
62%
JavaScript
35.9%
Dockerfile
0.9%
CSS
0.8%
HTML
0.4%