Back to Overview

Cloudron Deployment

Tymeslot is in the Cloudron App Store and uses the platform's built-in services: TLS certificates, PostgreSQL with backups, email and single sign-on. This guide covers installing and configuring it.

Luka Breitig, Software Engineer & AI Developer
Luka Breitig

Updated 21 October 2026

Managed Infrastructure

Deploying on Cloudron gives you managed infrastructure without extra setup:

  • Automatic SSL/TLS: Handled by Cloudron's reverse proxy.
  • Managed Database: Built-in PostgreSQL with automatic backups.
  • Health Monitoring: Automated restarts and health checks.
  • Built-in Email: Cloudron's mail relay works automatically, with no SMTP setup.
  • Single Sign-On: Users can log in with their Cloudron account via OIDC.

Prerequisites

  • Cloudron Server: Version 9.1.0 or higher.
  • Cloudron CLI: Installed locally and logged into your server.
  • Domain name: Configured in Cloudron for the app location.

1 Install from the App Store

Tymeslot is listed in the Cloudron App Store as a prebuilt app, so you need no Docker or local build tools. In your Cloudron dashboard, go to App Store, search for Tymeslot and open it.

Choose your location (e.g. tymeslot.yourdomain.com) and click Install. Cloudron pulls the prebuilt image and handles the rest. New versions appear in the dashboard as updates.

Installed earlier with Install via URL? That community package is retired and receives no further updates. The App Store version is a separate app, so install Tymeslot from the App Store as a new app.

2 Set Your App Domain

The package generates Tymeslot's signing secret on first boot and keeps it in /app/data, and Cloudron supplies the port, database and mail settings. You configure Tymeslot with environment variables, set in the dashboard's Environment tab or with cloudron env set; the app restarts automatically. The one to set is PHX_HOST, your app's domain, which every link Tymeslot generates is built from. Without it Tymeslot falls back to the domain Cloudron reports, but setting it explicitly is safer.

cloudron env set --app tymeslot.yourdomain.com PHX_HOST=tymeslot.yourdomain.com

Stored calendar and video credentials are encrypted under a key derived from that signing secret until you give them a key of their own. To do that, follow Data-at-rest encryption before connecting your first calendar.

3 Add More Variables (Optional)

You can set environment variables in two ways, and mix them freely. Values set through Cloudron always win over values in the .env file, so treat the file as a set of defaults that Cloudron can override key by key.

Option 1: Cloudron CLI / Dashboard

Use cloudron env set or the dashboard's Environment tab. Cloudron stores the values, restarts the app and shows them in the dashboard.

cloudron env set --app tymeslot.yourdomain.com KEY=value KEY2=value2

# Confirm current values
cloudron env list --app tymeslot.yourdomain.com

Option 2: .env file in the data directory

Tymeslot reads /app/data/.env at boot, if it exists, and applies any key that is not already set. The package does not create it, so create it yourself; the full list of variables is in .env.example in the Core repository. This suits you when you have many variables to manage or want to keep them under version control on your own host. The file must live in /app/data, because /app itself is read-only on Cloudron and is replaced on every upgrade.

# Create or edit the .env file inside the container
cloudron exec --app tymeslot.yourdomain.com -- vi /app/data/.env

# Or push a prepared file from your workstation
cloudron push --app tymeslot.yourdomain.com ./my-env /app/data/.env

# Restart so the new values take effect
cloudron restart --app tymeslot.yourdomain.com

Database Support

Cloudron supplies your PostgreSQL connection through the CLOUDRON_POSTGRESQL_URL variable, so you never configure database credentials yourself.

Automatic Addon Integration

Tymeslot detects and uses Cloudron's built-in addons on its own, with no environment variables to set.

Email (Sendmail Addon)

Tymeslot sends its emails (confirmations, reminders, password resets) through Cloudron's mail relay. No SMTP_* or EMAIL_ADAPTER configuration is needed.

To use an external provider instead (Postmark, SendGrid, Mailgun, AhaSend, or any SMTP relay), set EMAIL_ADAPTER explicitly; it overrides the Cloudron relay.

Single Sign-On (OIDC Addon)

Tymeslot signs users in through Cloudron's identity provider: the login page shows a button named after it (or "SSO"), and users sign in with their Cloudron account. No OAUTH_* configuration is needed.

To use a different IdP, set ENABLE_OAUTH_AUTH=true with your own OAUTH_* variables. To disable SSO entirely, set ENABLE_OAUTH_AUTH=false. Either value also locks the SSO switch in the admin panel; to keep it adjustable there, leave the variable unset and switch SSO off in the admin panel instead.

OAuth Provider Setup

To enable calendar sync or social login, add your provider credentials to the Environment section:

Google (Sign-in, Calendar & Meet)

GOOGLE_STATE=$(openssl rand -base64 32 | tr -d '\n')
cloudron env set --app tymeslot.yourdomain.com ENABLE_GOOGLE_AUTH=true GOOGLE_CLIENT_ID=your_id GOOGLE_CLIENT_SECRET=your_secret GOOGLE_STATE_SECRET=$GOOGLE_STATE

Redirect URIs: sign-in uses https://tymeslot.yourdomain.com/auth/google/callback; Calendar and Meet use /auth/google/calendar/callback and /auth/google/video/callback on the same domain. Register each one you use.

GitHub (Authentication)

cloudron env set --app tymeslot.yourdomain.com ENABLE_GITHUB_AUTH=true GITHUB_CLIENT_ID=your_id GITHUB_CLIENT_SECRET=your_secret

Cloudron CLI Toolkit

View Real-time Logs

cloudron logs --app tymeslot.yourdomain.com --follow

Direct Database Access

cloudron exec --app tymeslot.yourdomain.com -- sh -c 'psql "$CLOUDRON_POSTGRESQL_URL"'

Apply Updates

Cloudron checks for new versions automatically. Apply an available update via CLI:

cloudron update --app tymeslot.yourdomain.com

Troubleshooting

App won't start: Check the logs in the CLI or dashboard; Tymeslot stops at boot when a setting is incomplete and names the variable. Common causes are an explicit EMAIL_ADAPTER without its provider's credentials, or ENABLE_OAUTH_AUTH=true without the OAuth endpoints. If pages load but never respond to clicks, check that PHX_HOST matches the app's domain.

Manual Migrations: The app migrates the database on every start. To run pending migrations against the running app by hand:

cloudron exec --app tymeslot.yourdomain.com -- bin/tymeslot rpc 'Ecto.Migrator.run(Tymeslot.Repo, :up, all: true)'

Related Articles

Read Self-Host Tymeslot with Docker

Self-Host Tymeslot with Docker

Deploy Tymeslot with Docker Compose on any VPS or home server. Includes reverse proxy setup, file upload volumes, and WebSocket configuration for LiveView.

Read Railway Deployment

Railway Deployment

Deploy Tymeslot to Railway with one click. PostgreSQL is provisioned and connected for you; add a signing secret and your email settings and your instance is live.

Read Reverse Proxy Setup

Reverse Proxy Setup

Set up Nginx or Caddy as a reverse proxy for Tymeslot. Covers HTTPS termination, WebSocket proxying for LiveView, and custom domain configuration.