The service that is going to defeat the laziness.
Try it out on https://milestone.yaskovdev.com.
Pick one of the below options.
Based on the official PostgreSQL guide.
- Install Docker.
- Run the database container:
docker run --name db -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=motive -d --restart unless-stopped postgres - Verify container is running:
docker ps -a
brew install postgresql
brew services start postgresql
createuser -s postgres
createdb motive --encoding='utf-8' --template='template0;'In the project root run ./mvnw spring-boot:run -D"spring-boot.run.profiles=local".
This works in PowerShell. If that does not work in your command line, try removing the double quotes. If still does not
work, try removing the quotes and adding a space after -D.
Or, if you are using IntelliJ IDEA, make sure that "Active profiles" is set to local and run from the IDE.
Add the next parameters to your Spring Boot configuration:
spring.datasource.url
spring.datasource.username
spring.datasource.password
as on the following screenshot:
It is useful if you want to, say, debug a mobile client against the back end that is running on a local computer.
- Configure port forwarding for ports
3000and8080. They should be forwarded to your local computer where the back end and the Web app will be running. You can find the IP address of the computer using theipconfigcommand (ifconfig | grep ineton macOS). It usually starts with192.168. - Create a DNS
Arecord for your domain (assuming your domain isyaskovdev.com). The record should map bothmilestone-local.yaskovdev.comandapi.milestone-local.yaskovdev.comto the same IP address: a public IP address of your local network. You can find it here. - Wait for some time for the DNS record to become visible everywhere.
- Make sure that both your local computer and your phone are connected to your local network (local router).
- In
application-local.ymlreplace the value ofauthentication.success.url.webwithhttp://milestone-local.yaskovdev.com:3000. - In
application-local.ymlreplace the value oflogout.success.urlwithhttp://milestone-local.yaskovdev.com:3000/login. - In
application-local.ymlreplace the value ofcookie.domainwithmilestone-local.yaskovdev.com. - In the
motive-web-app, in the.env.developmentfile, replace the value ofREACT_APP_API_URLwithhttp://api.milestone-local.yaskovdev.com:8080. - Run both the back end and the Web app.
- Make sure the back end is running and accessible by opening http://api.milestone-local.yaskovdev.com:8080/actuator/health.
- Make sure the Web app is running and accessible by opening http://api.milestone-local.yaskovdev.com:3000.
- In your phone open http://milestone-local.yaskovdev.com:3000.
Create the next system environment variables:
AZURE_OPENAI_API_KEYAZURE_OPENAI_ENDPOINTAZURE_OPENAI_DEPLOYMENT_MODEL_ID
Based on this guide.
Make sure that subscriptionId in pom.xml is your active Azure subscription.
Make sure that in Azure Portal "Settings" -> "Environment variables" -> "App settings" has the next entries properly configured:
SPRING_DATASOURCE_PASSWORDSPRING_DATASOURCE_USERNAMEJWT_TOKEN_SIGNING_KEYGITHUB_CLIENT_SECRETVK_CLIENT_SECRET
And "Connection strings" has the next entry properly configured: milestone.
Then run the next commands:
mvn clean package
mvn azure-webapp:deployUse this guide.
Use this guide.
docker image build -t yaskovdev/motive-back-end .
docker image push yaskovdev/motive-back-endFor Local, go to http://localhost:8080/actuator/health.
For Prod, go to https://api.milestone.yaskovdev.com/actuator/health.
For Local, use this link.
For Prod, use this link.
- If you cannot connect from your local computer to the PostgreSQL database deployed to Azure, make sure that your IP address is added to the "Firewall rule name" in the "Networking" page in the "Azure Database for PostgreSQL flexible server".
- If you press "Try Without Login" in the UI and get redirected back to the login page, make sure that
the
Authorizationcookie is set (most likely it isn't, therefore you get redirected back to the login).
