Self-Hosting
oJo has an open-source, self-hosted version that runs the HTML-to-image rendering on your own infrastructure, for personal and internal business use.
Overview
The self-hosted version gives you the same HTML-to-image rendering as hosted oJo, on your own infrastructure:
- 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-host2. Configure Environment
Copy the Docker Compose file:
cp docker-compose.yml docker-compose.local.ymlEdit 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-name3. Start Services
docker-compose -f docker-compose.local.yml up -d4. Verify Installation
curl http://localhost:3011/healthYour 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
- Not allowed: commercial redistribution or SaaS offerings
For commercial use cases, consider ojo.so .