From a20344816cf63f64df693f50fa9f13111c0652a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl=20Gangloff?= Date: Thu, 16 Oct 2025 11:30:33 +0200 Subject: [PATCH] fix: watchlist creation --- docker-compose.yml | 69 ++++++++++++------------ src/State/AutoRegisterDomainProvider.php | 6 ++- 2 files changed, 41 insertions(+), 34 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 41fdc86..56ccc03 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,42 +1,47 @@ # Please see https://github.com/maelgangloff/domain-watchdog + services: domainwatchdog: image: maelgangloff/domain-watchdog:latest + container_name: domainwatchdog_app restart: unless-stopped + env_file: + - .env.local environment: + APP_ENV: prod SERVER_NAME: ${SERVER_NAME:-:80} - DATABASE_URL: postgresql://${POSTGRES_USER:-app}:${POSTGRES_PASSWORD:-!ChangeMe!}@${POSTGRES_HOST:-database}:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-app}?serverVersion=${POSTGRES_VERSION:-15}&charset=${POSTGRES_CHARSET:-utf8} - APP_SECRET: ${APP_SECRET:-ChangeMe} - REGISTRATION_ENABLED: ${REGISTRATION_ENABLED:-true} - REGISTRATION_VERIFY_EMAIL: ${REGISTRATION_VERIFY_EMAIL:-false} - LIMITED_FEATURES: ${LIMITED_FEATURES:-false} - LIMIT_MAX_WATCHLIST: ${LIMIT_MAX_WATCHLIST:-0} - LIMIT_MAX_WATCHLIST_DOMAINS: ${LIMIT_MAX_WATCHLIST_DOMAINS:-0} - LIMIT_MAX_WATCHLIST_WEBHOOKS: ${LIMIT_MAX_WATCHLIST_WEBHOOKS:-0} - MAILER_DSN: ${MAILER_DSN:-null://null} + DATABASE_URL: postgresql://${POSTGRES_USER:-app}:${POSTGRES_PASSWORD:-!ChangeMe!}@database:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-app}?serverVersion=${POSTGRES_VERSION:-15}&charset=${POSTGRES_CHARSET:-utf8} + MESSENGER_TRANSPORT_DSN: redis://valkey:6379/messages volumes: - caddy_data:/data - caddy_config:/config - ./public/content:/app/public/content ports: - "127.0.0.1:8080:80" + depends_on: + - database php-worker: image: maelgangloff/domain-watchdog:latest + container_name: domainwatchdog_worker restart: always command: php /app/bin/console messenger:consume --all --time-limit=3600 -vvv + env_file: + - .env.local environment: - DATABASE_URL: postgresql://${POSTGRES_USER:-app}:${POSTGRES_PASSWORD:-!ChangeMe!}@${POSTGRES_HOST:-database}:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-app}?serverVersion=${POSTGRES_VERSION:-15}&charset=${POSTGRES_CHARSET:-utf8} - APP_SECRET: ${APP_SECRET:-ChangeMe} - MAILER_DSN: ${MAILER_DSN:-null://null} + APP_ENV: prod + DATABASE_URL: postgresql://${POSTGRES_USER:-app}:${POSTGRES_PASSWORD:-!ChangeMe!}@database:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-app}?serverVersion=${POSTGRES_VERSION:-15}&charset=${POSTGRES_CHARSET:-utf8} + MESSENGER_TRANSPORT_DSN: redis://valkey:6379/messages + depends_on: + - database healthcheck: - disable: true test: [ ] - # volumes: - # - ./custom_rdap_servers.yaml:/app/config/app/custom_rdap_servers.yaml # Please see #41 issue + disable: true database: image: postgres:${POSTGRES_VERSION:-16}-alpine + container_name: domainwatchdog_db + restart: unless-stopped environment: POSTGRES_DB: ${POSTGRES_DB:-app} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-!ChangeMe!} @@ -49,25 +54,23 @@ services: volumes: - database_data:/var/lib/postgresql/data:rw -# keydb: -# image: eqalpha/keydb:latest -# container_name: keydb -# restart: always -# ports: -# - "127.0.0.1:6379:6379" + valkey: + image: valkey/valkey + container_name: valkey + restart: always -# influxdb2: -# image: influxdb:2 -# ports: -# - "127.0.0.1:8086:8086" -# environment: -# DOCKER_INFLUXDB_INIT_MODE: setup -# DOCKER_INFLUXDB_INIT_USERNAME: USERNAME # Please modify -# DOCKER_INFLUXDB_INIT_PASSWORD: PASSWORD # Please modify -# DOCKER_INFLUXDB_INIT_ADMIN_TOKEN: my-super-secret-auth-token # Please modify -# DOCKER_INFLUXDB_INIT_RETENTION: 0 -# DOCKER_INFLUXDB_INIT_ORG: domainwatchdog -# DOCKER_INFLUXDB_INIT_BUCKET: domainwatchdog +# influxdb2: +# image: influxdb:2 +# ports: +# - "127.0.0.1:8086:8086" +# environment: +# DOCKER_INFLUXDB_INIT_MODE: setup +# DOCKER_INFLUXDB_INIT_USERNAME: USERNAME # Please modify +# DOCKER_INFLUXDB_INIT_PASSWORD: PASSWORD # Please modify +# DOCKER_INFLUXDB_INIT_ADMIN_TOKEN: my-super-secret-auth-token # Please modify +# DOCKER_INFLUXDB_INIT_RETENTION: 0 +# DOCKER_INFLUXDB_INIT_ORG: domainwatchdog +# DOCKER_INFLUXDB_INIT_BUCKET: domainwatchdog volumes: caddy_data: diff --git a/src/State/AutoRegisterDomainProvider.php b/src/State/AutoRegisterDomainProvider.php index 07d5bcb..dc061ee 100644 --- a/src/State/AutoRegisterDomainProvider.php +++ b/src/State/AutoRegisterDomainProvider.php @@ -13,6 +13,7 @@ use Psr\Log\LoggerInterface; use Random\Randomizer; use Symfony\Bundle\SecurityBundle\Security; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; +use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpKernel\Exception\TooManyRequestsHttpException; use Symfony\Component\HttpKernel\KernelInterface; use Symfony\Component\Messenger\MessageBusInterface; @@ -29,6 +30,7 @@ readonly class AutoRegisterDomainProvider implements ProviderInterface private LoggerInterface $logger, private DomainRepository $domainRepository, private MessageBusInterface $bus, + private RequestStack $requestStack, ) { } @@ -42,6 +44,8 @@ readonly class AutoRegisterDomainProvider implements ProviderInterface 'ldhName' => $idnDomain, ]); + $request = $this->requestStack->getCurrentRequest(); + /** @var ?Domain $domain */ $domain = $this->domainRepository->findOneBy(['ldhName' => $idnDomain]); // If the domain name exists in the database, recently updated and not important, we return the stored Domain @@ -49,7 +53,7 @@ readonly class AutoRegisterDomainProvider implements ProviderInterface && !$domain->getDeleted() && !$domain->isToBeUpdated(true, true) && !$this->kernel->isDebug() - && true !== filter_var($context['request']->get('forced', false), FILTER_VALIDATE_BOOLEAN) + && ($request && !filter_var($request->get('forced', false), FILTER_VALIDATE_BOOLEAN)) ) { $this->logger->debug('It is not necessary to update the domain name', [ 'ldhName' => $idnDomain,