Installation Guide

Complete guide to installing and configuring Auto Commerce on your server.

Overview

Auto Commerce can be installed using Docker (recommended), Kubernetes for production scalability, or manually on a traditional server. All three methods end with a guided Installation Wizard that helps you:

  1. Verify system requirements (PHP, extensions, database, Redis, permissions)
  2. Run database migrations and generate OAuth encryption keys
  3. Seed initial data (roles, permissions, modules, system settings)
  4. Create your first organization and admin account

Once the wizard completes, it writes a storage/.installed marker file. Subsequent visits skip the wizard and redirect to the login page.

Choosing an Installation Method

Use the comparison table below to pick the method that fits your situation.

Docker Manual Kubernetes
Best for Development, demos, small teams Custom server configs, shared hosting Production at scale, high availability
Complexity Low Medium High
Prerequisites Docker Engine + Compose PHP, Composer, Node, Nginx/Apache, PostgreSQL, Redis (all installed manually) kubectl, container registry, a running cluster (k3s, EKS, GKE, etc.)
Time to first login ~5 minutes ~30 minutes ~45 minutes (cluster already running)
Auto-scaling No No Yes
Rolling deployments Manual rebuild Manual deploy Built-in via Kubernetes
SSL/TLS Bring your own (reverse proxy) Certbot / manual Cert-manager or cloud load balancer
Recommended OS Any OS that runs Docker Ubuntu 22.04+, Debian 12+ Linux nodes (amd64 or arm64)

Rule of thumb: Start with Docker. Move to Kubernetes when you need horizontal scaling or zero-downtime deployments. Use Manual only when Docker is unavailable or your hosting environment requires it.

System Requirements

Auto Commerce runs a Laravel API backend, a Next.js frontend, PostgreSQL, and Redis. The minimum resources below assume a single-server deployment.

Hardware

Resource Minimum Recommended (production)
CPU 2 cores 4+ cores
RAM 2 GB 4 GB+
Disk 10 GB free 20 GB+ SSD

If you use Docker, account for container overhead (roughly 500 MB extra RAM for the Docker daemon and images). Kubernetes clusters need additional resources for the control plane.

Software

Component Required Version Notes
PHP 8.2+ With FPM for production
PostgreSQL 14+ MySQL 8+ also supported, but PostgreSQL is recommended
Redis 6+ Used for cache, sessions, queues, and broadcasting
Node.js 18+ For building the Next.js frontend
Composer 2.x PHP dependency manager
Nginx or Apache Current stable Nginx recommended; Apache works with mod_rewrite
Git 2.x For cloning the repository
Docker (if using Docker method) Engine 20.10+, Compose 2.0+ Docker Desktop or Docker CE

Required PHP Extensions

The following extensions must be enabled in your php.ini. Most are included by default in standard PHP packages; the ones you are most likely to need to install separately are pdo_pgsql, redis, and gd.

  • pdo, pdo_pgsql (or pdo_mysql)
  • mbstring, openssl, tokenizer
  • xml, ctype, json, bcmath
  • redis, gd

You can verify installed extensions with php -m.

Quick Start (Docker)

The fastest way to get started is with Docker:

# Clone the repository
git clone <your-repository-url>
cd autocom

# Copy environment files
cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env

# Start all services (app, nginx, PostgreSQL, Redis, Horizon, frontend)
docker compose up -d

# Generate the Laravel application key
docker compose exec app php artisan key:generate

Docker Compose brings up the following services:

Service Port Purpose
nginx 8000 Reverse proxy to the Laravel API
frontend 3000 Next.js application
pgsql 5432 PostgreSQL database
redis 6379 Cache, queues, sessions
horizon -- Background job processing
reverb 8080 WebSocket server for real-time events
docs 3001 Documentation site

Open your browser to http://localhost:3000 and follow the Installation Wizard to complete setup.

Quick Start (Manual)

If you prefer a traditional server setup without Docker:

git clone <your-repository-url>
cd autocom

# Backend
cd backend
composer install --no-dev --optimize-autoloader
cp .env.example .env
php artisan key:generate
# Edit .env with your database and Redis credentials

# Frontend (uses Bun)
cd ../frontend
bun install --frozen-lockfile
cp .env.example .env.local
# Edit .env.local to set NEXT_PUBLIC_API_URL
bun run build
bun run start

Then open your domain in a browser. You will be redirected to the Installation Wizard.

See the Manual Installation guide for full Nginx configuration, queue worker setup, SSL, and scheduler instructions.

Installation Methods (Detailed Guides)

Next Steps

After installation completes: