{"id":21070694,"url":"https://github.com/pyronear/pyro-platform","last_synced_at":"2025-05-16T05:30:59.271Z","repository":{"id":36994044,"uuid":"299997726","full_name":"pyronear/pyro-platform","owner":"pyronear","description":"Detection \u0026 monitoring platform of wildfires","archived":false,"fork":false,"pushed_at":"2025-04-28T09:57:18.000Z","size":1593,"stargazers_count":11,"open_issues_count":11,"forks_count":12,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-28T10:52:26.570Z","etag":null,"topics":["dash-server","data-visualization","docker","plotly-dash","web-app","wildfires"],"latest_commit_sha":null,"homepage":"https://platform.pyronear.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pyronear.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null},"funding":{"github":"pyronear","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2020-09-30T17:23:51.000Z","updated_at":"2025-04-28T09:57:21.000Z","dependencies_parsed_at":"2023-10-25T17:01:39.506Z","dependency_job_id":"952b8371-3b8d-45db-bf60-fd71289f80e4","html_url":"https://github.com/pyronear/pyro-platform","commit_stats":{"total_commits":126,"total_committers":13,"mean_commits":9.692307692307692,"dds":0.6984126984126984,"last_synced_commit":"df9d2acd3dcabbe6869b16f04aae2096651ae4a8"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyronear%2Fpyro-platform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyronear%2Fpyro-platform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyronear%2Fpyro-platform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyronear%2Fpyro-platform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyronear","download_url":"https://codeload.github.com/pyronear/pyro-platform/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253026900,"owners_count":21842617,"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":["dash-server","data-visualization","docker","plotly-dash","web-app","wildfires"],"created_at":"2024-11-19T18:47:51.748Z","updated_at":"2025-05-16T05:30:59.266Z","avatar_url":"https://github.com/pyronear.png","language":"Python","readme":"# Pyronear Platform\n[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/0e4490e06eaf41a3a5faea69dad5caa9)](https://www.codacy.com/gh/pyronear/pyro-platform/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=pyronear/pyro-platform\u0026amp;utm_campaign=Badge_Grade) ![Build Status](https://github.com/pyronear/pyro-platform/workflows/dash-project/badge.svg)\n\nThe open-source platform for managing early wildfire detection\n\n\n# Installation\n\n## Prerequisites\n\n- [Docker](https://docs.docker.com/engine/install/)\n- [Docker compose](https://docs.docker.com/compose/)\n- [Poetry](https://python-poetry.org/)\n- [Make](https://www.gnu.org/software/make/) (optional)\n\nThe project was designed so that everything runs with Docker orchestration (standalone virtual environment), so you won't need to install any additional libraries.\n\n## Configuration\n\nIn order to run the project, you will need to specific some information, which can be done using a `.env` file.\n\nThis file will have to hold the following information:\n- `API_URL`: URL to the endpoint of [Pyronear Alert API](https://github.com/pyronear/pyro-api)\n- `API_LOGIN`: your login for the API\n- `API_PWD`: your password for the API\n\nOptionally, the following information can be added:\n- `SENTRY_DSN`: the URL of the [Sentry](https://sentry.io/) project, which monitors back-end errors and report them back.\n- `SENTRY_SERVER_NAME`: the server tag to apply to events.\n- `DEBUG`: whether the app is in debug or production mode\n\nThe file should be placed at the root folder of your local copy of the project. \n\n\n## Running you service locally\n\n### Clone the repository\n```shell\ngit clone https://github.com/pyronear/pyro-platform.git \u0026\u0026 cd pyro-platform\n```\n\nHere, there are several ways to start the service\n- Either you have access to a pyronear alert api online through a specific API_URL\n- Otherwise, you'll need to create a development environment. Don't panic, here's a tutorial on how to do it smoothly\n\n### Run the service directly with the URL of a pyronear alert api\n\n#### 1 - Set your environment variables \nFirst copy the example environment setup\n```shell\ncp .env.example .env\n```\nFill it with your API_URL and credentials\n\n#### 2 - You can run the app container using this command for dev purposes:\n```shell\nmake run_dev\n```\n\n### Run the service via a development environment\n\n#### 1 - clone pyro-envdev repository \nMove to a directoty where to clone the [pyro-envdev repo](https://github.com/pyronear/pyro-envdev), then\n\n```shell\ngit clone https://github.com/pyronear/pyro-envdev.git \u0026\u0026 cd pyro-envdev\n```\n\n#### 2 - build \u0026 launch required pyro-envdev services\n```shell\nmake build\n```\nThen, with the following command, you will run the API locally and services that simulate 2 cameras generating alerts\n\n```shell\nmake run-engine\n```\n### 3 - Let your webbrowser access images from development environment\nby adding this line in your /etc/hosts\n\n```\n127.0.0.1 www.localstack.com localstack\n```\n\n#### 4 - Go back to pyro-platform \u0026 setup credentials\n```shell\ncd PATH_TO_PYRO-PLATFORM\n```\n\nFill credentials to access your local API, the example below shall work properly as the API_URL give access to your local pyronear api and (API_LOGIN, API_PWD) are taken from [default credentials in the development environment](https://github.com/pyronear/pyro-envdev/blob/main/data/csv/API_DATA_DEV%20-%20users.csv)\n\n```\nAPI_URL='http://host.docker.internal:5050/'\nAPI_LOGIN='github-engine'\nAPI_PWD='passwrd6'\n```\n\n### 4 - Start your local pyro-plateform \n\nNow, you can run the app container using this command for dev purposes:\n\n```shell\nmake run_dev\n```\n\nor launch your project locally directly with python: \n\n```shell\npython3 app/index.py\n```\n\n### Check how what you've deployed\n\nYou can now navigate to `http://localhost:8050/` to interact with the app.\n\nIn order to stop the service, run:\n```shell\nmake stop\n```\n\n\n## Running your service in production\n\n```shell\nmake run\n```\n\nFor production we use docker-compose.yml in which there is the [Traefik Reverse Proxy](https://traefik.io/traefik/).\n\nTraefik interacts with the Dash frontend app via an external network called web, this needs do be created as follow:\n\n```shell\ndocker network create web\n```\n\n## Contributing\n\nAny sort of contribution is greatly appreciated!\n\nYou can find a short guide in [`CONTRIBUTING`](CONTRIBUTING.md) to help grow this project!\n\n\n## License\n\nDistributed under the Apache 2.0 License. See `LICENSE` for more information.\n","funding_links":["https://github.com/sponsors/pyronear"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyronear%2Fpyro-platform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpyronear%2Fpyro-platform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyronear%2Fpyro-platform/lists"}