fix: watchlist creation

This commit is contained in:
Maël Gangloff
2025-10-16 11:30:33 +02:00
parent 39c546969c
commit a20344816c
2 changed files with 41 additions and 34 deletions

View File

@@ -1,42 +1,47 @@
# Please see https://github.com/maelgangloff/domain-watchdog # Please see https://github.com/maelgangloff/domain-watchdog
services: services:
domainwatchdog: domainwatchdog:
image: maelgangloff/domain-watchdog:latest image: maelgangloff/domain-watchdog:latest
container_name: domainwatchdog_app
restart: unless-stopped restart: unless-stopped
env_file:
- .env.local
environment: environment:
APP_ENV: prod
SERVER_NAME: ${SERVER_NAME:-:80} 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} DATABASE_URL: postgresql://${POSTGRES_USER:-app}:${POSTGRES_PASSWORD:-!ChangeMe!}@database:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-app}?serverVersion=${POSTGRES_VERSION:-15}&charset=${POSTGRES_CHARSET:-utf8}
APP_SECRET: ${APP_SECRET:-ChangeMe} MESSENGER_TRANSPORT_DSN: redis://valkey:6379/messages
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}
volumes: volumes:
- caddy_data:/data - caddy_data:/data
- caddy_config:/config - caddy_config:/config
- ./public/content:/app/public/content - ./public/content:/app/public/content
ports: ports:
- "127.0.0.1:8080:80" - "127.0.0.1:8080:80"
depends_on:
- database
php-worker: php-worker:
image: maelgangloff/domain-watchdog:latest image: maelgangloff/domain-watchdog:latest
container_name: domainwatchdog_worker
restart: always restart: always
command: php /app/bin/console messenger:consume --all --time-limit=3600 -vvv command: php /app/bin/console messenger:consume --all --time-limit=3600 -vvv
env_file:
- .env.local
environment: 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_ENV: prod
APP_SECRET: ${APP_SECRET:-ChangeMe} DATABASE_URL: postgresql://${POSTGRES_USER:-app}:${POSTGRES_PASSWORD:-!ChangeMe!}@database:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-app}?serverVersion=${POSTGRES_VERSION:-15}&charset=${POSTGRES_CHARSET:-utf8}
MAILER_DSN: ${MAILER_DSN:-null://null} MESSENGER_TRANSPORT_DSN: redis://valkey:6379/messages
depends_on:
- database
healthcheck: healthcheck:
disable: true
test: [ ] test: [ ]
# volumes: disable: true
# - ./custom_rdap_servers.yaml:/app/config/app/custom_rdap_servers.yaml # Please see #41 issue
database: database:
image: postgres:${POSTGRES_VERSION:-16}-alpine image: postgres:${POSTGRES_VERSION:-16}-alpine
container_name: domainwatchdog_db
restart: unless-stopped
environment: environment:
POSTGRES_DB: ${POSTGRES_DB:-app} POSTGRES_DB: ${POSTGRES_DB:-app}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-!ChangeMe!} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-!ChangeMe!}
@@ -49,25 +54,23 @@ services:
volumes: volumes:
- database_data:/var/lib/postgresql/data:rw - database_data:/var/lib/postgresql/data:rw
# keydb: valkey:
# image: eqalpha/keydb:latest image: valkey/valkey
# container_name: keydb container_name: valkey
# restart: always restart: always
# ports:
# - "127.0.0.1:6379:6379"
# influxdb2: # influxdb2:
# image: influxdb:2 # image: influxdb:2
# ports: # ports:
# - "127.0.0.1:8086:8086" # - "127.0.0.1:8086:8086"
# environment: # environment:
# DOCKER_INFLUXDB_INIT_MODE: setup # DOCKER_INFLUXDB_INIT_MODE: setup
# DOCKER_INFLUXDB_INIT_USERNAME: USERNAME # Please modify # DOCKER_INFLUXDB_INIT_USERNAME: USERNAME # Please modify
# DOCKER_INFLUXDB_INIT_PASSWORD: PASSWORD # Please modify # DOCKER_INFLUXDB_INIT_PASSWORD: PASSWORD # Please modify
# DOCKER_INFLUXDB_INIT_ADMIN_TOKEN: my-super-secret-auth-token # Please modify # DOCKER_INFLUXDB_INIT_ADMIN_TOKEN: my-super-secret-auth-token # Please modify
# DOCKER_INFLUXDB_INIT_RETENTION: 0 # DOCKER_INFLUXDB_INIT_RETENTION: 0
# DOCKER_INFLUXDB_INIT_ORG: domainwatchdog # DOCKER_INFLUXDB_INIT_ORG: domainwatchdog
# DOCKER_INFLUXDB_INIT_BUCKET: domainwatchdog # DOCKER_INFLUXDB_INIT_BUCKET: domainwatchdog
volumes: volumes:
caddy_data: caddy_data:

View File

@@ -13,6 +13,7 @@ use Psr\Log\LoggerInterface;
use Random\Randomizer; use Random\Randomizer;
use Symfony\Bundle\SecurityBundle\Security; use Symfony\Bundle\SecurityBundle\Security;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\HttpKernel\Exception\TooManyRequestsHttpException; use Symfony\Component\HttpKernel\Exception\TooManyRequestsHttpException;
use Symfony\Component\HttpKernel\KernelInterface; use Symfony\Component\HttpKernel\KernelInterface;
use Symfony\Component\Messenger\MessageBusInterface; use Symfony\Component\Messenger\MessageBusInterface;
@@ -29,6 +30,7 @@ readonly class AutoRegisterDomainProvider implements ProviderInterface
private LoggerInterface $logger, private LoggerInterface $logger,
private DomainRepository $domainRepository, private DomainRepository $domainRepository,
private MessageBusInterface $bus, private MessageBusInterface $bus,
private RequestStack $requestStack,
) { ) {
} }
@@ -42,6 +44,8 @@ readonly class AutoRegisterDomainProvider implements ProviderInterface
'ldhName' => $idnDomain, 'ldhName' => $idnDomain,
]); ]);
$request = $this->requestStack->getCurrentRequest();
/** @var ?Domain $domain */ /** @var ?Domain $domain */
$domain = $this->domainRepository->findOneBy(['ldhName' => $idnDomain]); $domain = $this->domainRepository->findOneBy(['ldhName' => $idnDomain]);
// If the domain name exists in the database, recently updated and not important, we return the stored Domain // 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->getDeleted()
&& !$domain->isToBeUpdated(true, true) && !$domain->isToBeUpdated(true, true)
&& !$this->kernel->isDebug() && !$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', [ $this->logger->debug('It is not necessary to update the domain name', [
'ldhName' => $idnDomain, 'ldhName' => $idnDomain,