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└── .dockerignoreCreating the Dockerfile
Create a Dockerfile in the root of your repository:
FROM php:8.1-apache
# Install system dependenciesRUN 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_rewriteRUN a2enmod rewrite
# Install ComposerCOPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# Set working directoryWORKDIR /var/www/html
# Clone MeetableRUN git clone https://github.com/aaronpk/Meetable.git .
# Install PHP dependenciesRUN composer install --no-dev --optimize-autoloader
# Set permissionsRUN chown -R www-data:www-data /var/www/html \ && chmod -R 755 /var/www/html/storage
# Configure ApacheRUN sed -i 's!/var/www/html!/var/www/html/public!g' /etc/apache2/sites-available/000-default.conf
# Copy environment configurationRUN cp .env.example .env
# Expose portEXPOSE 80
# Health checkHEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \ CMD curl -f http://localhost/ || exit 1Environment Variables Reference
| Variable | Required | Default | Description |
|---|---|---|---|
APP_KEY | Yes | - | Laravel application key |
APP_URL | Yes | - | Public URL of your installation |
DB_CONNECTION | Yes | mysql | Database driver |
DB_HOST | Yes | - | Database hostname |
DB_PORT | No | 3306 | Database port |
DB_DATABASE | Yes | - | Database name |
DB_USERNAME | Yes | - | Database username |
DB_PASSWORD | Yes | - | Database password |
MAIL_MAILER | No | smtp | Mail driver |
MAIL_HOST | No | - | SMTP server hostname |
Deploying on Klutch.sh
- Select HTTP as the traffic type
- Set the internal port to 80
- Detect your Dockerfile automatically
- Build the container image
- Attach the persistent volumes
- Start the Meetable container
- Provision an HTTPS certificate
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:
php -r "echo 'base64:'.base64_encode(random_bytes(32)).PHP_EOL;"Push Your Repository to GitHub
Initialize your repository and push to GitHub:
git initgit add Dockerfile .dockerignore README.mdgit commit -m "Initial Meetable deployment configuration"git remote add origin https://github.com/yourusername/meetable-deploy.gitgit push -u origin mainCreate 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:
Set Environment Variables
Add the following environment variables:
| Variable | Value |
|---|---|
APP_KEY | Your generated application key |
APP_URL | https://your-app.klutch.sh |
DB_CONNECTION | mysql |
DB_HOST | Your database host |
DB_DATABASE | Your database name |
DB_USERNAME | Your database user |
DB_PASSWORD | Your database password |
Attach Persistent Volumes
Add the following volumes:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/var/www/html/storage | 5 GB | Uploads and cached data |
Deploy Your Application
Click Deploy to start the build process. Klutch.sh will:
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
- Navigate to your Meetable instance
- Register a new account
- Set the first user as admin via database or configuration
Configuring Your Site
After logging in:
- Access the admin settings
- Configure site name and description
- Set up authentication options
- Configure timezone defaults
Creating Events
Basic Event Creation
- Click Create Event
- Enter event title and description
- Set date, time, and timezone
- Add location (physical or virtual)
- Configure RSVP settings
- 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:
- Get your calendar feed URL
- Add to Google Calendar, Outlook, etc.
- 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.