Skip to content
This repository was archived by the owner on Oct 15, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .idea/php.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

62 changes: 33 additions & 29 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# syntax=docker/dockerfile:1

# Versions
FROM dunglas/frankenphp:1-php8.3-alpine AS frankenphp_upstream
FROM dunglas/frankenphp:1-php8.3 AS frankenphp_upstream

# Base FrankenPHP image
FROM frankenphp_upstream AS frankenphp_base
Expand All @@ -11,26 +11,30 @@ VOLUME /app/var/

# persistent / runtime deps
RUN set -eux; \
apk add --no-cache \
acl \
fcgi \
file \
gettext \
git \
;
curl -fsSL https://deb.nodesource.com/setup_23.x -o nodesource_setup.sh \
&& bash nodesource_setup.sh \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
acl=* \
file=* \
gettext=* \
git=* \
nodejs=* \
&& corepack enable \
&& rm -rf /var/lib/apt/lists/*

RUN set -eux; \
install-php-extensions \
@composer \
apcu \
curl \
intl \
opcache \
zip \
install-php-extensions \
@composer \
apcu \
curl \
intl \
opcache \
zip \
redis \
pdo_pgsql \
sysvsem \
;
;

# https://getcomposer.org/doc/03-cli.md#composer-allow-superuser
ENV COMPOSER_ALLOW_SUPERUSER=1
Expand All @@ -54,13 +58,11 @@ ENV APP_ENV=dev XDEBUG_MODE=off
RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini"

RUN set -eux; \
install-php-extensions \
xdebug \
;
install-php-extensions \
xdebug \
;

CMD (php bin/console sass:build --watch &); \
(php bin/console typescript:build --watch &); \
(frankenphp run --config /etc/caddy/Caddyfile --watch);
CMD ["frankenphp", "run", "--config", "/etc/caddy/Caddyfile", "--watch"]

# Prod FrankenPHP image
FROM frankenphp_base AS frankenphp_prod
Expand All @@ -75,20 +77,22 @@ COPY --link frankenphp/conf.d/20-app.prod.ini $PHP_INI_DIR/app.conf.d/
COPY --link frankenphp/worker.Caddyfile /etc/caddy/worker.Caddyfile

# prevent the reinstallation of vendors at every changes in the source code
COPY --link composer.* symfony.* ./
COPY --link composer.* symfony.* package.json* pnpm-lock.yaml* ./
RUN set -eux; \
composer install --no-cache --prefer-dist --no-dev --no-autoloader --no-scripts --no-progress
corepack prepare; \
composer install --no-cache --prefer-dist --no-dev --no-autoloader --no-scripts --no-progress; \
pnpm install --prod --prefer-frozen-lockfile;

# copy sources
COPY --link . ./
RUN rm -Rf frankenphp/

RUN set -eux; \
mkdir -p var/cache var/log; \
composer dump-autoload --classmap-authoritative --no-dev; \
composer dump-env prod; \
composer run-script --no-dev post-install-cmd; \
chmod +x bin/console; sync;
mkdir -p var/cache var/log; \
composer dump-autoload --classmap-authoritative --no-dev; \
composer dump-env prod; \
composer run-script --no-dev post-install-cmd; \
chmod +x bin/console; sync;

# build route cache, sass and asset maps
RUN set -eux; \
Expand Down
8 changes: 7 additions & 1 deletion assets/styles/app.scss
Original file line number Diff line number Diff line change
Expand Up @@ -358,16 +358,18 @@ ul.credit {

.app-overview-dashboard {
display: grid;
gap: 3rem;
gap: 1rem;
grid-template:
"hello-text" auto
"announcements" auto
"weekly-metrics" auto
"historic-statistics" auto
"leaderboard" auto;

@media (min-width: 1440px) {
grid-template:
"hello-text hello-text hello-text hello-text" auto
"announcements announcements announcements announcements" auto
"weekly-metrics weekly-metrics leaderboard leaderboard" 1fr
"historic-statistics historic-statistics leaderboard leaderboard" 1fr;
grid-template-columns: 2fr 2fr 1fr 1fr;
Expand All @@ -388,6 +390,10 @@ ul.credit {
&__leaderboard {
grid-area: leaderboard;
}

&__announcements {
grid-area: announcements;
}
}

// The placeholder that shows only after 100ms
Expand Down
2 changes: 2 additions & 0 deletions compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ services:
volumes:
- caddy_data:/data
- caddy_config:/config
- web_node_modules:/app/node_modules
ports:
# HTTP
- target: 80
Expand All @@ -80,3 +81,4 @@ volumes:
caddy_data:
caddy_config:
meili_data:
web_node_modules:
76 changes: 40 additions & 36 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,47 +23,49 @@
"nyholm/psr7": "dev-master",
"openai-php/client": "dev-main",
"oro/doctrine-extensions": "dev-master",
"phpdocumentor/reflection-docblock": "^5.5",
"phpdocumentor/reflection-docblock": "5.*",
"runtime/frankenphp-symfony": "dev-main",
"sensiolabs/typescript-bundle": "dev-main",
"symfony/asset": "7.2.*",
"symfony/asset-mapper": "7.2.*",
"symfony/console": "7.2.*",
"symfony/doctrine-messenger": "7.2.*",
"symfony/dotenv": "7.2.*",
"symfony/asset": "7.3.*",
"symfony/asset-mapper": "7.3.*",
"symfony/console": "7.3.*",
"symfony/doctrine-messenger": "7.3.*",
"symfony/dotenv": "7.3.*",
"symfony/flex": "^2",
"symfony/form": "7.2.*",
"symfony/framework-bundle": "7.2.*",
"symfony/http-client": "7.2.*",
"symfony/intl": "7.2.*",
"symfony/line-notify-notifier": "7.2.*",
"symfony/lock": "7.2.*",
"symfony/mailer": "7.2.*",
"symfony/messenger": "7.2.*",
"symfony/mime": "7.2.*",
"symfony/form": "7.3.*",
"symfony/framework-bundle": "7.3.*",
"symfony/http-client": "7.3.*",
"symfony/intl": "7.3.*",
"symfony/line-notify-notifier": "7.3.*",
"symfony/lock": "7.3.*",
"symfony/mailer": "7.3.*",
"symfony/messenger": "7.3.*",
"symfony/mime": "7.3.*",
"symfony/monolog-bundle": "^3.0",
"symfony/notifier": "7.2.*",
"symfony/password-hasher": "7.2.*",
"symfony/process": "7.2.*",
"symfony/runtime": "7.2.*",
"symfony/security-bundle": "7.2.*",
"symfony/serializer": "7.2.*",
"symfony/notifier": "7.3.*",
"symfony/password-hasher": "7.3.*",
"symfony/process": "7.3.*",
"symfony/runtime": "7.3.*",
"symfony/security-bundle": "7.3.*",
"symfony/serializer": "7.3.*",
"symfony/stimulus-bundle": "2.*",
"symfony/string": "7.2.*",
"symfony/translation": "7.2.*",
"symfony/twig-bundle": "7.2.*",
"symfony/string": "7.3.*",
"symfony/translation": "7.3.*",
"symfony/twig-bridge": "7.3.*",
"symfony/twig-bundle": "7.3.*",
"symfony/ux-chartjs": "2.*",
"symfony/ux-live-component": "2.*",
"symfony/ux-turbo": "2.*",
"symfony/ux-twig-component": "2.*",
"symfony/validator": "7.2.*",
"symfony/yaml": "7.2.*",
"symfony/validator": "7.3.*",
"symfony/web-link": "7.3.*",
"symfony/yaml": "7.3.*",
"symfonycasts/sass-bundle": "dev-main",
"twbs/bootstrap": "dev-main",
"twig/extra-bundle": "3.*",
"twig/markdown-extra": "3.*",
"twig/string-extra": "3.*",
"twig/twig": "3.14.*"
"twig/twig": "3.*"
},
"config": {
"allow-plugins": {
Expand Down Expand Up @@ -93,7 +95,8 @@
"symfony/polyfill-php80": "*",
"symfony/polyfill-php81": "*",
"symfony/polyfill-php82": "*",
"symfony/polyfill-php83": "*"
"symfony/polyfill-php83": "*",
"symfony/polyfill-php84": "*"
},
"scripts": {
"lint": [
Expand All @@ -102,7 +105,8 @@
"pnpm format",
"php-cs-fixer fix --config .php-cs-fixer.dist.php",
"twig-cs-fixer lint --fix templates",
"phpstan analyse"
"phpstan analyse",
"hadolint Dockerfile*"
],
"auto-scripts": {
"cache:clear": "symfony-cmd",
Expand All @@ -122,7 +126,7 @@
"extra": {
"symfony": {
"allow-contrib": false,
"require": "7.2.*",
"require": "7.3.*",
"docker": true
}
},
Expand All @@ -135,13 +139,13 @@
"phpstan/phpstan-strict-rules": "2.0.x-dev",
"phpstan/phpstan-symfony": "2.0.x-dev",
"phpunit/phpunit": "^10",
"symfony/browser-kit": "7.2.*",
"symfony/css-selector": "7.2.*",
"symfony/debug-bundle": "7.2.*",
"symfony/browser-kit": "7.3.*",
"symfony/css-selector": "7.3.*",
"symfony/debug-bundle": "7.3.*",
"symfony/maker-bundle": "^1.0",
"symfony/phpunit-bridge": "^7.2",
"symfony/stopwatch": "7.2.*",
"symfony/web-profiler-bundle": "7.2.*",
"symfony/phpunit-bridge": "7.3.*",
"symfony/stopwatch": "7.3.*",
"symfony/web-profiler-bundle": "7.3.*",
"vincentlanglet/twig-cs-fixer": "dev-main"
}
}
Loading
Loading