Bagisto

Bagisto

Bagisto is an open-source e-commerce platform based on Laravel, designed to help developers and business owners quickly and flexibly build online stores. Created by Webkul, Bagisto offers a complete solution for managing products, categories, orders, customers, and supports multi-store and multi-channel functionality.

Bagisto leverages the Laravel framework and Vue.js, making it ideal for developers already familiar with these technologies. Additionally, Bagisto supports various essential features such as Advanced Product Catalog, Multi-Currency, Multi-Language, and Inventory Management. With its modular architecture, Bagisto is highly customizable to meet specific business needs.

1. System Requirements

System requirements for running Bagisto 2.2:

  • Apache or Nginx web server
  • PHP 8.3+
  • Composer 2.5+
  • MySQL 8.0+ or MariaDB 10.3+

Before starting the deployment, prepare the following:

  • A VPS or server with Ubuntu 24.04 LTS OS
  • SSH access to the server
  • A domain already pointed to the server

2. Server Preparation

Update the system

sudo apt update
sudo apt upgrade -y

Install Apache

sudo apt install apache2 -y

Add the PPA ondrej/php repository

sudo add-apt-repository ppa:ondrej/php -y
sudo apt update 
sudo apt upgrade -y

Install PHP 8.3 and the required extensions.

sudo apt install php8.3 php8.3-cli php8.3-common \
  php8.3-apcu php8.3-mbstring php8.3-gd php8.3-intl \
  php8.3-xml php8.3-soap php8.3-bcmath php8.3-mysql php8.3-zip \
  php8.3-curl php8.3-tidy php8.3-imagick php8.3-sqlite3 -y

Install Composer

sudo wget https://getcomposer.org/download/latest-stable/composer.phar -O /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer

Install MariaDB

sudo apt install mariadb-server -y

3. Create a Database

Log in to MariaDB

sudo mysql

Create a database and user

CREATE DATABASE bagisto;
CREATE USER 'bagisto'@'localhost' IDENTIFIED BY 'rahasia';
GRANT ALL PRIVILEGES ON bagisto.* TO 'bagisto'@'localhost';
FLUSH PRIVILEGES;
exit

4. Apache Configuration

Create a virtual host configuration for contoh.com.

sudo nano /etc/apache2/sites-available/contoh.com.conf	

Enter the configuration.

<VirtualHost *:80>
    ServerName www.contoh.com
    ServerAlias contoh.com
    DocumentRoot /var/www/contoh.com/public
    <Directory /var/www/contoh.com/public>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog /var/log/apache2/contoh.com_error.log
    CustomLog /var/log/apache2/contoh.com_access.log combined
</VirtualHost>

Enable the rewrite module, virtual host, and restart apache2.

sudo a2enmod rewrite
sudo a2ensite contoh.com
sudo systemctl restart apache2	

Install certbot

sudo apt install certbot python3-certbot-apache -y	

Request an SSL certificate.

sudo certbot --non-interactive \
    -m [email protected] \
    --agree-tos \
    --no-eff-email \
    --apache -d contoh.com -d www.contoh.com \
    --redirect	

5. Install Bagisto

Create a Bagisto project via Composer.

sudo composer create-project bagisto/bagisto /var/www/contoh.com

Navigate to the directory and install Bagisto.

cd /var/www/contoh.com
sudo php artisan bagisto:install

Prompts displayed during the installation process.

  1. Please enter the application name
  2. Please enter the application URL
  3. Please select the application timezone
  4. Please select the default application locale
  5. Please select the default currency
  6. Please choose the allowed locales for your channels
  7. Please choose the allowed currencies for your channels
  8. Please select the database connection
  9. Please enter the database host
  10. Please enter the database port
  11. Please enter the database name
  12. Please enter the database prefix
  13. Please enter your database username
  14. Please enter your database password
  15. Enter the name of the admin user
  16. Enter the email address of the admin user
  17. Configure the password for the admin user
  18. Please select if you want some sample products after installation

Change the user-group of the directory.

sudo chown -R www-data:www-data /var/www/contoh.com

Bagisto deployment has been completed and is ready to use.