An example of multi-domain/subdomain app in Laravel.
Clone or download
Latest commit 2ddb282 May 25, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app Initial commit May 25, 2018
bootstrap Initial commit May 25, 2018
config Initial commit May 25, 2018
database Initial commit May 25, 2018
public Initial commit May 25, 2018
resources Initial commit May 25, 2018
routes Initial commit May 25, 2018
storage Initial commit May 25, 2018
tests Initial commit May 25, 2018
.editorconfig Initial commit May 25, 2018
.env.example Initial commit May 25, 2018
.gitattributes Initial commit May 25, 2018
.gitignore Initial commit May 25, 2018
artisan Initial commit May 25, 2018
composer.json Initial commit May 25, 2018
composer.lock Initial commit May 25, 2018
package-lock.json Initial commit May 25, 2018
package.json Initial commit May 25, 2018
phpunit.xml Initial commit May 25, 2018
readme.md Initial commit May 25, 2018
server.php Initial commit May 25, 2018
webpack.mix.js Initial commit May 25, 2018
yarn.lock Initial commit May 25, 2018

readme.md

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

MIT License

(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!