Skip to content

Deploying Admidio

Introduction

Admidio is a free, open-source membership management system designed for organizations, clubs, and associations. It provides a comprehensive web-based platform for managing members, organizing events, handling communications, and maintaining organizational structure.

Built with PHP and supporting MySQL/MariaDB databases, Admidio offers a full-featured solution that grows with your organization. From small community groups to large associations, Admidio provides the tools needed for effective membership management.

Key highlights of Admidio:

  • Member Management: Complete member database with custom profile fields
  • Role System: Flexible role and permission management
  • Event Management: Create and manage events with registration
  • Email & Messaging: Built-in email and message system
  • Document Management: Upload and organize documents
  • Photo Gallery: Image galleries for events and activities
  • Lists & Reports: Generate member lists and reports
  • Guestbook: Member guestbook functionality
  • Calendar: Shared calendar for organization activities
  • Announcements: News and announcement system
  • Multi-Language: Support for multiple languages
  • Plugin System: Extend functionality with plugins

This guide walks through deploying Admidio on Klutch.sh using Docker, providing your organization with a self-hosted membership management solution.

Why Deploy Admidio on Klutch.sh

Deploying Admidio on Klutch.sh provides several advantages for organizations:

Data Privacy: Keep member data secure on infrastructure you control.

HTTPS by Default: Automatic SSL certificates for secure member access.

Always Available: Members can access the system 24/7 from anywhere.

Persistent Storage: Reliable storage for member data, documents, and photos.

Custom Domains: Use your organization’s domain for a professional presence.

GitHub Integration: Deploy updates automatically when you push changes.

Prerequisites

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

  • A Klutch.sh account
  • A GitHub account with a repository for your configuration
  • Basic understanding of Docker and containerization
  • (Optional) A custom domain for your organization

Understanding Admidio Architecture

Admidio consists of several components:

PHP Application: The core web application handling all functionality.

MySQL/MariaDB: Database for storing member data and configuration.

File Storage: Local storage for documents, photos, and uploads.

Theme Engine: Customizable themes for organization branding.

Preparing Your Repository

Create a GitHub repository for your Admidio deployment.

Repository Structure

admidio-deploy/
├── Dockerfile
├── config/
│ └── config.php
└── .dockerignore

Creating the Dockerfile

Create a Dockerfile for Admidio:

FROM php:8.2-apache
# Install dependencies
RUN apt-get update && apt-get install -y \
libpng-dev \
libjpeg-dev \
libfreetype6-dev \
libzip-dev \
unzip \
wget \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install gd mysqli pdo pdo_mysql zip \
&& rm -rf /var/lib/apt/lists/*
# Enable Apache modules
RUN a2enmod rewrite
# Download and install Admidio
WORKDIR /var/www/html
RUN wget https://www.admidio.org/download/latest -O admidio.zip \
&& unzip admidio.zip \
&& mv admidio-*/* . \
&& rm -rf admidio.zip admidio-*
# Set permissions
RUN chown -R www-data:www-data /var/www/html \
&& chmod -R 755 /var/www/html
# Environment variables
ENV ADMIDIO_DB_HOST=${ADMIDIO_DB_HOST}
ENV ADMIDIO_DB_NAME=${ADMIDIO_DB_NAME:-admidio}
ENV ADMIDIO_DB_USER=${ADMIDIO_DB_USER:-admidio}
ENV ADMIDIO_DB_PASSWORD=${ADMIDIO_DB_PASSWORD}
# Expose port
EXPOSE 80
# Start Apache
CMD ["apache2-foreground"]

Environment Variables Reference

VariableRequiredDefaultDescription
ADMIDIO_DB_HOSTYes-Database hostname
ADMIDIO_DB_NAMENoadmidioDatabase name
ADMIDIO_DB_USERNoadmidioDatabase username
ADMIDIO_DB_PASSWORDYes-Database password
ADMIDIO_ROOT_PATHNo-Root URL path

Deploying Admidio on Klutch.sh

    Generate Database Password

    Create a secure database password:

    Terminal window
    openssl rand -base64 24

    Save this password for configuration.

    Push Your Repository to GitHub

    Initialize and push your configuration to GitHub.

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project named “admidio” or “membership”.

    Create a New App

    Within your project, create a new app and connect your GitHub repository.

    Configure HTTP Traffic

    Set up HTTP for the web interface:

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

    Set Environment Variables

    Configure the following:

    VariableValue
    ADMIDIO_DB_HOSTDatabase hostname
    ADMIDIO_DB_NAMEadmidio
    ADMIDIO_DB_USERadmidio
    ADMIDIO_DB_PASSWORDYour generated password

    Attach Persistent Volumes

    Add storage for uploads and data:

    Mount PathRecommended SizePurpose
    /var/www/html/adm_my_files10 GBUser uploads and files
    /var/www/html/adm_themes1 GBCustom themes

    Deploy Your Application

    Click Deploy to build and start Admidio.

    Complete Installation

    Access your instance and complete the web-based installation wizard.

Initial Configuration

Installation Wizard

  1. Navigate to your Admidio URL
  2. Follow the installation wizard:
    • Select language
    • Check requirements
    • Configure database connection
    • Create admin account
    • Configure organization
  3. Complete installation

Organization Setup

Configure your organization:

  1. Log in as administrator
  2. Navigate to Administration > Organization
  3. Set organization name and details
  4. Configure default settings

Creating Roles

Set up organizational roles:

  1. Navigate to Administration > Roles
  2. Create roles for your organization structure
  3. Configure role permissions
  4. Assign members to roles

Member Management

Adding Members

Add new members to your organization:

  1. Navigate to Members
  2. Click “Create member”
  3. Fill in member details
  4. Assign to appropriate roles
  5. Save member profile

Custom Profile Fields

Create organization-specific fields:

  1. Navigate to Administration > Profile Fields
  2. Add custom fields for your needs
  3. Set field visibility and requirements
  4. Organize field categories

Member Import

Import members from external sources:

  1. Navigate to Members > Import
  2. Prepare CSV file with member data
  3. Map columns to profile fields
  4. Complete import process

Event Management

Creating Events

Organize events for your members:

  1. Navigate to Events
  2. Click “Create event”
  3. Set event details, date, and location
  4. Configure registration options
  5. Publish event

Event Registration

Manage event attendance:

  1. Enable registration for events
  2. Set participant limits
  3. Track registrations
  4. Send reminders to participants

Communication

Email System

Send emails to members:

  1. Navigate to Email
  2. Select recipients by role or criteria
  3. Compose message
  4. Send or schedule delivery

Announcements

Post organizational news:

  1. Navigate to Announcements
  2. Create new announcement
  3. Set visibility and dates
  4. Publish to members

Customization

Themes

Customize the appearance:

  1. Upload custom themes to /adm_themes
  2. Select theme in Administration > Preferences
  3. Customize colors and branding

Modules

Enable or disable features:

  1. Navigate to Administration > Modules
  2. Enable modules your organization needs
  3. Configure module settings

Troubleshooting Common Issues

Database Connection Failed

Solutions:

  • Verify database credentials
  • Check database server is accessible
  • Confirm database exists and user has permissions

Upload Errors

Solutions:

  • Check file size limits in PHP configuration
  • Verify storage volume permissions
  • Review PHP error logs

Email Not Sending

Solutions:

  • Configure SMTP settings in Administration
  • Verify email credentials
  • Check spam folder for test emails

Additional Resources

Conclusion

Deploying Admidio on Klutch.sh gives your organization a comprehensive membership management system under your control. With features for managing members, events, communications, and documents, Admidio provides everything needed to run an efficient organization while keeping member data private and secure.