selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

LaraPaper logo

Self-host LaraPaper

0.45.1

Self-hosted TRMNL BYOS server with recipe support

BetaOpen SourceMIT
Updated4 days ago
LanguagePHP
Setup difficultyModerate
ThemeDark mode
Stars
443
Port
8080 (HTTP application server inside container)
Docker
ghcr.io/usetrmnl/larapaper
Install with Linux
LaraPaper web UI dashboard showing device managementLaraPaper web UI screen generation interfaceLaraPaper web UI plugin configurationLaraPaper web UI device listLaraPaper web UI recipe managementLaraPaper web UI settings pageLaraPaper web UI dark modeLaraPaper web UI plugin editorLaraPaper web UI device detailsLaraPaper web UI cloud proxy configuration

What is LaraPaper?

LaraPaper is a self-hosted TRMNL BYOS server written in PHP using Laravel. It manages TRMNL-compatible e-paper devices including official hardware, DIY kits, e-readers, Android devices, and Raspberry Pi displays. Screens are generated via native plugins, community recipes, REST API, web UI markup, or custom Blade views. It acts as a proxy for the TRMNL cloud service for hybrid setups (requires Developer Edition). The web UI has dark mode. Deployment options include Docker Compose, bare-metal PHP, Laravel Forge, Dokploy, Umbrel, and VS Code devcontainer. Default database is SQLite; MySQL and PostgreSQL are supported. Authentication uses email/password with optional Passkeys and OpenID Connect. An experimental MCP server exposes recipe management to AI clients.

Should you self-host LaraPaper?

LaraPaper scores 51/100 on selfhost.directory (how scoring works) and ranks #61 of 104 in Home Automation. It has 443 GitHub stars.

It shipped 10 stable releases in the past year. The latest, 0.45.1, came out on 21 October 2026. New versions land roughly every 9 days.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is MIT-licensed and written mostly in PHP.

Its closest alternative on selfhost.directory is Home Assistant (91/100, 91 796 stars). It scores higher overall, so compare the two before you pick. See LaraPaper vs Home Assistant side by side.

Features

  • Auto-Join
  • Blade View Customization
  • Device Management
  • Markup Editor
  • MCP Server (Experimental)Experimental feature in Lab, alpha quality
  • Multiple database support
  • OpenID Connect
  • Passkey Authentication
  • Recipe support
  • REST API
  • Screen Generation via Plugins
  • TRMNL Cloud ProxyRequires TRMNL Developer Edition license

LaraPaper README

How to install LaraPaper

Install LaraPaper with Linux

Environment variables
APP_KEY, APP_URL, and all environment variables from documentation

composer install npm i npm run build php artisan key:generate php artisan migrate --seed php artisan storage:link php artisan serve --host=0.0.0.0 --port=4567

Requires PHP >= 8.4, ext-imagick, Puppeteer, Node.js for frontend assets

How to configure LaraPaper

  • APP_TIMEZONEUTCDefault timezone, which will be used by the PHP date functions. UTC is recommended.

    Default timezone, which will be used by the PHP date functions. UTC is recommended.

  • FORCE_HTTPS0If your server handles SSL termination, enforce HTTPS. Alternative: `TRUSTED_PROXIES`.

    If your server handles SSL termination, enforce HTTPS. Alternative: `TRUSTED_PROXIES`.

  • HTTP_CLIENT_TIMEOUT10Outbound HTTP timeout when fetching recipe polling URLs. (sec)

    Outbound HTTP timeout when fetching recipe polling URLs. (sec)

  • OIDC_CLIENT_IDOAuth client ID

    OAuth client ID

  • OIDC_CLIENT_SECRETOAuth client secret

    OAuth client secret

  • OIDC_ENABLEDfalseEnable the OIDC login button and callback

    Enable the OIDC login button and callback

  • OIDC_ENDPOINTProvider base URL, or the full well-known configuration URL

    Provider base URL, or the full well-known configuration URL

  • OIDC_SCOPESopenid,profile,emailComma-separated scopes

    Comma-separated scopes

  • PASSKEYS_ENABLED0Enable Passkeys for login (requires HTTPS)

    Enable Passkeys for login (requires HTTPS)

  • PHP_OPCACHE_ENABLE0Enable PHP Opcache

    Enable PHP Opcache

  • REGISTRATION_ENABLED1Allow user registration via Webinterface

    Allow user registration via Webinterface

  • SSL_MODEoffSSL Mode, if not using a Reverse Proxy (docs)

    SSL Mode, if not using a Reverse Proxy (docs)

  • TRMNL_BLADE_FRAMEWORK_BASE_URLhttps://trmnl.comBase URL for versioned TRMNL framework CSS/JS used when rendering recipes

    Base URL for versioned TRMNL framework CSS/JS used when rendering recipes

  • TRMNL_BLADE_FRAMEWORK_CSS_URLOverride the framework stylesheet URL

    Override the framework stylesheet URL

  • TRMNL_BLADE_FRAMEWORK_JS_URLOverride the framework JavaScript URL

    Override the framework JavaScript URL

  • TRMNL_IMAGE_URL_TIMEOUT30How long TRMNL waits for a response on the display endpoint. (sec)

    How long TRMNL waits for a response on the display endpoint. (sec)

  • TRMNL_PROXY_BASE_URLhttps://trmnl.appBase URL of the native TRMNL service

    Base URL of the native TRMNL service

  • TRMNL_PROXY_REFRESH_MINUTES15How often should the server fetch new images from native service

    How often should the server fetch new images from native service

  • TRUSTED_PROXIESIf your server handles SSL termination, allow mixed mode. e.g. `"172.0.0.0/8"` or `*`

    If your server handles SSL termination, allow mixed mode. e.g. `"172.0.0.0/8"` or `*`

LaraPaper releases & version history

More in Device Management

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…