HR software you love to hate
Directory structure little differs from a standard Laravel tree. We decided to refactor main app
directory to better suit our needs. All classes are grouped in four major categories:
app/Architecture
for all framework-related stuff like service providers, exception handler and more;app/Domain
for all framework-agnostic services related to the business logic of the application;app/Eloquent
for all database/ORM-related classes like models, observers and scopes;app/Infrastructure
for entry points to the application: CLI, HTTP and async ones.
- run
sh setup
or:
dcr
is an alias todocker-compose run --rm -u "$(id -u):$(id -g)"
-
clone the repository
-
initialize
.env
file and customize if neededcp .env.example .env
-
build containers
docker-compose build --no-cache --pull
-
run containers
docker-compose up -d
-
install composer packages
dcr php composer install
-
generate app key
dcr php php artisan key:generate
-
generate storage link
dcr php php artisan storage:link
-
migrate and seed database
dcr php php artisan migrate --seed
-
install npm packages
dcr node npm install
-
build assets
dcr node npm run dev
-
place google credentials here:
/google-credentials.json
(how to obtain the credentials)
- web - nginx HTTP server
- php - php and composer stuff
- node - npm stuff
- pgsql - database for local development
- mailhog - for emails preview
If xDebug is installed, set environment variable XDEBUG_MODE=off to improve performance
dcr -e XDEBUG_MODE=off php php artisan test
dcr php composer cs
dcr php composer csf
dcr node npm run lint
dcr node npm run lintf
- To use xDebug you need to set
DOCKER_INSTALL_XDEBUG
totrue
in.env
file. - Then rebuild php container
docker-compose up --build -d php
. - You can also set up xDebug params (see docs https://xdebug.org/docs/all_settings) in
docker/dev/php/php.ini
file:
Default values for xDebug:
xdebug.client_host=host.docker.internal
xdebug.client_port=9003
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.log_level=0
- It is possible to disable the Xdebug completely by setting the option xdebug.mode to off, or by setting the environment variable XDEBUG_MODE=off.
- See docs: (https://xdebug.org/docs/all_settings#mode)
CLI:
XDEBUG_MODE=off php artisan test
Docker container:
docker-compose run --rm -e XDEBUG_MODE=off php php artisan test