~7 min read

Overview

Thumper-Run supports three deployment modes, each targeting a different use case. The desktop app is the primary experience for individual users. The web shell serves the public website and authenticated user features. Self-hosted deployments give teams full control over their infrastructure.

All three modes share the same Leptos frontend codebase (tr-shared-ui). The difference is in the shell that hosts the UI and the backend services available.

Feature Comparison

Use this matrix to decide which deployment mode fits your needs.

FeatureDesktop AppWeb ShellSelf-Hosted
PlatformLinux, macOS, WindowsAny browserLinux server
DatabaseLocal SQLite (CRDT)PostgreSQL + RedisPostgreSQL + Redis
AuthOS keychainRauthy OIDCRauthy OIDC
GPU AccessDirectNone (server-side)Direct (if GPU on server)
OfflineFull offlineRequires networkLAN-only possible
Multi-userSingle userMulti-userMulti-user
SSL/TLSN/AManagedYou manage (nginx/Caddy)
ConfigSettings UIEnvironment variablesEnvironment variables
Best ForIndividual creatorsPublic websiteTeams, orgs, privacy

Desktop App

The desktop app is a Tauri 2.0 application that bundles the Leptos frontend in a native webview. It communicates with Rust backend services through Tauri’s IPC layer.

Architecture

  • Frontend: Leptos 0.8 compiled to WASM, rendered in system webview
  • Backend: Rust services running in the Tauri process (tr-tauri-shell)
  • Data: Local CRDT store backed by SQLite for offline-first persistence
  • GPU: Direct access to system GPU via spawned app processes
  • Sync: Optional server-assisted WebSocket workflows; private E2EE modes remain gated

Configuration

The desktop app is configured through its Settings UI. Environment variables are only needed for development builds (TR_DEV_TOOLS=true) or custom data directories (TR_DATA_DIR).

Download the desktop app from the Downloads page. Installers are available for Linux (AppImage, .deb), macOS (.dmg), and Windows (.msi).

Web Shell

The web shell (tr-web-shell) is an Axum-based SSR server that serves the public website and authenticated user features. It handles server-side rendering, API routes, authentication, and billing integration.

Architecture

  • Frontend: Leptos 0.8 with SSR hydration (server renders, client hydrates)
  • Backend: Axum router with middleware for auth, CORS, compression
  • Data: PostgreSQL for persistent storage, Redis for sessions and pub/sub
  • Auth: Rauthy OIDC for user authentication and authorization
  • Billing: Stripe integration for subscription management

Required Environment Variables

The web shell requires several environment variables to function. See the full list on the Environment Variables page. At minimum, you need:

  • DATABASE_URL — PostgreSQL connection string
  • RAUTHY_URL, RAUTHY_CLIENT_ID, RAUTHY_CLIENT_SECRET — OIDC configuration
  • MANAGED_KEY_SECRET — server-side encryption key

Self-Hosted

Self-hosted deployments run the web shell on your own infrastructure. This gives you full control over data, allows LAN-only operation, and supports multi-user setups for teams and organizations.

Prerequisites

  • Linux server (Ubuntu 22.04+ or similar)
  • PostgreSQL 15+
  • Rauthy instance (or compatible OIDC provider)
  • Reverse proxy (nginx or Caddy) for TLS termination
  • Optional: Redis for session cache and real-time features
  • Optional: GPU for local inference (NVIDIA or AMD)

Docker Deployment

The recommended self-hosted deployment uses Docker Compose with the provided production Dockerfile and nginx configuration.

For a step-by-step guide to setting up a self-hosted instance, see the Self-Hosting Setup Tutorial.

Environment Configuration

Different environments (development, staging, production) require different variable values. Here are the key differences:

VariableDevelopmentStagingProduction
TR_LOG_LEVELdebuginfowarn
TR_HOT_RELOADtruefalsefalse
TR_CORS_ENABLEDtruetruefalse
TR_COMPRESSIONfalsetruetrue
STRIPE_*sk_test_* keyssk_test_* keyssk_live_* keys
DATABASE_URLlocalhost DBstaging DBproduction DB
Use .env files for local development and proper secret management (e.g., Docker secrets, Vault, or platform-specific secret stores) for staging and production.

Key Takeaways

  • Desktop app is best for individual creators with local GPU access
  • Web shell serves the public site and requires PostgreSQL + Rauthy
  • Self-hosted gives teams full control over data and infrastructure
  • All three modes share the same Leptos frontend codebase
  • Use test Stripe keys for development and staging environments