Deploy Presenton | Open Source AI Presentation Generator
Self-hosted AI presentation & slide generator with persistent storage
Postgres
Just deployed
/var/lib/postgresql/data
Presenton
Just deployed
/app_data
Deploy and Host Presenton on Railway
Presenton is an open-source, AI-powered presentation generator — a self-hosted alternative to Gamma, Beautiful.ai, Decktopus and Presentations.ai. Describe a topic, pick a template, and it writes and designs a full slide deck you can edit in the browser and export to PPTX or PDF. It also exposes a generation API and an MCP endpoint.
This template runs Presenton with a PostgreSQL database and a persistent volume, so your presentations, uploads and exports survive redeploys — bring your own LLM key (OpenAI, Google Gemini, Anthropic, OpenRouter and others) or configure one from the in-app settings after you log in.
About Hosting Presenton
Presenton ships as a single upstream container that runs an internal nginx in front of a
Next.js UI, a FastAPI backend and an MCP server, plus a bundled Chromium for PPTX/PDF export.
This template deploys that image pinned to a fixed version (never latest, so a redeploy
never swaps the app underneath you) and pairs it with two pieces of durable storage:
- PostgreSQL (a dedicated
postgresservice on its own volume) holds your accounts, presentations, templates and generation history. Presenton reads a standardDATABASE_URLand runs its migrations automatically on boot. - A mounted volume at
/app_datakeeps every file asset — generated decks, PPTX/PDF exports, uploaded images and fonts. Presenton has no object-storage backend, so this volume is the persistence for everything that is not in the database.
The app has its own username/password authentication. On first visit you set the primary administrator account — do this immediately after deploying, before sharing the URL.
Common Use Cases
- AI-generated decks on your own infrastructure — draft presentations from a prompt or an outline without sending your content to a third-party SaaS.
- Programmatic slide generation — call the built-in generation API (or the MCP endpoint) to produce decks from other tools and pipelines.
- A private, brandable Gamma / Beautiful.ai alternative — keep templates, fonts and exported files under your control and your account.
Dependencies for Presenton Hosting
Deployment Dependencies
- Upstream image
ghcr.io/presenton/presenton, pinned to a specific release — nothing is custom-built. - A PostgreSQL 18 service and two volumes, created for you by this template.
- An LLM provider key to actually generate presentations. Set
LLMand the matching key (e.g.OPENAI_API_KEY) as variables, or add it from the in-app settings after login. The app boots and lets you sign in without a key; generation is enabled once a key is present.
Implementation Details
- The generated database password is referenced into
DATABASE_URL, so the two services are wired together with no manual step. - The app waits for PostgreSQL before running its migrations, so a cold start does not race the database.
PORTis fixed to the image's internal nginx port and should not be changed.- Stock-image search (Pexels) is optional; set
PEXELS_API_KEYto enable it.
Why Deploy Presenton on Railway?
Railway provisions the PostgreSQL service, both volumes and the public domain as part of the one-click deploy, and wires the database credentials in automatically — you get a running, persistent Presenton without hand-editing any configuration.
Resource use: the app container is moderately heavy — plan for roughly 0.7–1 GB of RAM in normal use, with brief spikes while Chromium renders a PPTX/PDF export; PostgreSQL adds a small, steady footprint. A light-to-moderate personal instance typically costs on the order of a few dollars to ~$15 per month depending on how much you generate and export. Your LLM usage is billed separately by whichever provider key you supply.
Template Content
Postgres
postgres:18.4-alpine