{"id":40932202,"url":"https://github.com/naturalsolutions/ecosecrets","last_synced_at":"2026-04-02T12:00:11.030Z","repository":{"id":148513336,"uuid":"587220452","full_name":"naturalsolutions/ecoSecrets","owner":"naturalsolutions","description":"ecoSecrets is a web application which enables users to manage their camera traps data","archived":false,"fork":false,"pushed_at":"2026-03-25T16:20:17.000Z","size":13437,"stargazers_count":27,"open_issues_count":17,"forks_count":7,"subscribers_count":5,"default_branch":"dev","last_synced_at":"2026-03-31T17:46:51.451Z","etag":null,"topics":["biodiversity","camera-traps","data","opensource","picture","python","react","wildlife"],"latest_commit_sha":null,"homepage":"https://demo.ecosecrets.natural-solutions.eu/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/naturalsolutions.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-01-10T08:40:03.000Z","updated_at":"2026-03-27T18:18:04.000Z","dependencies_parsed_at":"2026-02-26T22:04:02.156Z","dependency_job_id":null,"html_url":"https://github.com/naturalsolutions/ecoSecrets","commit_stats":{"total_commits":248,"total_committers":12,"mean_commits":"20.666666666666668","dds":0.6733870967741935,"last_synced_commit":"59e449be138aa0774e654c5449b81da9f9a93a4b"},"previous_names":["naturalsolutions/geocam"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/naturalsolutions/ecoSecrets","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naturalsolutions%2FecoSecrets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naturalsolutions%2FecoSecrets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naturalsolutions%2FecoSecrets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naturalsolutions%2FecoSecrets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/naturalsolutions","download_url":"https://codeload.github.com/naturalsolutions/ecoSecrets/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/naturalsolutions%2FecoSecrets/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31305971,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T09:48:21.550Z","status":"ssl_error","status_checked_at":"2026-04-02T09:48:19.196Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["biodiversity","camera-traps","data","opensource","picture","python","react","wildlife"],"created_at":"2026-01-22T04:11:21.265Z","updated_at":"2026-04-02T12:00:10.991Z","avatar_url":"https://github.com/naturalsolutions.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ecoSecrets - _a web application enabling users to manage their camera traps data_\n\n_ecoSecrets_ is an open-source web application that aims to facilitate biodiversity studies that\nuse autonomous data collection devices such as camera traps.\nThis web-application is in development and offers several features that meet the needs\nof biodiversity stakeholders:\n\n- project management: to delimit the studies according to their context\n- management of study sites: to identify spatial scope\n- device management: to specify technical characteristics of the tools used in the\n  field and their availability\n- deployment management: to characterize spatio-temporal limits of data acquisition\n- media management: to standardize and optimize the storage of collected data\n- media processing: to enable the addition of annotations to the raw data\n\nWe would be delighted if you use it, or even contribute in its development.\n\nA demo is available [here](https://demo.ecosecrets.natural-solutions.eu). Don't hesitate to\ntry it out! User : admin ; password : password\n\n---\n\n**Documentation (in french for now)**: [ecoSecrets documentation](https://natural-solutions.gitlab.io/geonature/annotation/)\n\n---\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/naturalsolutions/ecosecrets/actions/workflows/test_api.yml/badge.svg?branch=dev\"/\u003e\n    \u003cimg src=\"https://github.com/naturalsolutions/ecosecrets/actions/workflows/build_frontend.yml/badge.svg?branch=dev\"/\u003e\n    \u003cimg src=\"https://github.com/naturalsolutions/ecosecrets/actions/workflows/documentation.yml/badge.svg?branch=dev\"/\u003e\n\u003c/p\u003e\n\n---\n\n## Installation\n\n### Prerequisite\n\nDocker and docker-compose must be installed on the server/machine (cf. [official website](https://docs.docker.com/engine/install/debian/)).\n\n### Application downloading\n\nReplace the `X.Y.Z` mention by the name of the release you want to install.\n\n```\ncd\nwget https://github.com/naturalsolutions/ecosecrets/archive/refs/tags/X.Y.Z.zip\nunzip X.Y.Z.zip\nrm X.Y.Z.zip\nmv ecosecrets-X.Y.Z ecosecrets/\n```\n\n### Settings\n\nCopy the `.env.sample` inside the docker directory to `.env`:\n\n```\ncd ecosecrets\ncp docker/.env.sample docker/.env\nnano docker/.env\n```\n\nEdit freely this `.env` file to change credentials for instance. Here are the main parameters you usually want to modify:\n\n- `ENV` : uncomment it to activate the production mode (only if your app has been configured with a domain name)\n- `DOMAIN` : localhost, an IP address or a domain name (according to your context)\n- `PROTOCOL` : modify it to \"https\" if you want to activate HTTPS\n- `HTTP_HTTPS_PORT` : usually 80 for HTTP protocol and 443 for HTTPS\n- `DB_USER` : the name you want for the DB user\n- `DB_PASSWORD` : the password you want for the DB user\n- `DB_NAME` : the name you want for the DB\n- `MINIO_ROOT_USER` : the name you want for the Minio user\n- `MINIO_ROOT_PASSWORD` : the password you want for the Minio user\n\nIn the current version, you can't modify the `APP_USER` and the `APP_PASSWORD` directly in this file. You will be able to modify the admin password trough Keycloak later on.\n\n### Launching\n\n```\n./scripts/docker.sh up -d\n```\n\nWith the default settings, the app will run on `http://localhost:8889/` but the port of each service will be avaible to debug. This URL must be adapted to your context (depending on chosen protocol, domain and port).\n\n## Sample data (for testing only)\n\nSample data can be generated by using the following command:\n\n```\n./scripts/docker.sh exec api python -c \"from src.connectors.database import init_db; init_db()\"\n```\n\n## Authentication\n\necoSecrets uses [Keycloak](https://www.keycloak.org/) version 21.1.0 as authentication system.\n\nA keycloak service is provided in the `docker-compose.yml` file. This also sets\nup the keycloak instance to create a new realm, add clients (frontend and\nbackend) and create an admin user (credentials: **admin** / **password**).\n\nFor now, there is no right implemented in the app. This means that all users\nhave the same rights in ecoSecrets.\nThe admin user created above can log into the app and manage users via the administration console of keycloak ([http://localhost:8889/auth](http://localhost:8889/auth) by default).\n\nYou can use your own keycloak instance if you wish, just change in the `.env`\nthe keycloak env variables. Be careful, all versions of keycloak may not be supported.\n\n## Development\n\n### Launch backend tests\n\nTests are written with pytest and can be launched with the following\ncommand:\n\n```\n./scripts/docker.sh exec api pytest tests --cov-report html:/home/app/src/htmlcov --cov=src\n```\n\nThe default config assumes that the backend is accessing the database through\nthe docker network (via \"db\" adress) which prevents backend tests from\nbeing run locally (outside a container).\n\n### API/backend documentation\n\nThe openapi documentation accessible via swagger is available here:\n\n```\nhttp://localhost:8889/api/v1/docs\n\n```\n\n### ecoSecrets app documentation (in french for now)\n\nThe documentation is generated with mkdocs and is exposed on port 8133\nto be able to work on it with automatic reloading.\n\n```\nhttp://localhost:8133\n\n```\n\n## Contributing\n\nTo contribute to this project, please fork and create a pull request, describing the new functionality or bug fixed. Please link to an issue if relevant.\nWe use 'black' and 'isort' for Python code-formatting, this is checked via a GitHub action.\n\n## Licence\n\necoSecrets  \nCopyright (C) 2023 Natural Solutions\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnaturalsolutions%2Fecosecrets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnaturalsolutions%2Fecosecrets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnaturalsolutions%2Fecosecrets/lists"}