A comprehensive setup repository for WebODM installation and drone video processing workflows with GPU acceleration support. This repository contains installation scripts, Docker configurations, and utilities for processing drone imagery and videos.
⚡ NEW: Now includes GPU acceleration for 2-5x faster processing! See GPU_SETUP.md for details.
- Overview
- Screenshots
- Prerequisites
- Quick Start
- Installation
- Drone Video Processing
- Usage
- Configuration
- Troubleshooting
- Contributing
- License
WebODM is an open-source drone mapping software built on OpenDroneMap. This repository provides:
- Automated Installation Scripts for Windows, Linux, and macOS
- Docker Compose Configuration for easy deployment
- Video Processing Tools to extract frames from drone videos
- Batch Processing Scripts for multiple datasets
- Utility Scripts for common tasks
Main dashboard showing project overview and management interface
Processing interface with options and task configuration
Interactive 3D model viewer with texture mapping
Generated orthophoto map visualization
Detailed processing results and outputs
- OS: Windows 10/11, Ubuntu 20.04+, macOS 10.14+ (including Apple Silicon)
- RAM: Minimum 8GB (16GB+ recommended)
- Disk Space: 50GB+ free space
- CPU: Multi-core processor (4+ cores recommended)
- GPU (Optional): NVIDIA GPU with 4GB+ VRAM for accelerated processing
- See GPU_SETUP.md for GPU acceleration guide
- Note: GPU acceleration is not available on macOS Apple Silicon (M1/M2/M3/M4). CPU-only processing is used instead.
Docker Desktop (Windows/macOS) or Docker Engine (Linux)
- Download Docker Desktop
- Docker Compose (included with Docker Desktop)
Python 3.8+ (for video processing scripts)
Git (for cloning the repository)
# Clone the repository
git clone https://github.com/prashplus/WebODM-Setup.git
cd WebODM-Setup
# Run installation script
.\scripts\install-windows.ps1# Start WebODM
.\scripts\start-webodm.ps1# Clone the repository
git clone https://github.com/prashplus/WebODM-Setup.git
cd WebODM-Setup
# Make scripts executable
chmod +x scripts/*.sh
# Run installation script
./scripts/install-linux.sh
# Start WebODM
./scripts/start-webodm.shApple Silicon (M1/M2/M3/M4): The scripts automatically detect Apple Silicon and use the correct CPU-only Docker images (arm64 native). No extra steps needed. See MACOS_APPLE_SILICON.md for details.
Access WebODM at: http://localhost:8000
Install Docker
# Windows: Download and install Docker Desktop# Ensure WSL2 is enabled for Windows
Clone Repository
git clone https://github.com/prashplus/WebODM-Setup.git cd WebODM-SetupInstall Python Dependencies
pip install -r requirements.txt
Configure Settings (Optional)
- Edit
config/webodm-config.envfor custom settings - Adjust Docker resources in Docker Desktop settings
- Edit
Run Installation Script
- Windows:
.\scripts\install-windows.ps1 - Linux/Mac:
./scripts/install-linux.sh
- Windows:
The repository includes scripts to extract frames from drone videos at specified intervals:
# Basic usage
python scripts/extract-frames.py --input video.mp4 --output ./frames --fps 1
# Advanced usage with GPS data extraction
python scripts/extract-frames.py --input video.mp4 --output ./frames --fps 2 --extract-gps--input: Path to drone video file--output: Output directory for extracted frames--fps: Frames per second to extract (default: 1)--extract-gps: Extract GPS metadata from video (if available)--format: Output image format (default: jpg)--quality: JPEG quality 1-100 (default: 95)
Process multiple videos at once:
python scripts/batch-process.py --input-dir ./videos --output-dir ./frames# Windows
.\scripts\start-webodm.ps1
# Linux/Mac
./scripts/start-webodm.sh# Windows
.\scripts\stop-webodm.ps1
# Linux/Mac
./scripts/stop-webodm.sh# Windows
.\scripts\update-webodm.ps1
# Linux/Mac
./scripts/update-webodm.sh- Access WebODM at
http://localhost:8000 - Create an account (first user becomes admin)
- Click "Add Project"
- Upload your processed drone images
- Configure processing options
- Start processing
Edit config/webodm-config.env:
# WebODM ConfigurationWO_PORT=8000WO_HOST=0.0.0.0WO_DEBUG=NO# Processing OptionsWO_DEFAULT_NODES=1WO_BROKER_URL=redis://broker# StorageMEDIA_ROOT=/webodm/app/mediaAdjust in Docker Desktop Settings:
- CPUs: 4+ cores recommended
- Memory: 8GB+ recommended
- Disk: 50GB+ recommended
# Check Docker status
docker --version
docker ps
# Start Docker Desktop (Windows/Mac)# Or start Docker service (Linux)
sudo systemctl start dockerEdit config/webodm-config.env and change WO_PORT to another port (e.g., 8080)
Increase Docker memory allocation in Docker Desktop settings
# Ensure FFmpeg is installed
ffmpeg -version
# Install if missing# Windows: choco install ffmpeg# Ubuntu: sudo apt install ffmpeg# macOS: brew install ffmpegView WebODM logs:
docker-compose logs -f webappWebODM-Setup/
├── config/
│ ├── webodm-config.env
│ └── processing-presets.json
├── scripts/
│ ├── common.sh # Shared helpers (compose detection, Apple Silicon)
│ ├── install-windows.ps1
│ ├── install-linux.sh
│ ├── start-webodm.ps1
│ ├── start-webodm.sh
│ ├── stop-webodm.ps1
│ ├── stop-webodm.sh
│ ├── update-webodm.ps1
│ ├── update-webodm.sh
│ ├── extract-frames.py
│ └── batch-process.py
├── docker-compose.yml # Default (Linux/Windows with GPU)
├── docker-compose.apple-silicon.yml # macOS Apple Silicon (CPU-only, arm64)
├── requirements.txt
├── .gitignore
├── LICENSE
├── MACOS_APPLE_SILICON.md
└── README.md
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Prashant Piprotar
⭐ If this repository helped you, please give it a star!