feat: Add Invoice Ninja service configuration to Service model
This commit is contained in:
@@ -285,6 +285,27 @@ class Service extends BaseModel
|
|||||||
foreach ($applications as $application) {
|
foreach ($applications as $application) {
|
||||||
$image = str($application->image)->before(':')->value();
|
$image = str($application->image)->before(':')->value();
|
||||||
switch ($image) {
|
switch ($image) {
|
||||||
|
case str($image)?->contains('invoiceninja'):
|
||||||
|
$data = collect([]);
|
||||||
|
$email = $this->environment_variables()->where('key', 'IN_USER_EMAIL')->first();
|
||||||
|
$data = $data->merge([
|
||||||
|
'Email' => [
|
||||||
|
'key' => 'IN_USER_EMAIL',
|
||||||
|
'value' => data_get($email, 'value'),
|
||||||
|
'rules' => 'required|email',
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
$password = $this->environment_variables()->where('key', 'SERVICE_PASSWORD_INVOICENINJAUSER')->first();
|
||||||
|
$data = $data->merge([
|
||||||
|
'Password' => [
|
||||||
|
'key' => 'IN_PASSWORD',
|
||||||
|
'value' => data_get($password, 'value'),
|
||||||
|
'rules' => 'required',
|
||||||
|
'isPassword' => true,
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
$fields->put('Invoice Ninja', $data->toArray());
|
||||||
|
break;
|
||||||
case str($image)?->contains('argilla'):
|
case str($image)?->contains('argilla'):
|
||||||
$data = collect([]);
|
$data = collect([]);
|
||||||
$api_key = $this->environment_variables()->where('key', 'SERVICE_PASSWORD_APIKEY')->first();
|
$api_key = $this->environment_variables()->where('key', 'SERVICE_PASSWORD_APIKEY')->first();
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
# ignore: true
|
|
||||||
# documentation: https://invoiceninja.github.io/selfhost.html
|
# documentation: https://invoiceninja.github.io/selfhost.html
|
||||||
# slogan: The leading open-source invoicing platform
|
# slogan: The leading open-source invoicing platform
|
||||||
# tags: invoicing, billing, accounting, finance, self-hosted
|
# tags: invoicing, billing, accounting, finance, self-hosted
|
||||||
@@ -11,18 +10,20 @@ services:
|
|||||||
- SERVICE_FQDN_INVOICENINJA
|
- SERVICE_FQDN_INVOICENINJA
|
||||||
- APP_ENV=${APP_ENV:-production}
|
- APP_ENV=${APP_ENV:-production}
|
||||||
- APP_URL=${SERVICE_FQDN_INVOICENINJA}
|
- APP_URL=${SERVICE_FQDN_INVOICENINJA}
|
||||||
- APP_KEY=${SERVICE_REALBASE64_INVOICENINJA}
|
- APP_KEY=base64:${SERVICE_REALBASE64_INVOICENINJA}
|
||||||
- APP_DEBUG=${APP_DEBUG:-false}
|
- APP_DEBUG=${APP_DEBUG:-false}
|
||||||
- REQUIRE_HTTPS=${REQUIRE_HTTPS:-false}
|
- REQUIRE_HTTPS=${REQUIRE_HTTPS:-false}
|
||||||
- PHANTOMJS_PDF_GENERATION=${PHANTOMJS_PDF_GENERATION:-false}
|
- PHANTOMJS_PDF_GENERATION=${PHANTOMJS_PDF_GENERATION:-false}
|
||||||
- PDF_GENERATOR=${PDF_GENERATOR:-snappdf}
|
- PDF_GENERATOR=${PDF_GENERATOR:-snappdf}
|
||||||
- TRUSTED_PROXIES=${TRUSTED_PROXIES:-*}
|
- TRUSTED_PROXIES=${TRUSTED_PROXIES:-*}
|
||||||
- QUEUE_CONNECTION=${QUEUE_CONNECTION:-database}
|
- QUEUE_CONNECTION=${QUEUE_CONNECTION:-database}
|
||||||
|
- IN_USER_EMAIL=${IN_USER_EMAIL:-admin@example.com}
|
||||||
|
- IN_PASSWORD=${SERVICE_PASSWORD_INVOICENINJAUSER}
|
||||||
- DB_HOST=${DB_HOST:-mariadb}
|
- DB_HOST=${DB_HOST:-mariadb}
|
||||||
- DB_PORT=${DB_PORT:-3306}
|
- DB_PORT=${DB_PORT:-3306}
|
||||||
- DB_DATABASE=${DB_DATABASE:-invoiceninja}
|
- DB_DATABASE=${DB_DATABASE:-invoiceninja}
|
||||||
- DB_USERNAME=$SERVICE_USER_INVOICENINJA
|
- DB_USERNAME=$SERVICE_USER_MARIADB
|
||||||
- DB_PASSWORD=$SERVICE_PASSWORD_INVOICENINJA
|
- DB_PASSWORD=$SERVICE_PASSWORD_MARIADB
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ['CMD', 'echo', 'ok']
|
test: ['CMD', 'echo', 'ok']
|
||||||
interval: 5s
|
interval: 5s
|
||||||
@@ -31,6 +32,52 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- invoice-ninja-public:/var/www/app/public
|
- invoice-ninja-public:/var/www/app/public
|
||||||
- invoice-ninja-storage:/var/www/app/storage
|
- invoice-ninja-storage:/var/www/app/storage
|
||||||
|
- type: bind
|
||||||
|
source: ./supervisord.conf
|
||||||
|
target: /etc/supervisord.conf
|
||||||
|
content: |
|
||||||
|
[supervisord]
|
||||||
|
nodaemon=true
|
||||||
|
pidfile=/tmp/supervisord.pid
|
||||||
|
logfile=/dev/null ; nodaemon will cause logs to go to stdout
|
||||||
|
logfile_maxbytes=0
|
||||||
|
loglevel=info
|
||||||
|
|
||||||
|
[program:php-fpm]
|
||||||
|
redirect_stderr=true
|
||||||
|
stdout_logfile=/dev/stdout
|
||||||
|
stdout_logfile_maxbytes=0
|
||||||
|
stderr_logfile=/dev/stderr
|
||||||
|
stderr_logfile_maxbytes=0
|
||||||
|
command=php artisan serve --host 0.0.0.0 --port 9000
|
||||||
|
|
||||||
|
[program:scheduler]
|
||||||
|
autorestart=true
|
||||||
|
redirect_stderr=true
|
||||||
|
stdout_logfile=/dev/stdout
|
||||||
|
stdout_logfile_maxbytes=0
|
||||||
|
stderr_logfile=/dev/stderr
|
||||||
|
stderr_logfile_maxbytes=0
|
||||||
|
command=php artisan schedule:work
|
||||||
|
|
||||||
|
[program:queue-worker]
|
||||||
|
process_name=%(program_name)s_%(process_num)02d
|
||||||
|
autorestart=true
|
||||||
|
redirect_stderr=true
|
||||||
|
stdout_logfile=/dev/stdout
|
||||||
|
stdout_logfile_maxbytes=0
|
||||||
|
stderr_logfile=/dev/stderr
|
||||||
|
stderr_logfile_maxbytes=0
|
||||||
|
numprocs=2
|
||||||
|
command=php artisan queue:work --sleep=3 --tries=1 --memory=256 --timeout=3600
|
||||||
|
|
||||||
|
[eventlistener:shutdown]
|
||||||
|
command=shutdown.sh
|
||||||
|
events=PROCESS_STATE_STOPPED, PROCESS_STATE_EXITED, PROCESS_STATE_FATAL
|
||||||
|
stdout_logfile=/dev/stdout
|
||||||
|
stdout_logfile_maxbytes=0
|
||||||
|
stderr_logfile=/dev/stderr
|
||||||
|
stderr_logfile_maxbytes=0
|
||||||
- type: bind
|
- type: bind
|
||||||
source: ./php.ini
|
source: ./php.ini
|
||||||
target: /usr/local/etc/php/php.ini
|
target: /usr/local/etc/php/php.ini
|
||||||
@@ -52,7 +99,6 @@ services:
|
|||||||
; opcache.jit=1205
|
; opcache.jit=1205
|
||||||
; opcache.memory_consumption=1024M
|
; opcache.memory_consumption=1024M
|
||||||
|
|
||||||
|
|
||||||
post_max_size = 60M
|
post_max_size = 60M
|
||||||
upload_max_filesize = 50M
|
upload_max_filesize = 50M
|
||||||
memory_limit=512M
|
memory_limit=512M
|
||||||
@@ -86,10 +132,10 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- mariadb-data:/var/lib/mysql
|
- mariadb-data:/var/lib/mysql
|
||||||
environment:
|
environment:
|
||||||
- MYSQL_ROOT_PASSWORD=$SERVICE_PASSWORD_ROOT
|
- MYSQL_ROOT_PASSWORD=$SERVICE_PASSWORD_MARIADBROOT
|
||||||
- MYSQL_DATABASE=${DB_DATABASE:-invoiceninja}
|
- MYSQL_DATABASE=${DB_DATABASE:-invoiceninja}
|
||||||
- MYSQL_USER=$SERVICE_USER_INVOICENINJA
|
- MYSQL_USER=$SERVICE_USER_MARIADB
|
||||||
- MYSQL_PASSWORD=$SERVICE_PASSWORD_INVOICENINJA
|
- MYSQL_PASSWORD=$SERVICE_PASSWORD_MARIADB
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
||||||
interval: 5s
|
interval: 5s
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user