/LeafApp_Infinite

Leaf designed for Halo Infinite

Primary LanguagePHPMIT LicenseMIT

Leaf (Infinite)

Laravel

Another hobby stat site for another Halo game

Branches

  • master - Branch off it. Must be stable.

Setup (Docker)

A docker-based infrastructure is available for development. If you wish to run directly on host, see Setup below.

  1. cp .env.example .env
  2. Set the database hostname in .env like DB_HOST=leaf-db
  3. HOST_UID=$(id -u) docker compose --env-file .env -p leaf -f docker/docker-compose.yml up -d
  4. docker exec -it leaf-php composer install
  5. docker exec -it leaf-php npm ci
  6. docker exec -it leaf-php php artisan key:generate
  7. docker exec -it leaf-php php artisan migrate
  8. docker exec -it leaf-php npm run dev
  • Nginx listens at your local IP address, port 8080, e.g. http://localhost:8080
  • MariaDB container's port 3306 is mapped to the host.
  • Xdebug is configured to make connections to port 9003 on the host. Path mappings should be set up so the root of the project is mapped to /var/www on the server.

Setup

  1. PHP8.2
  2. Node + NPM installed
  3. MariaDB 10.6+
  4. Composer installed.
  5. cp .env.example .env
  6. composer install
  7. npm ci
  8. php artisan key:generate
  9. php artisan migrate
  10. npm run build
  11. php artisan serve

Contributions

  • Code must pass phpcs. (./vendor/bin/phpcs)
  • Code must pass phpstan. (./vendor/bin/phpstan analyse)
  • Code must have 100% test coverage. (composer coverage)

Configuration

DotAPI

Used for the API for Infinite information, an amazing service that proxies some internal HaloWaypoint/Live calls.

  • DOTAPI_DISABLED - Defaults to false, if toggled disables all Autocode API calls.
  • DOTAPI_XUID_DISABLED - Defaults to false, if toggled disables XUID resolution.
  • DOTAPI_KEY - The API key given dotapi.gg
  • DOTAPI_DOMAIN - The base domain for Autocode
  • DOTAPI_VERSION - The version of the Autocode to use
  • DOTAPI_COOLDOWN - The amount of time to wait between refreshing profiles automatically.
  • DOTAPI_CURRENT_SEASON - Current Halo Infinite Season
  • DOTAPI_CURRENT_SEASON_VERSION - Current Halo Infinite Season Version
  • DOTAPI_WARNING_MESSAGE - If populated, puts site into warning mode.

FaceIt

Used for HCS features for listing championships.

  • FACEIT_KEY - The API key given from Developer Portal
  • FACEIT_DOMAIN - The base domain for FaceIt
  • FACEIT_WEBHOOK_SECRET - The exchanged secret for validating Webhook messages.

Additionally, register webhooks for the following events:

  • match_status_finished
  • championship_finished

Finally, create a security header called X-Cat-Dog and set it to a random value that you add to env.

Google OAuth

Used for marking an account as "you" and supporting making "scrims".

  • GOOGLE_CLIENT_ID - The clientId
  • GOOGLE_CLIENT_SECRET - The clientSecret
  • GOOGLE_REDIRECT - The URL to redirect to

Tinify

Used for optimizing images that come from backdrops and emblems.

  • IMAGE_OPTIMIZE_KEY - The key for API use.
  • IMAGE_DOMAIN - The domain for API Service

Dependencies

Node

  1. Bulma - https://github.com/jgthms/bulma - MIT
  2. FontAwesome - https://github.com/FortAwesome/Font-Awesome - Font Awesome Free License
  3. Bulma-Dividers - https://github.com/CreativeBulma/bulma-divider - MIT
  4. Bulma-Tooltip - https://github.com/CreativeBulma/bulma-tooltip - MIT
  5. Bulma-Ribbon - https://github.com/Wikiki/bulma-ribbon - MIT

PHP

  1. PHP CodeSniffer - https://github.com/squizlabs/PHP_CodeSniffer - BSD-3-Clause
  2. Larastan - https://github.com/nunomaduro/larastan - MIT
  3. Guzzle - https://github.com/guzzle/guzzle - MIT
  4. Livewire - https://github.com/livewire/livewire - MIT
  5. Enum - https://github.com/BenSampo/laravel-enum - MIT
  6. DBAL - https://github.com/doctrine/dbal - MIT
  7. SEOTools - https://github.com/artesaos/seotools - MIT
  8. TheLeague/CSV - https://github.com/thephpleague/csv - MIT
  9. Socialite - https://github.com/laravel/socialite - MIT
  10. Sitemap - https://github.com/spatie/laravel-sitemap - MIT
  11. Horizon - https://github.com/laravel/horizon - MIT
  12. Markdown - https://github.com/spatie/laravel-markdown - MIT
  13. Sentry - https://github.com/getsentry/sentry-laravel - MIT
  14. Crawler Detect - https://github.com/JayBizzle/Laravel-Crawler-Detect - MIT