A Laravel-Nuxt starter project template.
- Nuxt 2
- Laravel 8
- SPA or SSR
- Socialite integration
- VueI18n + ESlint + Bootstrap 4 + Font Awesome 5
- Login, register, email verification and password reset
composer create-project --prefer-dist cretueusebiu/laravel-nuxt- Edit
.envand set your database connection details - (When installed via git clone or download, run
php artisan key:generateandphp artisan jwt:secret) php artisan migratenpm install
# start Laravel
php artisan serve
# start Nuxt
npm run devAccess your application at http://localhost:3000.
npm run build- Edit
client/nuxt.config.jsand setssr: true - Edit
.envto setAPP_URL=http://api.example.comandCLIENT_URL=http://example.com - Run
npm run buildandnpm run start
For Nginx you can add a proxy using the follwing location block:
server {
location / {
proxy_pass http://http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
In production you need a process manager to keep the Node server alive forever:
# install pm2 process manager
npm install -g pm2
# startup script
pm2 startup
# start process
pm2 start npm --name "laravel-nuxt" -- run start
# save process list
pm2 save
# list all processes
pm2 lAfter each deploy you'll need to restart the process:
pm2 restart laravel-nuxt Make sure to read the Nuxt docs.
This project comes with GitHub as an example for Laravel Socialite.
To enable the provider create a new GitHub application and use https://example.com/api/oauth/github/callback as the Authorization callback URL.
Edit .env and set GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET with the keys form your GitHub application.
For other providers you may need to set the appropriate keys in config/services.php and redirect url in OAuthController.php.
To enable email verification make sure that your App\User model implements the Illuminate\Contracts\Auth\MustVerifyEmail contract.
- This project uses router-module, so you have to add the routes manually in
client/router.js. - If you want to separate this in two projects (client and server api), move
package.jsonintoclient/and remove config path option from the scripts section. Also make sure to add the env variables inclient/.env.
Please see CHANGELOG for more information what has changed recently.
