Skip to content

DigitalWheat/Multi-Domain-Laravel

Repository files navigation

🔥 UPDATE

A better example with online demo: https://github.com/laravel-101/multi-domain-laravel-app

Multi-Domain Laravel App

An example of multi-domain/subdomain app in Laravel. A project allows your users to create their shops (or websites) under your subdomain, like acme.example.com

laravel-multi-domain

What's included?

  • User login and registration
  • Application control panel
  • Sub-domains routes
  • Custom helper functions to work with subdomains
  • Database migrations
  • etc.

Please note: This is a demo project, and a lot of features aren't included, such as billing, user management, etc. The main purpose of this project is to show how to work with wildcard domains/subdomains in Laravel Framework.

Learn more

Read more about this project here: https://maxkostinevich.com/blog/multi-domain-laravel

Deployment

It is supposed that the project is hosted using Laravel Forge and deployed using Envoyer.io

Commands to be added after installing composer dependencies:

cd {{release}}

composer update

npm install
npm run production

php artisan view:clear
php artisan cache:clear
php artisan vendor:publish
php artisan migrate --force

php artisan db:seed --force

php artisan config:cache

Notes

Setting up .env file

Let's assume the app will be running on the app.example.com domain, so your users will be able to create their shops on your sub-domains, like acme.example.com. In this case, your .env file may looks as follow:

APP_URL=http://app.example.com
APP_DOMAIN=app.example.com

SESSION_DOMAIN='.example.com'

ADMIN_FIRST_NAME=John
ADMIN_LAST_NAME=Doe
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=my_secure_password

Development on local environment

It is recommended to use tunneling service like ngrok.com, when developing on your local machine. In this case your .env file may looks as follow:

APP_URL=http://app.yourapp.ngrok.io
APP_DOMAIN=yourapp.ngrok.io

SESSION_DOMAIN='.yourapp.ngrok.io'

ADMIN_FIRST_NAME=John
ADMIN_LAST_NAME=Doe
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=secure_pa55word

Available NPM commands

npm run watch
npm run dev
npm run production

Changelog

v1.0.0 - May 25, 2018
** Initial release **

Credits

(c) 2018 DigitalWheat - All rights reserved.

About

At DigitalWheat we create modern web-applications for small and medium-sized business.

Have a project in mind? Let's talk!

About

An example of multi-domain/subdomain app in Laravel.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published