Presenton logo

Presenton

Open source AI presentation generator, self-hosted alternative to Gamma

Alternative to: gamma, canva, beautiful.ai, decktopus


Presenton generates fully editable presentations from prompts, documents, or your own PowerPoint templates using AI, with drag-and-drop editing and export to PPTX or PDF. It can run entirely on your own infrastructure with local models through Ollama, or connect to OpenAI, Gemini, Claude, or Azure OpenAI, giving you a self-hosted alternative to cloud AI presentation tools.

Presenton Docker Compose example

Self-host Presenton on your own server, homelab, or VPS starting from this Docker Compose example. It runs Presenton in Docker containers using the official ghcr.io/presenton/presenton:latest image, with persistent volumes and automatic restarts preconfigured. Review the environment variables and adjust them to your setup, save the file as compose.yml (or docker-compose.yml), and start the stack with docker compose up -d.

services:
  presenton:
    image: ghcr.io/presenton/presenton:latest
    restart: unless-stopped
    environment:
      # Path to the Chromium binary used to render/export slides.
      PUPPETEER_EXECUTABLE_PATH: "/usr/bin/chromium"
      # Run database migrations automatically on startup.
      MIGRATE_DATABASE_ON_STARTUP: "true"
      # Allow API keys and model selection to be changed from the web UI.
      CAN_CHANGE_KEYS: "true"
      # Public URL where Presenton is reachable (set to your domain behind the reverse proxy).
      PRESENTON_PUBLIC_URL: ""
      # LLM provider: openai, google, anthropic, ollama, custom, etc. Leave empty to pick it in the UI.
      LLM: ""
      # API key for the selected LLM provider (e.g. OpenAI). Leave empty to set it in the UI.
      OPENAI_API_KEY: ""
      # Model for the selected provider (e.g. gpt-4o). Leave empty to set it in the UI.
      OPENAI_MODEL: ""
      # Image source: pexels, pixabay, dall-e-3, gemini_flash. Leave empty to pick it in the UI.
      IMAGE_PROVIDER: ""
      # API key for the image provider (e.g. Pexels). Leave empty to set it in the UI.
      PEXELS_API_KEY: ""
    volumes:
      - app_data:/app_data

volumes:
  app_data:

Prefer a managed setup? WinterFlow installs, configures, and updates Presenton for you using this same Docker Compose configuration.