From 5b3a2008b170d05e506d8b5fcfe6f444f2ee992e Mon Sep 17 00:00:00 2001 From: Ondrej Vlach Date: Wed, 7 Aug 2024 13:09:21 +0200 Subject: [PATCH] docs: update README --- README.md | 113 +++++++++++++++++++++++++++--------------------------- 1 file changed, 57 insertions(+), 56 deletions(-) diff --git a/README.md b/README.md index 1a4c26b..057c672 100644 --- a/README.md +++ b/README.md @@ -1,66 +1,67 @@ -

Laravel Logo

+How to start with development +=== +* Run: +```bash +bin/develop.sh +``` +* Enjoy your coffee ;-) +* Laravel will serve web at [http://localhost:8000] (which redirect to API documentation) +* Requirements: Docker, Docker Compose v2, Bash -

-Build Status -Total Downloads -Latest Stable Version -License -

+How to try API +=== +* for example, via swagger ([http://localhost:8000/api/documentation]) -## About Laravel +How to create Czech public holidays: +--- +```bash +docker compose exec -it php-fpm /var/www/html/artisan app:create-holidays CZ 2024 +``` -Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as: +Tests +--- +```bash +docker compose exec --env OTEL_PHP_DISABLED_INSTRUMENTATIONS=all php-fpm vendor/bin/phpunit +``` -- [Simple, fast routing engine](https://laravel.com/docs/routing). -- [Powerful dependency injection container](https://laravel.com/docs/container). -- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage. -- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent). -- Database agnostic [schema migrations](https://laravel.com/docs/migrations). -- [Robust background job processing](https://laravel.com/docs/queues). -- [Real-time event broadcasting](https://laravel.com/docs/broadcasting). +phpstan & cs +```bash +docker compose exec --env OTEL_PHP_DISABLED_INSTRUMENTATIONS=all php-fpm vendor/bin/phpcs +docker compose exec --env OTEL_PHP_DISABLED_INSTRUMENTATIONS=all php-fpm vendor/bin/phpstan --memory-limit=2G +``` -Laravel is accessible, powerful, and provides tools required for large, robust applications. +Swagger: +--- +regenerate swagger: +```bash +docker compose exec -it php-fpm /var/www/html/artisan l5-swagger:generate +``` -## Learning Laravel +Logs: +--- +* Logs in storage/logs/laravel.log file -Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework. +Traces: +--- +* Traces are saved into Tempo and are available via Grafana at [http://localhost:3000](http://localhost:3000/explore?panes=%7B%22rOh%22:%7B%22datasource%22:%22tempo%22,%22queries%22:%5B%7B%22refId%22:%22A%22,%22datasource%22:%7B%22type%22:%22tempo%22,%22uid%22:%22tempo%22%7D,%22queryType%22:%22traceqlSearch%22,%22limit%22:20,%22filters%22:%5B%7B%22id%22:%22e056584d%22,%22operator%22:%22%3D%22,%22scope%22:%22span%22%7D%5D%7D%5D,%22range%22:%7B%22from%22:%22now-6h%22,%22to%22:%22now%22%7D%7D%7D&schemaVersion=1&orgId=1) -You may also try the [Laravel Bootcamp](https://bootcamp.laravel.com), where you will be guided through building a modern Laravel application from scratch. +Containers: +--- +* php-fpm -> FPM and tooling +* nginx -> Serving static content, proxy to FPM +* mysql -> Database +* grafana, tempo, loki, promtail, prometheus -> Monitoring stack -If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains thousands of video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library. +TODO: +--- +* [ ] Logs into loki +* [ ] Better traces in Tempo (currently very basic) +* [ ] Monitor the result of refresh-database via Prometheus +* [ ] Monitor status codes via Prometheus +* [ ] Sentry integration +* [ ] Deployment to dev/test and prod, production settings, production Docker images +* [ ] CI/CD -## Laravel Sponsors - -We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the [Laravel Partners program](https://partners.laravel.com). - -### Premium Partners - -- **[Vehikl](https://vehikl.com/)** -- **[Tighten Co.](https://tighten.co)** -- **[WebReinvent](https://webreinvent.com/)** -- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)** -- **[64 Robots](https://64robots.com)** -- **[Curotec](https://www.curotec.com/services/technologies/laravel/)** -- **[Cyber-Duck](https://cyber-duck.co.uk)** -- **[DevSquad](https://devsquad.com/hire-laravel-developers)** -- **[Jump24](https://jump24.co.uk)** -- **[Redberry](https://redberry.international/laravel/)** -- **[Active Logic](https://activelogic.com)** -- **[byte5](https://byte5.de)** -- **[OP.GG](https://op.gg)** - -## Contributing - -Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions). - -## Code of Conduct - -In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct). - -## Security Vulnerabilities - -If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed. - -## License - -The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT). +Notes +--- +In real "production" code, the monitoring stack will be available from the dev/test environment. It doesn't make sense to have it on the local dev stack, but for this example, I thought it was good