Frequently Asked Questions
SureBooking — FAQ
Common questions about installation, configuration, features, and troubleshooting.
Categories
🚀Installation & Setup
Q
What are the minimum server requirements?
A
- PHP: 8.4 or higher
- MySQL: 5.7+ or 8.0+, MariaDB 10.3+
- RAM: Minimum 512 MB (1 GB+ recommended)
- Disk: 500 MB minimum
- PHP Extensions: curl, gd, imagick, json, zip, mbstring, xml, pdo, pdo_mysql, bcmath, tokenizer
See requirements.txt for the complete checklist.
Q
What is the fastest way to test the application?
A
Use Docker — it bundles PHP, MySQL, and Nginx pre-configured:
docker-compose up -d
# Then open: http://localhost:9059/install
The web installer wizard guides you through database setup, site info, and admin account creation. No manual .env editing required.
Q
Can I install this on shared hosting?
A
Yes, as long as the host meets the requirements:
- PHP 8.4+ with all required extensions
- MySQL database access
- SSH access (recommended for queue workers)
- Ability to set up cron jobs
php artisan queue:work --queue=high,default.
Q
How do I get the admin login credentials?
A
Admin credentials are created during the web installer wizard:
- Open
/installin your browser - Complete Steps 1–4 (requirements, permissions, database, site info)
- On Step 5 — Admin Account, enter your desired admin name, email, and password
- After installation completes, click Go to Admin Panel on the Finish screen and log in with those credentials
Q
Do I need to compile frontend assets (npm)?
A
No — pre-compiled assets are included in the package. Run
npm run production only if you:
- Modify CSS/JS source files
- Customize the theme assets
⚙️Configuration
Q
How do I configure email sending (SMTP)?
A
Mail can be configured directly through the Admin Panel — no need to edit
.env:
- Login to
/admin - Go to Settings → Email Configuration
- Enter SMTP details (host, port, username, password, encryption)
- For Gmail: use an App Password, not your regular password
- Use the built-in Send Test Email to verify
Q
What are queue workers and why do I need them?
A
Queue workers process background jobs asynchronously:
- Email notifications (appointment confirmations, status updates, password reset)
- Image optimization after upload
- Background report generation
Local testing: run
Production: use Supervisord (see install.html).
php artisan queue:work --queue=high,default in a separate terminal.Production: use Supervisord (see install.html).
Q
How do I set up queue workers in production?
A
- Install Supervisor:
sudo apt-get install supervisor - Copy config:
cp supervisord.ini.example supervisord.ini - Edit paths in
supervisord.ini(updatecommandandstdout_logfilepaths) - Deploy:
sudo cp supervisord.ini /etc/supervisor/conf.d/surebooking-worker.conf - Start:
sudo supervisorctl reread && sudo supervisorctl update
Q
Can I use Redis for caching and queues?
A
Yes — Redis improves performance significantly for high-traffic sites:
- Install Redis on your server
- Install the PHP Redis extension:
php-redis - Update
.env:CACHE_DRIVER=redis QUEUE_CONNECTION=redis REDIS_HOST=127.0.0.1 REDIS_PORT=6379 - Clear cache:
php artisan cache:clear
Q
How do I change the domain/URL after installation?
A
- Update
APP_URLin.env - Clear config cache:
php artisan config:clear - Clear app cache:
php artisan cache:clear - Restart queue workers:
sudo supervisorctl restart surebooking-worker:*
Q
How do I configure payment methods?
A
Payment methods are provided by separate packages (PayPal, Stripe, VNPay, etc.) and injected via the hook system:
- Install the relevant payment package
- Go to Admin → Settings → Payment Methods
- Enable and configure each gateway (API keys, webhook URLs, etc.)
✨Features & Usage
Q
How do I manage appointments?
A
- Go to Admin → Service Booking → Appointments
- Use filters (status, branch, date range) to find appointments
- Click an appointment to view full details: customer, services, employee, payment
- Use the Update Status button to transition: New → Accepted → Success / Cancel
- Every status change is logged in the appointment history and triggers a customer email notification
Q
How do I set up branches and services?
A
- Branches: Admin → Service Booking → Branches → Add New. Fill in name, address, phone, and working hours
- Service Categories: Admin → Service Booking → Service Categories — organize services into groups
- Services: Admin → Service Booking → Services → Add New. Set price, duration, and assign to branches
- Employees: Admin → Service Booking → Employees — add staff, set working hours and service assignments per branch
Q
How does the coupon / discount system work?
A
- Create coupons at Admin → Service Booking → Coupons
- Set discount type: fixed amount or percentage (with optional max cap)
- Configure scope: all customers, specific customer, service category, service, or branch
- Set date window, per-user usage limit, total quantity cap, and minimum booking amount
- Customers enter the coupon code on the booking form before confirming
- Coupon is rolled back automatically if the appointment is cancelled
Q
Can I export appointment data?
A
Yes — export is available throughout the admin:
- Appointments: Admin → Appointments → Export button (respects current filters)
- Customers: Admin → Customers → Export
- Coupon usage: Admin → Coupons → Usage History → Export
- Redirect rules: Admin → Sync Links → Export
Q
How does the online booking flow work?
A
The frontend booking flow guides customers through these steps:
- Select service(s): Customer picks one or more services from the frontend
- Choose branch & employee: Select preferred location and staff member
- Pick date & time: Real-time availability calendar shows open slots
- Confirm: Review booking summary, optionally apply a coupon code, and submit
- Notification: Confirmation email sent to customer; admin notified of new appointment
- Admin workflow: Staff reviews (New → Accepted), delivers service (Accepted → Success)
Q
How do I manage redirects (sync-links)?
A
- Go to Admin → Sync Links
- Add rules: Source URL (old path) → Target URL (new path)
- Choose redirect type: 301 (permanent, good for SEO) or 302 (temporary)
- Enable/disable individual rules
- Import from Excel for bulk setup; export to back up or audit
Use 301 redirects when permanently changing URL structure to preserve SEO value.
🔎Troubleshooting
Q
500 Internal Server Error after installation
A
Check these in order:
- File permissions:
chmod -R 755 storage bootstrap/cache - Check error logs:
cat storage/logs/laravel.log - Ensure
.envexists and has correct database credentials - Verify all required PHP extensions are installed:
php -m | grep -E 'curl|gd|imagick|zip|mbstring' - Clear caches:
php artisan optimize:clear
Q
Background tasks not processing (imports, emails)
A
Check if queue worker is running:
sudo supervisorctl status
# Should show: surebooking-worker:surebooking-worker_00 RUNNING
If not running:
- Reload config:
sudo supervisorctl reread && sudo supervisorctl update - Start workers:
sudo supervisorctl start surebooking-worker:*
php artisan queue:work --queue=high,default
Check failed jobs: php artisan queue:failed
Q
Images not uploading or displaying
A
- Check permissions:
chmod -R 755 public/uploads - Verify
php-gdandphp-imagickare installed:php -m | grep -E 'gd|imagick' - Check upload limits in php.ini:
upload_max_filesize = 64M post_max_size = 64M memory_limit = 256M
Q
Email not sending
A
- Go to Admin → Settings → Email Configuration and check SMTP settings
- Use the built-in Send Test Email button
- For Gmail: use an App Password (Google Account → Security → App Passwords) with port 587 + TLS
- Confirm queue worker is running (emails are sent via queue)
- Check Laravel logs:
tail -f storage/logs/laravel.log - Ensure SMTP ports 587/465 are open on your server firewall
Q
Code updates not taking effect
A
Always run after deploying:
Also clear browser cache (Ctrl+Shift+Delete).
php artisan optimize:clear
Critical: restart queue workers after every code deploy — workers keep PHP classes in memory and will not see your changes until restarted:
sudo supervisorctl restart surebooking-worker:*⚡Performance & Optimization
Q
How can I improve system performance?
A
- Use Redis for cache and queues:
CACHE_DRIVER=redis QUEUE_CONNECTION=redis - Enable PHP OPcache in php.ini
- Increase queue workers: Edit
numprocsinsupervisord.inito 2–4 for high traffic - Production mode:
APP_ENV=productionandAPP_DEBUG=false - CDN: Serve static assets and uploaded images via CDN
Q
What server specs do I need?
A
- Small (<1,000 users): 1 CPU, 1 GB RAM, 10 GB SSD
- Medium (1,000–10,000 users): 2 CPUs, 2–4 GB RAM, Redis cache
- Large (10,000+ users): 4+ CPUs, 8 GB+ RAM, Redis, CDN, load balancer
🔒Security
Q
How do I secure the admin panel?
A
- Change the default password immediately after first login
- Enable Two-Factor Authentication (2FA): Admin → Settings → Security
- Set
APP_DEBUG=falseandAPP_ENV=productionin production - Use HTTPS with a valid SSL certificate
- Set file permissions to 755 (not 777)
- Never commit
.envto version control - Keep the system updated regularly
Q
How do I back up the system?
A
- Database:
mysqldump -u surebooking_user -p surebooking_db > backup_$(date +%Y%m%d).sql - Files to backup:
.env— configurationpublic/uploads/— user uploaded mediastorage/— generated files and logs
- Automate: Use cron jobs or a backup service
- Off-site storage: Store backups on a separate server/cloud storage
🎨Customization
Q
Can I customize the frontend design?
A
Multiple customization options are available without touching source code:
- Theme Config: Admin → Appearance → Theme Configuration — colors, fonts, layout options
- Custom CSS: Admin → Appearance → Custom CSS — inject custom styles
- Menu: Admin → Appearance → Menus — manage navigation menus
- Logo/Favicon: Admin → Settings → General
- Theme files: Edit blade templates in
packages/theme/resources/views/then rebuild assets withnpm run production
Q
Can I customize service fields or add new data?
A
The source code is 100% unencoded, so you can customize freely:
- Add new fields to services, branches, or employees via a Laravel migration + model update
- Extend the booking form in the theme views under
packages/theme/resources/views/ - Add custom admin fields using the existing FormBuilder patterns (see
packages/service-booking/)
Q
How do I add or translate text?
A
Use the built-in Translation Manager — no file editing required:
To add a new language: Admin → Settings → Languages → Add Language.
- Go to Admin → Translations
- Select the language to translate
- Search for the text key you want to change
- Enter the translation and save
Translations are organized by module (Admin, Frontend, Email, Validation) for easy navigation. Changes take effect immediately without restarting.
🔸REST API
Q
Does SureBooking include a REST API?
A
Yes — SureBooking ships with a built-in REST API module. It exposes endpoints for:
- Appointments — list, detail, and status update (state-machine enforced)
- Branches — list and detail
- Services — list and detail (with service category)
- Customers — list and detail (search by name, email, phone)
Q
How do I get an API token?
A
- Login to
/admin - Go to Admin → API Clients
- Click Add New, enter a name for the client (e.g., "Mobile App"), and save
- Click Generate Token on the client detail page
- Copy the token — it is displayed only once
Authorization: Bearer YOUR_API_TOKEN
Q
What is the API base URL and response format?
A
All API endpoints are prefixed with
https://yourdomain.com/api/v1. Every response is JSON with a consistent envelope:
{
"success": true,
"data": { ... },
"message": "...",
"meta": { "current_page": 1, "last_page": 3, "per_page": 15, "total": 42 }
}
Errors return success: false with an appropriate HTTP status code (401, 404, 422, 429, 500).
Q
Is there a rate limit on API requests?
A
Yes — each API client has a configurable rate limit (requests per minute). When exceeded, the API returns
429 Too Many Requests. Adjust the limit at Admin → API Clients → [client] → Update Config.📚 Still have questions?
- Check install.html for detailed installation steps
- Check user-guide.html for full feature documentation
- Check api.html for REST API endpoint reference
- Review
storage/logs/laravel.logfor error details - Contact support via your CodeCanyon account with PHP version, error logs, and server details
SureBooking — FAQ
© 2026 DreamTeam. All rights reserved. | Install Guide | User Guide