Installation¶
To install the API you need a Python 3.x installed also venv module and pip. 
Here will be covered two types of installation for debugging and for production.
Mutual Steps¶
Clone the repository with the command
Rename.env.example to .env
In linux
Enter all needed environment variables in .env file.
PAGINATION_PAGE_SIZEis used for pagination used in the API certain endpoint.DJANGO_SECRETyou can generate the secret online -> link
or with the following command if you have installed django on the machineDOMAIN_NAME_NGINXthe domain which will serve the apiX_AUTH_HEADERalso you can generate random UUID online that will be used for authentication
for the read only endpoint. Example header261ec18d-0e81-4073-8d9e-b34a7a1e5e06(Don`t use it this is for demo purpose)CORS_ALLOWED_HOSTSare the front end domain namesOPENAI_API_KEYis the API KEY from OpenAI for the scraping recipe functionalityOPENAI_MODELis the default model at this stage thegpt-4o-miniis most cost-efficient and is working ok for the scraping taskOPEN_AI_TTS_MODEL_VOICEis the voice of the TTS OpenAI model
Scrape functionality dependencies
The API use playwright python package to open the scrape url recipe link. The docker images in Docker Hub include the dependancy there no need of manaul installation.
Installing locally (Debug mode)¶
You can create a virtual environment and click of the API. Note replace the 3.x with actual Python version
Make the needed migrations so Django can create sqlite database file with tables.
At this point everything should be ok, and you can start the server. 
localhost:8000.
In this mode you can use it locally if in debug mode which you can change in /forkapi/settings.py file line 27
Raspberry Pi¶
Info
- For Raspberry Pi with Raspbian OS make sure to uncomment the packages in the main Dockerfile in line 
16and replace the method frompullfrom registry tobuildfrom Dockerfile located at the root folder. This should be happen in thedocker-compose.ymlfile line25. - If you pull from Docker hub make sure to change the image in compose with 
mikebgrep/forkapi:arm64this image is tested for Raspberry Pi with Ubuntu server. 
Installing in Docker container (Production SSL)¶
To installing in Docker container follow the steps bellow. 
- Fist step is to clone the repo. The needed files are in 
nginxfolder,.envfile anddocker-compose.ymlfile. - Next step is setting up the 
fullchain.pemandprivkey.pemfiles needed for the ssl settings innginx. - After you obtain ssl certificates for your domain you need to copy them in the 
nginx/sslfolder. - Then add environment variable (if you didn't add it already) in 
.envfile forDOMAIN_NAME_NGINXthat should be used with your actual domain name in thenginx/forkapi-ssl.nginx.templateconfiguration file. - Next uncomment the commented lines 
8,12and21in thedocker-compose.ymland comment lines7and22. - 
That all you need to run the
docker compose upcommand and the API will be deployed on the server instance or locally on your machine. - 
Access the admin dashboard at
your-domain:80oryour-domain:443 
Info
I will not include steps for setting the domain name servers on this as you can follow the official documentation on your server or the Raspberry Pi documentation.
Installing in Docker container (Production No SSL)¶
- Fist step is to clone the repo. The needed files are in 
nginxfolder,.envfile anddocker-compose.ymlfile. - Add environment variable (if you didn't add it already) in 
.envfile forDOMAIN_NAME_NGINXthat should be used with your actual domain name in thenginx/forkapi.nginx.templateconfiguration file. - That all you need to run the 
docker compose upcommand and the API will be deployed on the server instance or locally on your machine. 
Note
This method is the prefered choice if your server already provide ssl connection by default as Digital ocean do for their apps.
Follow next step to check how you can and must be made your first request.