Skip to content

Deploying Meetable

Introduction

Meetable is a self-hosted event scheduling and management application designed for communities, organizations, and groups. Built with PHP and Laravel, Meetable provides an elegant interface for creating events, managing RSVPs, and coordinating schedules without relying on third-party platforms.

The application focuses on simplicity while providing essential features for event management. Whether you’re organizing meetups, conferences, or regular group activities, Meetable gives you control over your event data and attendee information.

Key highlights of Meetable:

  • Event Creation: Create and manage events with full details and descriptions
  • RSVP Management: Track attendee responses and manage capacity
  • Calendar Views: View events in daily, weekly, or monthly calendar formats
  • Event Discovery: Public event listing for community discovery
  • User Authentication: Secure login with email or OAuth providers
  • Timezone Support: Proper handling of timezones for global events
  • Event Tags: Organize events with categories and tags
  • iCal Export: Subscribe to calendars in external applications
  • Responsive Design: Works on desktop and mobile devices
  • Self-Hosted: Complete control over your event data

This guide walks through deploying Meetable on Klutch.sh using Docker, configuring persistent storage, and setting up the application for your community.

Why Deploy Meetable on Klutch.sh

Deploying Meetable on Klutch.sh provides several advantages for self-hosted event management:

Simplified Deployment: Klutch.sh automatically detects your Dockerfile and builds Meetable without complex orchestration. Push to GitHub, and your event platform deploys automatically.

Persistent Storage: Attach persistent volumes for your database and uploaded assets. Your events and user data survive container restarts.

HTTPS by Default: Klutch.sh provides automatic SSL certificates for secure access to your event platform.

GitHub Integration: Connect your configuration repository directly from GitHub. Updates trigger automatic redeployments.

Scalable Resources: Allocate CPU and memory based on your community size and traffic.

Custom Domains: Assign a custom domain for a professional, branded event platform.

Always-On Availability: Your event platform remains accessible 24/7 for RSVPs and event discovery.

Prerequisites

Before deploying Meetable on Klutch.sh, ensure you have:

  • A Klutch.sh account
  • A GitHub account with a repository for your configuration
  • Basic familiarity with Docker and containerization concepts
  • (Optional) A MySQL/PostgreSQL database
  • (Optional) A custom domain for your event platform

Preparing Your Repository

To deploy Meetable on Klutch.sh, create a GitHub repository containing your Dockerfile and configuration.

Repository Structure

meetable-deploy/
├── Dockerfile
├── README.md
└── .dockerignore

Creating the Dockerfile

Create a Dockerfile in the root of your repository:

FROM php:8.1-apache
# Install system dependencies
RUN apt-get update && apt-get install -y \
git \
curl \
libpng-dev \
libonig-dev \
libxml2-dev \
zip \
unzip \
libzip-dev \
&& docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd zip \
&& rm -rf /var/lib/apt/lists/*
# Enable Apache mod_rewrite
RUN a2enmod rewrite
# Install Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# Set working directory
WORKDIR /var/www/html
# Clone Meetable
RUN git clone https://github.com/aaronpk/Meetable.git .
# Install PHP dependencies
RUN composer install --no-dev --optimize-autoloader
# Set permissions
RUN chown -R www-data:www-data /var/www/html \
&& chmod -R 755 /var/www/html/storage
# Configure Apache
RUN sed -i 's!/var/www/html!/var/www/html/public!g' /etc/apache2/sites-available/000-default.conf
# Copy environment configuration
RUN cp .env.example .env
# Expose port
EXPOSE 80
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
CMD curl -f http://localhost/ || exit 1

Environment Variables Reference

VariableRequiredDefaultDescription
APP_KEYYes-Laravel application key
APP_URLYes-Public URL of your installation
DB_CONNECTIONYesmysqlDatabase driver
DB_HOSTYes-Database hostname
DB_PORTNo3306Database port
DB_DATABASEYes-Database name
DB_USERNAMEYes-Database username
DB_PASSWORDYes-Database password
MAIL_MAILERNosmtpMail driver
MAIL_HOSTNo-SMTP server hostname

Deploying on Klutch.sh

    Set Up a Database

    Deploy a MySQL or PostgreSQL database on Klutch.sh or use an external provider. Note the connection details.

    Generate an Application Key

    Generate a Laravel application key:

    Terminal window
    php -r "echo 'base64:'.base64_encode(random_bytes(32)).PHP_EOL;"

    Push Your Repository to GitHub

    Initialize your repository and push to GitHub:

    Terminal window
    git init
    git add Dockerfile .dockerignore README.md
    git commit -m "Initial Meetable deployment configuration"
    git remote add origin https://github.com/yourusername/meetable-deploy.git
    git push -u origin main

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project. Give it a descriptive name like “meetable” or “events”.

    Create a New App

    Within your project, create a new app. Connect your GitHub account if you haven’t already, then select the repository containing your Meetable Dockerfile.

    Configure HTTP Traffic

    Meetable serves its web interface over HTTP. In the deployment settings:

    • Select HTTP as the traffic type
    • Set the internal port to 80

    Set Environment Variables

    Add the following environment variables:

    VariableValue
    APP_KEYYour generated application key
    APP_URLhttps://your-app.klutch.sh
    DB_CONNECTIONmysql
    DB_HOSTYour database host
    DB_DATABASEYour database name
    DB_USERNAMEYour database user
    DB_PASSWORDYour database password

    Attach Persistent Volumes

    Add the following volumes:

    Mount PathRecommended SizePurpose
    /var/www/html/storage5 GBUploads and cached data

    Deploy Your Application

    Click Deploy to start the build process. Klutch.sh will:

    • Detect your Dockerfile automatically
    • Build the container image
    • Attach the persistent volumes
    • Start the Meetable container
    • Provision an HTTPS certificate

    Run Database Migrations

    After deployment, run migrations to set up the database schema.

    Access Meetable

    Once deployment completes, access your Meetable instance at https://example-app.klutch.sh.

Initial Setup

Creating an Admin Account

  1. Navigate to your Meetable instance
  2. Register a new account
  3. Set the first user as admin via database or configuration

Configuring Your Site

After logging in:

  1. Access the admin settings
  2. Configure site name and description
  3. Set up authentication options
  4. Configure timezone defaults

Creating Events

Basic Event Creation

  1. Click Create Event
  2. Enter event title and description
  3. Set date, time, and timezone
  4. Add location (physical or virtual)
  5. Configure RSVP settings
  6. Publish the event

Event Details

Include relevant information:

  • Description: Use markdown for formatting
  • Location: Address or virtual meeting link
  • Capacity: Maximum number of attendees
  • Tags: Categorize your event

RSVP Options

Configure attendee responses:

  • Enable/disable RSVPs
  • Set capacity limits
  • Collect additional information
  • Send confirmation emails

Managing Events

Event Dashboard

View and manage your events:

  • See upcoming and past events
  • Track RSVP counts
  • Edit event details
  • Cancel or reschedule

Attendee Management

Track who’s coming:

  • View RSVP list
  • Export attendee data
  • Send updates to attendees
  • Manage waitlists

Calendar Features

Calendar Views

Browse events in different formats:

  • Month View: Overview of all events
  • Week View: Detailed weekly schedule
  • List View: Upcoming events as a list

iCal Subscription

Subscribe in external apps:

  1. Get your calendar feed URL
  2. Add to Google Calendar, Outlook, etc.
  3. Events sync automatically

Troubleshooting

Events Not Saving

  • Check database connection
  • Verify file permissions on storage
  • Review Laravel logs for errors

RSVP Issues

  • Ensure email is configured for confirmations
  • Check user authentication settings
  • Verify database connectivity

Calendar Sync Not Working

  • Confirm iCal URL is accessible
  • Check timezone settings
  • Verify event visibility settings

Additional Resources

Conclusion

Deploying Meetable on Klutch.sh gives you a simple, elegant event management platform that you fully control. With essential features for event creation, RSVP tracking, and calendar integration, Meetable provides everything needed for community event coordination.

The combination of Meetable’s clean interface and Klutch.sh’s reliable infrastructure delivers a professional event platform without relying on third-party services. Whether you’re managing meetups, workshops, or community gatherings, Meetable on Klutch.sh provides the foundation for successful event organization.