Compare commits
52 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2fee2cb945 | |||
| aada303a9e | |||
| 3e32add187 | |||
| 325a2f4071 | |||
| bec75c57ab | |||
| ebfc419985 | |||
| cae1dd4abb | |||
| 3359cd1c1a | |||
| 27934cba56 | |||
| 71340c03a1 | |||
| fd98e6d0ef | |||
| 0017993d18 | |||
| eb8c837a8d | |||
| 0648740c73 | |||
| 01323ea87a | |||
| 51cc0254d0 | |||
| 71bcfd4338 | |||
| da7f10419a | |||
| e65dd3ee87 | |||
| 8797e6af7c | |||
| cc3731d482 | |||
| bb264eeed2 | |||
| 47faf59ede | |||
| 441517891c | |||
| 093c6fc710 | |||
| 87fcbd5771 | |||
| 8fc61bfc2d | |||
| 42ccb32635 | |||
| b0062cddfc | |||
| 207f8b9118 | |||
| 73c1e7a17a | |||
| e399ee3a34 | |||
| 190ff0b0a6 | |||
| cfb2dcfd31 | |||
| d121f3343f | |||
|
adba3b88ae
|
|||
|
182f2fa111
|
|||
|
8a61ff2b7a
|
|||
|
b6bc9e4a3a
|
|||
|
79e7a63941
|
|||
|
bdce8411b3
|
|||
|
40770834a3
|
|||
|
0cee0637c9
|
|||
|
74ee56c960
|
|||
|
218b08a3c4
|
|||
|
80ae8c4302
|
|||
|
4e1482f09a
|
|||
|
96dd6e190a
|
|||
|
7e825bb46a
|
|||
|
ac051664af
|
|||
|
f2d81c46da
|
|||
|
e27fcdfb71
|
@@ -0,0 +1,3 @@
|
||||
## 2.0.0-RC1 - 2024-07-18
|
||||
### Release
|
||||
* upgrade to chill-bundles/3.0.0-RC5
|
||||
@@ -0,0 +1,3 @@
|
||||
## 2.0.0-RC2 - 2024-07-18
|
||||
### Fixed
|
||||
* Fix definition of workflow
|
||||
@@ -0,0 +1,9 @@
|
||||
## 2.1.0 - 2024-07-23
|
||||
### Release
|
||||
* Upgrade chill to v3.0.0-RC3
|
||||
* upgrade chill-bundle to v3.0.0-RC4
|
||||
* Add graylog to image
|
||||
* upgrade to chill-bundles/3.0.0-RC5
|
||||
* Upgrade chill-bundles to v3.0.0-RC6
|
||||
### Fixed
|
||||
* Fix definition of workflow
|
||||
@@ -0,0 +1,3 @@
|
||||
## 2.2.0 - 2024-07-25
|
||||
### Release
|
||||
* Update chill-bundles to v3.0.0-RC7
|
||||
@@ -0,0 +1,3 @@
|
||||
## 2.1.0 - 2024-07-30
|
||||
### Release
|
||||
* Update chill-bundles to v3.0.0-RC8
|
||||
@@ -0,0 +1,3 @@
|
||||
## 2.1.0 - 2024-08-08
|
||||
### Release
|
||||
* Update chill-bundles to v3.0.0-RC9
|
||||
@@ -0,0 +1,3 @@
|
||||
## 2.0.0-alpha1 - 2024-07-03
|
||||
### Release
|
||||
* Upgrade chill to v3.0.0-RC3
|
||||
@@ -0,0 +1,3 @@
|
||||
## 2.0.0-alpha2 - 2024-07-03
|
||||
### Release
|
||||
* upgrade chill-bundle to v3.0.0-RC4
|
||||
@@ -0,0 +1,3 @@
|
||||
## 2.0.0-alpha3 - 2024-07-03
|
||||
### Release
|
||||
* Add graylog to image
|
||||
@@ -0,0 +1,3 @@
|
||||
## 2.0.0-alpha4 - 2024-07-03
|
||||
### Release
|
||||
* fixes
|
||||
@@ -0,0 +1,3 @@
|
||||
## 2.1.0 - 2024-09-24
|
||||
### Release
|
||||
* Update bundles version to 3.1.0
|
||||
@@ -0,0 +1,3 @@
|
||||
## 2.10.0 - 2025-05-13
|
||||
### Release
|
||||
* Update chill bundles to 3.11.0
|
||||
@@ -0,0 +1,3 @@
|
||||
## 2.11.0 - 2025-07-10
|
||||
### Release
|
||||
* Update chill bundles to v4.0.2
|
||||
@@ -0,0 +1,3 @@
|
||||
## 2.12.0 - 2025-11-10
|
||||
### Release
|
||||
* Update chill bundles to v4.7.0
|
||||
@@ -0,0 +1,3 @@
|
||||
## 2.2.0 - 2024-10-01
|
||||
### Release
|
||||
* Bundles version updated to 3.1.1
|
||||
@@ -0,0 +1,3 @@
|
||||
## 2.3.0 - 2024-10-30
|
||||
### Feature
|
||||
* Update bundles to v3.2.0 adding gender entity feature
|
||||
@@ -0,0 +1,3 @@
|
||||
## 2.4.0 - 2024-11-01
|
||||
### Feature
|
||||
* Update chill bundles to v3.2.2: new feature gender entity"
|
||||
@@ -0,0 +1,3 @@
|
||||
## 2.5.0 - 2024-12-09
|
||||
### Release
|
||||
* Update bundles to v3.5.0
|
||||
@@ -0,0 +1,3 @@
|
||||
## 2.6.0 - 2025-01-08
|
||||
### Release
|
||||
* Update to chill bundles v3.5.3
|
||||
@@ -0,0 +1,3 @@
|
||||
## 2.7.0 - 2025-01-20
|
||||
### Release
|
||||
* Update chill bundles to version 3.6.0
|
||||
@@ -0,0 +1,3 @@
|
||||
## 2.8.0 - 2025-03-04
|
||||
### Release
|
||||
* Update chill bundles to v3.9.2
|
||||
@@ -0,0 +1,3 @@
|
||||
## 2.9.0 - 2025-03-18
|
||||
### Release
|
||||
* Update chill bundles to v3.10.3
|
||||
@@ -0,0 +1,6 @@
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
|
||||
and is generated by [Changie](https://github.com/miniscruff/changie).
|
||||
@@ -0,0 +1,35 @@
|
||||
changesDir: .changes
|
||||
unreleasedDir: unreleased
|
||||
headerPath: header.tpl.md
|
||||
changelogPath: CHANGELOG.md
|
||||
versionExt: md
|
||||
versionFormat: '## {{.Version}} - {{.Time.Format "2006-01-02"}}'
|
||||
kindFormat: '### {{.Kind}}'
|
||||
# Note: it is possible to add a `.custom.Long` text manually into the yaml file produced by `changie new`. This will add a long description.
|
||||
changeFormat: >-
|
||||
* {{ if and (ne .Custom.Issue "") (ne .Custom.Issue "0") }}([#{{ .Custom.Issue }}](https://gitea.champs-libres.be/Chill-project/chill-base-app-v3/issues/{{ .Custom.Issue }})) {{ end }}{{.Body}}
|
||||
custom:
|
||||
- key: Issue
|
||||
label: Issue number (on chill-bundles repository) (optional)
|
||||
optional: true
|
||||
type: int
|
||||
kinds:
|
||||
- label: Release
|
||||
auto: minor
|
||||
- label: Feature
|
||||
auto: minor
|
||||
- label: Deprecated
|
||||
auto: minor
|
||||
- label: Fixed
|
||||
auto: patch
|
||||
- label: Security
|
||||
auto: patch
|
||||
- label: DX
|
||||
auto: patch
|
||||
- label: UX
|
||||
auto: patch
|
||||
newlines:
|
||||
afterChangelogHeader: 1
|
||||
beforeChangelogVersion: 1
|
||||
endOfVersion: 1
|
||||
envPrefix: CHANGIE_
|
||||
@@ -0,0 +1,13 @@
|
||||
vendor/*/*/vendor/*
|
||||
vendor/*/*/tests/*
|
||||
vendor/bin/.php*
|
||||
.pgadmin4*
|
||||
app/config/parameters.yml
|
||||
.composer*
|
||||
.git*
|
||||
.yarncache/*
|
||||
.node_modules/*
|
||||
build/*
|
||||
var/*
|
||||
vendor/chill-project/chill-bundles/.psalm/*
|
||||
|
||||
+87
@@ -0,0 +1,87 @@
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: build-images
|
||||
|
||||
image_pull_secrets:
|
||||
- dockerconfig
|
||||
|
||||
trigger:
|
||||
event:
|
||||
- tag
|
||||
|
||||
steps:
|
||||
- name: build-base-image
|
||||
image: plugins/docker
|
||||
settings:
|
||||
username:
|
||||
from_secret: docker_username
|
||||
password:
|
||||
from_secret: docker_password
|
||||
registry: h3m6q87t.gra7.container-registry.ovh.net
|
||||
repo: h3m6q87t.gra7.container-registry.ovh.net/chillbasics/php-base
|
||||
tag: latest
|
||||
target: chill_base_php82
|
||||
pull_image: true
|
||||
cache_from:
|
||||
- h3m6q87t.gra7.container-registry.ovh.net/chillbasics/php-base:latest
|
||||
- chill/base-image:latest
|
||||
|
||||
- name: composer-install
|
||||
image: h3m6q87t.gra7.container-registry.ovh.net/chillbasics/php-base:latest
|
||||
pull: always
|
||||
commands:
|
||||
- composer install --no-scripts --no-interaction
|
||||
- bin/console cache:clear
|
||||
depends_on:
|
||||
- build-base-image
|
||||
|
||||
- name: build-assets
|
||||
image: node:20
|
||||
pull: always
|
||||
commands:
|
||||
- yarn install
|
||||
- yarn list
|
||||
- yarn run encore production
|
||||
depends_on:
|
||||
- composer-install
|
||||
|
||||
- name: build-image-php
|
||||
image: plugins/docker
|
||||
settings:
|
||||
pull_image: true
|
||||
username:
|
||||
from_secret: docker_username
|
||||
password:
|
||||
from_secret: docker_password
|
||||
registry: h3m6q87t.gra7.container-registry.ovh.net
|
||||
repo: h3m6q87t.gra7.container-registry.ovh.net/chillbasics/php
|
||||
tag:
|
||||
- ${DRONE_TAG}
|
||||
cache_from:
|
||||
- h3m6q87t.gra7.container-registry.ovh.net/chillbasics/php-base:latest
|
||||
- chill/base-image:latest
|
||||
depends_on:
|
||||
- build-assets
|
||||
- composer-install
|
||||
|
||||
- name: build-image-nginx
|
||||
image: plugins/docker
|
||||
settings:
|
||||
pull_image: true
|
||||
username:
|
||||
from_secret: docker_username
|
||||
password:
|
||||
from_secret: docker_password
|
||||
registry: h3m6q87t.gra7.container-registry.ovh.net
|
||||
repo: h3m6q87t.gra7.container-registry.ovh.net/chillbasics/nginx
|
||||
tag:
|
||||
- ${DRONE_TAG}
|
||||
Dockerfile: docker/nginx/Dockerfile
|
||||
depends_on:
|
||||
- build-assets
|
||||
---
|
||||
kind: signature
|
||||
hmac: 510f151634e776218c6135bb830480fe0c265eb1dd96c16ef640001a23f351ae
|
||||
|
||||
...
|
||||
@@ -76,4 +76,9 @@ ADD_ADDRESS_MAP_CENTER_Z=14
|
||||
# Variables for relatorio host, which generates documents
|
||||
RELATORIO_HOST=
|
||||
RELATORIO_PORT=
|
||||
WOPI_SERVER=http://${COLLABORA_HOST}:${COLLABORA_PORT}
|
||||
###< chill-project/chill-bundles ###
|
||||
|
||||
###> symfony/ovh-cloud-notifier ###
|
||||
# OVHCLOUD_DSN=ovhcloud://APPLICATION_KEY:APPLICATION_SECRET@default?consumer_key=CONSUMER_KEY&service_name=SERVICE_NAME
|
||||
###< symfony/ovh-cloud-notifier ###
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
# define your env variables for the test env here
|
||||
KERNEL_CLASS='App\Kernel'
|
||||
APP_SECRET='$ecretf0rt3st'
|
||||
SYMFONY_DEPRECATIONS_HELPER=999999
|
||||
@@ -0,0 +1,59 @@
|
||||
name: Prepare release for chill app
|
||||
run-name: Update composer.lock and dependencies for preparing a release
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'release/**'
|
||||
|
||||
jobs:
|
||||
update-deps:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: check out repository
|
||||
uses: https://github.com/actions/checkout@v4
|
||||
- name: get the previous chill version
|
||||
# parse the composer.lock file using jq to get the chill version before the upgrade
|
||||
id: chill-before
|
||||
uses: https://github.com/sergeysova/jq-action@v2
|
||||
with:
|
||||
cmd: 'cat composer.lock | jq --raw-output ''.packages[] | select ( .name | contains ("chill-project/chill-bundles")) | .version'''
|
||||
- name: run composer update to update composer.lock
|
||||
uses: docker://gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:latest
|
||||
with:
|
||||
# this is where we set the command to execute
|
||||
args: composer update --no-install
|
||||
- name: is composer.lock changed ?
|
||||
id: composer-lock-changed
|
||||
run: 'echo is_composer_lock_changed=$(git diff --name-only | grep "composer\.lock" | wc -l) >> $GITHUB_OUTPUT'
|
||||
- name: get the new chill version
|
||||
# parse the composer.lock file using jq to get the chill version after the upgrade
|
||||
id: chill-after
|
||||
uses: https://github.com/sergeysova/jq-action@v2
|
||||
with:
|
||||
cmd: 'cat composer.lock | jq --raw-output ''.packages[] | select ( .name | contains ("chill-project/chill-bundles")) | .version'''
|
||||
- name: add a changie file for the upgrade
|
||||
uses: https://github.com/miniscruff/changie-action@v2
|
||||
if: ${{ steps.composer-lock-changed.outputs.is_composer_lock_changed == 1 }}
|
||||
with:
|
||||
version: latest
|
||||
args: 'new --body "Update dependencies. Chill-bundles upgraded from ${{ steps.chill-before.outputs.value }} to ${{ steps.chill-after.outputs.value }}" --kind Release --custom "Issue=0"'
|
||||
- name: changie batch
|
||||
if: ${{ steps.composer-lock-changed.outputs.is_composer_lock_changed == 1 }}
|
||||
uses: https://github.com/miniscruff/changie-action@v2
|
||||
with:
|
||||
version: latest
|
||||
args: 'batch auto'
|
||||
- name: changie merge
|
||||
if: ${{ steps.composer-lock-changed.outputs.is_composer_lock_changed == 1 }}
|
||||
uses: https://github.com/miniscruff/changie-action@v2
|
||||
with:
|
||||
version: latest
|
||||
args: 'merge'
|
||||
- name: commit changed files
|
||||
if: ${{ steps.composer-lock-changed.outputs.is_composer_lock_changed == 1 }}
|
||||
uses: https://github.com/stefanzweifel/git-auto-commit-action@v5
|
||||
with:
|
||||
commit_message: "update composer.lock and file (automatic update)"
|
||||
commit_user_name: Action Bot
|
||||
commit_user_email: bot@chill.social
|
||||
+14
@@ -19,3 +19,17 @@ yarn-error.log
|
||||
###> lexik/jwt-authentication-bundle ###
|
||||
/config/jwt/*.pem
|
||||
###< lexik/jwt-authentication-bundle ###
|
||||
|
||||
###> phpstan/phpstan ###
|
||||
phpstan.neon
|
||||
###< phpstan/phpstan ###
|
||||
|
||||
###> phpunit/phpunit ###
|
||||
/phpunit.xml
|
||||
/.phpunit.cache/
|
||||
###< phpunit/phpunit ###
|
||||
|
||||
###> symfony/phpunit-bridge ###
|
||||
.phpunit.result.cache
|
||||
/phpunit.xml
|
||||
###< symfony/phpunit-bridge ###
|
||||
|
||||
+101
@@ -0,0 +1,101 @@
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
|
||||
and is generated by [Changie](https://github.com/miniscruff/changie).
|
||||
|
||||
|
||||
## 2.12.0 - 2025-11-10
|
||||
### Release
|
||||
* Update chill bundles to v4.7.0
|
||||
|
||||
## 2.11.0 - 2025-07-10
|
||||
### Release
|
||||
* Update chill bundles to v4.0.2
|
||||
|
||||
## 2.10.0 - 2025-05-13
|
||||
### Release
|
||||
* Update chill bundles to 3.11.0
|
||||
|
||||
## 2.9.0 - 2025-03-18
|
||||
### Release
|
||||
* Update chill bundles to v3.10.3
|
||||
|
||||
## 2.8.0 - 2025-03-04
|
||||
### Release
|
||||
* Update chill bundles to v3.9.2
|
||||
|
||||
## 2.7.0 - 2025-01-20
|
||||
### Release
|
||||
* Update chill bundles to version 3.6.0
|
||||
|
||||
## 2.6.0 - 2025-01-08
|
||||
### Release
|
||||
* Update to chill bundles v3.5.3
|
||||
|
||||
## 2.5.0 - 2024-12-09
|
||||
### Release
|
||||
* Update bundles to v3.5.0
|
||||
|
||||
## 2.4.0 - 2024-11-01
|
||||
### Feature
|
||||
* Update chill bundles to v3.2.2: new feature gender entity"
|
||||
|
||||
## 2.3.0 - 2024-10-30
|
||||
### Feature
|
||||
* Update bundles to v3.2.0 adding gender entity feature
|
||||
|
||||
## 2.2.0 - 2024-10-01
|
||||
### Release
|
||||
* Bundles version updated to 3.1.1
|
||||
|
||||
## 2.1.0 - 2024-09-24
|
||||
### Release
|
||||
* Update bundles version to 3.1.0
|
||||
|
||||
## 2.0.0-alpha4 - 2024-07-03
|
||||
### Release
|
||||
* fixes
|
||||
|
||||
## 2.0.0-alpha3 - 2024-07-03
|
||||
### Release
|
||||
* Add graylog to image
|
||||
|
||||
## 2.0.0-alpha2 - 2024-07-03
|
||||
### Release
|
||||
* upgrade chill-bundle to v3.0.0-RC4
|
||||
|
||||
## 2.0.0-alpha1 - 2024-07-03
|
||||
### Release
|
||||
* Upgrade chill to v3.0.0-RC3
|
||||
|
||||
## 2.1.0 - 2024-08-08
|
||||
### Release
|
||||
* Update chill-bundles to v3.0.0-RC9
|
||||
|
||||
## 2.1.0 - 2024-07-30
|
||||
### Release
|
||||
* Update chill-bundles to v3.0.0-RC8
|
||||
|
||||
## 2.2.0 - 2024-07-25
|
||||
### Release
|
||||
* Update chill-bundles to v3.0.0-RC7
|
||||
|
||||
## 2.1.0 - 2024-07-23
|
||||
### Release
|
||||
* Upgrade chill to v3.0.0-RC3
|
||||
* upgrade chill-bundle to v3.0.0-RC4
|
||||
* Add graylog to image
|
||||
* upgrade to chill-bundles/3.0.0-RC5
|
||||
* Upgrade chill-bundles to v3.0.0-RC6
|
||||
### Fixed
|
||||
* Fix definition of workflow
|
||||
|
||||
## 2.0.0-RC2 - 2024-07-18
|
||||
### Fixed
|
||||
* Fix definition of workflow
|
||||
|
||||
## 2.0.0-RC1 - 2024-07-18
|
||||
### Release
|
||||
* upgrade to chill-bundles/3.0.0-RC5
|
||||
+106
@@ -0,0 +1,106 @@
|
||||
FROM php:8.3-fpm-alpine AS chill_base_php82
|
||||
|
||||
ENV POSTGRES_VERSION=15
|
||||
|
||||
# default UID for the PHP user
|
||||
ARG UID=1000
|
||||
ARG GID=1000
|
||||
|
||||
# install php extensions and deps
|
||||
# apk add --no-cache --update --virtual rabbitmq-c-dev rabbitmq-c-utils gcc g++ make autoconf && pecl install amqp
|
||||
RUN apk update && apk add --no-cache \
|
||||
wget gnupg \
|
||||
libpq-dev \
|
||||
icu-dev icu-libs icu-data-full \
|
||||
oniguruma-dev \
|
||||
libzip libzip-dev \
|
||||
linux-headers \
|
||||
gcc g++ make autoconf \
|
||||
bash git \
|
||||
rabbitmq-c rabbitmq-c-dev \
|
||||
&& docker-php-ext-install pdo_pgsql intl mbstring zip bcmath exif sockets \
|
||||
&& git clone https://github.com/nikic/php-ast.git \
|
||||
&& cd php-ast \
|
||||
&& phpize \
|
||||
&& ./configure \
|
||||
&& make install \
|
||||
&& echo 'extension=ast.so' > /usr/local/etc/php/php.ini \
|
||||
&& cd .. && rm -rf php-ast \
|
||||
&& pecl install redis \
|
||||
&& docker-php-ext-enable redis \
|
||||
&& pecl install amqp \
|
||||
&& docker-php-ext-enable amqp \
|
||||
&& apk add libpng-dev libjpeg-turbo-dev freetype-dev \
|
||||
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
|
||||
&& docker-php-ext-install -j$(nproc) gd \
|
||||
&& apk add postgresql${POSTGRES_VERSION}-client \
|
||||
&& apk del --purge wget gnupg libpq-dev icu-dev oniguruma-dev libzip-dev linux-headers gcc g++ make autoconf
|
||||
|
||||
RUN { \
|
||||
echo ""; \
|
||||
echo "memory_limit = 512M"; \
|
||||
echo ""; \
|
||||
} >> /usr/local/etc/php/conf.d/memory_limit.ini
|
||||
|
||||
RUN { \
|
||||
echo ""; \
|
||||
echo "[Date]"; \
|
||||
echo "date.timezone = Europe/Brussels"; \
|
||||
echo ""; \
|
||||
} >> /usr/local/etc/php/conf.d/date.ini
|
||||
|
||||
# temporary fix, while php-cs-fixer has conflict dependencies
|
||||
# with chill
|
||||
RUN curl -o /usr/local/bin/php-cs-fixer https://cs.symfony.com/download/php-cs-fixer-v3.phar \
|
||||
&& chmod +x /usr/local/bin/php-cs-fixer
|
||||
# to make php-cs-fixer works with php 8.2
|
||||
ENV PHP_CS_FIXER_IGNORE_ENV=1
|
||||
|
||||
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
||||
ENV COMPOSER_ALLOW_SUPERUSER=1
|
||||
ENV COMPOSER_MEMORY_LIMIT=-1
|
||||
|
||||
# shell bash preference
|
||||
RUN sed -i " \
|
||||
s|root:x:0:0:root:/root:/bin/ash|root:x:0:0:root:/root:/bin/bash|g; \
|
||||
s|postgres:x:70:70:PostgreSQL user:/var/lib/postgresql:/bin/sh|postgres:x:70:70:PostgreSQL user:/var/lib/postgresql:/bin/bash|g" \
|
||||
/etc/passwd
|
||||
|
||||
# chmod on redis.so
|
||||
RUN chmod 755 -R /usr/local/lib/php/extensions/
|
||||
|
||||
WORKDIR /var/www/app
|
||||
|
||||
CMD ["php-fpm"]
|
||||
|
||||
FROM chill_base_php82 AS chill_php82
|
||||
|
||||
# copy directories
|
||||
|
||||
COPY ./bin /var/www/app/bin/.
|
||||
COPY ./composer.* /var/www/app/
|
||||
COPY ./config /var/www/app/config/.
|
||||
COPY ./migrations /var/www/app/migrations/.
|
||||
COPY ./public /var/www/app/public/.
|
||||
COPY ./src /var/www/app/src/.
|
||||
COPY ./templates /var/www/app/templates/.
|
||||
COPY ./translations /var/www/app/translations/.
|
||||
COPY ./vendor /var/www/app/vendor/.
|
||||
|
||||
COPY ./.env /var/www/app/.env
|
||||
|
||||
# import the manifest.json file
|
||||
COPY ./public/build/manifest.json /var/www/app/public/build/manifest.json
|
||||
|
||||
ADD ./entrypoint.sh /.
|
||||
|
||||
RUN chmod +x /entrypoint.sh
|
||||
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
|
||||
ENV PHP_FPM_USER=www-data \
|
||||
PHP_FPM_GROUP=www-data \
|
||||
COMPOSER_HOME=/var/www/app/.composer \
|
||||
SESSION_LIFETIME=10800
|
||||
|
||||
CMD [ "php-fpm" ]
|
||||
@@ -0,0 +1,7 @@
|
||||
import SwaggerUI from 'swagger-ui';
|
||||
import 'swagger-ui/dist/swagger-ui.css';
|
||||
|
||||
SwaggerUI({
|
||||
url: '/_dev/specs.yaml',
|
||||
dom_id: '#swag'
|
||||
})
|
||||
+55
-50
@@ -1,36 +1,8 @@
|
||||
{
|
||||
"name": "chill-project/app",
|
||||
"license": "AGPL-3.0",
|
||||
"type": "project",
|
||||
"license": "proprietary",
|
||||
"minimum-stability": "stable",
|
||||
"prefer-stable": true,
|
||||
"require": {
|
||||
"php": ">=7.2.5",
|
||||
"ext-ctype": "*",
|
||||
"ext-iconv": "*",
|
||||
"champs-libres/wopi-bundle": "dev-master@dev",
|
||||
"champs-libres/wopi-lib": "dev-master@dev",
|
||||
"chill-project/chill-bundles": "v3.0.0-RC3",
|
||||
"symfony/console": "5.4.*",
|
||||
"symfony/dotenv": "5.4.*",
|
||||
"symfony/flex": "^1.17|^2",
|
||||
"symfony/framework-bundle": "5.4.*",
|
||||
"symfony/runtime": "5.4.*",
|
||||
"symfony/yaml": "5.4.*"
|
||||
},
|
||||
"config": {
|
||||
"allow-plugins": {
|
||||
"composer/package-versions-deprecated": true,
|
||||
"php-http/discovery": true,
|
||||
"symfony/flex": true,
|
||||
"symfony/runtime": true
|
||||
},
|
||||
"optimize-autoloader": true,
|
||||
"preferred-install": {
|
||||
"chill-project/chill-bundles": "source",
|
||||
"*": "dist"
|
||||
},
|
||||
"sort-packages": true
|
||||
},
|
||||
"description": "The Chill distribution",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"App\\": "src/"
|
||||
@@ -41,11 +13,43 @@
|
||||
"App\\Tests\\": "tests/"
|
||||
}
|
||||
},
|
||||
"replace": {
|
||||
"symfony/polyfill-ctype": "*",
|
||||
"symfony/polyfill-iconv": "*",
|
||||
"symfony/polyfill-php72": "*"
|
||||
"require": {
|
||||
"ext-redis": "*",
|
||||
"chill-project/chill-bundles": "v4.7.0",
|
||||
"hslavich/oneloginsaml-bundle": "^2.10",
|
||||
"symfony/runtime": "^5.4.0",
|
||||
"symfony/console": "5.4.*",
|
||||
"symfony/dotenv": "5.4.*",
|
||||
"symfony/flex": "^1.17|^2",
|
||||
"symfony/framework-bundle": "5.4.*",
|
||||
"symfony/yaml": "5.4.*",
|
||||
"symfony/amqp-messenger": "5.4.*",
|
||||
"graylog2/gelf-php": "^2.0",
|
||||
"champs-libres/orange-contact-everyone-notifier": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"fakerphp/faker": "^1.13",
|
||||
"nelmio/alice": "^3.8",
|
||||
"phpunit/phpunit": ">=7.5",
|
||||
"symfony/maker-bundle": "^1.20",
|
||||
"doctrine/doctrine-fixtures-bundle": "^3.3",
|
||||
"symfony/web-profiler-bundle": "^5.0",
|
||||
"symfony/var-dumper": "4.*",
|
||||
"symfony/phpunit-bridge": "^5.2",
|
||||
"phpspec/prophecy-phpunit": "^2.0",
|
||||
"phpstan/phpstan": "^1.10",
|
||||
"phpstan/phpstan-deprecation-rules": "^1.1",
|
||||
"phpstan/extension-installer": "^1.2",
|
||||
"phpstan/phpstan-strict-rules": "^1.5",
|
||||
"rector/rector": "^1.2",
|
||||
"phpstan/phpstan-doctrine": "^1.3",
|
||||
"phpstan/phpstan-symfony": "^1.3",
|
||||
"phpstan/phpstan-phpunit": "^1.3",
|
||||
"jangregor/phpstan-prophecy": "^1.0",
|
||||
"symfony/debug-bundle": "^5.4"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true,
|
||||
"scripts": {
|
||||
"auto-scripts": {
|
||||
"cache:clear": "symfony-cmd",
|
||||
@@ -53,26 +57,27 @@
|
||||
},
|
||||
"post-install-cmd": [
|
||||
"@auto-scripts"
|
||||
],
|
||||
"post-update-cmd": [
|
||||
"@auto-scripts"
|
||||
]
|
||||
},
|
||||
"conflict": {
|
||||
"symfony/symfony": "*"
|
||||
"config": {
|
||||
"bin-dir": "bin",
|
||||
"allow-plugins": {
|
||||
"ocramius/package-versions": true,
|
||||
"symfony/flex": true,
|
||||
"phpstan/extension-installer": true,
|
||||
"symfony/runtime": true
|
||||
},
|
||||
"preferred-install": {
|
||||
"chill-project/chill-bundles": "source",
|
||||
"champs-libres/async-uploader-bundle": "source"
|
||||
}
|
||||
},
|
||||
"extra": {
|
||||
"symfony": {
|
||||
"allow-contrib": false,
|
||||
"require": "5.4.*",
|
||||
"endpoint": ["flex://defaults", "https://gitlab.com/api/v4/projects/57371968/repository/files/index.json/raw?ref=main"],
|
||||
"docker": true
|
||||
"endpoint": [
|
||||
"flex://defaults",
|
||||
"https://gitlab.com/api/v4/projects/57371968/repository/files/index.json/raw?ref=main"
|
||||
]
|
||||
}
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/doctrine-fixtures-bundle": "^3.6",
|
||||
"nelmio/alice": "^3.12",
|
||||
"symfony/debug-bundle": "5.4.*",
|
||||
"symfony/web-profiler-bundle": "5.4.*"
|
||||
}
|
||||
}
|
||||
|
||||
Generated
+4549
-1268
File diff suppressed because it is too large
Load Diff
@@ -34,4 +34,5 @@ return [
|
||||
Nelmio\Alice\Bridge\Symfony\NelmioAliceBundle::class => ['dev' => true, 'test' => true],
|
||||
Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true],
|
||||
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
|
||||
Symfony\UX\Translator\UxTranslatorBundle::class => ['all' => true],
|
||||
];
|
||||
|
||||
@@ -12,8 +12,6 @@ chill_main:
|
||||
twilio_sid: '%env(resolve:TWILIO_SID)%'
|
||||
twilio_secret: '%env(resolve:TWILIO_SECRET)%'
|
||||
default_carrier_code: '%env(resolve:DEFAULT_CARRIER_CODE)%'
|
||||
short_messages:
|
||||
dsn: '%env(string:SHORT_MESSAGE_DSN)%'
|
||||
acl:
|
||||
form_show_scopes: true
|
||||
form_show_centers: true
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
lexik_jwt_authentication:
|
||||
secret_key: '%env(resolve:JWT_SECRET_KEY)%'
|
||||
public_key: '%env(resolve:JWT_PUBLIC_KEY)%'
|
||||
pass_phrase: '%env(JWT_PASSPHRASE)%'
|
||||
pass_phrase: '%env(JWT_PASSPHRASE)%'
|
||||
@@ -0,0 +1,8 @@
|
||||
lexik_jwt_authentication:
|
||||
# required for wopi - recommended duration
|
||||
token_ttl: 36000
|
||||
|
||||
token_extractors:
|
||||
query_parameter:
|
||||
enabled: true
|
||||
name: access_token
|
||||
@@ -0,0 +1,13 @@
|
||||
framework:
|
||||
notifier:
|
||||
chatter_transports:
|
||||
texter_transports:
|
||||
ovhcloud: '%env(OVHCLOUD_DSN)%'
|
||||
channel_policy:
|
||||
# use chat/slack, chat/telegram, sms/twilio or sms/nexmo
|
||||
urgent: ['email']
|
||||
high: ['email']
|
||||
medium: ['email']
|
||||
low: ['email']
|
||||
admin_recipients:
|
||||
- { email: admin@example.com }
|
||||
@@ -1,7 +1,4 @@
|
||||
framework:
|
||||
default_locale: en
|
||||
translator:
|
||||
default_path: '%kernel.project_dir%/translations'
|
||||
fallbacks:
|
||||
- en
|
||||
providers:
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
ux_translator:
|
||||
# The directory where the JavaScript translations are dumped
|
||||
dump_directory: '%kernel.project_dir%/vendor/chill-project/chill-bundles/var/translations'
|
||||
@@ -0,0 +1,3 @@
|
||||
wopi:
|
||||
server: "%env(resolve:WOPI_SERVER)%"
|
||||
enable_lock: false
|
||||
@@ -1,2 +1,279 @@
|
||||
framework:
|
||||
workflows: null
|
||||
workflows:
|
||||
vendee_internal:
|
||||
type: state_machine
|
||||
metadata:
|
||||
related_entity:
|
||||
- Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWorkEvaluationDocument
|
||||
- Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWork
|
||||
- Chill\DocStoreBundle\Entity\AccompanyingCourseDocument
|
||||
label:
|
||||
fr: 'Suivi CD85'
|
||||
support_strategy: Chill\MainBundle\Workflow\RelatedEntityWorkflowSupportsStrategy
|
||||
marking_store:
|
||||
service: Chill\MainBundle\Workflow\EntityWorkflowMarkingStore
|
||||
initial_marking: 'initial'
|
||||
places:
|
||||
initial:
|
||||
metadata:
|
||||
label:
|
||||
fr: Étape initiale
|
||||
attenteModification:
|
||||
metadata:
|
||||
label:
|
||||
fr: En attente de modification du document
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Modification effectuée}
|
||||
backward: {fr: Pas de modification effectuée}
|
||||
neutral: {fr: Autre}
|
||||
attenteMiseEnForme:
|
||||
metadata:
|
||||
label:
|
||||
fr: En attente de mise en forme
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Mise en forme terminée}
|
||||
backward: {fr: Pas de mise en forme effectuée}
|
||||
neutral: {fr: Autre}
|
||||
attenteVisa:
|
||||
metadata:
|
||||
label:
|
||||
fr: En attente de visa
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Visa accordé}
|
||||
backward: {fr: Visa refusé}
|
||||
neutral: {fr: Autre}
|
||||
attenteTraitement:
|
||||
metadata:
|
||||
label:
|
||||
fr: En attente de traitement
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Traitement terminé favorablement}
|
||||
backward: {fr: Traitement terminé défavorablement}
|
||||
neutral: {fr: Autre}
|
||||
attenteEnvoi:
|
||||
metadata:
|
||||
label:
|
||||
fr: En attente d'envoi
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Document envoyé}
|
||||
backward: {fr: Document non envoyé}
|
||||
neutral: {fr: Autre}
|
||||
attenteValidationMiseEnForme:
|
||||
metadata:
|
||||
label:
|
||||
fr: En attente de validation de la mise en forme
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Validation de la mise en forme}
|
||||
backward: {fr: Refus de validation de la mise en forme}
|
||||
neutral: {fr: Autre}
|
||||
attenteReceptionExternal:
|
||||
metadata:
|
||||
isSentExternal: true
|
||||
onExternalView: clotureApresLectureEnvoiExterne
|
||||
label:
|
||||
fr: En attente d'ouverture par un destinataire externe
|
||||
validationFilterInputLabels:
|
||||
forward: {fr: Document reçu par un destinataire externe}
|
||||
backward: {fr: Document non reçu par un destinataire externe}
|
||||
neutral: {fr: Autre}
|
||||
annule:
|
||||
metadata:
|
||||
isFinal: true
|
||||
isFinalPositive: false
|
||||
label:
|
||||
fr: Annulé
|
||||
final:
|
||||
metadata:
|
||||
isFinal: true
|
||||
isFinalPositive: true
|
||||
label:
|
||||
fr: Finalisé
|
||||
transitions:
|
||||
# transition qui avancent
|
||||
demandeModificationDocument:
|
||||
from:
|
||||
- initial
|
||||
to: attenteModification
|
||||
metadata:
|
||||
label:
|
||||
fr: Demande de modification du document
|
||||
isForward: true
|
||||
demandeMiseEnForme:
|
||||
from:
|
||||
- initial
|
||||
- attenteModification
|
||||
to: attenteMiseEnForme
|
||||
metadata:
|
||||
label:
|
||||
fr: Demande de mise en forme
|
||||
isForward: true
|
||||
demandeValidationMiseEnForme:
|
||||
from:
|
||||
- attenteMiseEnForme
|
||||
to: attenteValidationMiseEnForme
|
||||
metadata:
|
||||
label:
|
||||
fr: Demande de validation de la mise en forme
|
||||
isForward: true
|
||||
demandeVisa:
|
||||
from:
|
||||
- initial
|
||||
- attenteModification
|
||||
- attenteMiseEnForme
|
||||
- attenteValidationMiseEnForme
|
||||
- attenteTraitement
|
||||
to: attenteVisa
|
||||
metadata:
|
||||
label:
|
||||
fr: Demande de visa
|
||||
isForward: true
|
||||
demandeTraitement:
|
||||
from:
|
||||
- initial
|
||||
- attenteModification
|
||||
- attenteMiseEnForme
|
||||
- attenteValidationMiseEnForme
|
||||
- attenteVisa
|
||||
to: attenteTraitement
|
||||
metadata:
|
||||
label: {fr: Demande de traitement}
|
||||
isForward: true
|
||||
demandeEnvoi:
|
||||
from:
|
||||
- initial
|
||||
- attenteModification
|
||||
- attenteMiseEnForme
|
||||
- attenteValidationMiseEnForme
|
||||
- attenteVisa
|
||||
- attenteTraitement
|
||||
to: attenteEnvoi
|
||||
metadata:
|
||||
label: {fr: Demande d'envoi}
|
||||
isForward: true
|
||||
demandeEnvoiExterne:
|
||||
from:
|
||||
- initial
|
||||
- attenteModification
|
||||
- attenteMiseEnForme
|
||||
- attenteValidationMiseEnForme
|
||||
- attenteVisa
|
||||
- attenteTraitement
|
||||
to: attenteReceptionExternal
|
||||
metadata:
|
||||
label: {fr: Envoi sécurisé par courrier électronique}
|
||||
isForward: true
|
||||
clotureApresLectureEnvoiExterne:
|
||||
from:
|
||||
- attenteReceptionExternal
|
||||
to:
|
||||
- final
|
||||
metadata:
|
||||
transitionGuard: system
|
||||
isForward: true
|
||||
label: {fr: Consultation de l'envoi sécurisé}
|
||||
annulation:
|
||||
from:
|
||||
- initial
|
||||
- attenteModification
|
||||
- attenteMiseEnForme
|
||||
- attenteValidationMiseEnForme
|
||||
- attenteVisa
|
||||
- attenteTraitement
|
||||
- attenteEnvoi
|
||||
to: annule
|
||||
metadata:
|
||||
label: {fr: Annulation}
|
||||
isForward: false
|
||||
transitionGuard: 'system+only-dest' # can be 'system+only-dest' or 'only-dest' (only-dest is default)
|
||||
# transitions qui répètent l'étape
|
||||
demandeMiseEnFormeSupplementaire:
|
||||
from:
|
||||
- attenteMiseEnForme
|
||||
- attenteValidationMiseEnForme
|
||||
to: attenteMiseEnForme
|
||||
metadata:
|
||||
label: {fr: Demande de mise en forme supplémentaire}
|
||||
demandeVisaSupplementaire:
|
||||
from:
|
||||
- attenteVisa
|
||||
to: attenteVisa
|
||||
metadata:
|
||||
label: {fr: Demande de visa supplémentaire}
|
||||
isForward: true
|
||||
demandeTraitementSupplementaire:
|
||||
from:
|
||||
- attenteTraitement
|
||||
to: attenteTraitement
|
||||
metadata:
|
||||
label: {fr: Demande de traitement supplémentaire}
|
||||
# transitions qui renvoient vers une étape précédente
|
||||
refusEtModificationDocument:
|
||||
from:
|
||||
- attenteVisa
|
||||
- attenteTraitement
|
||||
- attenteEnvoi
|
||||
to: attenteModification
|
||||
metadata:
|
||||
label:
|
||||
fr: Refus et demande de modification du document
|
||||
isForward: false
|
||||
refusEtDemandeMiseEnForme:
|
||||
from:
|
||||
- attenteVisa
|
||||
- attenteTraitement
|
||||
- attenteEnvoi
|
||||
to: attenteMiseEnForme
|
||||
metadata:
|
||||
label: {fr: Refus et demande de mise en forme}
|
||||
isForward: false
|
||||
refusEtDemandeVisa:
|
||||
from:
|
||||
- attenteEnvoi
|
||||
to: attenteVisa
|
||||
metadata:
|
||||
label: {fr: Refus et demande de visa}
|
||||
isForward: false
|
||||
refusEtDemandeTraitement:
|
||||
from:
|
||||
- attenteEnvoi
|
||||
to: attenteTraitement
|
||||
metadata:
|
||||
label: {fr: Refus et demande de traitement}
|
||||
isForward: false
|
||||
# transition vers final
|
||||
initialToFinal:
|
||||
from:
|
||||
- initial
|
||||
to: final
|
||||
metadata:
|
||||
label: {fr: Clotûre immédiate et cloture positive}
|
||||
isForward: true
|
||||
attenteMiseEnFormeToFinal:
|
||||
from:
|
||||
- attenteMiseEnForme
|
||||
- attenteValidationMiseEnForme
|
||||
to: final
|
||||
metadata:
|
||||
label: {fr: Mise en forme terminée et cloture positive}
|
||||
isForward: true
|
||||
attenteVisaToFinal:
|
||||
from:
|
||||
- attenteVisa
|
||||
to: final
|
||||
metadata:
|
||||
label: {fr: Accorde le visa et cloture positive}
|
||||
isForward: true
|
||||
attenteTraitementToFinal:
|
||||
from:
|
||||
- attenteTraitement
|
||||
to: final
|
||||
metadata:
|
||||
label: {fr: Traitement terminé et cloture positive}
|
||||
isForward: true
|
||||
attenteEnvoiToFinal:
|
||||
from:
|
||||
- attenteEnvoi
|
||||
to: final
|
||||
metadata:
|
||||
label: {fr: Envoyé et cloture positive}
|
||||
isForward: true
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
CREATE EXTENSION UNACCENT;
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
FROM docker.elastic.co/logstash/logstash-oss:8.1.0-amd64
|
||||
|
||||
RUN \
|
||||
bin/logstash-plugin install logstash-output-gelf \
|
||||
&& bin/logstash-plugin install logstash-input-gelf
|
||||
|
||||
COPY ./pipeline /usr/share/logstash/pipeline/
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
input {
|
||||
gelf {
|
||||
# input for php logs
|
||||
port => 12201
|
||||
add_field => [ 'source', "php" ]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
filter {
|
||||
|
||||
}
|
||||
|
||||
output {
|
||||
stdout { }
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
FROM nginx
|
||||
|
||||
COPY ./public /var/www/app/public
|
||||
|
||||
# gz encode builded files
|
||||
|
||||
RUN gzip -9 -k -f -r /var/www/app/public/build/*
|
||||
|
||||
COPY ./docker/nginx/default.conf /etc/nginx/conf.d/default.conf
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
upstream phpfcgi {
|
||||
server php:9000;
|
||||
# server unix:/var/run/php5-fpm.sock; #for PHP-FPM running on UNIX socket
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
|
||||
# only for getting traffic from collabora, when opening nginx:8001
|
||||
listen 8001;
|
||||
|
||||
#server_name symfony4;
|
||||
root /var/www/app/public;
|
||||
|
||||
error_log /dev/stderr;
|
||||
access_log /dev/stdout main;
|
||||
|
||||
location / {
|
||||
index index.php;
|
||||
try_files $uri /index.php$is_args$args;
|
||||
}
|
||||
|
||||
location /build/ {
|
||||
expires 30d;
|
||||
add_header Pragma public;
|
||||
add_header Cache-Control "public";
|
||||
|
||||
gzip_static on;
|
||||
gzip_types
|
||||
application/atom+xml
|
||||
application/geo+json
|
||||
application/javascript
|
||||
application/x-javascript
|
||||
application/json
|
||||
application/ld+json
|
||||
application/manifest+json
|
||||
application/rdf+xml
|
||||
application/rss+xml
|
||||
application/xhtml+xml
|
||||
application/xml
|
||||
font/eot
|
||||
font/otf
|
||||
font/ttf
|
||||
image/svg+xml
|
||||
text/css
|
||||
text/javascript
|
||||
text/plain
|
||||
text/xml;
|
||||
}
|
||||
|
||||
location ~ ^/index\.php(/|$) {
|
||||
fastcgi_pass phpfcgi;
|
||||
fastcgi_split_path_info ^(.+\.php)(/.*)$;
|
||||
include fastcgi_params;
|
||||
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_param DOCUMENT_ROOT $document_root;
|
||||
fastcgi_param HTTPS off;
|
||||
|
||||
fastcgi_buffers 16 16k;
|
||||
fastcgi_buffer_size 32k;
|
||||
proxy_buffer_size 16k;
|
||||
proxy_busy_buffers_size 16k;
|
||||
|
||||
http2_push_preload on;
|
||||
}
|
||||
|
||||
location ~ \.php$ {
|
||||
return 404;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
user nginx;
|
||||
worker_processes 1;
|
||||
|
||||
error_log /var/log/nginx/error.log warn;
|
||||
pid /var/run/nginx.pid;
|
||||
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
|
||||
http {
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||
'$status $body_bytes_sent "$http_referer" '
|
||||
'"$http_user_agent" "$http_x_forwarded_for"';
|
||||
|
||||
access_log /dev/stdout main;
|
||||
error_log /dev/stderr;
|
||||
|
||||
sendfile on;
|
||||
#tcp_nopush on;
|
||||
|
||||
keepalive_timeout 65;
|
||||
|
||||
gzip off;
|
||||
|
||||
#include /etc/nginx/conf.d/*.conf;
|
||||
|
||||
# permet l'upload de fichiers
|
||||
client_max_body_size 3M;
|
||||
|
||||
upstream phpfcgi {
|
||||
server php:9000;
|
||||
# server unix:/var/run/php5-fpm.sock; #for PHP-FPM running on UNIX socket
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
listen 8001;
|
||||
|
||||
#server_name symfony4;
|
||||
root /var/www/app/public;
|
||||
|
||||
error_log /dev/stderr;
|
||||
access_log /dev/stdout main;
|
||||
|
||||
location / {
|
||||
index index.php;
|
||||
try_files $uri /index.php$is_args$args;
|
||||
}
|
||||
|
||||
location /build/ {
|
||||
expires 30d;
|
||||
add_header Pragma public;
|
||||
add_header Cache-Control "public";
|
||||
}
|
||||
|
||||
location ~ ^/index\.php(/|$) {
|
||||
fastcgi_pass phpfcgi;
|
||||
fastcgi_split_path_info ^(.+\.php)(/.*)$;
|
||||
include fastcgi_params;
|
||||
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_param DOCUMENT_ROOT $document_root;
|
||||
fastcgi_param HTTPS off;
|
||||
|
||||
fastcgi_buffers 16 16k;
|
||||
fastcgi_buffer_size 32k;
|
||||
proxy_buffer_size 16k;
|
||||
proxy_busy_buffers_size 16k;
|
||||
}
|
||||
|
||||
location ~ \.php$ {
|
||||
return 404;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Executable
+56
@@ -0,0 +1,56 @@
|
||||
#!/bin/bash
|
||||
|
||||
#immediatly exit if a command fails:
|
||||
set -e
|
||||
|
||||
# waiting for the database to be ready
|
||||
if [ -z "${DATABASE_HOST}" ]; then
|
||||
while ! timeout 1 bash -c "cat < /dev/null > /dev/tcp/${DATABASE_HOST}/${DATABASE_PORT}"
|
||||
do
|
||||
echo "$(date) : waiting one second for database";
|
||||
sleep 1;
|
||||
done
|
||||
|
||||
echo "$(date) : the database is ready";
|
||||
else
|
||||
echo "we assume the database is ready";
|
||||
fi
|
||||
|
||||
|
||||
if [ $(id -u) = "0" ]; then
|
||||
{ \
|
||||
echo "[www]"; \
|
||||
echo ""; \
|
||||
echo "user=${PHP_FPM_USER}"; \
|
||||
echo "group=${PHP_FPM_GROUP}"; \
|
||||
} > /usr/local/etc/php-fpm.d/zz-user.conf
|
||||
fi
|
||||
|
||||
{ \
|
||||
echo ""; \
|
||||
echo "session.save_handler = redis" ; \
|
||||
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_PORT}?db=10\"" ; \
|
||||
echo "session.gc_maxlifetime = ${SESSION_LIFETIME}" ; \
|
||||
} >> /usr/local/etc/php/conf.d/custom.ini
|
||||
|
||||
if [ "${APP_ENV}" = "prod" ]; then
|
||||
composer dump-env "${APP_ENV}"
|
||||
chmod +r /var/www/app/.env.local.php
|
||||
|
||||
if [ "${PREVENT_MIGRATIONS}" != "true" ]; then
|
||||
php /var/www/app/bin/console doctrine:migrations:status
|
||||
php /var/www/app/bin/console doctrine:migrations:migrate -n
|
||||
php /var/www/app/bin/console messenger:setup-transports
|
||||
php /var/www/app/bin/console chill:db:sync-views
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${CLEAR_CACHE}" != "false" ]; then
|
||||
#prepare cache
|
||||
php /var/www/app/bin/console cache:clear --no-warmup
|
||||
chgrp ${PHP_FPM_GROUP} /var/www/app/var/cache -R && chmod g+rw /var/www/app/var/cache -R
|
||||
chgrp ${PHP_FPM_GROUP} /var/www/app/var/log -R && chmod g+rw /var/www/app/var/log -R
|
||||
fi
|
||||
|
||||
exec "${@}"
|
||||
|
||||
+9
-3
@@ -4,11 +4,17 @@
|
||||
],
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"bootstrap": "5.2.3"
|
||||
"@symfony/ux-translator": "file:vendor/symfony/ux-translator/assets",
|
||||
"bootstrap": "5.2.3",
|
||||
"intl-messageformat": "^10.5.11"
|
||||
},
|
||||
"scripts": {
|
||||
"specs-build": "yaml-merge vendor/chill-project/chill-bundles/src/Bundle/ChillMainBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillPersonBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillCalendarBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillThirdPartyBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillDocStoreBundle/chill.api.specs.yaml> templates/api/specs.yaml",
|
||||
"specs-validate": "swagger-cli validate templates/api/specs.yaml",
|
||||
"specs": "yarn run specs-build && yarn run specs-validate"
|
||||
}
|
||||
"specs-create-dir": "mkdir -p templates/api",
|
||||
"specs": "yarn run specs-create-dir && yarn run specs-build && yarn run specs-validate",
|
||||
"dev": "yarn run encore dev",
|
||||
"prod": "yarn run encore production"
|
||||
},
|
||||
"version": "0.0.0"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
parameters:
|
||||
level: 6
|
||||
paths:
|
||||
- bin/
|
||||
- config/
|
||||
- public/
|
||||
- src/
|
||||
- tests/
|
||||
+115
-49
@@ -1,39 +1,9 @@
|
||||
{
|
||||
"champs-libres/wopi-bundle": {
|
||||
"version": "dev-master"
|
||||
"version": "dev-symfony-v5"
|
||||
},
|
||||
"chill-project/chill-bundles": {
|
||||
"version": "3.0",
|
||||
"recipe": {
|
||||
"repo": "gitlab.com/Chill-Projet/chill-recipes",
|
||||
"branch": "main",
|
||||
"version": "3.0",
|
||||
"ref": "b8bfc2a355106205bfc235690053fdd96e055275"
|
||||
},
|
||||
"files": [
|
||||
"config/packages/cache_chill.yaml",
|
||||
"config/packages/chill.yaml",
|
||||
"config/packages/chill_budget.yaml",
|
||||
"config/packages/chill_calendar.yaml",
|
||||
"config/packages/chill_doc_generator.yaml",
|
||||
"config/packages/chill_doc_store.yaml",
|
||||
"config/packages/doctrine_migrations_chill.yaml",
|
||||
"config/packages/framework_chill.yaml",
|
||||
"config/packages/mailer_chill.yaml",
|
||||
"config/packages/routing_chill.yaml",
|
||||
"config/packages/security_chill.yaml",
|
||||
"config/packages/translation_chill.yaml",
|
||||
"config/packages/twig_chill.yaml",
|
||||
"config/routes/chill.yaml",
|
||||
"config/routes/chill_wopi.yaml",
|
||||
"config/routes/wopi.yaml",
|
||||
"webpack.config.js.dist",
|
||||
"package.json.dist",
|
||||
".nvmrc",
|
||||
".symfony.local.yaml",
|
||||
"tsconfig.json",
|
||||
"post-install-chill.sh"
|
||||
]
|
||||
"version": "dev-master"
|
||||
},
|
||||
"doctrine/annotations": {
|
||||
"version": "1.14",
|
||||
@@ -47,13 +17,22 @@
|
||||
"config/routes/annotations.yaml"
|
||||
]
|
||||
},
|
||||
"doctrine/deprecations": {
|
||||
"version": "1.1",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes",
|
||||
"branch": "main",
|
||||
"version": "1.0",
|
||||
"ref": "87424683adc81d7dc305eefec1fced883084aab9"
|
||||
}
|
||||
},
|
||||
"doctrine/doctrine-bundle": {
|
||||
"version": "2.12",
|
||||
"version": "2.13",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes",
|
||||
"branch": "main",
|
||||
"version": "2.4",
|
||||
"ref": "91690c0a440faba1a3676256bcca2b4aa9f55b72"
|
||||
"ref": "eaa0b7647c0ec3dbdcf24ade4625f381aa23c027"
|
||||
},
|
||||
"files": [
|
||||
"config/packages/doctrine.yaml",
|
||||
@@ -62,7 +41,7 @@
|
||||
]
|
||||
},
|
||||
"doctrine/doctrine-fixtures-bundle": {
|
||||
"version": "3.6",
|
||||
"version": "3.7",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes",
|
||||
"branch": "main",
|
||||
@@ -74,7 +53,7 @@
|
||||
]
|
||||
},
|
||||
"doctrine/doctrine-migrations-bundle": {
|
||||
"version": "3.3",
|
||||
"version": "3.6",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes",
|
||||
"branch": "main",
|
||||
@@ -86,14 +65,17 @@
|
||||
"migrations/.gitignore"
|
||||
]
|
||||
},
|
||||
"hslavich/oneloginsaml-bundle": {
|
||||
"version": "v2.10.0"
|
||||
},
|
||||
"knplabs/knp-menu-bundle": {
|
||||
"version": "v3.4.2"
|
||||
"version": "v3.6.0"
|
||||
},
|
||||
"knplabs/knp-time-bundle": {
|
||||
"version": "v1.20.0"
|
||||
},
|
||||
"knpuniversity/oauth2-client-bundle": {
|
||||
"version": "2.18",
|
||||
"version": "2.19",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes-contrib",
|
||||
"branch": "main",
|
||||
@@ -161,10 +143,33 @@
|
||||
"repo": "github.com/symfony/recipes-contrib",
|
||||
"branch": "main",
|
||||
"version": "3.0",
|
||||
"ref": "8aaba28c06547e50377dd9dce4104b9e384731a5"
|
||||
"ref": "0d4442802a90dd2d1d6c18618998b43f69af0d95"
|
||||
}
|
||||
},
|
||||
"phpstan/phpstan": {
|
||||
"version": "1.12",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes-contrib",
|
||||
"branch": "main",
|
||||
"version": "1.0",
|
||||
"ref": "5e490cc197fb6bb1ae22e5abbc531ddc633b6767"
|
||||
},
|
||||
"files": [
|
||||
"config/packages/misd_phone_number.yaml"
|
||||
"phpstan.dist.neon"
|
||||
]
|
||||
},
|
||||
"phpunit/phpunit": {
|
||||
"version": "10.5",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes",
|
||||
"branch": "main",
|
||||
"version": "10.0",
|
||||
"ref": "bb22cf8d8c554a623b427d5f3416b538f5525233"
|
||||
},
|
||||
"files": [
|
||||
".env.test",
|
||||
"phpunit.dist.xml",
|
||||
"tests/bootstrap.php"
|
||||
]
|
||||
},
|
||||
"ramsey/uuid-doctrine": {
|
||||
@@ -216,15 +221,16 @@
|
||||
]
|
||||
},
|
||||
"symfony/flex": {
|
||||
"version": "2.4",
|
||||
"version": "2.9",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes",
|
||||
"branch": "main",
|
||||
"version": "1.0",
|
||||
"ref": "146251ae39e06a95be0fe3d13c807bcf3938b172"
|
||||
"version": "2.4",
|
||||
"ref": "52e9754527a15e2b79d9a610f98185a1fe46622a"
|
||||
},
|
||||
"files": [
|
||||
".env"
|
||||
".env",
|
||||
".env.dev"
|
||||
]
|
||||
},
|
||||
"symfony/framework-bundle": {
|
||||
@@ -252,12 +258,21 @@
|
||||
"repo": "github.com/symfony/recipes",
|
||||
"branch": "main",
|
||||
"version": "4.3",
|
||||
"ref": "df66ee1f226c46f01e85c29c2f7acce0596ba35a"
|
||||
"ref": "09051cfde49476e3c12cd3a0e44289ace1c75a4f"
|
||||
},
|
||||
"files": [
|
||||
"config/packages/mailer.yaml"
|
||||
]
|
||||
},
|
||||
"symfony/maker-bundle": {
|
||||
"version": "1.50",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes",
|
||||
"branch": "main",
|
||||
"version": "1.0",
|
||||
"ref": "fadbfe33303a76e25cb63401050439aa9b1a9c7f"
|
||||
}
|
||||
},
|
||||
"symfony/messenger": {
|
||||
"version": "5.4",
|
||||
"recipe": {
|
||||
@@ -276,12 +291,48 @@
|
||||
"repo": "github.com/symfony/recipes",
|
||||
"branch": "main",
|
||||
"version": "3.7",
|
||||
"ref": "aff23899c4440dd995907613c1dd709b6f59503f"
|
||||
"ref": "f5f5f3e4c23f5349796b7de587f19c51e7104299"
|
||||
},
|
||||
"files": [
|
||||
"config/packages/monolog.yaml"
|
||||
]
|
||||
},
|
||||
"symfony/notifier": {
|
||||
"version": "5.4",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes",
|
||||
"branch": "main",
|
||||
"version": "5.0",
|
||||
"ref": "178877daf79d2dbd62129dd03612cb1a2cb407cc"
|
||||
},
|
||||
"files": [
|
||||
"config/packages/notifier.yaml"
|
||||
]
|
||||
},
|
||||
"symfony/ovh-cloud-notifier": {
|
||||
"version": "5.4",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes",
|
||||
"branch": "main",
|
||||
"version": "5.1",
|
||||
"ref": "fe2e382c22d60eae9ad54cb22862b1c15291fdf8"
|
||||
}
|
||||
},
|
||||
"symfony/phpunit-bridge": {
|
||||
"version": "5.4",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes",
|
||||
"branch": "main",
|
||||
"version": "5.3",
|
||||
"ref": "07ce01a897311647520b43d4ddddad9537b99ba6"
|
||||
},
|
||||
"files": [
|
||||
".env.test",
|
||||
"bin/phpunit",
|
||||
"phpunit.dist.xml",
|
||||
"tests/bootstrap.php"
|
||||
]
|
||||
},
|
||||
"symfony/routing": {
|
||||
"version": "5.4",
|
||||
"recipe": {
|
||||
@@ -333,6 +384,21 @@
|
||||
"templates/base.html.twig"
|
||||
]
|
||||
},
|
||||
"symfony/ux-translator": {
|
||||
"version": "2.31",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes",
|
||||
"branch": "main",
|
||||
"version": "2.9",
|
||||
"ref": "bc396565cc4cab95692dd6df810553dc22e352e1"
|
||||
},
|
||||
"files": [
|
||||
"assets/translator.js",
|
||||
"config/packages/ux_translator.yaml",
|
||||
"var/translations/configuration.js",
|
||||
"var/translations/index.js"
|
||||
]
|
||||
},
|
||||
"symfony/validator": {
|
||||
"version": "5.4",
|
||||
"recipe": {
|
||||
@@ -363,8 +429,8 @@
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes",
|
||||
"branch": "main",
|
||||
"version": "1.10",
|
||||
"ref": "eff2e505d4557c967b6710fe06bd947ba555cae5"
|
||||
"version": "1.17",
|
||||
"ref": "eeb7f3bae6214a0cee8f48310f14e48f5cf90ba3"
|
||||
},
|
||||
"files": [
|
||||
"assets/app.js",
|
||||
@@ -390,6 +456,6 @@
|
||||
]
|
||||
},
|
||||
"twig/extra-bundle": {
|
||||
"version": "v3.10.0"
|
||||
"version": "v3.22.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
use Symfony\Component\Dotenv\Dotenv;
|
||||
|
||||
require dirname(__DIR__).'/vendor/autoload.php';
|
||||
|
||||
if (method_exists(Dotenv::class, 'bootEnv')) {
|
||||
(new Dotenv())->bootEnv(dirname(__DIR__).'/.env');
|
||||
}
|
||||
|
||||
if ($_SERVER['APP_DEBUG']) {
|
||||
umask(0000);
|
||||
}
|
||||
+5
-16
@@ -1,20 +1,6 @@
|
||||
{
|
||||
"extends": "@tsconfig/node14/tsconfig.json",
|
||||
"extends": "./vendor/chill-project/chill-bundles/ts-config-base.json",
|
||||
"compilerOptions": {
|
||||
"lib": [
|
||||
"es2020",
|
||||
"dom"
|
||||
],
|
||||
"module": "es6",
|
||||
"moduleResolution": "node",
|
||||
"isolatedModules": true,
|
||||
"allowJs": false,
|
||||
"checkJs": false,
|
||||
"importHelpers": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"types": [
|
||||
"node"
|
||||
],
|
||||
"sourceMap": true
|
||||
},
|
||||
"includes": [
|
||||
@@ -25,6 +11,9 @@
|
||||
],
|
||||
"exclude": [
|
||||
"./vendor/chill-project/chill-bundles/tests/*",
|
||||
"./vendor/chill-project/chill-bundles/docs/*"
|
||||
"./vendor/chill-project/chill-bundles/docs/*",
|
||||
"./vendor/chill-project/chill-bundles/assets/translator.ts",
|
||||
"./vendor/chill-project/chill-bundles/var/*.*"
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
+29
-41
@@ -15,7 +15,7 @@ async function* getFiles(dir, depth, ignored) {
|
||||
const res = resolve(dir, dirent.name);
|
||||
if (dirent.isDirectory()) {
|
||||
if (depth > 0) {
|
||||
yield* getFiles(res, depth - 1, ignored);
|
||||
yield* getFiles(res, depth - 1, ignored);
|
||||
}
|
||||
} else if (ignored.includes(res)) {
|
||||
continue;
|
||||
@@ -85,26 +85,28 @@ async function populateConfig(Encore, chillEntries) {
|
||||
// export the final configuration
|
||||
module.exports = (async () => {
|
||||
|
||||
// Manually configure the runtime environment if not already configured yet by the "encore" command.
|
||||
// It's useful when you use tools that rely on webpack.config.js file.
|
||||
if (!Encore.isRuntimeEnvironmentConfigured()) {
|
||||
Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev');
|
||||
}
|
||||
// Manually configure the runtime environment if not already configured yet by the "encore" command.
|
||||
// It's useful when you use tools that rely on webpack.config.js file.
|
||||
if (!Encore.isRuntimeEnvironmentConfigured()) {
|
||||
Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev');
|
||||
}
|
||||
// basic encore configuration
|
||||
Encore
|
||||
.setOutputPath('public/build/')
|
||||
.setPublicPath('/build')
|
||||
.enableSassLoader()
|
||||
.enableVueLoader(() => {}, {
|
||||
version: 3
|
||||
})
|
||||
.enableTypeScriptLoader(function (tsConfig){
|
||||
tsConfig.appendTsSuffixTo = [/\.vue$/];
|
||||
tsConfig.appendTsxSuffixTo = [/\.vue$/];
|
||||
// temporary fix for https://github.com/vuejs/vue-loader/issues/1915 and https://github.com/vuejs/core/issues/2855
|
||||
tsConfig.compilerOptions = {strict: !Encore.isProduction()};
|
||||
tsConfig.silent = false;
|
||||
version: 3,
|
||||
runtimeCompilerBuild: true,
|
||||
})
|
||||
.enableTypeScriptLoader(/*function (tsConfig){
|
||||
tsConfig.appendTsSuffixTo = [/\.vue$/];
|
||||
tsConfig.appendTsxSuffixTo = [/\.vue$/];
|
||||
// temporary fix for https://github.com/vuejs/vue-loader/issues/1915 and https://github.com/vuejs/core/issues/2855
|
||||
tsConfig.compilerOptions = {strict: !Encore.isProduction()};
|
||||
tsConfig.compilerOptions.paths = {"translator": [resolve(__dirname, "./assets/translator.ts")]};
|
||||
tsConfig.silent = false;
|
||||
}*/)
|
||||
//.enableForkedTypeScriptTypesChecking()
|
||||
.autoProvidejQuery()
|
||||
.enableSourceMaps(!Encore.isProduction())
|
||||
@@ -113,40 +115,26 @@ module.exports = (async () => {
|
||||
.enableVersioning()
|
||||
.enableSingleRuntimeChunk()
|
||||
.splitEntryChunks()
|
||||
// added when upgrading to symfony 5.4
|
||||
// enables and configure @babel/preset-env polyfills
|
||||
//.configureBabelPresetEnv((config) => {
|
||||
// config.useBuiltIns = 'usage';
|
||||
// config.corejs = '3.23';
|
||||
//})
|
||||
//.addLoader({ test: /\.pdf$/, loader: 'file-loader', options: { name: '[name]_[hash].[ext]', outputPath: 'pdf/' } })
|
||||
;
|
||||
|
||||
// populate config with chill entries
|
||||
let chillEntries = [];
|
||||
await populateConfig(Encore, chillEntries);
|
||||
//.addLoader({ test: /\.pdf$/, loader: 'file-loader', options: { name: '[name]_[hash].[ext]', outputPath: 'pdf/' } })
|
||||
// configure Babel
|
||||
// .configureBabel((config) => {
|
||||
// config.plugins.push('@babel/a-babel-plugin');
|
||||
// })
|
||||
|
||||
// enables and configure @babel/preset-env polyfills
|
||||
// .configureBabelPresetEnv((config) => {
|
||||
// config.useBuiltIns = 'usage';
|
||||
// config.corejs = '3.23';
|
||||
// })
|
||||
;
|
||||
|
||||
// enables Sass/SCSS support
|
||||
//.enableSassLoader()
|
||||
Encore.addAliases({
|
||||
translator: resolve(__dirname, './vendor/chill-project/chill-bundles/assets/translator')
|
||||
});
|
||||
|
||||
// add swagger UI
|
||||
if (!Encore.isProduction()) {
|
||||
Encore
|
||||
.addEntry('swagger', __dirname + '/assets/swagger-ui/index.js')
|
||||
.addLoader({
|
||||
test: /\.yaml$/,
|
||||
type: 'json',
|
||||
use: [
|
||||
{ loader: 'json-loader' },
|
||||
{ loader: 'yaml-loader' }
|
||||
],
|
||||
});
|
||||
}
|
||||
// populate config with chill entries
|
||||
let chillEntries = [];
|
||||
await populateConfig(Encore, chillEntries);
|
||||
|
||||
//getting the encore config and appending chill entries
|
||||
config = Encore.getWebpackConfig();
|
||||
|
||||
Reference in New Issue
Block a user