190 lines
5.0 KiB
Markdown
190 lines
5.0 KiB
Markdown
![]() |
# 🐳 Using Docker (Legacy)
|
||
|
|
||
|
Crawl4AI is available as Docker images for easy deployment. You can either pull directly from Docker Hub (recommended) or build from the repository.
|
||
|
|
||
|
---
|
||
|
|
||
|
<details>
|
||
|
<summary>🐳 <strong>Option 1: Docker Hub (Recommended)</strong></summary>
|
||
|
|
||
|
Choose the appropriate image based on your platform and needs:
|
||
|
|
||
|
### For AMD64 (Regular Linux/Windows):
|
||
|
```bash
|
||
|
# Basic version (recommended)
|
||
|
docker pull unclecode/crawl4ai:basic-amd64
|
||
|
docker run -p 11235:11235 unclecode/crawl4ai:basic-amd64
|
||
|
|
||
|
# Full ML/LLM support
|
||
|
docker pull unclecode/crawl4ai:all-amd64
|
||
|
docker run -p 11235:11235 unclecode/crawl4ai:all-amd64
|
||
|
|
||
|
# With GPU support
|
||
|
docker pull unclecode/crawl4ai:gpu-amd64
|
||
|
docker run -p 11235:11235 unclecode/crawl4ai:gpu-amd64
|
||
|
```
|
||
|
|
||
|
### For ARM64 (M1/M2 Macs, ARM servers):
|
||
|
```bash
|
||
|
# Basic version (recommended)
|
||
|
docker pull unclecode/crawl4ai:basic-arm64
|
||
|
docker run -p 11235:11235 unclecode/crawl4ai:basic-arm64
|
||
|
|
||
|
# Full ML/LLM support
|
||
|
docker pull unclecode/crawl4ai:all-arm64
|
||
|
docker run -p 11235:11235 unclecode/crawl4ai:all-arm64
|
||
|
|
||
|
# With GPU support
|
||
|
docker pull unclecode/crawl4ai:gpu-arm64
|
||
|
docker run -p 11235:11235 unclecode/crawl4ai:gpu-arm64
|
||
|
```
|
||
|
|
||
|
Need more memory? Add `--shm-size`:
|
||
|
```bash
|
||
|
docker run --shm-size=2gb -p 11235:11235 unclecode/crawl4ai:basic-amd64
|
||
|
```
|
||
|
|
||
|
Test the installation:
|
||
|
```bash
|
||
|
curl http://localhost:11235/health
|
||
|
```
|
||
|
|
||
|
### For Raspberry Pi (32-bit) (coming soon):
|
||
|
```bash
|
||
|
# Pull and run basic version (recommended for Raspberry Pi)
|
||
|
docker pull unclecode/crawl4ai:basic-armv7
|
||
|
docker run -p 11235:11235 unclecode/crawl4ai:basic-armv7
|
||
|
|
||
|
# With increased shared memory if needed
|
||
|
docker run --shm-size=2gb -p 11235:11235 unclecode/crawl4ai:basic-armv7
|
||
|
```
|
||
|
|
||
|
Note: Due to hardware constraints, only the basic version is recommended for Raspberry Pi.
|
||
|
|
||
|
</details>
|
||
|
|
||
|
<details>
|
||
|
<summary>🐳 <strong>Option 2: Build from Repository</strong></summary>
|
||
|
|
||
|
Build the image locally based on your platform:
|
||
|
|
||
|
```bash
|
||
|
# Clone the repository
|
||
|
git clone https://github.com/unclecode/crawl4ai.git
|
||
|
cd crawl4ai
|
||
|
|
||
|
# For AMD64 (Regular Linux/Windows)
|
||
|
docker build --platform linux/amd64 \
|
||
|
--tag crawl4ai:local \
|
||
|
--build-arg INSTALL_TYPE=basic \
|
||
|
.
|
||
|
|
||
|
# For ARM64 (M1/M2 Macs, ARM servers)
|
||
|
docker build --platform linux/arm64 \
|
||
|
--tag crawl4ai:local \
|
||
|
--build-arg INSTALL_TYPE=basic \
|
||
|
.
|
||
|
```
|
||
|
|
||
|
Build options:
|
||
|
- INSTALL_TYPE=basic (default): Basic crawling features
|
||
|
- INSTALL_TYPE=all: Full ML/LLM support
|
||
|
- ENABLE_GPU=true: Add GPU support
|
||
|
|
||
|
Example with all options:
|
||
|
```bash
|
||
|
docker build --platform linux/amd64 \
|
||
|
--tag crawl4ai:local \
|
||
|
--build-arg INSTALL_TYPE=all \
|
||
|
--build-arg ENABLE_GPU=true \
|
||
|
.
|
||
|
```
|
||
|
|
||
|
Run your local build:
|
||
|
```bash
|
||
|
# Regular run
|
||
|
docker run -p 11235:11235 crawl4ai:local
|
||
|
|
||
|
# With increased shared memory
|
||
|
docker run --shm-size=2gb -p 11235:11235 crawl4ai:local
|
||
|
```
|
||
|
|
||
|
Test the installation:
|
||
|
```bash
|
||
|
curl http://localhost:11235/health
|
||
|
```
|
||
|
|
||
|
</details>
|
||
|
|
||
|
<details>
|
||
|
<summary>🐳 <strong>Option 3: Using Docker Compose</strong></summary>
|
||
|
|
||
|
Docker Compose provides a more structured way to run Crawl4AI, especially when dealing with environment variables and multiple configurations.
|
||
|
|
||
|
```bash
|
||
|
# Clone the repository
|
||
|
git clone https://github.com/unclecode/crawl4ai.git
|
||
|
cd crawl4ai
|
||
|
```
|
||
|
|
||
|
### For AMD64 (Regular Linux/Windows):
|
||
|
```bash
|
||
|
# Build and run locally
|
||
|
docker-compose --profile local-amd64 up
|
||
|
|
||
|
# Run from Docker Hub
|
||
|
VERSION=basic docker-compose --profile hub-amd64 up # Basic version
|
||
|
VERSION=all docker-compose --profile hub-amd64 up # Full ML/LLM support
|
||
|
VERSION=gpu docker-compose --profile hub-amd64 up # GPU support
|
||
|
```
|
||
|
|
||
|
### For ARM64 (M1/M2 Macs, ARM servers):
|
||
|
```bash
|
||
|
# Build and run locally
|
||
|
docker-compose --profile local-arm64 up
|
||
|
|
||
|
# Run from Docker Hub
|
||
|
VERSION=basic docker-compose --profile hub-arm64 up # Basic version
|
||
|
VERSION=all docker-compose --profile hub-arm64 up # Full ML/LLM support
|
||
|
VERSION=gpu docker-compose --profile hub-arm64 up # GPU support
|
||
|
```
|
||
|
|
||
|
Environment variables (optional):
|
||
|
```bash
|
||
|
# Create a .env file
|
||
|
CRAWL4AI_API_TOKEN=your_token
|
||
|
OPENAI_API_KEY=your_openai_key
|
||
|
CLAUDE_API_KEY=your_claude_key
|
||
|
```
|
||
|
|
||
|
The compose file includes:
|
||
|
- Memory management (4GB limit, 1GB reserved)
|
||
|
- Shared memory volume for browser support
|
||
|
- Health checks
|
||
|
- Auto-restart policy
|
||
|
- All necessary port mappings
|
||
|
|
||
|
Test the installation:
|
||
|
```bash
|
||
|
curl http://localhost:11235/health
|
||
|
```
|
||
|
|
||
|
</details>
|
||
|
|
||
|
<details>
|
||
|
<summary>🚀 <strong>One-Click Deployment</strong></summary>
|
||
|
|
||
|
Deploy your own instance of Crawl4AI with one click:
|
||
|
|
||
|
[](https://www.digitalocean.com/?repo=https://github.com/unclecode/crawl4ai/tree/0.3.74&refcode=a0780f1bdb3d&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge)
|
||
|
|
||
|
> 💡 **Recommended specs**: 4GB RAM minimum. Select "professional-xs" or higher when deploying for stable operation.
|
||
|
|
||
|
The deploy will:
|
||
|
- Set up a Docker container with Crawl4AI
|
||
|
- Configure Playwright and all dependencies
|
||
|
- Start the FastAPI server on port `11235`
|
||
|
- Set up health checks and auto-deployment
|
||
|
|
||
|
</details>
|