mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-07-27 15:45:21 +00:00

# Description of Changes <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## Checklist ### General - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md) (if applicable) - [ ] I have performed a self-review of my own code - [ ] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing) for more details. --------- Co-authored-by: a <a>
67 lines
2.3 KiB
Markdown
67 lines
2.3 KiB
Markdown
# Docker Setup for Stirling-PDF
|
|
|
|
This directory contains the organized Docker configurations for the split frontend/backend architecture.
|
|
|
|
## Directory Structure
|
|
|
|
```
|
|
docker/
|
|
├── backend/ # Backend Docker files
|
|
│ ├── Dockerfile # Standard backend
|
|
│ ├── Dockerfile.ultra-lite # Minimal backend
|
|
│ └── Dockerfile.fat # Full-featured backend
|
|
├── frontend/ # Frontend Docker files
|
|
│ ├── Dockerfile # React/Vite frontend with nginx
|
|
│ ├── nginx.conf # Nginx configuration
|
|
│ └── entrypoint.sh # Dynamic backend URL setup
|
|
├── monolith/ # Single container setup
|
|
│ ├── Dockerfile # Combined frontend + backend
|
|
│ ├── nginx-monolith.conf # Nginx config for monolith
|
|
│ └── start-monolith.sh # Startup script
|
|
└── compose/ # Docker Compose files
|
|
├── docker-compose.yml # Standard setup
|
|
├── docker-compose.ultra-lite.yml # Ultra-lite setup
|
|
├── docker-compose.fat.yml # Full-featured setup
|
|
└── docker-compose.monolith.yml # Single container setup
|
|
```
|
|
|
|
## Usage
|
|
|
|
### Separate Containers (Recommended)
|
|
|
|
From the project root directory:
|
|
|
|
```bash
|
|
# Standard version
|
|
docker-compose -f docker/compose/docker-compose.yml up --build
|
|
|
|
# Ultra-lite version
|
|
docker-compose -f docker/compose/docker-compose.ultra-lite.yml up --build
|
|
|
|
# Fat version
|
|
docker-compose -f docker/compose/docker-compose.fat.yml up --build
|
|
```
|
|
|
|
### Single Container (Monolith)
|
|
|
|
```bash
|
|
# Single container with both frontend and backend
|
|
docker-compose -f docker/compose/docker-compose.monolith.yml up --build
|
|
```
|
|
|
|
## Access Points
|
|
|
|
- **Frontend**: http://localhost:3000
|
|
- **Backend API (debugging)**: http://localhost:8080 (TODO: Remove in production)
|
|
- **Backend API (via frontend)**: http://localhost:3000/api/*
|
|
|
|
## Configuration
|
|
|
|
- **Backend URL**: Set `BACKEND_URL` environment variable for custom backend locations
|
|
- **Custom Ports**: Modify port mappings in docker-compose files
|
|
- **Memory Limits**: Adjust memory limits per variant (2G ultra-lite, 4G standard, 6G fat)
|
|
|
|
## Development vs Production
|
|
|
|
- **Development**: Keep backend port 8080 exposed for debugging
|
|
- **Production**: Remove backend port exposure, use only frontend proxy |