Bagisto: Build Your E-commerce Store with Laravel in a Weekend

06.02.2026
22:05

Thinking about launching an online store but Shopify fees seem steep, WooCommerce feels limiting, and Magento looks overwhelming? Meet Bagisto — a free, open-source e-commerce platform built on Laravel that doesn't charge monthly subscription fees or transaction commissions.

This guide walks you through deploying a complete online store on your own server: from choosing a VPS to launching your storefront. No fluff — just practical steps and tested solutions.

What is Bagisto and Why It Matters

Bagisto is an open-source e-commerce platform built on Laravel (a popular PHP framework) and Vue.js (a modern jаvascript library). Think of it as a ready-made foundation for your store with all essential features: product catalog, shopping cart, checkout, admin panel — everything you need to start selling.

Key Differences from Competitors

It's not a WordPress plugin like WooCommerce. Not a multi-gigabyte monster like Magento. Not a SaaS service with monthly fees like Shopify.

Bagisto is a standalone platform that:

  • Runs on your own server
  • Gives you complete source code access
  • Requires no usage fees
  • Built with modern technologies
  • Has a clean, understandable architecture

Technologies Under the Hood

Laravel — one of the world's most popular PHP frameworks. Clean code, built-in security tools, massive developer community.

Vue.js — progressive jаvascript framework for interfaces. Lighter and faster than React or Angular, yet powerful enough for complex applications.

Composer — dependency manager for PHP. Simplifies package installation and updates.

This means if you know Laravel (or willing to learn), you can customize the store to match any business requirement.

Bagisto vs Competitors: Honest Comparison

Let's take an unbiased look at real pros and cons against other platforms.

Bagisto vs Magento

Bagisto Advantages:

  • Simpler installation (15 minutes vs hour+ with Magento)
  • Lower server requirements (4GB RAM vs 8GB+)
  • Cleaner code structure (Laravel vs Magento's custom framework)
  • Faster performance for mid-size projects

Magento Advantages:

  • Larger extension marketplace
  • More powerful for enterprise projects with millions of products
  • Longer market presence means more experienced developers

Bottom line: Magento for large corporations, Bagisto for small to medium businesses.

Bagisto vs WooCommerce

Bagisto Advantages:

  • WordPress-independent
  • Modern architecture (MVC)
  • Built-in API for mobile apps
  • Multi-vendor without hacks

WooCommerce Advantages:

  • Huge selection of themes and plugins
  • Easier for non-technical users
  • More ready-made integrations

Bottom line: WooCommerce for simple stores, Bagisto when you need flexibility and scalability.

Bagisto vs OpenCart / PrestaShop

Bagisto Advantages:

  • Fresh codebase (not 2010s legacy)
  • Easier customization thanks to Laravel
  • Active development (monthly updates)
  • Headless commerce out of the box

OpenCart/PrestaShop Advantages:

  • More ready-made templates
  • Cheaper to find freelancers for modifications
  • Decade of community experience

Bottom line: If you need a modern platform for future growth — Bagisto.

Who Should Use Bagisto

Perfect fit if you're:

Developer or Agency — need flexible platform for custom projects. Laravel is industry standard, finding specialists is easy.

Business Owner with Technical Background — want control over your store without dependence on SaaS services and their pricing tiers.

Startup — limited budget but need modern store with scaling potential.

Growing Store — outgrew WooCommerce but Magento seems excessive.

Marketplace — planning multi-seller platform (like Etsy or Alibaba in miniature).

Not suitable if:

  1. Need to launch store right now, within an hour, no technical skills → go with Shopify 
  2. Selling 2-3 products and need maximum simplicity → WooCommerce is simpler
  3. Planning millions of products and massive traffic → Magento more reliable

System Requirements

Before installation, verify your server meets minimum requirements.

Operating System

Linux (recommended):

  • Ubuntu 20.04 LTS or newer
  • Debian 10 or newer
  • CentOS 8 / AlmaLinux 8

Windows (for local development):

  • Windows 10/11 with WAMP or XAMPP

Server Software

Web Server:

  • Nginx 1.18+ (recommended)
  • Apache 2.4+ (with mod_rewrite)

Database:

  • MySQL 8.0+
  • MariaDB 10.3+

PHP:

  • Version: 8.2 or newer
  • Extensions: BCMath, Ctype, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML, cURL, GD, Fileinfo, Intl

Additional:

  • Node.js 18.12 LTS or newer
  • Composer 2.5 or newer
  • Git (for Composer installation)

Server Resources

Minimum (for testing):

  • 2 CPU cores
  • 4 GB RAM
  • 20 GB SSD

Recommended (for production):

  • 4 CPU cores
  • 8 GB RAM
  • 50+ GB NVMe SSD
  • 1 Gbps port

High-traffic stores:

  • 8+ CPU cores
  • 16+ GB RAM
  • 100+ GB NVMe SSD
  • 10 Gbps port

Why VPS, Not Shared Hosting

For Bagisto, you must have VPS or dedicated server. Shared hosting won't work for several reasons:

Command Line Access Required

Installing Bagisto via Composer requires SSH access and terminal commands. Shared hosting typically doesn't provide this.

Specific PHP Settings Needed

Some PHP extensions might be disabled on shared hosting for security reasons.

Performance

Laravel applications are sensitive to disk speed and RAM. On shared hosting, resources are split among hundreds of clients.

Web Server Customization

For maximum performance, you need ability to configure Nginx or Apache for your store's specifics.

Choosing VPS for Bagisto

Let's look at what THE.Hosting offers for running a Bagisto store.

Standard VPS

Suitable for most stores with moderate traffic.

Basic configuration (~€10/month):

  • 2 vCPU
  • 4 GB RAM
  • 50 GB NVMe SSD
  • 1 Gbps port
  • Unlimited traffic

For growing stores (~€20/month):

  • 4 vCPU
  • 8 GB RAM
  • 100 GB NVMe SSD
  • 1 Gbps port

Hi-CPU VPS

If you have complex calculations (large catalog, many filters, integrations).

Characteristics:

  • More powerful CPU cores
  • Higher CPU frequency
  • Faster request processing
  • Better for high-load stores

Dedicated Servers

For enterprise projects or marketplaces with thousands of daily orders.

Benefits:

  • All resources dedicated to your store
  • Maximum performance
  • Complete hardware control

THE.Hosting Key Advantages

  • NVMe SSD Storage — 6x faster than regular SSDs 
  • 50+ Global Locations — place server close to customers 
  • 10 Gbps Ports — store won't crash during flash sales 
  • Anti-DDoS Protection — built-in attack protection 
  • SSL Certificates — free Let's Encrypt 
  • 24/7 Support — assistance in English and Russian

Important: THE.Hosting provides self-managed VPS. You get a clean server with root access and configure it yourself. Perfect for those who want full control.

Installing Server Environment

We'll install LEMP stack (Linux + Nginx + MySQL + PHP) on Ubuntu 22.04.

Connecting to Server

After creating VPS in THE.Hosting panel, you'll receive:

  • Server IP address
  • Root password (or SSH key)

Connect via SSH:

ssh root@185.104.248.123

(replace IP with yours)

System Update

apt update && apt upgrade -y

Installing Nginx

apt install nginx -y
systemctl start nginx
systemctl enable nginx

Verification: open http://your-ip in browser — should see Nginx page.

Installing MySQL

apt install mysql-server -y

Run secure installation wizard:

mysql_secure_installation

Recommended answers:

  • Validate Password Plugin: Yes (if you want strict passwords)
  • Remove anonymous users: Yes
  • Disallow root login remotely: Yes
  • Remove test database: Yes
  • Reload privilege tables: Yes

Create database for Bagisto:

mysql -u root -p

In MySQL console:

CREATE DATABASE bagisto CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'bagisto_user'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON bagisto.* TO 'bagisto_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Installing PHP 8.2

apt install software-properties-common -y
add-apt-repository ppa:ondrej/php -y
apt update

Install PHP and required extensions:

apt install php8.2-fpm php8.2-cli php8.2-mysql php8.2-curl php8.2-xml \
php8.2-mbstring php8.2-zip php8.2-gd php8.2-intl php8.2-bcmath -y

Verify installation:

php -v

Should show: PHP 8.2.x

Installing Composer

cd /tmp
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

Verify:

composer --version

Installing Node.js

curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
apt install nodejs -y

Verify:

node -v
npm -v

Installing Bagisto

Let's install the store itself.

Downloading Bagisto via Composer

cd /var/www
composer create-project bagisto/bagisto

Process takes 3-5 minutes — Composer downloads all dependencies.

Setting Permissions

cd bagisto
chown -R www-dаta:www-data .
chmod -R 755 .
chmod -R 777 storage bootstrap/cache

Environment Configuration

Copy environment variables file:

cp .env.example .env

Edit .env:

nano .env

Key parameters:

APP_NAME="My Store"
APP_ENV=production
APP_DEBUG=false
APP_URL=http://your-domain.com

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=bagisto
DB_USERNAME=bagisto_user
DB_PASSWORD=your_strong_password

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=your_email@gmail.com
MAIL_PASSWORD=your_app_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=your_email@gmail.com
MAIL_FROM_NAME="${APP_NAME}"

Save (Ctrl+O, Enter, Ctrl+X).

Generate Application Key

php artisan key:generate

Install Bagisto

Run installation command:

php artisan bagisto:install

Installation wizard will ask:

Create administrator? → Yes

Enter details:

  • Email: your_email@example.com
  • Password: (minimum 8 characters)
  • Name: Your Name

Configure store? → Yes

Store parameters:

  • Name: My Store
  • Currency: USD (or EUR, GBP)
  • Locale: en

Installation takes 2-3 minutes.

Compile Frontend Assets

npm install
npm run build

Or for production:

npm run prod

Configuring Nginx

Create virtual host configuration:

nano /etc/nginx/sites-available/bagisto

Insert:

server {
    listen 80;
    server_name your-domain.com www.your-domain.com;
    root /var/www/bagisto/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";

    index index.php;

    charset utf-8;

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

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

Activate configuration:

ln -s /etc/nginx/sites-available/bagisto /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx

Installing SSL Certificate

For security and SEO, HTTPS is mandatory.

Install Certbot

apt install certbot python3-certbot-nginx -y

Obtain Certificate

certbot --nginx -d your-domain.com -d www.your-domain.com

Certbot automatically:

  • Obtains Let's Encrypt certificate
  • Configures Nginx for HTTPS
  • Sets up auto-renewal

Your store is now accessible at https://your-domain.com

Initial Store Configuration

Access admin panel: https://your-domain.com/admin

Login: email you specified during installation Password: what you set

Basic Settings

Settings → General:

✅ Store name

✅ Logo (recommend PNG with transparency)

✅ Favicon

✅ Store address

✅ Contact email

✅ Phone

Settings → Localization:

✅ Default currency

✅ Timezone

✅ Date format

Settings → Channels:

Channels are your store's storefronts. Can create multiple (e.g., for different countries).

✅ Main channel created during installation

✅ Configure domains, currencies, languages per channel

Creating Categories

Catalog → Categories → Create:

Example structure for clothing store:

Men
├── Outerwear
├── T-shirts & Polos
├── Jeans & Trousers
└── Footwear

Women
├── Dresses
├── Blouses
├── Skirts
└── Footwear

Kids
└── ...

For each category:

  • Name
  • URL key (auto-generated, editable)
  • Description (for SEO)
  • Image

Adding Products

Catalog → Products → Create Product:

Required fields:

  • SKU (article number)
  • Name
  • Price
  • Category

Additional:

  • Description
  • Short description
  • Images (multiple angles)
  • Meta title, description (for SEO)
  • Variations (sizes, colors)

Inventory:

  • Stock quantity
  • Status (In Stock / Out of Stock)

Save — product appears on site.

Configuring Payment Methods

Settings → Payment Methods:

Default available:

  • Bank Transfer (offline)
  • Cash on Delivery
  • PayPal

For online card payments, need additional extensions:

  • Stripe
  • Square
  • Authorize.Net
  • Others via Bagisto marketplace

Shipping Configuration

Settings → Shipping Methods:

Built-in methods:

  • Flat Rate — one price for all
  • Per Unit — configurable rates
  • Table Rate — based on weight/price
  • Free Shipping

For courier service integration (UPS, FedEx, DHL), need extensions.

Performance Optimization

After basic setup, optimize store for speed.

Caching

Laravel supports several cache types:

Config cache:

php artisan config:cache

Route cache:

php artisan route:cache

View cache:

php artisan view:cache

Composer autoloader:

composer dump-autoload --optimize

Redis Setup (optional but recommended)

Redis speeds up caching and sessions.

Installation:

apt install redis-server -y
systemctl start redis
systemctl enable redis

PHP extension:

apt install php8.2-redis -y
systemctl restart php8.2-fpm

Configuration in .env:

CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis

Clear and rebuild cache:

php artisan cache:clear
php artisan config:cache

Queue Configuration

For email sending and background tasks, set up supervisor.

Installation:

apt install supervisor -y

Configuration (create file):

nano /etc/supervisor/conf.d/bagisto-worker.conf

Content:

[program:bagisto-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/bagisto/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/bagisto/storage/logs/worker.log

Apply:

supervisorctl reread
supervisorctl update
supervisorctl start bagisto-worker:*

Image Compression

Product photos can weigh megabytes. Use compression services:

  • TinyPNG (online)
  • ImageOptim (Mac)
  • RIOT (Windows)

Or automate via Laravel packages like Intervention Image.

CDN (optional)

For global audience, consider Cloudflare CDN:

  • Faster static asset loading
  • Additional DDoS protection
  • Free SSL

Security

Online stores handle customer data — security is critical.

Firewall

Install UFW:

apt install ufw -y

Allow required ports:

ufw allow 22/tcp    # SSH
ufw allow 80/tcp    # HTTP
ufw allow 443/tcp   # HTTPS
ufw enable

Fail2Ban

Protection from SSH brute-force and other attacks.

apt install fail2ban -y
systemctl start fail2ban
systemctl enable fail2ban

Regular Updates

System:

apt update && apt upgrade -y

Bagisto:

cd /var/www/bagisto
composer update
php artisan migrate
php artisan cache:clear

Backups

Important: THE.Hosting doesn't make automatic backups for you (self-managed VPS).

Database (daily):

#!/bin/bash
# /root/backup-db.sh

DATE=$(date +%Y-%m-%d)
mysqldump -u bagisto_user -p'password' bagisto | gzip > /root/backups/bagisto_$DATE.sql.gz

# Remove backups older than 7 days
find /root/backups/ -name "bagisto_*.sql.gz" -mtime +7 -delete

Make executable:

chmod +x /root/backup-db.sh

Add to cron (daily at 3 AM):

crontab -e
0 3 * * * /root/backup-db.sh

Files:

Copy uploaded images folder:

rsync -av /var/www/bagisto/storage/app/public/ /root/backups/files/

Best practice: store backups on separate server or cloud (AWS S3, Backblaze B2).

Disable Debug Mode

Check in .env:

APP_DEBUG=false

In production always must be false — otherwise users see full error traces with sensitive information.

Advanced Features

After launching basic store, consider advanced functions.

Multi-vendor Marketplace

Transform store into platform where multiple suppliers sell.

Extension: Bagisto Multi-Vendor Marketplace

Features:

  • Seller registration
  • Separate admin panels for each
  • Commission configuration
  • Payout system
  • Seller ratings

Who needs: Creating local Etsy, Alibaba, or Amazon alternative.

PWA (Progressive Web App)

Make store feel like mobile app.

Extension: Bagisto PWA

Benefits:

  • Works offline
  • Add to home screen
  • Push notifications
  • Faster than regular website

Simple installation — via Composer and manifest configuration.

Mobile Application

Ready Flutter-based app for Android and iOS.

GitHub: bagisto/opensource-ecommerce-mobile-app

Features:

  • Native interface
  • Push notifications
  • Biometric login
  • Bagisto API integration

Publishing to stores (Google Play, App Store) requires developer account (~$100/year).

Headless Commerce

Separate frontend and backend — use Bagisto as API only.

When needed:

  • Custom frontend on React/Vue/Next.js
  • Multiple interfaces (web, mobile app, kiosks)
  • Extreme performance

Bagisto provides REST API for all operations.

B2B Functionality

Corporate sales with special terms.

Extension: Bagisto B2B

Features:

  • Company registration
  • Contract-based pricing
  • Credit limits
  • Bulk orders
  • Account managers

Frequently Asked Questions

Do I need programming skills for Bagisto?

Depends on tasks. For installation and basic setup, command line skills suffice. Deep customization requires Laravel and PHP knowledge.

Can I migrate from Shopify/WooCommerce to Bagisto?

Yes, but requires data migration. There are ready CSV import tools, or you can write migration scripts via API.

How many products can Bagisto handle?

On properly configured VPS — tens of thousands. With optimization (Elasticsearch for search, Redis for cache) — hundreds of thousands. Millions require dedicated server.

Is there Russian localization?

Yes, Bagisto supports Russian language. During installation, choose ru as default locale.

Where to find Bagisto extensions?

  • Official marketplace: bagisto.com/en/extensions
  • GitHub (many free)
  • Custom development available

How to update Bagisto?

composer update
php artisan migrate
php artisan cache:clear

Always backup before updating!

Can Bagisto be used for dropshipping?

Yes, but requires integrations with suppliers via API or extensions.

Do I need license for commercial use?

No, Bagisto is completely free under MIT license. Use as you wish.

Conclusion

Bagisto is excellent choice if you need modern online store without SaaS platform lock-in and monthly fees. Yes, it requires time to learn, but in return you get:

  • Complete platform control
  • No sales commissions
  • Unlimited customization
  • Scalability from startup to enterprise
  • Modern technology stack

THE.Hosting provides ideal infrastructure for Bagisto:

  • VPS with NVMe drives for fast performance
  • 50+ locations to place server close to customers
  • Anti-DDoS protection from attacks
  • 24/7 technical support

Launch test store over weekend — verify Bagisto fits your business. When ready for production — THE.Hosting ensures stability and performance of your online store.

Choose VPS for Bagisto

What's next?

After launching store, focus on:

  • Filling catalog with quality products
  • Marketing setup (SEO, paid ads)
  • User experience improvements
  • Customer behavior analysis

Technology is a tool. What matters is your products, service, and customers. Good luck with your business!

Content:
15% discount on new VPS
Hurry up to order a server in any location
Choose a VPS

Other articles

06.02.2026
12
Knowledge base / Instructions
ERR_NAME_NOT_RESOLVED: Fixing the "Site Can't Be Reached" Error
06.02.2026
14
Knowledge base / Server
RouterOS: an overview of a router operating system
06.02.2026
11
Knowledge base / All about domains
.domains — your key to the world of domain names