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.

spacepad logo

Self-host spacepad

v1.9.1

Open-source meeting room display for tablets

ReleaseOpen CoreOther
Updated9 hours ago
LanguagePHP
Setup difficultyModerate
MobileNative app
ThemeDark mode
Stars
296
Port
8080 (HTTP web interface)
Docker
ghcr.io/magweter/spacepad
Install with Docker Compose
Spacepad meeting room display showing room availability and booking interfaceProduct overview showing multi-room dashboard and tablet display

What is spacepad?

Spacepad is a self-hosted meeting room display solution that runs on standard tablets (iOS, Android, Windows) outside meeting rooms to show real-time availability and allow on-device booking. It syncs with Google Workspace, Microsoft 365, and any CalDAV-compatible calendar (Nextcloud, iCloud, etc.) via webhooks for instant updates. Features include multi-room overview boards, room check-in with grace periods, event cancellation, full-day schedules, custom themes (dark/light/system), branding with logos and Google Fonts, multi-language support, privacy controls, and workspace-based team collaboration. Deployment is via Docker Compose with a Traefik reverse proxy option, using a single ghcr.io/magweter/spacepad image that runs the web app and a scheduler. The Community License allows free self-hosted use for personal or up to one commercial display; Pro and Enterprise licenses unlock multiple displays and advanced features. Native mobile apps are available on the App Store and Google Play.

Should you self-host spacepad?

spacepad scores 46/100 on selfhost.directory (how scoring works) and ranks #6 of 8 in Scheduling & Booking. It has 296 GitHub stars.

It shipped 10 stable releases in the past year. The latest, v1.9.1, came out on 21 October 2026. New versions land roughly every 6 weeks.

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

Its closest alternative on selfhost.directory is Rallly (69/100, 5 329 stars). It scores higher overall, so compare the two before you pick. See spacepad vs Rallly side by side.

Features

  • Custom Branding
  • Event cancellation
  • Full day schedule
  • Multi-language Support
  • Multi-room overview boardsPro feature
  • On-device room booking
  • Privacy Controls
  • Real-time room availability
  • Room check-in
  • Workspace Management

spacepad README

How to install spacepad

Install spacepad with Docker Compose

Environment variables
APP_NAME, APP_KEY, DOMAIN, APP_URL, ACME_EMAIL, MAIL_MAILER, MAIL_HOST, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD, MAIL_FROM_ADDRESS, MAIL_FROM_NAME, AZURE_AD_CLIENT_ID, AZURE_AD_CLIENT_SECRET, GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, DISABLE_EMAIL_LOGIN, ALLOWED_LOGINS

Clone the repository

git clone https://github.com/magweter/spacepad.git cd spacepad

Create the environment config

cp .env.example .env

Set the app key

sed -i "s/^APP_KEY=.*/APP_KEY=base64:$(openssl rand -base64 32)/" .env

Edit DOMAIN and ACME_EMAIL in .env

Configure mail and OAuth providers as needed

Run with Traefik proxy

docker compose -f docker-compose.prod.yml up -d

Or run standalone (use your own proxy)

docker compose up -d

Requires Traefik for automatic HTTPS or custom reverse proxy (Nginx/Apache). See REVERSE_PROXY.md for Nginx/Apache config.

How to configure spacepad

  • ACME_EMAILyour-email@example.comEmail for Let's Encrypt certificate registration

    Email for Let's Encrypt certificate registration

  • ALLOWED_LOGINSComma-separated list of allowed email domains or addresses for registration

    Comma-separated list of allowed email domains or addresses for registration

  • APP_KEYLaravel application key (base64 encoded)

    Laravel application key (base64 encoded)

  • APP_NAMESpacepadApplication name

    Application name

  • APP_URLhttps://${DOMAIN}Full application URL

    Full application URL

  • AZURE_AD_CLIENT_IDMicrosoft Entra ID (Azure AD) OAuth client ID

    Microsoft Entra ID (Azure AD) OAuth client ID

  • AZURE_AD_CLIENT_SECRETMicrosoft Entra ID (Azure AD) OAuth client secret

    Microsoft Entra ID (Azure AD) OAuth client secret

  • DISABLE_EMAIL_LOGINDisable email magic-link login, allow only OAuth

    Disable email magic-link login, allow only OAuth

    values: true, false

  • DOMAINyour-domain.comPublic domain for the self-hosted instance

    Public domain for the self-hosted instance

  • GOOGLE_CLIENT_IDGoogle OAuth client ID

    Google OAuth client ID

  • GOOGLE_CLIENT_SECRETGoogle OAuth client secret

    Google OAuth client secret

  • MAIL_FROM_ADDRESSsupport@${DOMAIN}From email address

    From email address

  • MAIL_FROM_NAME${APP_NAME}From name

    From name

  • MAIL_HOSTSMTP server hostname

    SMTP server hostname

  • MAIL_MAILERMail transport (e.g., smtp)

    Mail transport (e.g., smtp)

  • MAIL_PASSWORDSMTP password

    SMTP password

  • MAIL_PORT587SMTP server port

    SMTP server port

  • MAIL_USERNAMESMTP username

    SMTP username

spacepad releases & version history

More in Digital Signage

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…