Skip to content
Draft
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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 11 additions & 0 deletions .ai/mcp/mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"mcpServers": {
"laravel-boost": {
"command": "/opt/homebrew/Cellar/php/8.5.1/bin/php",
"args": [
"/Users/hannes/PhpstormProjects/API/artisan",
"boost:mcp"
]
}
}
}
7 changes: 7 additions & 0 deletions .codex/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[mcp_servers.laravel-boost]
command = "php"
args = ["artisan", "boost:mcp"]

[mcp_servers.php]
command = "artisan"
args = ["boost:mcp"]
18 changes: 18 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
root = true

[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false

[*.{yml,yaml}]
indent_size = 2

[compose.yaml]
indent_size = 4
15 changes: 0 additions & 15 deletions .env.ci

This file was deleted.

69 changes: 69 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost

FORTIFY_ALLOW_REGISTRATION=true

APP_LOCALE=en
APP_FALLBACK_LOCALE=en
APP_FAKER_LOCALE=en_US

APP_MAINTENANCE_DRIVER=file
# APP_MAINTENANCE_STORE=database

# PHP_CLI_SERVER_WORKERS=4

BCRYPT_ROUNDS=12

LOG_CHANNEL=stack
LOG_STACK=single
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug

DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=api
DB_USERNAME=root
DB_PASSWORD=

SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_ENCRYPT=false
SESSION_PATH=/
SESSION_DOMAIN=null

BROADCAST_CONNECTION=log
FILESYSTEM_DISK=local
QUEUE_CONNECTION=database

CACHE_STORE=database
# CACHE_PREFIX=

MEMCACHED_HOST=127.0.0.1

REDIS_CLIENT=phpredis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_MAILER=log
MAIL_SCHEME=null
MAIL_HOST=127.0.0.1
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false

DEEPL_AUTH_KEY=

VITE_APP_NAME="${APP_NAME}"
14 changes: 11 additions & 3 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
* text=auto
*.css linguist-vendored
*.scss linguist-vendored
* text=auto eol=lf

*.blade.php diff=html
*.css diff=css
*.html diff=html
*.md diff=markdown
*.php diff=php

/.github export-ignore
CHANGELOG.md export-ignore
.styleci.yml export-ignore
37 changes: 25 additions & 12 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,18 +1,31 @@
*.log
.DS_Store
.env
.env.backup
.env.production
.phpactor.json
.phpunit.result.cache
/.fleet
/.idea
/.nova
/.phpunit.cache
/.vscode
/.zed
/auth.json
/node_modules
/public/build
/public/hot
/public/storage
/storage/*.key
/storage/pail
/storage/app/api/scunpacked-data/labels.json
/storage/app/api/ScToolBoxLocales/chinese_(simplified)/global.ini
/vendor
/.idea
Homestead.json
Homestead.yaml
.env
.env.example
composer.phar
/Vagrantfile
/_ide_helper.php
/.phpstorm.meta.php
/.phpunit.result.cache
/packages
/.php_cs.cache
./.php-cs-fixer.cache
./*.cache
Thumbs.db
/v2
CLAUDE.md
.junie
.claude
AGENTS.md
9 changes: 3 additions & 6 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
[submodule "storage/app/api/scunpacked-data"]
path = storage/app/api/scunpacked-data
url = https://github.com/StarCitizenWiki/scunpacked-data.git
[submodule "storage/app/api/ScToolBoxLocales"]
path = storage/app/api/ScToolBoxLocales
url = https://github.com/StarCitizenToolBox/LocalizationData
[submodule "storage/app/api/StarCitizenDeutsch"]
path = storage/app/api/StarCitizenDeutsch
url = https://github.com/rjcncpt/StarCitizen-Deutsch-INI
11 changes: 11 additions & 0 deletions .mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"mcpServers": {
"laravel-boost": {
"command": "php",
"args": [
"artisan",
"boost:mcp"
]
}
}
}
35 changes: 0 additions & 35 deletions .phpcs.xml

This file was deleted.

104 changes: 35 additions & 69 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,104 +1,70 @@
### Stage 1: build PHP extensions on PHP 8.4
FROM php:8.4-apache AS extensions
# Stage 0: base with PHP extensions (runtime-safe)
FROM php:8.5-apache AS base
WORKDIR /var/www/html

LABEL stage=intermediate
# helper to install extensions + dependencies correctly
COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/install-php-extensions

RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends \
libicu-dev \
zlib1g-dev \
libzip-dev \
libpng-dev \
libjpeg62-turbo-dev \
libwebp-dev \
libfreetype6-dev \
libgmp-dev \
libpq-dev \
libxml2-dev \
libonig-dev; \
rm -rf /var/lib/apt/lists/*

RUN set -eux; \
docker-php-ext-install -j"$(nproc)" bcmath gmp intl opcache pdo_mysql zip

RUN set -eux; \
docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp; \
docker-php-ext-install -j"$(nproc)" gd
apt-get install -y --no-install-recommends ffmpeg; \
rm -rf /var/lib/apt/lists/*; \
install-php-extensions \
bcmath \
gmp \
intl \
pdo_pgsql \
zip \
gd \
mbstring \
curl \
dom \
xml; \
a2enmod rewrite

# OPcache is built-in on PHP 8.5; just configure it.
RUN set -eux; \
{ \
echo 'opcache.enable=1'; \
echo 'opcache.memory_consumption=256'; \
echo 'opcache.interned_strings_buffer=16'; \
echo 'opcache.max_accelerated_files=16000'; \
echo 'opcache.validate_timestamps=0'; \
echo 'opcache.load_comments=Off'; \
echo 'opcache.save_comments=1'; \
echo 'opcache.fast_shutdown=0'; \
} > /usr/local/etc/php/conf.d/docker-php-ext-opcache.ini
} > /usr/local/etc/php/conf.d/docker-opcache.ini; \
echo 'memory_limit = 1G' > /usr/local/etc/php/conf.d/docker-php-memlimit.ini; \
echo 'max_execution_time = 60' > /usr/local/etc/php/conf.d/docker-php-executiontime.ini

### Stage 2: composer install on PHP 8.4
FROM php:8.4-apache AS api
COPY ./docker/vhost.conf /etc/apache2/sites-available/000-default.conf

LABEL stage=intermediate
WORKDIR /api
# Stage 1: composer deps
FROM base AS vendor

RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends zip unzip git; \
apt-get install -y --no-install-recommends git unzip zip; \
rm -rf /var/lib/apt/lists/*

COPY --from=composer:2 /usr/bin/composer /usr/bin/composer

COPY --chown=www-data:www-data composer.json composer.lock /api/
COPY --chown=www-data:www-data composer.json composer.lock /var/www/html/

RUN chown -R www-data:www-data /api && mkdir -p /api/vendor && chown -R www-data:www-data /api/vendor
USER www-data

RUN set -eux; \
composer install --no-dev --ignore-platform-reqs --no-ansi --no-autoloader --no-interaction --no-scripts

COPY --chown=www-data:www-data / /api

RUN rm -rf storage/app/api/scunpacked-data storage/app/api/ScToolBoxLocales

RUN composer dump-autoload --optimize --classmap-authoritative
composer install --no-dev --no-ansi --no-interaction --no-progress --prefer-dist

### Stage 3: final runtime image on PHP 8.4
FROM php:8.4-apache
COPY --chown=www-data:www-data . /var/www/html
RUN set -eux; \
composer dump-autoload --optimize --classmap-authoritative

USER root
# Stage 2: final runtime
FROM base AS app
WORKDIR /var/www/html

RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends \
ffmpeg \
libfreetype6 \
libjpeg62-turbo \
libwebp7 \
libpng16-16 \
libzip5; \
rm -rf /var/lib/apt/lists/*

COPY --chown=www-data:www-data --from=api /api /var/www/html
COPY --from=extensions /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
COPY --from=extensions /usr/local/lib/php/extensions/ /usr/local/lib/php/extensions/
COPY --from=vendor --chown=www-data:www-data /var/www/html /var/www/html

COPY ./docker/vhost.conf /etc/apache2/sites-available/000-default.conf
COPY --chown=www-data:www-data --chmod=770 ./docker/start.sh /usr/local/bin/start
COPY --chown=www-data:www-data --chmod=770 ./docker/schedule.sh /usr/local/bin/schedule

RUN set -eux; \
echo 'memory_limit = 1G' > /usr/local/etc/php/conf.d/docker-php-memlimit.ini; \
echo 'max_execution_time = 60' > /usr/local/etc/php/conf.d/docker-php-executiontime.ini; \
a2enmod rewrite

USER www-data

RUN set -eux; \
php artisan storage:link; \
php artisan optimize

CMD ["/usr/local/bin/start"]
Loading
Loading