Attendize on Ubuntu 24.04 with PHP 7.4 – A Self-Hosted Ticketing Solution for Developers and Organizers

Attendize is a modern, Laravel-based open-source ticketing platform designed to help event organizers manage registrations, sell tickets, and automate communication. It’s ideal for teams seeking a self-hosted alternative to commercial platforms like Eventbrite or TicketingHub. However, Attendize requires PHP 7.4, which is the recommended version for stability and compatibility—even though newer PHP versions are available on Ubuntu 24.04.


Why Use PHP 7.4 with Attendize on Ubuntu 24.04?

PHP 7.4 is the last version fully compatible with Laravel 5.8, the framework on which Attendize is built. PHP 8.x versions introduce syntax and breaking changes that cause failures with Attendize and its dependencies.

Since Ubuntu 24.04 ships with PHP 8.3, users must enable the Ondřej Surý PPA to install PHP 7.4, ensuring that Attendize runs properly. This combination provides a stable, modern OS with legacy PHP support, especially when containerized or isolated via Shape.Host Cloud VPS.


Key Attendize Features

  • Multi-event and multi-organizer support
  • Mobile-ready frontend for attendees
  • Stripe, PayPal, and Offline payment options
  • Discount codes, ticket tiers, and quotas
  • Event page branding and customization
  • Email notifications and attendee exports
  • OAuth login for Facebook/Twitter

How Does Attendize Compare to Other Event Management Platforms?

Below is a technical and business-oriented comparison between Attendize and three notable alternatives: Eventbrite, Pretix, and TicketingHub.

Feature / PlatformAttendizeEventbritePretixTicketingHub
TypeOpen-source, self-hostedCloud SaaSOpen-source + SaaS optionCloud SaaS
HostingYou manage (e.g., VPS, Docker)Managed by EventbriteSelf-hosted or hosted by PretixManaged by TicketingHub
LicenseMIT LicenseCommercialAGPLv3 (open-source core)Commercial
CustomizationFull (code-level access)Minimal (brand/logo only)High (modular plugins)Limited
Payment ProvidersStripe, PayPal, OfflineStripe, PayPal, Square, etc.Stripe, PayPal, Giropay, etc.Stripe, PayPal
PricingFree (VPS cost only)Fee per ticket sold + % cutFree self-hosted or ~€100/moFee per ticket + base plan
Multi-Organizer✔️✔️ Pro Plans Only✔️ Built-in✖️
Offline Sales Support✔️✖️✔️ Mobile POS via plugins✖️
GDPR/Compliance✔️ (self-managed)EU-compliantHigh focus on GDPR complianceLimited transparency
Technical StackLaravel + PHP 7.4 + MySQLProprietaryDjango + Python + PostgreSQLProprietary SaaS
Deployment ModelManual install / Git / DockerWeb-onlyDocker, Pip, Ansible, etc.Web-only

When to Choose Attendize Over Commercial Services

Choose Attendize if you:

  • Want full control over event data, branding, and attendee privacy
  • Need a free and self-hosted solution with no per-ticket fees
  • Are comfortable with Linux servers, PHP, and Laravel
  • Require a system that can be customized or extended to specific workflows

Avoid Attendize if you:

  • Prefer a no-maintenance solution and don’t want to manage servers or updates
  • Need modern integrations or analytics out of the box (e.g., Google Tag Manager, Salesforce)
  • Require scalability for thousands of concurrent buyers, where SaaS platforms offer better load balancing

Attendize in the DevOps Context

Attendize fits well in DevOps pipelines and containerized stacks:

  • Easily deployed via Docker or Git-based automation
  • Integrates with NGINX or Apache, using PHP-FPM 7.4
  • Works with MariaDB, PostgreSQL, or MySQL 8
  • Can be hosted securely on Shape.Host Cloud VPS, ensuring root control, SSD storage, and daily backups

Attendize on Ubuntu 24.04 with PHP 7.4 is a powerful self-hosted event management system for developers, agencies, and organizations that value data ownership, control, and customization. While it’s not as polished or actively maintained as commercial SaaS tools, it delivers the essential features needed to run paid or free events at no platform cost.

For the best performance and isolation, it is highly recommended to:

  • Deploy Attendize in a dedicated VPS or container
  • Use PHP 7.4 from a trusted external PPA
  • Secure the stack with Let’s Encrypt SSL, Fail2Ban, and firewalls

Step 1: Set Up a Server Instance on Shape.Host

To get started with Attendize, you need a stable and fast server. Shape.Host provides powerful Cloud VPS services that make it easy to deploy applications like Attendize.

Go to https://shape.host and log into your account.

From the dashboard, click “Create” and select “Instance.”

Shape.host Resources dashboard with Create > Instance highlighted.

Choose Location: Select a nearby data center.

Shape.host instance form with the data center location selector highlighted.

Instance Type: Choose a Cloud VPS option.

OS: Select Ubuntu 24.04 (64-bit).

Plan: We recommend at least 2 CPUs, 4 GB RAM, and 40 GB SSD for Attendize.

Shape.host instance form with the operating system image selector highlighted.

Click “Create Instance.”

Shape.host instance form with the Create Instance button highlighted.

Once deployed, copy the IP address from the “Resources” tab to connect via SSH.

Shape.host Resources dashboard with the server IP address highlighted.

Step 2: Connect to Your Instance via SSH

For Linux/macOS:

Open a terminal and run:

ssh root@your-server-ip

For Windows:

Use PuTTY:

  1. Enter your server IP in “Host Name.”
  2. Click Open, then log in as root.

Step 3: Install Attendize with PHP 7.4

Follow the steps below exactly as they appeared in the installation session.

1. Update system packages:

apt update
Terminal showing APT package management commands and output.

2. Install essential packages:

apt install software-properties-common curl git unzip
Terminal showing APT package management commands and output.

3. Add the PHP 7.4 repository:

add-apt-repository ppa:ondrej/php
Terminal showing APT package management commands and output.

4. Update again to fetch PHP 7.4 packages:

apt update
Terminal showing APT package management commands and output.

5. Install PHP 7.4 and required extensions:

apt install php7.4 php7.4-cli php7.4-fpm php7.4-common php7.4-mysql php7.4-mbstring php7.4-xml php7.4-curl php7.4-zip php7.4-gd php7.4-intl php7.4-bcmath
Terminal showing APT package management commands and output.

6. Enable PHP 7.4 FPM:

systemctl enable --now php7.4-fpm
Terminal showing systemd service management commands or output.

7. Install MariaDB:

apt install mariadb-server
Terminal showing APT package management commands and output.

8. Secure the MariaDB installation:

mysql_secure_installation
Terminal showing MariaDB/MySQL database security configuration prompts.

9. Create the Attendize database:

mysql -u root -p

Inside the MySQL shell, run:

CREATE DATABASE attendize CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'attendize'@'localhost' IDENTIFIED BY 'your_secure_password';
GRANT ALL PRIVILEGES ON attendize.* TO 'attendize'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Terminal showing SQL database and user configuration commands.

10. Install Composer:

curl -sS https://getcomposer.org/installer | php

11. Move Composer to a global path:

mv composer.phar /usr/local/bin/composer

12. Confirm Composer installation:

composer --version
Terminal showing file and directory setup commands.

13. Create web root and clone Attendize:

mkdir -p /var/www
cd /var/www
git clone https://github.com/Attendize/Attendize.git

14. Switch to the latest stable version:

cd Attendize
git checkout v2.8.0
Terminal showing Git repository cloning output.

15. Copy and configure the environment file:

cp .env.example .env
nano .env
Terminal showing file and directory setup commands.

Update these values:

APP_URL=http://your_domain_or_ip
DB_DATABASE=attendize
DB_USERNAME=attendize
DB_PASSWORD=your_secure_password

MAIL_DRIVER=smtp
MAIL_HOST=smtp.yourhost.com
MAIL_PORT=587
MAIL_USERNAME=your@email.com
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=tls
MAIL_FROM_NAME="Attendize"
MAIL_FROM_ADDRESS="your@email.com"
Terminal showing the GNU nano editor and configuration text.

16. Install PHP dependencies:

composer install --no-dev --optimize-autoloader
Terminal showing composer commands or output during Install PHP dependencies:.

17. Generate application key:

php artisan key:generate
Terminal showing php commands or output during Generate application key:.

18. Install Laravel IDE Helper (optional, for development):

composer require --dev barryvdh/laravel-ide-helper

19. Run migrations and seed the database:

php artisan migrate --seed
Terminal showing php commands or output during Run migrations and seed the database:.

20. Set permissions:

chown -R www-data:www-data /var/www/Attendize
chmod -R 775 storage bootstrap/cache
Terminal showing file ownership or permission commands.

Step 4: Configure NGINX

1. Install NGINX:

apt install nginx
Terminal showing APT package management commands and output.

2. Create site configuration:

nano /etc/nginx/sites-available/attendize

Paste:

server {
    listen 80;
    server_name your_domain_or_ip;

    root /var/www/Attendize/public;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}
Terminal showing the GNU nano editor and configuration text.

3. Enable the site and reload NGINX:

ln -s /etc/nginx/sites-available/attendize /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
Terminal showing systemd service management commands or output.

Step 5: Set Up Background Queue Service

1. Create a queue worker systemd service:

nano /etc/systemd/system/attendize-queue.service

Paste:

[Unit]
Description=Attendize Queue Worker
After=network.target

[Service]
ExecStart=/usr/bin/php /var/www/Attendize/artisan queue:work
Restart=always
User=www-data
Group=www-data

[Install]
WantedBy=multi-user.target
Terminal showing a systemd service unit configuration.

2. Enable and start the queue service:

systemctl daemon-reload
systemctl enable --now attendize-queue
Terminal showing systemd service management commands or output.

3. Add Laravel scheduler to crontab:

crontab -u www-data -e

Add:

* * * * * php /var/www/Attendize/artisan schedule:run >> /dev/null 2>&1
Attendize configuration excerpt for email and database settings.

Step 6: Verify Installation

Visit the following in your browser:

http://your_domain_or_ip/install

You’ll be guided through the web-based installation process.

Attendize setup interface.
Attendize database connection settings.
Attendize account creation form.
Attendize sign-in form.
Attendize Create Organizer form with contact and description fields.
Attendize events dashboard with an empty event list.

You’ve successfully installed Attendize on Ubuntu 24.04 using PHP 7.4, MariaDB, and NGINX. Attendize gives you full control over event ticketing and attendee management, and it’s perfect for independent organizers and businesses.

Host your next project with Shape.Host Cloud VPS for reliable performance and easy scaling.
➡️ Start today at https://shape.host