Skip to content
/ lanuel Public template

A Laravel - Nuxt 3 - Element Plus starter kit.

Notifications You must be signed in to change notification settings

micrapi/lanuel

Repository files navigation

Lanuel

A Laravel - Nuxt 3 - Element Plus starter kit.

Installation

Clone this repository

git clone https://github.com/micrapi/lanuel.git

cd lanuel

Laravel

composer install

cp .env.example .env

php artisan key:generate --ansi

Edit .env file depend on your environment (Required: APP_URL, DB_*, NUXT_PUBLIC_API_URL).

NuxtJs

yarn install

Developer

Open 2 terminal tab for Laravel and NuxtJs server

php artisan serve
yarn dev

Production

Use nginx as reverse proxy to run PHP and NodeJs. Use PM2 to manage NodeJs process.

Config nginx

map $sent_http_content_type $expires {
    "text/html"                 epoch;
    "text/html; charset=utf-8"  epoch;
    default                     off;
}

server {
    listen 80;

    # For https
    # listen 443 ssl;
    # ssl_certificate /etc/nginx/ssl/default.crt;
    # ssl_certificate_key /etc/nginx/ssl/default.key;

    server_name lanuel.dev;
    root /var/www/lanuel/public;
    index index.php index.html index.htm;

    location / {
        try_files $uri @proxy;
    }

    location @proxy {
        expires $expires;

        proxy_redirect                      off;
        proxy_set_header Host               $host;
        proxy_set_header X-Real-IP          $remote_addr;
        proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto  $scheme;
        proxy_read_timeout          1m;
        proxy_connect_timeout       1m;
        proxy_pass                          http://127.0.0.1:3003;
    }

    location ~ ^/(api|broadcasting) {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_pass fastcgi_backend;
        fastcgi_index index.php;
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_read_timeout 600;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }

    location /.well-known/acme-challenge/ {
        root /var/www/letsencrypt/;
        log_not_found off;
    }

    error_log /var/log/nginx/lanuel_error.log;
    access_log /var/log/nginx/lanuel_access.log;
}

Install and run PM2

npm install -g pm2

pm2 start

About

A Laravel - Nuxt 3 - Element Plus starter kit.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published