Self-Hosting
oJo provides an open-source, self-hosted version that gives you complete control over your HTML-to-image generation infrastructure. Perfect for developers, agencies, and organizations who need dynamic image generation with full data sovereignty for personal and internal business use.
Overview
The self-hosted version provides the same powerful HTML-to-image conversion capabilities as the hosted oJo service, but runs entirely on your own infrastructure. You get:
- 🎨 Complete HTML/CSS/JS support with custom fonts and libraries
- 📱 Template system with dynamic variables
- 🐳 Docker-ready deployment with compose files
- 💾 S3-compatible storage integration
- 🔒 Full data control and privacy
- 🚀 REST API compatible with hosted oJo
Prerequisites
Before installing oJo Self-Host, ensure you have:
- Docker and Docker Compose installed
- S3-compatible storage (AWS S3, Cloudflare R2, MinIO, etc.)
- PostgreSQL database (included in Docker setup)
For development:
- Node.js 18+ and pnpm package manager
Quick Start
1. Clone Repository
git clone https://github.com/ojodotso/self-host.git
cd self-host
2. Configure Environment
Copy the Docker Compose file:
cp docker-compose.yml docker-compose.local.yml
Edit docker-compose.local.yml
with your configuration:
environment:
# API Authentication
ADMIN_TOKEN: your-secret-admin-token
# S3 Storage Configuration
BLOB_STORAGE_CLIENT_ENDPOINT: https://your-s3-endpoint.com
BLOB_STORAGE_ACCESS_KEY: your-access-key
BLOB_STORAGE_SECRET_KEY: your-secret-key
BLOB_STORAGE_BUCKET_NAME: your-bucket-name
3. Start Services
docker-compose -f docker-compose.local.yml up -d
4. Verify Installation
curl http://localhost:3011/health
Your oJo instance will be available at http://localhost:3011
🎉
For further configuration, refer to the self-host documentation.
License
oJo Self-Host is licensed under the Sustainable Use License:
- ✅ Free for personal use
- ✅ Free for internal business use
- ✅ Free non-commercial distribution
- ❌ No commercial redistribution or SaaS offerings
For commercial use cases, consider ojo.so.