{"id":13705338,"url":"https://github.com/userjack6880/Open-DMARC-Analyzer","last_synced_at":"2025-05-05T16:32:09.405Z","repository":{"id":40559979,"uuid":"188481366","full_name":"userjack6880/Open-DMARC-Analyzer","owner":"userjack6880","description":"Open DMARC Analyzer is an Open Source DMARC Report Analyzer to be used with DMARC reports that have been parsed by John Levine's rrdmarc script or techsneeze's dmarcts-report-parser.","archived":false,"fork":false,"pushed_at":"2024-06-17T16:10:14.000Z","size":574,"stargazers_count":232,"open_issues_count":12,"forks_count":27,"subscribers_count":12,"default_branch":"version-1","last_synced_at":"2024-11-13T13:37:32.365Z","etag":null,"topics":["dmarc","dmarc-analyzer","dmarc-reports"],"latest_commit_sha":null,"homepage":"","language":"PHP","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/userjack6880.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/SECURITY.md","support":null}},"created_at":"2019-05-24T20:07:32.000Z","updated_at":"2024-10-27T08:00:10.000Z","dependencies_parsed_at":"2022-08-03T17:31:16.184Z","dependency_job_id":null,"html_url":"https://github.com/userjack6880/Open-DMARC-Analyzer","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/userjack6880%2FOpen-DMARC-Analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/userjack6880%2FOpen-DMARC-Analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/userjack6880%2FOpen-DMARC-Analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/userjack6880%2FOpen-DMARC-Analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/userjack6880","download_url":"https://codeload.github.com/userjack6880/Open-DMARC-Analyzer/tar.gz/refs/heads/version-1","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252533927,"owners_count":21763683,"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":["dmarc","dmarc-analyzer","dmarc-reports"],"created_at":"2024-08-02T22:00:37.984Z","updated_at":"2025-05-05T16:32:09.080Z","avatar_url":"https://github.com/userjack6880.png","language":"PHP","funding_links":[],"categories":["Security","PHP"],"sub_categories":["DMARC"],"readme":"# Open DMARC Analyzer\n![Open DMARC Analyzer Screenshot](docs/images/oda-screenshot.jpg?raw=true)\n\nOpen DMARC Analyzer is an Open Source DMARC Report Analyzer to be used with DMARC reports that have been parsed by [Open Report Parser](https://github.com/userjack6880/Open-Report-Parser).\n\nOpen DMARC Analyzer was written because there didn't seem to be a full-featured self-hosted report analyzer that provided enough details to make heads or tails of a large volume of DMARC reports that come into medium to large-sized organizations. While other solutions required paid subscriptions or have part of it hosted on AWS, Open DMARC Analyzer will run on any webserver that supports PHP 7.4+ and MariaDB 10.5+.\n\nOpen DMARC Analyzer Version 1 is an [Anomaly \\\u003cCodebase\\\u003e](https://systemanomaly.com/codebase) project by John Bradley (john@systemanomaly.com)\n\n# Minimum Requirements\n- Apache 2 or equivalent\n- PHP 5 (PHP 7+ required for phpWhois)\n- PHP PDO\n- MariaDB 10.5 (or equivalent) *or* PostgreSQL 13\n- **A database that is pre-populated with data from [Open Report Parser](https://github.com/userjack6880/Open-Report-Parser)**\n\n# Dependencies\n\nOne of the following 2 packages are required to be installed.\n\n**[kevinoo/phpWhois](https://github.com/kevinoo/phpWhois)**\n\nIt is highly recommended that you install this package using composer. Instructions are found on the package's git page. This is required, and will replace most GeoIP data if you disable the MaxMind DB reader package. This package *will* require PHP 7 or newer.\n\n*PLEASE NOTE: if you are using the jsmitty12/phpWhois package, it does not support PHP 8 properly. Please remove it and use the newer kevinoo/phpWhois package.*\n\n**[MaxMind DB Reader PHP API](https://github.com/maxmind/MaxMind-DB-Reader-php)**\n\nA note on this dependency - I've tried to write the one refrence to this external project as optional as possible, and it can almost completely be configured from config.php, due to the limitation of php namespace, I haven't come across a way that won't require you to dig deeper into the code if you happen to chose a compatible library to replace this MaxMind one. If you do wish to replace this library with another compatible one, the line in question is located in `includes\\functions.php`:\n```php\n$reader = new MaxMind\\Db\\Reader(GEO_DB);\n```\n\nIt is highly recommended that you install this package using composer. Instructions are found on the package's git page.\n\nYou will also need the GeoLite2 database from MaxMind (or any other compatible DB). It can be obtained from [here](https://dev.maxmind.com/geoip/geoip2/geolite2/). Open DMARC Analyzer makes use of the GeoLite2 City database.\n\nThe MaxMind library is not distributed with this project, and is ultimately an optional feature to the project as a whole, unless you are using PHP 5.\n\n# Setting up Open DMARC Analyzer\n\nObtaining Open DMARC Analyzer through `git` is probably the easiest way, in addition to doing occasional pulls to get up-to-date versions.\n\n```\ngit clone https://github.com/userjack6880/Open-DMARC-Analyzer.git\n```\n\nOptionally, a [zip file of the latest release](https://github.com/userjack6880/Open-DMARC-Analyzer/releases) can be downloaded.\n\nOnce downloaded and installed in a desired directory, install either jsmitty12's phpWhois package or the MaxMind DB Reader package through composer. Rename `config.php.pub` to `config.php` and edit the configuration for your environment (see the next section on **Configuration Options** for details). Finally, run `install.php` to create the database view used by this software package.\n\n`install.php` should remove itself and `mysql.sql` once complete. If permissions aren't given, `install.php` may not delete those files. It is recommended to manually delete these.\n\n# Configuration Options\n\n**Database Options**\n```php\ndefine('DB_HOST', 'localhost');\ndefine('DB_USER', 'dmarc');\ndefine('DB_PASS', 'password');\ndefine('DB_NAME', 'dmarc');\ndefine('DB_PORT', '3306'); // default port 3306, 5432 for pgsql\ndefine('DB_TYPE', 'mysql'); // supported mysql and pgsql\n```\n\n**Debug Settings**\n```php\ndefine('DEBUG', 1);\n```\n*Not Currently Used*\n\n**Template Settings**\n```php\ndefine('TEMPLATE','openda');\n```\nThis will load the visual templated located `templates/`. Simply name the directory the template is located in. Do not use a trailing slash.\n\n**Package Loader**\n```php\ndefine('AUTO_LOADER','vendor/autoload.php');\n```\nShould not need to change this setting unless using a non-standard composer installation.\n\n**GeoIP2 Settings**\n```php\ndefine('GEO_ENABLE', 1);\ndefine('GEO_DB', 'includes/geolite2.mmdb');\n```\nAllows you to select between jsmitty12's phpWhois package and the MaxMind DB Reader package. The default is to use the MaxMind DB Reader package, as it provides the most relevant data to the user. To fall back to the jsmitty12's phpWhois package, change the `GEO_ENABLE` option to `0`.\n\nThe second option, `GEO_DB` is used in conjunction with the MaxMind DB Reader package. The path to the MaxMind GeoIP database is relative to the root of the software package.\n\n**Date Range**\n```php\ndefine('DATE_RANGE', '-1w');\n```\nDefines the standard starting date range for data presented. All pages where dates are relevant start at a certain point and end at the time the page is loaded. This option defines where that starting point is, and the increment by which that starting date is changed.\n\nValid date signifiers are `m`, `w`, and `d` for \"month\", \"week\", and \"day\".\n\n# Tested System Configurations\n\n| OS              | HTTP          | PHP    | SQL             |\n| --------------- | ------------- | ------ | --------------- |\n| Debian 11.6     | Apache 2.4.56 | 8.2.5  | MariaDB 10.5.18 |\n| Debian 11.6     | Apache 2.4.56 | 8.2.5  | PostgreSQL 13.9 |\n| Debian 11.6     | Apache 2.4.56 | 7.4.33 | MariaDB 10.5.18 |\n| Debian 11.6     | Apache 2.4.56 | 7.4.33 | PostgreSQL 13.9 |\n| CentOS 7.6.1810 | Apache 2.4.6  | 5.4.16 | MariaDB 5.5.65  |\n\nIf you have a system configuration not listed, and would like to contribue this data, please [provide feedback](https://github.com/userjack6880/Open-Dmarc-Analyzer/issues).\n\n# Release Cycle and Versioning\n\nAt release, End of Support and End of Life will be determined based on what will be in the next version. Versioning is under the Anomaly Versioning Scheme (2022), as outlined in `VERSIONING` under `docs`.\n\n# Support\n\nSupport will be provided as outlined in the following schedule. For more details, see `SUPPORT`.\n\n| Version                             | Released         | End of Support   | End of Life      |\n| ----------------------------------- | ---------------- | ---------------- | ---------------- |\n| Version 1 (Stable)                  | 15 May 2023      | 15 May 2024      | 31 December 2024 |\n\n# Contributing\n\nPublic contributions are encouraged. Please review `CONTRIBUTING` under `docs` for contributing procedures. Additionally, please take a look at our `CODE_OF_CONDUCT`. By participating in this project you agree to abide by the Code of Conduct.\n\n# Contributors\n\nPrimary Contributors\n- John Bradley - Initial Work\n\nThanks to [all who contributed](https://github.com/userjack6880/Open-DMARC-Analyzer/graphs/contributors) and [have given feedback](https://github.com/userjack6880/Open-DMARC-Analyzer/issues?q=is%3Aissue).\n\n# Licenses and Copyrights\n\nCopyright © 2023 John Bradley (userjack6880). Open DMARC Analyzer is released under GNU GPLv3. See `LICENSE`.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuserjack6880%2FOpen-DMARC-Analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuserjack6880%2FOpen-DMARC-Analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuserjack6880%2FOpen-DMARC-Analyzer/lists"}