96 lines
2.3 KiB
Markdown
96 lines
2.3 KiB
Markdown
# 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](https://github.com/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
|
|
|
|
1. Clone this repository
|
|
2. Run `docker-compose up` (uses pre-built image from Docker Hub)
|
|
3. 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 endpoint
|
|
- `GET /books` - List all available books
|
|
- `GET /books/:book` - Get complete book (all chapters combined)
|
|
- `GET /books/:book/:chapter` - Get specific chapter
|
|
|
|
### Example Usage
|
|
|
|
```bash
|
|
# 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
|
|
```bash
|
|
cd backend
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
### Frontend Development
|
|
```bash
|
|
cd frontend
|
|
npm install
|
|
npm start
|
|
```
|
|
|
|
## Docker Deployment
|
|
|
|
Run with Docker Compose using pre-built Docker Hub image:
|
|
```bash
|
|
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](https://github.com/lguenth/mdbible/tree/main/by_chapter), which provides the ESV Bible organized by book and chapter in Markdown format.
|
|
|
|
## License
|
|
|
|
MIT
|