mirror of
https://github.com/maelgangloff/domain-watchdog.git
synced 2025-12-29 16:15:04 +00:00
feat: prepare demo instance
refactor: move REDIS_URL in envvar ci: add deploy.yml ci: update deploy.yml ci: update deploy.yml chore: update Exception list in sentry.yaml ci: update deploy.yml
This commit is contained in:
6
.env
6
.env
@@ -94,3 +94,9 @@ INFLUXDB_URL=http://localhost:8086
|
|||||||
INFLUXDB_TOKEN=TOKEN
|
INFLUXDB_TOKEN=TOKEN
|
||||||
INFLUXDB_BUCKET=domainwatchdog
|
INFLUXDB_BUCKET=domainwatchdog
|
||||||
INFLUXDB_ORG=domainwatchdog
|
INFLUXDB_ORG=domainwatchdog
|
||||||
|
|
||||||
|
###> sentry/sentry-symfony ###
|
||||||
|
SENTRY_DSN=
|
||||||
|
###< sentry/sentry-symfony ###
|
||||||
|
|
||||||
|
REDIS_URL=
|
||||||
|
|||||||
30
.github/workflows/deploy.yml
vendored
Normal file
30
.github/workflows/deploy.yml
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
name: Deploy Demo
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [demo-instance]
|
||||||
|
|
||||||
|
concurrency: production_environment
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
environment:
|
||||||
|
name: Domain Watchdog Demo
|
||||||
|
url: https://demo.domainwatchdog.eu
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup PHP
|
||||||
|
uses: shivammathur/setup-php@v2
|
||||||
|
with:
|
||||||
|
php-version: "8.4"
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: composer install
|
||||||
|
|
||||||
|
- name: Deploy
|
||||||
|
uses: deployphp/action@v1
|
||||||
|
with:
|
||||||
|
private-key: ${{ secrets.DEPLOYER_PRIVATE_KEY }}
|
||||||
|
dep: deploy
|
||||||
@@ -44,6 +44,7 @@
|
|||||||
"psr/http-client": "^1.0",
|
"psr/http-client": "^1.0",
|
||||||
"runtime/frankenphp-symfony": "^0.2.0",
|
"runtime/frankenphp-symfony": "^0.2.0",
|
||||||
"scienta/doctrine-json-functions": "^6.3",
|
"scienta/doctrine-json-functions": "^6.3",
|
||||||
|
"sentry/sentry-symfony": "^5.6",
|
||||||
"symfony/asset": "7.3.*",
|
"symfony/asset": "7.3.*",
|
||||||
"symfony/asset-mapper": "7.3.*",
|
"symfony/asset-mapper": "7.3.*",
|
||||||
"symfony/cache": "7.3.*",
|
"symfony/cache": "7.3.*",
|
||||||
@@ -148,6 +149,7 @@
|
|||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/doctrine-fixtures-bundle": "^4.2",
|
"doctrine/doctrine-fixtures-bundle": "^4.2",
|
||||||
|
"deployer/deployer": "^7.5",
|
||||||
"friendsofphp/php-cs-fixer": "^3.61",
|
"friendsofphp/php-cs-fixer": "^3.61",
|
||||||
"justinrainbow/json-schema": "^6.6",
|
"justinrainbow/json-schema": "^6.6",
|
||||||
"phpstan/phpstan": "^1.11",
|
"phpstan/phpstan": "^1.11",
|
||||||
|
|||||||
393
composer.lock
generated
393
composer.lock
generated
@@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "eda6c30d2f98c773780d758d5129f17e",
|
"content-hash": "815a28999cc82c44dc3555d9bc10ccd8",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "api-platform/core",
|
"name": "api-platform/core",
|
||||||
@@ -1997,6 +1997,66 @@
|
|||||||
},
|
},
|
||||||
"time": "2025-06-26T05:12:59+00:00"
|
"time": "2025-06-26T05:12:59+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "jean85/pretty-package-versions",
|
||||||
|
"version": "2.1.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/Jean85/pretty-package-versions.git",
|
||||||
|
"reference": "4d7aa5dab42e2a76d99559706022885de0e18e1a"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/4d7aa5dab42e2a76d99559706022885de0e18e1a",
|
||||||
|
"reference": "4d7aa5dab42e2a76d99559706022885de0e18e1a",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"composer-runtime-api": "^2.1.0",
|
||||||
|
"php": "^7.4|^8.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"friendsofphp/php-cs-fixer": "^3.2",
|
||||||
|
"jean85/composer-provided-replaced-stub-package": "^1.0",
|
||||||
|
"phpstan/phpstan": "^2.0",
|
||||||
|
"phpunit/phpunit": "^7.5|^8.5|^9.6",
|
||||||
|
"rector/rector": "^2.0",
|
||||||
|
"vimeo/psalm": "^4.3 || ^5.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Jean85\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Alessandro Lai",
|
||||||
|
"email": "alessandro.lai85@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A library to get pretty versions strings of installed dependencies",
|
||||||
|
"keywords": [
|
||||||
|
"composer",
|
||||||
|
"package",
|
||||||
|
"release",
|
||||||
|
"versions"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/Jean85/pretty-package-versions/issues",
|
||||||
|
"source": "https://github.com/Jean85/pretty-package-versions/tree/2.1.1"
|
||||||
|
},
|
||||||
|
"time": "2025-03-19T14:43:43+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "knpuniversity/oauth2-client-bundle",
|
"name": "knpuniversity/oauth2-client-bundle",
|
||||||
"version": "v2.20.1",
|
"version": "v2.20.1",
|
||||||
@@ -4262,6 +4322,196 @@
|
|||||||
},
|
},
|
||||||
"time": "2024-11-08T12:33:19+00:00"
|
"time": "2024-11-08T12:33:19+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "sentry/sentry",
|
||||||
|
"version": "4.19.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/getsentry/sentry-php.git",
|
||||||
|
"reference": "1c21d60bebe67c0122335bd3fe977990435af0a3"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/getsentry/sentry-php/zipball/1c21d60bebe67c0122335bd3fe977990435af0a3",
|
||||||
|
"reference": "1c21d60bebe67c0122335bd3fe977990435af0a3",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-curl": "*",
|
||||||
|
"ext-json": "*",
|
||||||
|
"ext-mbstring": "*",
|
||||||
|
"guzzlehttp/psr7": "^1.8.4|^2.1.1",
|
||||||
|
"jean85/pretty-package-versions": "^1.5|^2.0.4",
|
||||||
|
"php": "^7.2|^8.0",
|
||||||
|
"psr/log": "^1.0|^2.0|^3.0",
|
||||||
|
"symfony/options-resolver": "^4.4.30|^5.0.11|^6.0|^7.0|^8.0"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"raven/raven": "*"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"friendsofphp/php-cs-fixer": "^3.4",
|
||||||
|
"guzzlehttp/promises": "^2.0.3",
|
||||||
|
"guzzlehttp/psr7": "^1.8.4|^2.1.1",
|
||||||
|
"monolog/monolog": "^1.6|^2.0|^3.0",
|
||||||
|
"phpbench/phpbench": "^1.0",
|
||||||
|
"phpstan/phpstan": "^1.3",
|
||||||
|
"phpunit/phpunit": "^8.5|^9.6",
|
||||||
|
"vimeo/psalm": "^4.17"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"monolog/monolog": "Allow sending log messages to Sentry by using the included Monolog handler."
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"src/functions.php"
|
||||||
|
],
|
||||||
|
"psr-4": {
|
||||||
|
"Sentry\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Sentry",
|
||||||
|
"email": "accounts@sentry.io"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "PHP SDK for Sentry (http://sentry.io)",
|
||||||
|
"homepage": "http://sentry.io",
|
||||||
|
"keywords": [
|
||||||
|
"crash-reporting",
|
||||||
|
"crash-reports",
|
||||||
|
"error-handler",
|
||||||
|
"error-monitoring",
|
||||||
|
"log",
|
||||||
|
"logging",
|
||||||
|
"profiling",
|
||||||
|
"sentry",
|
||||||
|
"tracing"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/getsentry/sentry-php/issues",
|
||||||
|
"source": "https://github.com/getsentry/sentry-php/tree/4.19.1"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://sentry.io/",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://sentry.io/pricing/",
|
||||||
|
"type": "custom"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2025-12-02T15:57:41+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sentry/sentry-symfony",
|
||||||
|
"version": "5.8.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/getsentry/sentry-symfony.git",
|
||||||
|
"reference": "fb03d506c575cd1cb5274774d0dd968938150982"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/getsentry/sentry-symfony/zipball/fb03d506c575cd1cb5274774d0dd968938150982",
|
||||||
|
"reference": "fb03d506c575cd1cb5274774d0dd968938150982",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"guzzlehttp/psr7": "^2.1.1",
|
||||||
|
"jean85/pretty-package-versions": "^1.5||^2.0",
|
||||||
|
"php": "^7.2||^8.0",
|
||||||
|
"sentry/sentry": "^4.19.1",
|
||||||
|
"symfony/cache-contracts": "^1.1||^2.4||^3.0",
|
||||||
|
"symfony/config": "^4.4.20||^5.0.11||^6.0||^7.0||^8.0",
|
||||||
|
"symfony/console": "^4.4.20||^5.0.11||^6.0||^7.0||^8.0",
|
||||||
|
"symfony/dependency-injection": "^4.4.20||^5.0.11||^6.0||^7.0||^8.0",
|
||||||
|
"symfony/event-dispatcher": "^4.4.20||^5.0.11||^6.0||^7.0||^8.0",
|
||||||
|
"symfony/http-kernel": "^4.4.20||^5.0.11||^6.0||^7.0||^8.0",
|
||||||
|
"symfony/polyfill-php80": "^1.22",
|
||||||
|
"symfony/psr-http-message-bridge": "^1.2||^2.0||^6.4||^7.0||^8.0",
|
||||||
|
"symfony/yaml": "^4.4.20||^5.0.11||^6.0||^7.0||^8.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"doctrine/dbal": "^2.13||^3.3||^4.0",
|
||||||
|
"doctrine/doctrine-bundle": "^2.6||^3.0",
|
||||||
|
"friendsofphp/php-cs-fixer": "^2.19||^3.40",
|
||||||
|
"masterminds/html5": "^2.8",
|
||||||
|
"phpstan/extension-installer": "^1.0",
|
||||||
|
"phpstan/phpstan": "1.12.5",
|
||||||
|
"phpstan/phpstan-phpunit": "1.4.0",
|
||||||
|
"phpstan/phpstan-symfony": "1.4.10",
|
||||||
|
"phpunit/phpunit": "^8.5.40||^9.6.21",
|
||||||
|
"symfony/browser-kit": "^4.4.20||^5.0.11||^6.0||^7.0||^8.0",
|
||||||
|
"symfony/cache": "^4.4.20||^5.0.11||^6.0||^7.0||^8.0",
|
||||||
|
"symfony/dom-crawler": "^4.4.20||^5.0.11||^6.0||^7.0||^8.0",
|
||||||
|
"symfony/framework-bundle": "^4.4.20||^5.0.11||^6.0||^7.0||^8.0",
|
||||||
|
"symfony/http-client": "^4.4.20||^5.0.11||^6.0||^7.0||^8.0",
|
||||||
|
"symfony/messenger": "^4.4.20||^5.0.11||^6.0||^7.0||^8.0",
|
||||||
|
"symfony/monolog-bundle": "^3.4||^4.0",
|
||||||
|
"symfony/phpunit-bridge": "^5.2.6||^6.0||^7.0||^8.0",
|
||||||
|
"symfony/process": "^4.4.20||^5.0.11||^6.0||^7.0||^8.0",
|
||||||
|
"symfony/security-core": "^4.4.20||^5.0.11||^6.0||^7.0||^8.0",
|
||||||
|
"symfony/security-http": "^4.4.20||^5.0.11||^6.0||^7.0||^8.0",
|
||||||
|
"symfony/twig-bundle": "^4.4.20||^5.0.11||^6.0||^7.0||^8.0",
|
||||||
|
"vimeo/psalm": "^4.3||^5.16.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"doctrine/doctrine-bundle": "Allow distributed tracing of database queries using Sentry.",
|
||||||
|
"monolog/monolog": "Allow sending log messages to Sentry by using the included Monolog handler.",
|
||||||
|
"symfony/cache": "Allow distributed tracing of cache pools using Sentry.",
|
||||||
|
"symfony/twig-bundle": "Allow distributed tracing of Twig template rendering using Sentry."
|
||||||
|
},
|
||||||
|
"type": "symfony-bundle",
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"src/aliases.php"
|
||||||
|
],
|
||||||
|
"psr-4": {
|
||||||
|
"Sentry\\SentryBundle\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Sentry",
|
||||||
|
"email": "accounts@sentry.io"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony integration for Sentry (http://getsentry.com)",
|
||||||
|
"homepage": "http://getsentry.com",
|
||||||
|
"keywords": [
|
||||||
|
"errors",
|
||||||
|
"logging",
|
||||||
|
"sentry",
|
||||||
|
"symfony"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/getsentry/sentry-symfony/issues",
|
||||||
|
"source": "https://github.com/getsentry/sentry-symfony/tree/5.8.2"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://sentry.io/",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://sentry.io/pricing/",
|
||||||
|
"type": "custom"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2025-12-04T12:34:17+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/asset",
|
"name": "symfony/asset",
|
||||||
"version": "v7.3.0",
|
"version": "v7.3.0",
|
||||||
@@ -8565,6 +8815,93 @@
|
|||||||
],
|
],
|
||||||
"time": "2025-12-05T13:52:40+00:00"
|
"time": "2025-12-05T13:52:40+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/psr-http-message-bridge",
|
||||||
|
"version": "v7.3.8",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/psr-http-message-bridge.git",
|
||||||
|
"reference": "0c0c89215703cc91cee31e9da3cbf4235fc332f1"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/0c0c89215703cc91cee31e9da3cbf4235fc332f1",
|
||||||
|
"reference": "0c0c89215703cc91cee31e9da3cbf4235fc332f1",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=8.2",
|
||||||
|
"psr/http-message": "^1.0|^2.0",
|
||||||
|
"symfony/http-foundation": "^6.4|^7.0"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"php-http/discovery": "<1.15",
|
||||||
|
"symfony/http-kernel": "<6.4"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"nyholm/psr7": "^1.1",
|
||||||
|
"php-http/discovery": "^1.15",
|
||||||
|
"psr/log": "^1.1.4|^2|^3",
|
||||||
|
"symfony/browser-kit": "^6.4|^7.0",
|
||||||
|
"symfony/config": "^6.4|^7.0",
|
||||||
|
"symfony/event-dispatcher": "^6.4|^7.0",
|
||||||
|
"symfony/framework-bundle": "^6.4|^7.0",
|
||||||
|
"symfony/http-kernel": "^6.4|^7.0"
|
||||||
|
},
|
||||||
|
"type": "symfony-bridge",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\Bridge\\PsrHttpMessage\\": ""
|
||||||
|
},
|
||||||
|
"exclude-from-classmap": [
|
||||||
|
"/Tests/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "PSR HTTP message bridge",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"keywords": [
|
||||||
|
"http",
|
||||||
|
"http-message",
|
||||||
|
"psr-17",
|
||||||
|
"psr-7"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"source": "https://github.com/symfony/psr-http-message-bridge/tree/v7.3.8"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://symfony.com/sponsor",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/fabpot",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/nicolas-grekas",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2025-11-12T19:00:12+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/pushover-notifier",
|
"name": "symfony/pushover-notifier",
|
||||||
"version": "v7.3.0",
|
"version": "v7.3.0",
|
||||||
@@ -11757,6 +12094,60 @@
|
|||||||
],
|
],
|
||||||
"time": "2024-05-06T16:37:16+00:00"
|
"time": "2024-05-06T16:37:16+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "deployer/deployer",
|
||||||
|
"version": "v7.5.12",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/deployphp/deployer.git",
|
||||||
|
"reference": "efc71dac9ccc86b3f9946e75d50cb106b775aae2"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/deployphp/deployer/zipball/efc71dac9ccc86b3f9946e75d50cb106b775aae2",
|
||||||
|
"reference": "efc71dac9ccc86b3f9946e75d50cb106b775aae2",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-json": "*",
|
||||||
|
"php": "^8.0|^7.3"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"friendsofphp/php-cs-fixer": "^3.64",
|
||||||
|
"pestphp/pest": "^3.3",
|
||||||
|
"phpstan/phpstan": "^1.4",
|
||||||
|
"phpunit/php-code-coverage": "^11.0",
|
||||||
|
"phpunit/phpunit": "^11.4"
|
||||||
|
},
|
||||||
|
"bin": [
|
||||||
|
"bin/dep"
|
||||||
|
],
|
||||||
|
"type": "library",
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Anton Medvedev",
|
||||||
|
"email": "anton@medv.io"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Deployment Tool",
|
||||||
|
"homepage": "https://deployer.org",
|
||||||
|
"support": {
|
||||||
|
"docs": "https://deployer.org/docs",
|
||||||
|
"issues": "https://github.com/deployphp/deployer/issues",
|
||||||
|
"source": "https://github.com/deployphp/deployer"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/sponsors/antonmedv",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2025-02-19T16:45:27+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "doctrine/data-fixtures",
|
"name": "doctrine/data-fixtures",
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ return [
|
|||||||
KnpU\OAuth2ClientBundle\KnpUOAuth2ClientBundle::class => ['all' => true],
|
KnpU\OAuth2ClientBundle\KnpUOAuth2ClientBundle::class => ['all' => true],
|
||||||
Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true],
|
Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true],
|
||||||
SymfonyCasts\Bundle\VerifyEmail\SymfonyCastsVerifyEmailBundle::class => ['all' => true],
|
SymfonyCasts\Bundle\VerifyEmail\SymfonyCastsVerifyEmailBundle::class => ['all' => true],
|
||||||
|
Sentry\SentryBundle\SentryBundle::class => ['all' => true],
|
||||||
Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true],
|
Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true],
|
||||||
Zenstruck\Foundry\ZenstruckFoundryBundle::class => ['dev' => true, 'test' => true],
|
Zenstruck\Foundry\ZenstruckFoundryBundle::class => ['dev' => true, 'test' => true],
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ framework:
|
|||||||
# Other options include:
|
# Other options include:
|
||||||
|
|
||||||
# Redis
|
# Redis
|
||||||
#app: cache.adapter.redis
|
app: cache.adapter.redis
|
||||||
#default_redis_provider: redis://localhost
|
default_redis_provider: '%env(REDIS_URL)%'
|
||||||
|
|
||||||
# APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues)
|
# APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues)
|
||||||
#app: cache.adapter.apcu
|
#app: cache.adapter.apcu
|
||||||
|
|||||||
@@ -60,3 +60,10 @@ when@prod:
|
|||||||
channels: [ deprecation ]
|
channels: [ deprecation ]
|
||||||
path: php://stderr
|
path: php://stderr
|
||||||
formatter: monolog.formatter.json
|
formatter: monolog.formatter.json
|
||||||
|
|
||||||
|
file_log:
|
||||||
|
type: rotating_file
|
||||||
|
path: "%kernel.logs_dir%/%kernel.environment%.log"
|
||||||
|
level: info
|
||||||
|
max_files: 2
|
||||||
|
channels: [ "!cache", "!deprecation", "!messenger", "!security" ]
|
||||||
|
|||||||
57
config/packages/sentry.yaml
Normal file
57
config/packages/sentry.yaml
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
sentry:
|
||||||
|
register_error_listener: false # Disables the ErrorListener to avoid duplicated log in sentry
|
||||||
|
register_error_handler: false # Disables the ErrorListener, ExceptionListener and FatalErrorListener integrations of the base PHP SDK
|
||||||
|
|
||||||
|
|
||||||
|
services:
|
||||||
|
# (Optionally) Configure the breadcrumb handler as a service (needed for the breadcrumb Monolog handler)
|
||||||
|
Sentry\Monolog\BreadcrumbHandler:
|
||||||
|
arguments:
|
||||||
|
- '@Sentry\State\HubInterface'
|
||||||
|
- !php/const Monolog\Logger::INFO # Configures the level of messages to capture as breadcrumbs
|
||||||
|
monolog:
|
||||||
|
handlers:
|
||||||
|
# (Optionally) Register the breadcrumb handler as a Monolog handler
|
||||||
|
sentry_breadcrumbs:
|
||||||
|
type: service
|
||||||
|
name: sentry_breadcrumbs
|
||||||
|
id: Sentry\Monolog\BreadcrumbHandler
|
||||||
|
# Register the handler as a Monolog handler to capture messages as events
|
||||||
|
sentry:
|
||||||
|
type: sentry
|
||||||
|
level: !php/const Monolog\Logger::ERROR # Configures the level of messages to capture as events
|
||||||
|
hub_id: Sentry\State\HubInterface
|
||||||
|
fill_extra_context: true # Enables sending monolog context to Sentry
|
||||||
|
process_psr_3_messages: false # Disables the resolution of PSR-3 placeholders in reported messages
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
when@prod:
|
||||||
|
sentry:
|
||||||
|
dsn: '%env(SENTRY_DSN)%'
|
||||||
|
options:
|
||||||
|
# Add request headers, cookies, IP address and the authenticated user
|
||||||
|
# see https://docs.sentry.io/platforms/php/data-management/data-collected/ for more info
|
||||||
|
# send_default_pii: true
|
||||||
|
ignore_exceptions:
|
||||||
|
- 'Symfony\Component\HttpKernel\Exception\NotFoundHttpException'
|
||||||
|
- 'Symfony\Component\Security\Core\Exception\AccessDeniedException'
|
||||||
|
- 'Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException'
|
||||||
|
- 'App\Exception\DomainNotFoundException'
|
||||||
|
- 'App\Exception\MalformedDomainException'
|
||||||
|
- 'App\Exception\TldNotSupportedException'
|
||||||
|
- 'App\Exception\UnknownRdapServerException'
|
||||||
|
|
||||||
|
# If you are using Monolog, you also need this additional configuration to log the errors correctly:
|
||||||
|
# https://docs.sentry.io/platforms/php/guides/symfony/#monolog-integration
|
||||||
|
register_error_listener: false
|
||||||
|
register_error_handler: false
|
||||||
|
|
||||||
|
# monolog:
|
||||||
|
# handlers:
|
||||||
|
# sentry:
|
||||||
|
# type: sentry
|
||||||
|
# level: !php/const Monolog\Logger::ERROR
|
||||||
|
# hub_id: Sentry\State\HubInterface
|
||||||
|
# fill_extra_context: true # Enables sending monolog context to Sentry
|
||||||
|
# process_psr_3_messages: false # Disables the resolution of PSR-3 placeholders
|
||||||
38
deploy.php
Normal file
38
deploy.php
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Deployer;
|
||||||
|
|
||||||
|
require 'recipe/symfony.php';
|
||||||
|
|
||||||
|
// Config
|
||||||
|
set('repository', 'https://github.com/maelgangloff/domain-watchdog.git');
|
||||||
|
set('branch', 'demo-instance');
|
||||||
|
set('keep_releases', 1);
|
||||||
|
|
||||||
|
add('shared_files', []);
|
||||||
|
add('shared_dirs', ['node_modules', 'public/content', 'config/jwt', 'config/app']);
|
||||||
|
add('writable_dirs', []);
|
||||||
|
|
||||||
|
// Hosts
|
||||||
|
|
||||||
|
host('dw1.srv.domainwatchdog.eu')
|
||||||
|
->setPort(2004)
|
||||||
|
->set('remote_user', 'deploy')
|
||||||
|
->set('deploy_path', '/var/www/demo.domainwatchdog.eu');
|
||||||
|
|
||||||
|
desc('Build frontend');
|
||||||
|
task('front:build', function () {
|
||||||
|
run("cd {{release_or_current_path}} && yarn install --no-dev && yarn run build && yarn run ttag:po2json && rm -rf node_modules");
|
||||||
|
});
|
||||||
|
|
||||||
|
desc('Restart workers');
|
||||||
|
task('workers:restart', function () {
|
||||||
|
run("cd {{release_or_current_path}} && bin/console messenger:stop-workers");
|
||||||
|
});
|
||||||
|
|
||||||
|
// Hooks
|
||||||
|
|
||||||
|
after('deploy:failed', 'deploy:unlock');
|
||||||
|
after('deploy:vendors', 'database:migrate');
|
||||||
|
after('deploy:vendors', 'front:build');
|
||||||
|
after('deploy:unlock', 'workers:restart');
|
||||||
@@ -1,2 +1,5 @@
|
|||||||
User-agent: *
|
User-agent: Twitterbot
|
||||||
Disallow: /
|
Allow: /images
|
||||||
|
|
||||||
|
User-agent: facebookexternalhit
|
||||||
|
Allow: /images
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ namespace App\MessageHandler;
|
|||||||
use App\Message\UpdateRdapServers;
|
use App\Message\UpdateRdapServers;
|
||||||
use App\Repository\DomainRepository;
|
use App\Repository\DomainRepository;
|
||||||
use App\Service\OfficialDataService;
|
use App\Service\OfficialDataService;
|
||||||
|
use Sentry\CheckInStatus;
|
||||||
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
|
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
|
||||||
use Symfony\Component\Messenger\Attribute\AsMessageHandler;
|
use Symfony\Component\Messenger\Attribute\AsMessageHandler;
|
||||||
use Symfony\Contracts\HttpClient\Exception\ClientExceptionInterface;
|
use Symfony\Contracts\HttpClient\Exception\ClientExceptionInterface;
|
||||||
@@ -13,6 +14,8 @@ use Symfony\Contracts\HttpClient\Exception\RedirectionExceptionInterface;
|
|||||||
use Symfony\Contracts\HttpClient\Exception\ServerExceptionInterface;
|
use Symfony\Contracts\HttpClient\Exception\ServerExceptionInterface;
|
||||||
use Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface;
|
use Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface;
|
||||||
|
|
||||||
|
use function Sentry\captureCheckIn;
|
||||||
|
|
||||||
#[AsMessageHandler]
|
#[AsMessageHandler]
|
||||||
final readonly class UpdateRdapServersHandler
|
final readonly class UpdateRdapServersHandler
|
||||||
{
|
{
|
||||||
@@ -32,6 +35,11 @@ final readonly class UpdateRdapServersHandler
|
|||||||
*/
|
*/
|
||||||
public function __invoke(UpdateRdapServers $message): void
|
public function __invoke(UpdateRdapServers $message): void
|
||||||
{
|
{
|
||||||
|
$checkInId = captureCheckIn(
|
||||||
|
slug: 'update-rdap-servers',
|
||||||
|
status: CheckInStatus::inProgress()
|
||||||
|
);
|
||||||
|
|
||||||
/** @var \Throwable[] $throws */
|
/** @var \Throwable[] $throws */
|
||||||
$throws = [];
|
$throws = [];
|
||||||
|
|
||||||
@@ -75,7 +83,18 @@ final readonly class UpdateRdapServersHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($throws)) {
|
if (!empty($throws)) {
|
||||||
|
captureCheckIn(
|
||||||
|
slug: 'update-rdap-servers',
|
||||||
|
status: CheckInStatus::error(),
|
||||||
|
checkInId: $checkInId,
|
||||||
|
);
|
||||||
|
|
||||||
throw $throws[0];
|
throw $throws[0];
|
||||||
}
|
}
|
||||||
|
captureCheckIn(
|
||||||
|
slug: 'update-rdap-servers',
|
||||||
|
status: CheckInStatus::ok(),
|
||||||
|
checkInId: $checkInId,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ final readonly class ProcessWatchlistSchedule implements ScheduleProviderInterfa
|
|||||||
{
|
{
|
||||||
return (new Schedule())
|
return (new Schedule())
|
||||||
->add(
|
->add(
|
||||||
RecurringMessage::every('5 minutes', new ProcessAllWatchlist()),
|
RecurringMessage::every('5 seconds', new ProcessAllWatchlist()),
|
||||||
)
|
)
|
||||||
->stateful($this->cache);
|
->stateful($this->cache);
|
||||||
}
|
}
|
||||||
|
|||||||
12
symfony.lock
12
symfony.lock
@@ -147,6 +147,18 @@
|
|||||||
"tests/bootstrap.php"
|
"tests/bootstrap.php"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"sentry/sentry-symfony": {
|
||||||
|
"version": "5.6",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes-contrib",
|
||||||
|
"branch": "main",
|
||||||
|
"version": "5.0",
|
||||||
|
"ref": "b6cb4b34429dadecd7187852123be19d628fa37a"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/sentry.yaml"
|
||||||
|
]
|
||||||
|
},
|
||||||
"symfony/asset-mapper": {
|
"symfony/asset-mapper": {
|
||||||
"version": "7.1",
|
"version": "7.1",
|
||||||
"recipe": {
|
"recipe": {
|
||||||
|
|||||||
@@ -5,33 +5,57 @@
|
|||||||
<meta name="viewport"
|
<meta name="viewport"
|
||||||
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||||
<meta name="title" content="Domain Watchdog">
|
<meta name="title" content="Domain Watchdog | Demo instance">
|
||||||
<meta name="description"
|
<meta name="description"
|
||||||
content="A standalone app that collects open access information about domain names, helping users track the history and changes associated with domain names">
|
content="A standalone app that collects open access information about domain names, helping users track the history and changes associated with domain names">
|
||||||
<meta name="keywords" content="api, tracking, whois, domain, rdap, watchdog">
|
<meta name="keywords" content="api, tracking, whois, domain, rdap, watchdog">
|
||||||
|
|
||||||
<meta property="og:type" content="website"/>
|
<meta property="og:type" content="website"/>
|
||||||
<meta property="og:title" content="Domain Watchdog"/>
|
<meta property="og:title" content="Domain Watchdog | Demo instance"/>
|
||||||
<meta property="og:image" content="/images/banner.png">
|
<meta property="og:image" content="https://domainwatchdog.eu/logo.png">
|
||||||
<meta property="og:description"
|
<meta property="og:description"
|
||||||
content="A standalone app that collects open access information about domain names, helping users track the history and changes associated with domain names"/>
|
content="A standalone app that collects open access information about domain names, helping users track the history and changes associated with domain names"/>
|
||||||
<meta property="og:site_name" content="Domain Watchdog"/>
|
<meta property="og:site_name" content="Domain Watchdog"/>
|
||||||
|
|
||||||
<meta property="twitter:card" content="summary"/>
|
<meta property="twitter:card" content="summary"/>
|
||||||
<meta property="twitter:title" content="Domain Watchdog"/>
|
<meta property="twitter:title" content="Domain Watchdog | Demo instance"/>
|
||||||
<meta property="twitter:description"
|
<meta property="twitter:description"
|
||||||
content="A standalone app that collects open access information about domain names, helping users track the history and changes associated with domain names"/>
|
content="A standalone app that collects open access information about domain names, helping users track the history and changes associated with domain names"/>
|
||||||
<meta property="twitter:image" content="/images/banner.png"/>
|
<meta property="twitter:image" content="https://domainwatchdog.eu/logo.png"/>
|
||||||
|
|
||||||
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
<title>Domain Watchdog</title>
|
<title>Domain Watchdog | Demo instance</title>
|
||||||
<link rel="manifest" href="/manifest.json"/>
|
<link rel="manifest" href="/manifest.json"/>
|
||||||
<link rel="icon" type="image/x-icon" href="/favicon.ico">
|
<link rel="icon" type="image/png" href="https://domainwatchdog.eu/logo.png">
|
||||||
{{ encore_entry_link_tags('app') }}
|
{{ encore_entry_link_tags('app') }}
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="root"></div>
|
<div id="root"></div>
|
||||||
{{ encore_entry_script_tags('app') }}
|
{{ encore_entry_script_tags('app') }}
|
||||||
|
|
||||||
|
<!-- Matomo -->
|
||||||
|
<script>
|
||||||
|
var _paq = window._paq = window._paq || [];
|
||||||
|
_paq.push(['trackPageView']);
|
||||||
|
_paq.push(['enableLinkTracking']);
|
||||||
|
_paq.push(["trackAllContentImpressions"]);
|
||||||
|
_paq.push(['trackVisibleContentImpressions']);
|
||||||
|
_paq.push(['enableHeartBeatTimer']);
|
||||||
|
|
||||||
|
(function () {
|
||||||
|
var u = "//sonar.domainwatchdog.eu/";
|
||||||
|
_paq.push(['setTrackerUrl', u + 'sonar']);
|
||||||
|
_paq.push(['setSiteId', '1']);
|
||||||
|
var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0];
|
||||||
|
g.async = true;
|
||||||
|
g.src = u + 'sonar.js';
|
||||||
|
s.parentNode.insertBefore(g, s);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<noscript><p><img referrerpolicy="no-referrer-when-downgrade" src="//sonar.domainwatchdog.eu/sonar?idsite=1&rec=1"
|
||||||
|
style="border:0;" alt=""/></p></noscript>
|
||||||
|
<!-- End Matomo Code -->
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
Reference in New Issue
Block a user