Skip to main content
Get your SushiGo development environment up and running in minutes with Docker Compose. This guide will have you exploring the platform quickly.

Prerequisites

Before you begin, ensure you have the following installed:
  • Docker Engine (20.10 or higher)
  • Docker Compose (2.0 or higher)
  • Git (to clone the repository)
Docker Desktop for Mac and Windows includes both Docker Engine and Docker Compose.

Quick Setup

1

Clone the repository

git clone <repository-url>
cd sushigo
2

Start the stack

Launch all services with a single command:
docker compose up --build
The initialization script will automatically:
  • Install Composer and NPM dependencies
  • Wait for PostgreSQL to be ready
  • Run database migrations
  • Execute seeders for initial data
  • Generate Laravel Passport OAuth keys
  • Generate Swagger API documentation
  • Start Apache and Vite dev server
First-time setup takes 2-3 minutes while dependencies are installed and the database is initialized.
3

Access the application

Once the stack is running, you can access:
ServiceURLDescription
Webapphttps://sushigo.localReact admin dashboard (via nginx)
Vite Devhttp://localhost:5173Direct Vite dev server with HMR
APIhttps://api.sushigo.local/api/v1Laravel REST API
Swagger UIhttp://localhost:8080/api/documentationInteractive API documentation
PgAdminhttp://localhost:5050PostgreSQL admin interface
MailHoghttp://localhost:8025Email testing tool
4

Login with default credentials

Use the pre-seeded admin account to access the webapp:
Email: [email protected]
Password: admin123456
Change these credentials in production environments. Additional test users are available - see the Installation guide for details.

Verify Your Setup

Check that all services are running correctly:
# Check container status
docker compose ps

# View logs
docker compose logs -f dev

# Test API health endpoint
curl http://localhost:8080/api/v1/health

Quick Test Credentials

The default database includes several pre-configured users for testing:
RoleEmailPassword
Super Admin[email protected]admin123456
Admin[email protected]admin123456
Inventory Manager[email protected]inventory123456

Common Commands

# Stop all services
docker compose down

# Restart services
docker compose restart

# View API logs
docker compose logs -f dev

# Access API container shell
docker exec -it dev_container bash

# Run database migrations
docker exec -it dev_container bash -c "cd /app/code/api && php artisan migrate"

# Check seeder status
docker exec -it dev_container bash -c "cd /app/code/api && php artisan seeder:status"

# Regenerate API documentation
docker exec -it dev_container bash -c "cd /app/code/api && php artisan l5-swagger:generate"

Next Steps

Now that you have SushiGo running locally, explore these resources:

API Reference

Explore the REST API endpoints and test them with Swagger UI

Architecture

Understand the system design and domain model

Development Guide

Learn about the tech stack and development workflows

Testing

Run tests and write new test cases

Troubleshooting

If you see port conflict errors, check if other services are using ports 80, 443, 5173, 5432, 5050, or 8025.
# Check what's using a port (example for port 5432)
lsof -i :5432

# Or use docker ps to see other running containers
docker ps
You can modify ports in the .env file or docker-compose.yml.
If the API can’t connect to PostgreSQL:
  1. Ensure the pgsql container is healthy: docker compose ps
  2. Check PostgreSQL logs: docker compose logs pgsql
  3. Verify credentials in code/api/.env match docker-compose.yml
If you see file permission errors:
# Fix storage permissions
docker exec -it dev_container chown -R www-data:www-data /app/code/api/storage
docker exec -it dev_container chmod -R 775 /app/code/api/storage
If OAuth authentication fails:
# Regenerate Passport keys
docker exec -it dev_container bash -c "cd /app/code/api && php artisan passport:keys --force"
For detailed troubleshooting and manual setup instructions, see the Installation Guide.

Build docs developers (and LLMs) love