zokirov / api-starter-kit
This package's canonical repository id has changed and the package has been frozen as a result.
dev-master
2025-04-26 07:38 UTC
Requires
- php: >=8.2
- ext-ctype: *
- ext-iconv: *
- symfony/console: 7.2.*
- symfony/dotenv: 7.2.*
- symfony/flex: ^2
- symfony/framework-bundle: 7.2.*
- symfony/runtime: 7.2.*
- symfony/yaml: 7.2.*
Conflicts
This package is not auto-updated.
Last update: 2025-04-26 02:55:24 UTC
README
[//]: <> ( todo udpate image and add new docker commands, tell about interfaces )
Starter kit for API with Symfony, Doctrine, Maker Bundle, Migrations Bundle, Api-Platform and JWT-auth.
Kit has also already created User entity with all crud routes
Kit has 3 docker containers: php, nginx and mysql
Installation
Download the project
Go to the project directory<br>
```cd api-starter-kit```
Run docker containers <br>
```docker compose up -d```
Install composer scripts:<br>
```docker compose exec php composer install```
To install project run command:<br>
```docker compose exec php bin/console ask:install```
**Done! You can open <a href="http://localhost:8507/api" target="_blank">http://localhost:8507/api</a> via browser.
By the way, you can change this port by changing ```DOCKER_NGINX_PORT``` variable in [.env](.env) file.**
## Docker
For enter to php container run
```docker compose exec php bash```
For enter to mysql container run
```docker compose exec mysql bash```
For enter to nginx container run
```docker compose exec nginx bash```
You can change containers prefix by changing ```DOCKER_PROJECT_NAME``` variable in [.env](.env) file.
Also, you can change public ports of nginx and mysql by changing ```DOCKER_NGINX_PORT``` and ```DOCKER_DATABASE_PORT```
Database allows connections only from localhost.
Because of this when you use the project on production and want to connect to database from your computer
you should connect via ssh bridge.
## Cron
You can use [docker/php/cron-file](docker/php/cron-file) for cron jobs.
After you must re-build php container by running command:<br>
```docker compose up -d --build```
## Swagger
You can change project name and description on swagger by editing file
[config/packages/api_platform.yaml](config/packages/api_platform.yaml)
## Git Hook
If you don't use any deploying system you can do <br>
```cp docker/other-files/git/hooks/post-merge .git/hooks```
In this way git always executes command ```bin/console ask:deploy```.
You can change this command in the file [src/Command/AskDeployCommand.php](src/Command/AskDeployCommand.php).
This command will install requirements via composer,
clear caches, change owner of ./var and ./public/media folders to www-data, will run migrations.
## JWT keys
For use Json Web Token system you must create private and public keys.
They are have already created when you install project. You can re-create them with:<br>
```bin/console ask:generate:jwtKeys```