{"id":13579062,"url":"https://github.com/tarlepp/symfony-flex-backend","last_synced_at":"2025-04-07T09:18:57.223Z","repository":{"id":37788992,"uuid":"90281284","full_name":"tarlepp/symfony-flex-backend","owner":"tarlepp","description":"Symfony Flex REST API template project","archived":false,"fork":false,"pushed_at":"2024-04-13T13:31:50.000Z","size":23639,"stargazers_count":281,"open_issues_count":12,"forks_count":54,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-04-14T01:13:07.760Z","etag":null,"topics":["api","flex","hacktoberfest","rest","rest-api","symfony","symfony-flex"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tarlepp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2017-05-04T15:45:06.000Z","updated_at":"2024-04-15T06:36:01.658Z","dependencies_parsed_at":"2023-02-18T23:30:42.719Z","dependency_job_id":"665d0cdd-ad8b-472d-93ab-6bfd54d2c9c8","html_url":"https://github.com/tarlepp/symfony-flex-backend","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarlepp%2Fsymfony-flex-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarlepp%2Fsymfony-flex-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarlepp%2Fsymfony-flex-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarlepp%2Fsymfony-flex-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tarlepp","download_url":"https://codeload.github.com/tarlepp/symfony-flex-backend/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247622983,"owners_count":20968575,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","flex","hacktoberfest","rest","rest-api","symfony","symfony-flex"],"created_at":"2024-08-01T15:01:36.205Z","updated_at":"2025-04-07T09:18:57.201Z","avatar_url":"https://github.com/tarlepp.png","language":"PHP","funding_links":[],"categories":["PHP"],"sub_categories":[],"readme":"# What is this?\n\n[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![CI](https://github.com/tarlepp/symfony-flex-backend/workflows/CI/badge.svg)](https://github.com/tarlepp/symfony-flex-backend/actions?query=workflow%3ACI)\n[![Coverage Status](https://coveralls.io/repos/github/tarlepp/symfony-flex-backend/badge.svg?branch=master)](https://coveralls.io/github/tarlepp/symfony-flex-backend?branch=master)\n[![Psalm coverage](https://shepherd.dev/github/tarlepp/symfony-flex-backend/coverage.svg)](https://shepherd.dev/github/tarlepp/symfony-flex-backend)\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/tarlepp/symfony-flex-backend/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/tarlepp/symfony-flex-backend/?branch=master)\n[![Code Intelligence Status](https://scrutinizer-ci.com/g/tarlepp/symfony-flex-backend/badges/code-intelligence.svg?b=master)](https://scrutinizer-ci.com/code-intelligence)\n[![Maintainability](https://api.codeclimate.com/v1/badges/69d6dc6b9fb4791e6b92/maintainability)](https://codeclimate.com/github/tarlepp/symfony-flex-backend/maintainability)\n[![Sonarcloud Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=github.com.tarlepp.symfony-flex-backend\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=github.com.tarlepp.symfony-flex-backend)\n[![Sonarcloud Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=github.com.tarlepp.symfony-flex-backend\u0026metric=security_rating)](https://sonarcloud.io/dashboard?id=github.com.tarlepp.symfony-flex-backend)\n[![Sonarcloud Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=github.com.tarlepp.symfony-flex-backend\u0026metric=sqale_rating)](https://sonarcloud.io/dashboard?id=github.com.tarlepp.symfony-flex-backend)\n[![Sonarcloud Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=github.com.tarlepp.symfony-flex-backend\u0026metric=reliability_rating)](https://sonarcloud.io/dashboard?id=github.com.tarlepp.symfony-flex-backend)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/tarlepp/symfony-flex-backend/badge)](https://securityscorecards.dev/viewer/?platform=github.com\u0026org=tarlepp\u0026repo=symfony-flex-backend)\n\nJSON REST API which is build on top of [Symfony](https://symfony.com/)\nframework.\n\nThis application is mean to use as an `API` that some [frontend](#frontend-table-of-contents)\napplication(s) or different backend application(s) uses as they like.\n\n## Table of Contents\n\n* [What is this](#what-is-this)\n  * [Table of Contents](#table-of-contents)\n  * [Requirements](#requirements-table-of-contents)\n    * [Recommendations](#recommendations-table-of-contents)\n  * [Installation](#installation-table-of-contents)\n    * [1. Clone repository](#1-clone-repository-table-of-contents)\n    * [2. Start containers](#2-start-containers-table-of-contents)\n    * [3. Using application](#3-using-application-table-of-contents)\n    * [4. Getting shell to container](#4-getting-shell-to-container-table-of-contents)\n    * [5. Building containers](#5-building-containers-table-of-contents)\n  * [Frontend?](#frontend-table-of-contents)\n  * [Resources](#resources-table-of-contents)\n  * [External links / resources](#external-links--resources-table-of-contents)\n  * [Authors](#authors-table-of-contents)\n  * [License](#license-table-of-contents)\n\n## Requirements [ᐞ](#table-of-contents)\n\n[Docker Engige](https://docs.docker.com/engine/install/)\nIf you are not using Docker Engine then follow [this](doc/INSTALLATION_WITHOUT_DOCKER.md)\n\n### Recommendations [ᐞ](#table-of-contents)\n\n* `*nix platform` - most likely you're going to host your application on *nix\n  platform - so I would recommend to do development also on that platform.\n* `Makefile` support - if you don't have this you need to look `Makefile` file\n  to see what each `make` command is doing.\n\n## Installation [ᐞ](#table-of-contents)\n\nThis installation guide expects that you're using Docker Engine.\n\n### 1. Clone repository [ᐞ](#table-of-contents)\n\nUse your favorite IDE and get checkout from GitHub or just use following\ncommand\n\n```bash\ngit clone https://github.com/tarlepp/symfony-flex-backend.git\n```\n\n### 2. Start containers [ᐞ](#table-of-contents)\n\nFor this just run following command, which will start all the containers:\n\n```bash\nmake start\n```\n\nIf you like to start containers in background, then you can use following\ncommand:\n\n```bash\nmake daemon\n```\n\nThese commands will create following containers to run this backend\napplication:\n\n* [php](https://www.php.net/) (this is for actual application)\n* [nginx](https://www.nginx.com/) (this will serve application)\n* [mariadb](https://mariadb.org/) (MariaDB 10.7 which will store all the data\n  of application)\n* [dozzle](https://dozzle.dev/) (to see your docker container logs)\n* [adminer](https://www.adminer.org/) (to manage your database via browser)\n\n### 3. Using application [ᐞ](#table-of-contents)\n\nBy default `make start` command starts all the containers and exposes\nfollowing ports on `localhost` on your host machine:\n\n* symfony-backend-nginx - [https://localhost:8000](https://localhost:8000) (nginx)\n  * PHP-FPM status page -  [https://localhost:8000/status](https://localhost:8000/status)\n  * SSL with selfsigned certificates\n* symfony-backend-nginx - [http://localhost:8080](http://localhost:8080) (nginx)\n  * PHP-FPM status page -  [http://localhost:8080/status](http://localhost:8080/status)\n  * Normal HTTP\n* symfony-backend-php-fpm - this is not exposed to host machine (php-fpm)\n* symfony-backend-mariadb - [http://localhost:33060](http://localhost:33060) (mariadb)\n* symfony-backend-dozzle - [http://localhost:8100](http://localhost:8100) (dozzle)\n* symfony-backend-adminer - [http://localhost:8200](http://localhost:8200) (adminer)\n\nAnd this application is usable within your browser on `https://localhost:8000`\naddress. When you first time open that site you will see \"Your connection is\nnot private\" warning - see [this](./docker/nginx/ssl/README.md) to resolve that.\n\nAnother choice is to use `http://localhost:8080` which is not using SSL.\n\nMariaDB credentials:\n\n```bash\nuser: root\npassword: password\n```\n\n### 4. Getting shell to container [ᐞ](#table-of-contents)\n\nAfter you've run `make start` command you can list all running containers with\n`docker ps` command.\n\nAnd to eg. get shell (bash or fish) access inside one of those containers you\ncan run following command:\n\n```bash\nmake bash\n```\n\nOR\n\n```bash\nmake fish\n```\n\n### 5. Building containers [ᐞ](#table-of-contents)\n\nFor time to time you probably need to build containers again. This is something\nthat you should do everytime if you have some problems to get containers up and\nrunning. This you can do with following command:\n\n```bash\nmake daemon-build\n```\n\nIf you like to see containers logs directly use following command:\n\n```bash\nmake start-build\n```\n\n## Frontend? [ᐞ](#table-of-contents)\n\nSo this is an API backend what about frontend then? No worries I've made simple\nAngular NgRx powered template frontend which work with this backend just out of\nthe box.\n\n[Angular NgRx powered frontend template for Symfony backend](https://github.com/tarlepp/angular-ngrx-frontend)\n\nWith these two _template_ applications it should be quite easy to start to\nbuild _your_ own application - right?\n\n## Resources [ᐞ](#table-of-contents)\n\n* [Resource index](doc/README.md)\n* [Application commands](doc/COMMANDS.md)\n* [Concepts and features](doc/CONCEPTS_AND_FEATURES.md)\n* [Custom configuration](doc/CUSTOM_CONFIGURATION.md)\n* [Development guide](doc/DEVELOPMENT.md)\n* [Installation without docker](doc/INSTALLATION_WITHOUT_DOCKER.md)\n* [PhpStorm configuration](doc/PHPSTORM.md)\n* [Speed problems with Docker Engine?](doc/SPEED_UP_DOCKER_COMPOSE.md)\n* [Testing guide](doc/TESTING.md)\n* [Usage checklist](doc/USAGE_CHECKLIST.md)\n* [Using Xdebug](doc/XDEBUG.md)\n* [Scripts](scripts/README.md)\n\n## External links / resources [ᐞ](#table-of-contents)\n\n* [Symfony Flex set to enable RAD (Rapid Application Development)](https://www.symfony.fi/entry/symfony-flex-to-enable-rad-rapid-application-development)\n* [Symfony 4: A quick Demo](https://medium.com/@fabpot/symfony-4-a-quick-demo-da7d32be323)\n* [composer-version](https://github.com/vutran/composer-version)\n* [Symfony Recipes Server](https://symfony.sh/)\n\n## Authors [ᐞ](#table-of-contents)\n\n* [Tarmo Leppänen](https://github.com/tarlepp)\n\n## License [ᐞ](#table-of-contents)\n\n[The MIT License (MIT)](LICENSE)\n\nCopyright © 2024 Tarmo Leppänen\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftarlepp%2Fsymfony-flex-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftarlepp%2Fsymfony-flex-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftarlepp%2Fsymfony-flex-backend/lists"}