A better example with online demo: https://github.com/laravel-101/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
- 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.
Read more about this project here: https://maxkostinevich.com/blog/multi-domain-laravel
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 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 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 npm run watch npm run dev npm run production v1.0.0 - May 25, 2018 ** Initial release ** (c) 2018 DigitalWheat - All rights reserved.
At DigitalWheat we create modern web-applications for small and medium-sized business.
Have a project in mind? Let's talk!
