DroneDB
Store and archive drone shots and aerial imagery.

DroneDB is a free, open-source platform for modern geospatial data management. Store, visualize and share your geospatial data in the cloud. Orthophotos, point clouds, 3D models, geotagged files: all in one place.

See it in action: hub.dronedb.app/r/odm/waterbury
Key Features
- Smart Indexing - Automatic metadata extraction from images (EXIF), raster data (GDAL), point clouds (PDAL), and vector files
- Interactive Visualization - Web-based viewers for orthophotos, 3D point clouds, textured models, and 360° panoramas
- Geospatial Analysis - Flight path visualization, EXIF metadata extraction, dataset partitioning, and STAC catalog support
- Multiple Sharing Options - Direct links, embed codes, TMS tiles, Cloud-Optimized GeoTIFFs (COG), and Entwine Point Tiles (EPT)
- Cloud Sync - Push and pull datasets to/from DroneDB Hub for collaboration
- Format Support - Orthophotos (GeoTIFF, COG), point clouds (LAZ/LAS, PLY), 3D models (OBJ, glTF/GLB), vector files (GeoJSON, SHP, KML, DWG, GPKG), and 360° panoramas
- Cross-Platform - Works on Windows and Linux
💬 Community
Join our Discord server to get help, share feedback, discuss features, and connect with other DroneDB users:
Quick Start
Installation
Linux (Debian/Ubuntu)
# Download and install from the latest release
sudo apt install ./ddb_X.Y.Z_amd64.deb
Windows
Download the latest release from GitHub Releases and run the installer.
Basic Usage
# Initialize a new DroneDB repository
ddb init
# Add files to the repository
ddb add *.jpg orthophoto.tif
# List indexed files with metadata
ddb list
# Get detailed information about files
ddb info image.jpg
# Generate thumbnails
ddb thumbs *.jpg
# Search for files
ddb search --type image
# Build COG (Cloud-Optimized GeoTIFF) from raster
ddb cog input.tif output.tif
# Share your dataset to DroneDB Hub
ddb share . --tag myproject/dataset
Available Commands
| Command | Description |
|---|---|
init |
Initialize a new DroneDB repository |
add |
Add files to the index |
remove |
Remove files from the index |
list |
List indexed files |
info |
Display file information and metadata |
search |
Search files by criteria |
build |
Build derivative products (tiles, previews) |
thumbs |
Generate thumbnails |
tile |
Generate map tiles |
cog |
Create Cloud-Optimized GeoTIFFs |
ept |
Create Entwine Point Tiles from point clouds |
nxs |
Create Nexus 3D mesh format |
stac |
Export as STAC catalog |
clone |
Clone a remote repository |
push / pull |
Sync with DroneDB Hub |
share |
Share datasets online |
meta |
Manage metadata |
password |
Set/manage repository password |
Run ddb <command> --help for detailed usage of each command.
Documentation
Full documentation is available at docs.dronedb.app
Architecture
DroneDB consists of:
- Core Library - C++ library for file processing, metadata extraction, and SQLite/SpatiaLite database operations
- CLI Tool (
ddb) - Command-line interface for all operations
Building from Source
DroneDB uses vcpkg for dependency management and CMake for building.
Prerequisites
- C++17 compiler (GCC 9+, Clang 9+, MSVC 2019+)
- CMake 3.21+
- Python 3.x
- Git
- Visual Studio 2019+ (Windows only, with C++ desktop development workload)
Quick Build
Windows (PowerShell):
git clone https://github.com/microsoft/vcpkg.git; cd vcpkg; .\bootstrap-vcpkg.bat
$env:VCPKG_ROOT = $(Get-Location).Path
cd ..; git clone https://github.com/DroneDB/DroneDB.git; cd DroneDB
.\full-build-win.ps1
Linux:
git clone https://github.com/microsoft/vcpkg.git && cd vcpkg && ./bootstrap-vcpkg.sh
export VCPKG_ROOT=$(pwd)
cd .. && git clone https://github.com/DroneDB/DroneDB.git && cd DroneDB
./full-build-linux.sh
Windows Build Script
DroneDB provides a robust PowerShell build script that automatically detects Visual Studio, configures CMake, and builds using Ninja.
Basic Usage
# Debug build (default)
.\full-build-win.ps1
# Release build
.\full-build-win.ps1 -BuildType Release
# Clean build
.\full-build-win.ps1 -Clean
# Custom configuration
.\full-build-win.ps1 -BuildType Release -Clean -Jobs 8
Script Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
-BuildType |
String | Debug |
Build configuration: Debug, Release, RelWithDebInfo, or MinSizeRel |
-Clean |
Switch | false |
Remove CMake cache and build artifacts before building |
-SkipTests |
Switch | false |
Disable test compilation |
-Jobs |
Int | CPU cores | Number of parallel build jobs |
Build Output
After successful build, find executables in the build/ directory:
- ddbcmd.exe - Command-line tool
- ddb.dll - Core library
- ddbtest.exe - Test suite
Troubleshooting
Visual Studio Not Found
- The script automatically searches for VS 2019-2025 using
vswhere.exe - Install Visual Studio with "Desktop development with C++" workload
- Or set
VSINSTALLDIRenvironment variable
CMake Not Found
- Install from cmake.org/download
- Or via Visual Studio Installer (Individual Components → CMake)
Build Failures
- Try a clean build:
.\full-build-win.ps1 -Clean - Manually bootstrap vcpkg:
cd vcpkg; .\bootstrap-vcpkg.bat - Check prerequisites are installed and in PATH
Docker Build
./build-docker.sh
docker run --rm -it -v $(pwd):/data ddb/app:latest
Manual Build Steps
Click to expand manual build instructions
Set VCPKG_ROOT
# Linux/macOS
export VCPKG_ROOT=/path/to/vcpkg
# Windows PowerShell
$env:VCPKG_ROOT = "C:\path\to\vcpkg"
Build Commands
git clone https://github.com/DroneDB/DroneDB.git
cd DroneDB
git submodule update --init --recursive
# Configure
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE="$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake"
# Build
cmake --build build --config Release -j$(nproc) # Linux
cmake --build build --config Release -- /maxcpucount:14 # Windows
Windows Manual Build (Visual Studio Developer Command Prompt)
mkdir build && cd build
cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE="..\vcpkg\scripts\buildsystems\vcpkg.cmake"
cmake --build . -- -j16
Run Tests
# Linux
cd build && ./ddbtest --gtest_shuffle
# Windows
cd build && .\ddbtest.exe --gtest_shuffle
Contributing
Contributions are welcome! Please read CONTRIBUTING.md for guidelines on how to submit pull requests.
License
This project is licensed under the Mozilla Public License 2.0 (MPL-2.0).
Made with ❤️ by Digipa