Skip to content

Nuovo progetto

Prima di iniziare assicurarsi che il repository su Gitlab sia stato creato e di avere accesso a quel repository.

Iniziamo con il clonare un progetto laravel base

sh
curl -s "https://laravel.build/my-project?with=mysql,redis,mailpit" | bash

Spostiamoci nella cartella appena creata

sh
cd my-project

dove al posto di my-project andiamo a mettere il nome della cartella locale che verrà creata con all'interno il framework Laravel.

A questo punto andiamo a modificare il file .env andando ad aggiungere la sezione per le porte di docker/sail

txt
APP_PORT=8088
FORWARD_DB_PORT=33066
FORWARD_REDIS_PORT=63799
FORWARD_MAILPIT_PORT=1025
FORWARD_MAILPIT_DASHBOARD_PORT=8025
SANCTUM_STATEFUL_DOMAINS=""
ASSET_URL=/.

Modificare ora il file docker-compose.yml andando a rimuovere la seguente linea

yml
'${VITE_PORT:-5173}:${VITE_PORT:-5173}'

Creiamo un file .env.example

sh
cp .env .env.example

Creiamo un file .env.testing utile alla pipeline CI/CD

sh
cp .env .env.testing

Ora possiamo avviare sail in locale

sh
sail up --build -d

Andiamo a pubblicare le configurazioni docker di sail, questo sarà molto utile per permettere a chi clonerà questo progetto di poter lanciare il primo composer update senza avere php 8 sulla propria macchina

sh
sail artisan sail:publish

Prima di poter lanciare un composer update, dovremo aggiungere al progetto il file auth.json che ci permette di accedere ai repository dei package Weconstudio. Questo file lo possiamo copiare da un altro progetto oppure lanciando il seguente comando ne verrà generato uno stub

sh
cat <<EOT > auth.json
{
  "http-basic": {
    "git.weconstudio.it": {
      "username": "ncognome",
      "password": "xxx"
    }
  }
}
EOT

Aggiungiamo quindi questo file al gile .gitignore così che non venga pushato

sh
echo 'auth.json' >> .gitignore

Aggiungiamo al composer.json l'url per poter raggiungere i package weconstudio. Iniziamo dal framework-core

sh
sail composer config repositories.weconstudio/framework-core git https://git.weconstudio.it/weconstudio/framework/core.git

Proseguiamo con framework-system-utilities

sh
sail composer config repositories.weconstudio/framework-system-utilities git https://git.weconstudio.it/weconstudio/framework/system-utilities.git

Eseguiamo i seguenti comandi per aggiungere effettivamente il package framework-core

sh
rm composer.lock
sh
sail composer require "weconstudio/framework-core"=dev-l10
sh
sail artisan weconstudio:core:install

Eseguiamo i seguenti comandi per aggiungere effettivamente il package framework-system-utilities

sh
rm composer.lock
sh
sail composer require "weconstudio/framework-system-utilities"=dev-main
sh
sail artisan weconstudio:system-utilities:install

Ora è necessario riavviare sail

sh
sail down && sail up --build -d

A questo punto siamo pronti per creare il database e creare le risorse base, lanciando i seguenti comandi

sh
sail artisan migrate
sh
sail artisan weconstudio:model:init users --no-model
sh
sail artisan weconstudio:model:init devices --no-model
sh
sail artisan weconstudio:model:init roles --no-model
sh
sail artisan weconstudio:model:init role_user --no-model --pivot

Possiamo ora legare il progetto al repository Gitlab e ad eseguire il primo commit

sh
git init && git remote add origin git@git.weconstudio.it:XXXX/api.git
sh
git add . && git commit -m "Initial commit" && git push -u origin main