Skip to Content
Self Hosting

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-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
  • Not allowed: commercial redistribution or SaaS offerings

For commercial use cases, consider ojo.so .