(Last Updated On: September 30, 2018)

In this blog post, you get to learn how to install Attendize on Ubuntu 18.04 LTS. Attendize is a free & open-source ticket selling and event management system built using the Laravel PHP framework. This tool was created with the aim to offer event organizers a simple interface for managing admission events, without paying extortionate service fees.

Features of Attendize

Here are the current features offered by Attendize event management system.

  • Beautiful mobile-friendly event pages
  • Easy attendee management – Refunds, Messaging etc.
  • Data export – attendees list to XLS, CSV etc.
  • Generate a print-friendly attendee list
  • Ability to manage unlimited organizers/events
  • Manage multiple organizers
  • Real-time event statistics
  • Customizable event pages
  • Multiple currency support
  • Quick and easy checkout process
  • Customizable tickets – with QR codes, organizer logos etc.
  • Fully brandable – Have your own logos on tickets etc.
  • Affiliate tracking
    • track sales volume/number of visits generated etc.
  • Widget support – embed ticket selling widget into existing websites / WordPress blogs
  • Social sharing
  • Support multiple payment gateways – Stripe, PayPal & Coinbase so far, with more being added
  • Support for offline payments
  • Refund payments – partial refund & full refunds
  • Ability to add a service charge to tickets
  • Messaging – eg. Email all attendees with X ticket
  • Public event listings page for organizers
  • Ability to ask custom questions during checkout
  • Browser-based QR code scanner for door management

How to install Attendize on Ubuntu 18.04

Attendize has the following system requirements

  • PHP >= 7.1.3
  • Mbstring PHP Extension
  • OpenSSL PHP Extension
  • Tokenizer PHP Extension
  • PDO PHP Extension
  • MySQLi PHP extension
  • Fileinfo PHP Extension
  • GD PHP Extension

Step 1: Install PHP and Extensions

The first step is to ensure php and required extensions are installed on your Ubuntu 18.04 system

sudo apt update
sudo apt install php php-fpm php-mysql php-pdo php-cli php-fpm php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath

Once the packages are installed, proceed to install and setup a Database server.

Step 2: Install MariaDB database server

Install MariaDB database server on your Ubuntu 18.04 by following our guide:

Install MariaDB 10.x on Ubuntu 18.04 and CentOS 7

Create a database for Attendize

# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 48
Server version: 10.3.9-MariaDB-1:10.3.9+maria~bionic-log mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE attendize;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON attendize.* TO 'attendize'@'localhost' IDENTIFIED BY "StrongPassword";
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.002 sec)

Step 2: Install and configure Nginx web server

We’ll use Nginx as default web server for our Attendize setup. Install and configure Nginx

sudo apt install nginx

Create a new nginx configuration file for Attendize

sudo vim /etc/nginx/conf.d/attendize.conf

Add the following content to the file

server {
    listen 80;
    server_name tickets.example.com;

    root /srv/attendize/public;
    index index.php;

    location / {
	    try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass   unix:/run/php/php7.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Remember to replace tickets.example.com with your actual domain name

Then check for syntax before restarting nginx service

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ sudo systemctl restart nginx

Step 3: Install and configure Attendize

Download Attendize to the /srv/attendizedirectory. This is the document root of our web application.

git clone https://github.com/Attendize/Attendize  /srv/attendize

Create an environment configuration file

cd /srv/attendize/
cp .env.example .env

Edit the file to set database connection settings

DB_TYPE=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=attendize
DB_USERNAME=attendize
DB_PASSWORD=StrongPassword

You can also configure SMTP accordingly

Install php compose

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '93b54496392c062774670ac18b134c3b3a95e5a5e5c8f1a9f115f203b75bf9a129d5daa8ba6a13e2cc8a1da0806388a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Run composer to install the various libraries.

php composer.phar install

Attendize uses the Laravel framework so you need to generate an application key.

php artisan key:generate

Set directory permissions

chown -R www-data storage/app
chown -R www-data storage/framework
chown -R www-data storage/logs
chown -R www-data storage/cache
chown -R www-data bootstrap/cache
chown -R www-data .env

Change the folders below to have write permissions

chmod -R a+w storage/app
chmod -R a+w storage/framework
chmod -R a+w storage/logs
chmod -R a+w storage/cache
chmod -R a+w bootstrap/cache
chmod -R a+w .env

Access the URL http://tickets.example.com to finish the setup.

Set Application URL, Database Settings and Email Settings. If you had edited the .env file earlier, the settings should be populated automatically.

Create an admin user account

Login using created user account and password.

The last page will ask you to CREATE ORGANISER. Provide organizer details to get started