Reusable multi-stack SaaS template with SvelteKit frontend, Python FastAPI backend, and Laravel admin panel.
Recommended: Use GitHub's "Use this template" button to create a clean copy.
# Your new project will be created on GitHub, then clone it
git clone https://github.com/yourusername/my-new-saas
cd my-new-saas
# Set your project name
PROJECT_NAME="myproject"
# Update docker-compose.yml
sed -i '' "s/saas_/${PROJECT_NAME}_/g" docker-compose.yml
sed -i '' "s/saas_network/${PROJECT_NAME}_network/g" docker-compose.yml
# Update .env files
sed -i '' "s/saas_/${PROJECT_NAME}_/g" .env.example
sed -i '' "s/saas_db/${PROJECT_NAME}_db/g" .env.example
cp .env.example .env
# Note: On Linux, remove the '' after -i in sed commands
# sed -i "s/saas_/${PROJECT_NAME}_/g" docker-compose.yml
Important: Install dependencies locally BEFORE building Docker containers.
# Frontend (SvelteKit)
cd frontend
npx sv create .
npm install
cd ..
# Backend (Python/FastAPI)
cd backend
# requirements.txt already exists, nothing to do
cd ..
# Admin (Laravel) - MUST run composer locally
cd admin
composer create-project laravel/laravel:^12.0 .
# This installs vendor/ directory which Docker needs
cd ..
# Main .env is already created from step 2
# Laravel needs its own .env configured for Docker
cat > admin/.env << 'EOF'
APP_NAME=MyProject
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost:8080
DB_CONNECTION=pgsql
DB_HOST=postgres
DB_PORT=5432
DB_DATABASE=myproject_db
DB_USERNAME=saas_user
DB_PASSWORD=saas_pass
CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379
EOF
# Update vite.config.ts to work in Docker
cat > frontend/vite.config.ts << 'EOF'
import { sveltekit } from '@sveltejs/kit/vite';
import { defineConfig } from 'vite';
export default defineConfig({
plugins: [sveltekit()],
server: {
host: '0.0.0.0',
port: 5173,
watch: {
usePolling: true
}
}
});
EOF
# Build and start all services
docker compose up -d --build
# Wait for services to be healthy (~30 seconds)
# Setup Laravel (generate app key and run migrations)
docker exec -it ${PROJECT_NAME}_admin php artisan key:generate
docker exec -it ${PROJECT_NAME}_admin php artisan migrate
# Verify all services are running
docker compose ps