BMLT (Basic Meeting List Toolbox) and YAP Documentation

website·Indexed 29 days ago

https://vmdocs.pjbuilds.dev

Comprehensive setup and management guide for BMLT (Basic Meeting List Toolbox) and YAP (Yet Another Phonebot) installations on Ubuntu cloud servers. Includes instructions for LAMP stack installation, SSL setup via Let's Encrypt, database backup strategies, and system status commands.

Tokens
13.9K
Snippets
101
Records
116
Agent score
48%

What's inside BMLT

  1. Overview of BMLT and YAP

    BMLT (Basic Meeting List Toolbox) is a web application used by 12-step recovery fellowships to manage and display meeting information via a centralized database. This data can be integrated into websites, mobile apps, and phone systems. YAP (Yet Another Phonebot) is a telephone helpline system that integrates with BMLT to provide meeting information and helpline services over the phone using Twilio.
  2. Overview of YAP (Yet Another Phonebot)

    YAP is a telephone helpline system that integrates with BMLT and Twilio. It provides the following automated services:

    • Meeting search by phone: Callers can find meetings by location.
    • Helpline routing: Routes calls to volunteers.
    • Conference calling: Connects callers with support.
    • SMS responses: Sends meeting information via text message.
  3. BMLT and YAP Product Overview

    BMLT (Basic Meeting List Toolbox) is a web application for 12-step recovery fellowships to manage and display meeting information via a centralized database, admin interface, and API. YAP (Yet Another Phonebot) is an optional telephone helpline system that integrates BMLT with Twilio to provide phone-based meeting searches, call routing, and SMS information.
  4. Connect to an Ubuntu server via SSH

    Connect to your server using SSH. If it is the first time connecting, you may see a security warning; type yes to continue. This assumes the username is ubuntu.
    # Using SSH key (recommended)
    ssh -i ~/.ssh/your-key ubuntu@your-server-ip
    
    # Using password (if keys not configured)
    ssh ubuntu@your-server-ip
  5. Install Certbot for Apache

    Certbot is used to obtain and manage Let's Encrypt SSL certificates. Verify if it is installed, and install the Apache plugin if necessary.
    # Check if Certbot is installed
    certbot --version
    
    # If not installed, install it
    sudo apt install certbot python3-certbot-apache -y
  6. Prepare domain and DNS for BMLT installation

    A domain name is required for SSL certificate installation, professional appearance, and email functionality (if using YAP). Before installation, ensure the domain is purchased and the DNS A record points to the server's public IP address. Note that DNS propagation may take 24-48 hours.
  7. BMLT System Requirements

    Minimum server specifications required to run BMLT:

    • OS: Ubuntu 24.04 LTS (recommended)
    • RAM: 2GB minimum (4GB+ recommended)
    • CPU: 2 vCPUs minimum
    • Storage: 50GB minimum (100GB+ recommended)
    • Network: Public IP address with HTTP/HTTPS access
  8. Secure and encrypt database backup files

    Protect backup files by restricting filesystem permissions to root and using GPG for symmetric encryption with AES256.
    # Secure backup files
    sudo chmod 600 /var/backups/bmlt/*.gz
    sudo chown root:root /var/backups/bmlt/*.gz
    
    # Encrypt sensitive backups
    gpg --symmetric --cipher-algo AES256 backup-file.gz
  9. Install LAMP stack components on Ubuntu

    Install the core Apache web server, MySQL database server, and PHP with necessary extensions for web application support. Additional tools like Certbot for SSL and htop for monitoring are also recommended.
    # Install Apache
    sudo apt install apache2 -y
    
    # Install MySQL
    sudo apt install mysql-server mysql-client -y
    
    # Install PHP and extensions
    sudo apt install php php-mysql php-curl php-gd php-intl php-zip php-mbstring php-xml libapache2-mod-php -y
    
    # Install supporting tools
    sudo apt install software-properties-common unzip htop python3-pip -y
    
    # Install Certbot for SSL
    sudo apt install certbot python3-certbot-apache -y
  10. Renew Let's Encrypt SSL certificates manually

    To renew SSL certificates using Certbot, ensure port 80 is accessible for the ACME challenge. If the web server (Apache) is blocking the challenge, temporarily stop the service before running the renewal command.
    # Ensure port 80 is accessible for challenges
    sudo netstat -tlnp | grep :80
    
    # Temporarily stop Apache if needed
    sudo systemctl stop apache2
    sudo certbot renew
    sudo systemctl start apache2
  11. Deploy and schedule the BMLT backup script

    After creating the backup script at /usr/local/bin/backup-bmlt.sh, make it executable and add it to the root crontab to run daily at 2 AM.
    # Make executable
    sudo chmod +x /usr/local/bin/backup-bmlt.sh
    
    # Add to crontab for daily backup at 2 AM
    sudo crontab -e
    # Add the following line to the crontab file:
    0 2 * * * /usr/local/bin/backup-bmlt.sh
  12. Update BMLT server files

    To update the BMLT server, extract the new version and replace the existing server directory while preserving permissions for the web server user (www-data). BMLT handles database updates automatically.
    sudo unzip bmlt-server.zip
    sudo mv main_server main_server_backup
    sudo mv extracted_main_server main_server
    sudo chown -R www-data:www-data main_server