cretueusebiu / laravel-nuxt
A Laravel-Nuxt starter project template.
Installs: 6 239
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1 153
Watchers: 42
Forks: 262
Open Issues: 13
Type:project
Requires
- php: ^7.3|^8.0
- fideloper/proxy: ^4.4
- fruitcake/laravel-cors: ^2.0
- guzzlehttp/guzzle: ^7.0.1
- laravel/framework: ^8.12
- laravel/socialite: ^5.0
- laravel/tinker: ^2.5
- laravel/ui: ^3.0
- tymon/jwt-auth: ^1.0.1
Requires (Dev)
- doctrine/dbal: ^2.12
- facade/ignition: ^2.5
- fakerphp/faker: ^1.9.1
- mockery/mockery: ^1.4.2
- nunomaduro/collision: ^5.0
- phpunit/phpunit: ^9.3.3
README
A Laravel-Nuxt starter project template.
Features
- Nuxt 2
- Laravel 8
- SPA or SSR
- Socialite integration
- VueI18n + ESlint + Bootstrap 4 + Font Awesome 5
- Login, register, email verification and password reset
Installation
composer create-project --prefer-dist cretueusebiu/laravel-nuxt
- Edit
.env
and set your database connection details - (When installed via git clone or download, run
php artisan key:generate
andphp artisan jwt:secret
) php artisan migrate
npm install
Usage
Development
# start Laravel php artisan serve # start Nuxt npm run dev
Access your application at http://localhost:3000
.
Production
npm run build
Enable SSR
- Edit
client/nuxt.config.js
and setssr: true
- Edit
.env
to setAPP_URL=http://api.example.com
andCLIENT_URL=http://example.com
- Run
npm run build
andnpm run start
Nginx Proxy
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;
}
}
Process Manager
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 l
After each deploy you'll need to restart the process:
pm2 restart laravel-nuxt
Make sure to read the Nuxt docs.
Socialite
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
.
Email Verification
To enable email verification make sure that your App\User
model implements the Illuminate\Contracts\Auth\MustVerifyEmail
contract.
Notes
- 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.json
intoclient/
and remove config path option from the scripts section. Also make sure to add the env variables inclient/.env
.
Changelog
Please see CHANGELOG for more information what has changed recently.