#48 - deployment
This commit is contained in:
parent
0c32410767
commit
d5ba1de403
@ -30,7 +30,6 @@ DOCKER_TEST_DB_PASSWORD=${DB_PASSWORD}
|
||||
DOCKER_TEST_DB_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
|
||||
|
||||
REDIS_PORT=6379
|
||||
REDIS_CLIENT=predis
|
||||
REDIS_HOST=toby-redis
|
||||
|
||||
XDG_CONFIG_HOME=/tmp
|
||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -15,5 +15,6 @@ Homestead.json
|
||||
Homestead.yaml
|
||||
npm-debug.log
|
||||
yarn-error.log
|
||||
google-credentials.json
|
||||
.idea/
|
||||
.composer
|
||||
|
4
Procfile
4
Procfile
@ -1 +1,3 @@
|
||||
web: vendor/bin/heroku-php-apache2 public/
|
||||
web: vendor/bin/heroku-php-nginx -C nginx.conf public/
|
||||
release: php artisan migrate --force && php artisan cache:clear && php artisan config:cache
|
||||
worker: php artisan queue:work
|
||||
|
@ -4,19 +4,19 @@ declare(strict_types=1);
|
||||
|
||||
namespace Toby\Eloquent\Observers;
|
||||
|
||||
use Toby\Eloquent\Helpers\YearPeriodRetriever;
|
||||
use Toby\Eloquent\Models\User;
|
||||
use Toby\Eloquent\Models\YearPeriod;
|
||||
|
||||
class UserObserver
|
||||
{
|
||||
public function __construct(
|
||||
protected YearPeriodRetriever $yearPeriodRetriever,
|
||||
) {}
|
||||
|
||||
public function created(User $user): void
|
||||
{
|
||||
$user->vacationLimits()->create([
|
||||
"year_period_id" => $this->yearPeriodRetriever->current()->id,
|
||||
]);
|
||||
$yearPeriods = YearPeriod::all();
|
||||
|
||||
foreach ($yearPeriods as $yearPeriod) {
|
||||
$user->vacationLimits()->create([
|
||||
"year_period_id" => $yearPeriod->id,
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -9,12 +9,6 @@ use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
class TrustProxies extends Middleware
|
||||
{
|
||||
protected $proxies;
|
||||
|
||||
protected $headers =
|
||||
Request::HEADER_X_FORWARDED_FOR |
|
||||
Request::HEADER_X_FORWARDED_HOST |
|
||||
Request::HEADER_X_FORWARDED_PORT |
|
||||
Request::HEADER_X_FORWARDED_PROTO |
|
||||
Request::HEADER_X_FORWARDED_AWS_ELB;
|
||||
protected $proxies = '*';
|
||||
protected $headers = Request::HEADER_X_FORWARDED_AWS_ELB;
|
||||
}
|
||||
|
@ -10,6 +10,7 @@
|
||||
"ext-redis": "*",
|
||||
"azuyalabs/yasumi": "^2.4",
|
||||
"barryvdh/laravel-dompdf": "^1.0",
|
||||
"fakerphp/faker": "^1.19",
|
||||
"fruitcake/laravel-cors": "^2.0",
|
||||
"guzzlehttp/guzzle": "^7.0.1",
|
||||
"inertiajs/inertia-laravel": "^0.5.1",
|
||||
@ -27,7 +28,6 @@
|
||||
"require-dev": {
|
||||
"blumilksoftware/codestyle": "^0.10.0",
|
||||
"spatie/laravel-ignition": "^1.0",
|
||||
"fakerphp/faker": "^1.9.1",
|
||||
"laravel/dusk": "^6.21",
|
||||
"mockery/mockery": "^1.4.4",
|
||||
"nunomaduro/collision": "^6.1",
|
||||
|
136
composer.lock
generated
136
composer.lock
generated
@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "c5b402774b90f0e4bb912ca08a44a143",
|
||||
"content-hash": "0ee65ae15107942cb5ad2ee8067d514c",
|
||||
"packages": [
|
||||
{
|
||||
"name": "asm89/stack-cors",
|
||||
@ -813,6 +813,73 @@
|
||||
},
|
||||
"time": "2020-10-16T08:27:54+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fakerphp/faker",
|
||||
"version": "v1.19.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/FakerPHP/Faker.git",
|
||||
"reference": "d7f08a622b3346766325488aa32ddc93ccdecc75"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/FakerPHP/Faker/zipball/d7f08a622b3346766325488aa32ddc93ccdecc75",
|
||||
"reference": "d7f08a622b3346766325488aa32ddc93ccdecc75",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0",
|
||||
"psr/container": "^1.0 || ^2.0",
|
||||
"symfony/deprecation-contracts": "^2.2 || ^3.0"
|
||||
},
|
||||
"conflict": {
|
||||
"fzaninotto/faker": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"bamarni/composer-bin-plugin": "^1.4.1",
|
||||
"doctrine/persistence": "^1.3 || ^2.0",
|
||||
"ext-intl": "*",
|
||||
"symfony/phpunit-bridge": "^4.4 || ^5.2"
|
||||
},
|
||||
"suggest": {
|
||||
"doctrine/orm": "Required to use Faker\\ORM\\Doctrine",
|
||||
"ext-curl": "Required by Faker\\Provider\\Image to download images.",
|
||||
"ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.",
|
||||
"ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.",
|
||||
"ext-mbstring": "Required for multibyte Unicode string functionality."
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "v1.19-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Faker\\": "src/Faker/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "François Zaninotto"
|
||||
}
|
||||
],
|
||||
"description": "Faker is a PHP library that generates fake data for you.",
|
||||
"keywords": [
|
||||
"data",
|
||||
"faker",
|
||||
"fixtures"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/FakerPHP/Faker/issues",
|
||||
"source": "https://github.com/FakerPHP/Faker/tree/v1.19.0"
|
||||
},
|
||||
"time": "2022-02-02T17:38:57+00:00"
|
||||
},
|
||||
{
|
||||
"name": "firebase/php-jwt",
|
||||
"version": "v5.5.1",
|
||||
@ -8004,73 +8071,6 @@
|
||||
],
|
||||
"time": "2022-03-03T08:28:38+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fakerphp/faker",
|
||||
"version": "v1.19.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/FakerPHP/Faker.git",
|
||||
"reference": "d7f08a622b3346766325488aa32ddc93ccdecc75"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/FakerPHP/Faker/zipball/d7f08a622b3346766325488aa32ddc93ccdecc75",
|
||||
"reference": "d7f08a622b3346766325488aa32ddc93ccdecc75",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0",
|
||||
"psr/container": "^1.0 || ^2.0",
|
||||
"symfony/deprecation-contracts": "^2.2 || ^3.0"
|
||||
},
|
||||
"conflict": {
|
||||
"fzaninotto/faker": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"bamarni/composer-bin-plugin": "^1.4.1",
|
||||
"doctrine/persistence": "^1.3 || ^2.0",
|
||||
"ext-intl": "*",
|
||||
"symfony/phpunit-bridge": "^4.4 || ^5.2"
|
||||
},
|
||||
"suggest": {
|
||||
"doctrine/orm": "Required to use Faker\\ORM\\Doctrine",
|
||||
"ext-curl": "Required by Faker\\Provider\\Image to download images.",
|
||||
"ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.",
|
||||
"ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.",
|
||||
"ext-mbstring": "Required for multibyte Unicode string functionality."
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "v1.19-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Faker\\": "src/Faker/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "François Zaninotto"
|
||||
}
|
||||
],
|
||||
"description": "Faker is a PHP library that generates fake data for you.",
|
||||
"keywords": [
|
||||
"data",
|
||||
"faker",
|
||||
"fixtures"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/FakerPHP/Faker/issues",
|
||||
"source": "https://github.com/FakerPHP/Faker/tree/v1.19.0"
|
||||
},
|
||||
"time": "2022-02-02T17:38:57+00:00"
|
||||
},
|
||||
{
|
||||
"name": "filp/whoops",
|
||||
"version": "2.14.5",
|
||||
|
@ -30,7 +30,6 @@ return [
|
||||
"prefix" => env("REDIS_PREFIX", Str::slug(env("APP_NAME", "laravel"), "_") . "_database_"),
|
||||
],
|
||||
"default" => [
|
||||
"scheme" => "tls",
|
||||
"url" => env("REDIS_URL"),
|
||||
"host" => env("REDIS_HOST", "127.0.0.1"),
|
||||
"password" => env("REDIS_PASSWORD"),
|
||||
@ -38,7 +37,6 @@ return [
|
||||
"database" => env("REDIS_DB", "0"),
|
||||
],
|
||||
"cache" => [
|
||||
"scheme" => "tls",
|
||||
"url" => env("REDIS_URL"),
|
||||
"host" => env("REDIS_HOST", "127.0.0.1"),
|
||||
"password" => env("REDIS_PASSWORD"),
|
||||
|
@ -6,14 +6,9 @@ return [
|
||||
"default_auth_profile" => env("GOOGLE_CALENDAR_AUTH_PROFILE", "service_account"),
|
||||
"auth_profiles" => [
|
||||
"service_account" => [
|
||||
"credentials_json" => storage_path("app/google-calendar/service-account-credentials.json"),
|
||||
],
|
||||
"oauth" => [
|
||||
"credentials_json" => storage_path("app/google-calendar/oauth-credentials.json"),
|
||||
"token_json" => storage_path("app/google-calendar/oauth-token.json"),
|
||||
"credentials_json" => base_path("google-credentials.json"),
|
||||
],
|
||||
],
|
||||
|
||||
"calendar_id" => env("GOOGLE_CALENDAR_ID"),
|
||||
"user_to_impersonate" => env("GOOGLE_CALENDAR_IMPERSONATE"),
|
||||
];
|
||||
|
@ -9,14 +9,15 @@ RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||
&& docker-php-ext-enable xdebug \
|
||||
;fi
|
||||
|
||||
RUN apk add --no-cache \
|
||||
RUN apk add --no-cache pcre-dev $PHPIZE_DEPS \
|
||||
postgresql-dev \
|
||||
zip \
|
||||
libzip-dev \
|
||||
libpng-dev \
|
||||
&& pecl install redis \
|
||||
&& docker-php-ext-install \
|
||||
pdo_pgsql \
|
||||
zip \
|
||||
gd \
|
||||
&& docker-php-ext-configure \
|
||||
zip
|
||||
zip \
|
||||
&& docker-php-ext-enable \
|
||||
redis
|
||||
|
10
nginx.conf
Normal file
10
nginx.conf
Normal file
@ -0,0 +1,10 @@
|
||||
if ($http_x_forwarded_proto != 'https') {
|
||||
rewrite ^ https://$host$request_uri? permanent;
|
||||
}
|
||||
|
||||
location / {
|
||||
try_files $uri @rewriteapp;
|
||||
}
|
||||
location @rewriteapp {
|
||||
rewrite ^(.*)$ /index.php$1 last;
|
||||
}
|
@ -53,7 +53,7 @@ Directory structure little differs from a standard Laravel tree. We decided to r
|
||||
|
||||
dcr node npm run dev
|
||||
|
||||
- place google credentials here: `/storage/app/google-calendar/service-account-credentials.json` ([how to obtain the credentials](https://github.com/spatie/laravel-google-calendar#how-to-obtain-the-credentials-to-communicate-with-google-calendar))
|
||||
- place google credentials here: `/google-credentials.json` ([how to obtain the credentials](https://github.com/spatie/laravel-google-calendar#how-to-obtain-the-credentials-to-communicate-with-google-calendar))
|
||||
|
||||
### Available containers (local)
|
||||
|
||||
|
@ -125,7 +125,7 @@ const statuses = [
|
||||
|
||||
export function useStatusInfo() {
|
||||
const getStatues = () => statuses
|
||||
const findStatus = value => statuses.find(month => month.value === value)
|
||||
const findStatus = value => statuses.find(status => status.value === value)
|
||||
|
||||
return {
|
||||
getStatues,
|
||||
|
@ -372,7 +372,7 @@ export default {
|
||||
setup(props) {
|
||||
const form = useForm({
|
||||
user: props.can.createOnBehalfOfEmployee
|
||||
? props.users.data.find(user => user.id === props.auth.user.id)
|
||||
? props.users.data.find(user => user.id === props.auth.user.id) ?? props.users.data[0]
|
||||
: props.auth.user,
|
||||
from: null,
|
||||
to: null,
|
||||
|
Loading…
x
Reference in New Issue
Block a user