Installation (CLI)
StoreMine installs from the command line in about 10 minutes. No web installer, no hidden steps — every command is listed below, in order.
Before you start
Make sure your server meets the requirements: PHP 8.3+, Composer 2, Node 20+, MySQL 8, and SSH access.
1. Upload the code
Unzip the package (or clone your repository) into your web directory:
cd /var/www
unzip storemine.zip -d storemine # or: git clone <your-repo> storemine
cd storemine
2. Create the environment file
cp .env.example .env
Open .env in your editor and set at minimum:
APP_NAME=StoreMine
APP_ENV=production
APP_DEBUG=false
APP_URL=https://your-domain.com
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=storemine
DB_USERNAME=storemine
DB_PASSWORD=your-strong-password
Create the database if it doesn't exist yet:
mysql -u root -p -e "CREATE DATABASE storemine CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
Every other key (mail, payments, storage, AI) is explained in Configuration — you can fill those in later; the store runs without them.
3. Install dependencies
composer install --no-dev --optimize-autoloader
npm ci
Local development?
For a development machine, use composer install (with dev dependencies) and npm run dev instead of a production build.
4. Generate the application key
php artisan key:generate
5. Build the frontend
npm run build
This compiles the React frontend with Vite into public/build/. Node.js is only needed for this step — not at runtime.
6. Migrate & seed the database
php artisan migrate --force
php artisan db:seed --force
The seeder is idempotent (safe to re-run) and creates the baseline every install needs:
- The
super_adminrole and the first admin account - Business settings, default email templates and static pages (privacy, terms, contact)
- Default shipping zones & rates, currencies, payment and storage settings
Copy your admin password now
The seeder creates the first admin as [email protected] with a randomly generated 24-character password printed once in the terminal output. Copy it immediately.
Prefer your own credentials? Set them in .env before seeding:
ADMIN_EMAIL=[email protected]
ADMIN_PASSWORD=choose-a-strong-password
Lost it? Reset any staff password at any time:
php artisan storemine:admin-password [email protected]
Want a full sample store (products, customers, orders) to explore first? See Demo data.
7. Link public storage
php artisan storage:link
This makes uploaded media (product images, blog covers) publicly visible. If images 404 later, this is the first thing to check.
8. Set permissions
The web server user (usually www-data) must be able to write to storage/ and bootstrap/cache/:
sudo chown -R www-data:www-data storage bootstrap/cache
sudo chmod -R 775 storage bootstrap/cache
9. Cache for production
php artisan config:cache
php artisan route:cache
php artisan view:cache
10. Start the background workers
StoreMine needs a queue worker (emails, campaigns, AI jobs) and the scheduler:
# Queue worker — keep it alive with Supervisor (config included):
sudo cp deploy/supervisor-storemine.conf /etc/supervisor/conf.d/
# adjust paths/user inside the file, then:
sudo supervisorctl reread && sudo supervisorctl update
# Scheduler — add ONE cron entry (see deploy/crontab):
* * * * * cd /var/www/storemine && php artisan schedule:run >> /dev/null 2>&1
11. Point your web server at public/
Sample configs are included:
- nginx —
deploy/nginx.conf - Apache — standard Laravel setup +
deploy/apache-storage-hardening.conf
The document root must be the public/ directory — never the project root.
12. Verify with preflight ✈️
StoreMine ships a built-in readiness check that inspects ~30 things that are invisible until they cost you money — debug mode left on, a queue worker nobody started, a seeded password nobody changed:
php artisan storemine:preflight
Fix anything it flags, re-run until green. It exits non-zero on failure, so you can also use it to gate deploy scripts.
Done 🎉
| URL | |
|---|---|
| Storefront | https://your-domain.com/ |
| Admin panel | https://your-domain.com/admin/login |

Log in with your admin credentials and head to Settings to configure payments, email and branding.
One-command redeploys
For updates after the first install, use the included deploy script — it handles maintenance mode, dependencies, build, migrations and cache rebuild in one go:
./deploy/deploy.sh
See Deployment for the full production guide.