QRTicketify is a comprehensive, free, and open-source event management and ticketing platform built using Laravel (PHP framework) for the backend and React for the frontend. It allows administrators to create and manage events effortlessly while sending tickets to users via email. These tickets are generated as QR codes, which can be scanned and verified through the system at point-of-sale (POS) locations, ensuring a smooth and secure event entry process.
- QR Code Generation: Generates unique QR codes for tickets that can be sent to users via email.
- POS Integration: Tickets can be scanned and verified at POS for event entry.
- Email Notification: Automatically send email notifications with ticket information and updates.
- Multiple Event Management: Admins can create and manage multiple events.
The following installation steps are for Ubuntu OS only.
sudo apt-get update && sudo apt-get -y upgradesudo apt-get -y install curlsudo apt -y install software-properties-common curl apt-transport-https ca-certificates gnupgsudo add-apt-repository -y ppa:ondrej/phpsudo add-apt-repository -y ppa:chris-lea/redis-servercurl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bashsudo apt -y install php8.2 php8.2-{cli,gd,mysql,pdo,mbstring,tokenizer,bcmath,xml,fpm,curl,zip} mariadb-server nginx tar unzip git redis-server npmcurl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composersudo mkdir -p /var/www/qrticketify
cd /var/www/qrticketifysudo git clone https://github.com/RyderAsKing/QRTicketify.git ./sudo chmod -R 755 storage/* bootstrap/cache/cp .env.example .envcomposer install --no-dev --optimize-autoloadernpm install express express-ws ws axiosphp artisan key:generate --forcephp artisan storage:linksudo mysql -u root -pCREATE DATABASE qrticketify;
CREATE USER 'qrticketify'@'127.0.0.1' IDENTIFIED BY 'USE_YOUR_OWN_PASSWORD';
GRANT ALL PRIVILEGES ON qrticketify.* TO 'qrticketify'@'127.0.0.1';
FLUSH PRIVILEGES;sudo nano .envExample .env variables:
APP_NAME=QRTicketify
APP_URL="http://yourdomain.com"
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=qrticketify
DB_USERNAME=qrticketify
DB_PASSWORD=USE_YOUR_OWN_PASSWORDUpdate the following values in .env:
MAIL_MAILER=smtp
MAIL_HOST=smtp.your_email_provider.com
MAIL_PORT=587
MAIL_USERNAME=your_email_username
MAIL_PASSWORD=your_email_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=example@yourdomain.com
MAIL_FROM_NAME="${APP_NAME}"php artisan migrate --seed --forcesudo chown -R www-data:www-data /var/www/qrticketifysudo nano /etc/nginx/sites-available/qrticketify.confserver {
listen 80;
root /var/www/qrticketify/public;
index index.php index.html index.htm index.nginx-debian.html;
server_name yourdomain.com; # Change this
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}sudo ln -s /etc/nginx/sites-available/qrticketify.conf /etc/nginx/sites-enabled/qrticketify.confsudo nginx -tsudo systemctl restart nginxsudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python3-certbot-nginx
sudo certbot --nginx -d yourdomain.comsudo nano /etc/supervisor/conf.d/qrticketify-worker.conf[program:qrticketify-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/qrticketify/artisan queue:work --tries=3
autostart=true
autorestart=true
user=www-data
numprocs=1
redirect_stderr=true
stdout_logfile=/var/www/qrticketify/worker.logsudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start qrticketify-worker:*sudo php artisan downsudo git stash
sudo git pull
sudo chmod -R 755 /var/www/qrticketifysudo php artisan migrate --seed --forcesudo php artisan view:clear
sudo php artisan config:clearsudo composer install --no-dev --optimize-autoloader
npm install express express-ws ws axiossudo chown -R www-data:www-data /var/www/qrticketifysudo php artisan queue:restartsudo php artisan upTo check the logs, use the following command to get the last 100 entries:
tail -n 100 /var/www/qrticketify/storage/logs/laravel.log | nc termbin.com 9999
