{"id":22343890,"url":"https://github.com/miou-zora/area","last_synced_at":"2026-04-10T15:06:38.128Z","repository":{"id":238195473,"uuid":"796068140","full_name":"Miou-zora/Area","owner":"Miou-zora","description":"Ifttt replica using ReactJS / ReactNative for front and NestJS for back (with deployement on Oracle Cloud Plateform)","archived":false,"fork":false,"pushed_at":"2024-06-19T01:58:29.000Z","size":2263,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-31T11:27:53.030Z","etag":null,"topics":["docker-compose","mobile","nestjs","oracle-cloud-platform","react","react-native","server","web"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Miou-zora.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"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,"publiccode":null,"codemeta":null}},"created_at":"2024-05-04T20:55:03.000Z","updated_at":"2024-06-02T14:02:40.000Z","dependencies_parsed_at":"2025-01-31T11:38:18.529Z","dependency_job_id":null,"html_url":"https://github.com/Miou-zora/Area","commit_stats":null,"previous_names":["miou-zora/area"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Miou-zora%2FArea","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Miou-zora%2FArea/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Miou-zora%2FArea/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Miou-zora%2FArea/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Miou-zora","download_url":"https://codeload.github.com/Miou-zora/Area/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245632425,"owners_count":20647193,"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":["docker-compose","mobile","nestjs","oracle-cloud-platform","react","react-native","server","web"],"created_at":"2024-12-04T09:06:55.693Z","updated_at":"2025-12-30T21:32:49.006Z","avatar_url":"https://github.com/Miou-zora.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project Start\n## How to use\n### Start\n\nYou need to have [Docker](https://www.docker.com/) installed on your computer.\n\nYou also need to have a `.env` file in the root folder of the project with the following lines:\n\n```env\nPOSTGRES_USER=The user you want to use to connect to the database like 'postgres'\nPOSTGRES_PASSWORD=The password you want to use to connect to the database like '123'\nPOSTGRES_DB=Name of the database you want to use like 'nest'\nSERVER_IP=Ip of the server like 'http://localhost'\nSERVER_PORT=Port of the server like '8080'\nWEB_IP=Ip of the web app like 'http://localhost'\nWEB_PORT=Port of the web app like '8081'\nGOOGLE_CLIENT_ID=Your GOOGLE_CLIENT_ID\nGOOGLE_CLIENT_SECRET=Your GOOGLE_CLIENT_SECRET\nGITHUB_CLIENT_ID=Your GITHUB_CLIENT_ID\nGITHUB_CLIENT_SECRET=Your GITHUB_CLIENT_SECRET\nDISCORD_CLIENT_ID=Your DISCORD_CLIENT_ID\nDISCORD_CLIENT_SECRET=Your DISCORD_CLIENT_SECRET\nDISCORD_REDIRECT_URI=Your redirect url from the Redirects in the applications of Discord like 'services/discord/callback'\nDISCORD_BOT_TOKEN=Your DISCORD_BOT_TOKEN\nPGADMIN_DEFAULT_EMAIL=Email of the pgadmin user like 'admin@admin.com'\nPGADMIN_DEFAULT_PASSWORD=Password of the pgadmin user like '123'\nSPOTIFY_CLIENT_ID=Your SPOTIFY_CLIENT_ID\nSPOTIFY_CLIENT_SECRET=Your SPOTIFY_CLIENT_SECRET\n```\n\nYou can start the project with the following command:\n\n```bash\ndocker-compose -f docker-compose[.dev|.prod].yml up [-d] [--build]\n# -f to specify the file to use, you can use docker-compose.dev.yml to use the dev version, it will enable the hot reload. (it will use Dockerfile.dev instead of Dockerfile)\n# -d to run it in background\n# --build to rebuild the images rather that running build each time\n```\n(you can remove -d to see the logs)\n\nIt will start each part of the projects in this order:\n- The database\n- The backend\n- The setup of the database using a backend image\n- The mobile app\n- The web app\n\n### Stop\n\nYou can stop the project with the following command:\n\n```bash\ndocker-compose -f docker-compose[.dev|.prod].yml down [--volumes] [--remove-orphans] [--rmi local]\n# --volumes to remove the volumes\n# --remove-orphans to remove the containers that are not in the docker-compose.yml file\n# --rmi local to remove all the images, you can also use 'all' to remove all the images\n```\n\n### Update images\n\nYou can update the images of the project with the following command:\n(don't forget to stop the project before [Stop](#stop))\n\n```bash\ndocker-compose -f docker-compose[.dev|.prod].yml build\n```\n\n(It's quite useless as long as we use compose up command with `--build` flag, but it can be useful if you want to build the images without starting the project like for the deployement)\n\n### Clean images\n\nYou can clean the images of the project with the following command:\n\n```bash\ndocker image prune\n```\n\nIt will remove all the images that are not used by a container like `\u003cNone\u003e` images generated by the build command.\n\n### Mobile (dev)\n\n#### Setup\n\n##### Build app\n\nWe can't access mobile through docker compose, so you need to run the following commands:\n\n```bash\ncd mobile\nnpm install\n# Install apk on your device (emulator or physical device)\n# YOUR_DEVICE_ID is the id of your device, you can get it with `adb devices` command and YOUR_TERMINAL is the terminal you want to use to see the logs, you can use `cmd` for windows or `bash` for linux.\nnpm run android -- --deviceId=YOUR_DEVICE_ID --terminal=YOUR_TERMINAL\n```\nAfter that, it will open a new terminal. You can close it using ctrl+c and it will download the app on your device using first terminal.\nNow you can basically run the app using the following command:\n\n##### Environment variables\n\nYou need to have a `.env` file in the mobile folder of the project with the following lines:\n\n```env\nREACT_APP_SERVER_IP=Ip of the server like 'http://localhost' or 'http://10.0.2.2' for android emulator\nREACT_APP_SERVER_PORT=Port of the server like '8080'\nREACT_APP_WEB_IP=Ip of the server like 'http://localhost' or 'http://10.0.2.2' for android emulator\nREACT_APP_WEB_PORT=Port of the server like '8081'\nREACT_APP_GOOGLE_CLIENT_ID=id of google (same as the one in root)\n```\n\n#### Start\n\n```bash\nnpm start\n```\n\n(If app doesn't reload automaticaly, you can reload it manually on your device (`r` + `r` on android emulator))\n\n### PgAdmin\n\nYou can access the pgadmin interface at the following url: http://localhost:8083\nYou must connect with the email and password you set in the `.env` file.\nAfter that you can add a new server with the following informations:\n- Name: `It can be anything`\n- Host name/address: `db`\n- Port: `5432`\n- Username: `It should be defined in the .env file as POSTGRES_USER`\n- Password: `It should be defined in the .env file as POSTGRES_PASSWORD`\n\n## Deployement\n\n### Setup\n\nYou need to have [Ansible](https://www.ansible.com/) installed on your computer.\nYou also need to have a Compute instance on [Oracle Cloud Infrastructure](cloud.oracle.com) with VM.Standard3.Flex (Intel) shape with Oracle Linux 8.9 as operating system (We currently use 2 OCPU with 10GB of memory and it works very well). You also need to have a public IP address on this instance. (You can use the free tier to have a public IP address). You also need to register your ssh public key on the instance.\n\nYou need to create a `inventory` file like `inventory.example` file with corresponding informations:\n\n```ini\n[area]\nYOUR_PUBLIC_IP_ADDRESS ansible_user=YOUR_USERNAME\n```\n\nAfter that, you just need to run the following command:\n\n```bash\n./deploy.sh\n```\n\nIt will clone the project on the remote server, copy local `.env` and install docker and docker-compose.\n\nAfter that you need to connect to the remote server, move to Area folder and run the following command:\n\n```bash\ndocker-compose -f docker-compose.prod.yml up -d --build\n```\n\nIt will start each part of the projects.\n\n/!\\ Don't forget that it will copy local `.env` file, so you need to have the `.env` file with the correct informations on your computer /!\\\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiou-zora%2Farea","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmiou-zora%2Farea","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiou-zora%2Farea/lists"}