mirror of
https://github.com/shlinkio/shlink.git
synced 2026-02-28 04:03:12 +08:00
Add new MERCURE_ENABLED env var
This commit is contained in:
@@ -7,7 +7,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com), and this
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
### Added
|
### Added
|
||||||
* *Nothing*
|
* [#2438](https://github.com/shlinkio/shlink/issues/2438) Add `MERCURE_ENABLED` env var and corresponding config option, to more easily allow the mercure integration to be toggled.
|
||||||
|
|
||||||
|
For BC, if this env vars is not present, we'll still consider the integration enabled if the `MERCURE_PUBLIC_HUB_URL` env var has a value. This is considered deprecated though, and next major version will rely only on `MERCURE_ENABLED`, so if you are using Mercure, make sure to set `MERCURE_ENABLED=true` to be ready.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
* [#2406](https://github.com/shlinkio/shlink/issues/2406) Remove references to bootstrap from error templates, and instead inline the very minimum required styles.
|
* [#2406](https://github.com/shlinkio/shlink/issues/2406) Remove references to bootstrap from error templates, and instead inline the very minimum required styles.
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
"pagerfanta/core": "^3.8",
|
"pagerfanta/core": "^3.8",
|
||||||
"ramsey/uuid": "^4.7",
|
"ramsey/uuid": "^4.7",
|
||||||
"shlinkio/doctrine-specification": "^2.2",
|
"shlinkio/doctrine-specification": "^2.2",
|
||||||
"shlinkio/shlink-common": "dev-main#e601317 as 7.1",
|
"shlinkio/shlink-common": "dev-main#7469270 as 7.1",
|
||||||
"shlinkio/shlink-config": "^4.0",
|
"shlinkio/shlink-config": "^4.0",
|
||||||
"shlinkio/shlink-event-dispatcher": "^4.2",
|
"shlinkio/shlink-event-dispatcher": "^4.2",
|
||||||
"shlinkio/shlink-importer": "^5.6",
|
"shlinkio/shlink-importer": "^5.6",
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ return [
|
|||||||
|
|
||||||
// This config is used by shlink-common. Do not delete
|
// This config is used by shlink-common. Do not delete
|
||||||
'mercure' => [
|
'mercure' => [
|
||||||
|
'enabled' => EnvVars::MERCURE_ENABLED->loadFromEnv(),
|
||||||
'public_hub_url' => EnvVars::MERCURE_PUBLIC_HUB_URL->loadFromEnv(),
|
'public_hub_url' => EnvVars::MERCURE_PUBLIC_HUB_URL->loadFromEnv(),
|
||||||
'internal_hub_url' => EnvVars::MERCURE_INTERNAL_HUB_URL->loadFromEnv(),
|
'internal_hub_url' => EnvVars::MERCURE_INTERNAL_HUB_URL->loadFromEnv(),
|
||||||
'jwt_secret' => EnvVars::MERCURE_JWT_SECRET->loadFromEnv(),
|
'jwt_secret' => EnvVars::MERCURE_JWT_SECRET->loadFromEnv(),
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ return [
|
|||||||
// EnvVars::MATOMO_API_TOKEN->value => ,
|
// EnvVars::MATOMO_API_TOKEN->value => ,
|
||||||
|
|
||||||
// Mercure
|
// Mercure
|
||||||
|
EnvVars::MERCURE_ENABLED->value => true,
|
||||||
EnvVars::MERCURE_PUBLIC_HUB_URL->value => 'http://localhost:8002',
|
EnvVars::MERCURE_PUBLIC_HUB_URL->value => 'http://localhost:8002',
|
||||||
EnvVars::MERCURE_INTERNAL_HUB_URL->value => 'http://shlink_mercure_proxy',
|
EnvVars::MERCURE_INTERNAL_HUB_URL->value => 'http://shlink_mercure_proxy',
|
||||||
EnvVars::MERCURE_JWT_SECRET->value => 'mercure_jwt_key_long_enough_to_avoid_error',
|
EnvVars::MERCURE_JWT_SECRET->value => 'mercure_jwt_key_long_enough_to_avoid_error',
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ enum EnvVars: string
|
|||||||
case REDIS_SERVERS = 'REDIS_SERVERS';
|
case REDIS_SERVERS = 'REDIS_SERVERS';
|
||||||
case REDIS_SENTINEL_SERVICE = 'REDIS_SENTINEL_SERVICE';
|
case REDIS_SENTINEL_SERVICE = 'REDIS_SENTINEL_SERVICE';
|
||||||
case REDIS_PUB_SUB_ENABLED = 'REDIS_PUB_SUB_ENABLED';
|
case REDIS_PUB_SUB_ENABLED = 'REDIS_PUB_SUB_ENABLED';
|
||||||
|
case MERCURE_ENABLED = 'MERCURE_ENABLED';
|
||||||
case MERCURE_PUBLIC_HUB_URL = 'MERCURE_PUBLIC_HUB_URL';
|
case MERCURE_PUBLIC_HUB_URL = 'MERCURE_PUBLIC_HUB_URL';
|
||||||
case MERCURE_INTERNAL_HUB_URL = 'MERCURE_INTERNAL_HUB_URL';
|
case MERCURE_INTERNAL_HUB_URL = 'MERCURE_INTERNAL_HUB_URL';
|
||||||
case MERCURE_JWT_SECRET = 'MERCURE_JWT_SECRET';
|
case MERCURE_JWT_SECRET = 'MERCURE_JWT_SECRET';
|
||||||
@@ -84,6 +85,7 @@ enum EnvVars: string
|
|||||||
case MEMORY_LIMIT = 'MEMORY_LIMIT';
|
case MEMORY_LIMIT = 'MEMORY_LIMIT';
|
||||||
case INITIAL_API_KEY = 'INITIAL_API_KEY';
|
case INITIAL_API_KEY = 'INITIAL_API_KEY';
|
||||||
case SKIP_INITIAL_GEOLITE_DOWNLOAD = 'SKIP_INITIAL_GEOLITE_DOWNLOAD';
|
case SKIP_INITIAL_GEOLITE_DOWNLOAD = 'SKIP_INITIAL_GEOLITE_DOWNLOAD';
|
||||||
|
|
||||||
/** @deprecated Use REDIRECT_EXTRA_PATH */
|
/** @deprecated Use REDIRECT_EXTRA_PATH */
|
||||||
case REDIRECT_APPEND_EXTRA_PATH = 'REDIRECT_APPEND_EXTRA_PATH';
|
case REDIRECT_APPEND_EXTRA_PATH = 'REDIRECT_APPEND_EXTRA_PATH';
|
||||||
/** @deprecated */
|
/** @deprecated */
|
||||||
@@ -159,6 +161,7 @@ enum EnvVars: string
|
|||||||
},
|
},
|
||||||
self::DB_USE_ENCRYPTION => false,
|
self::DB_USE_ENCRYPTION => false,
|
||||||
|
|
||||||
|
self::MERCURE_ENABLED => self::MERCURE_PUBLIC_HUB_URL->existsInEnv(),
|
||||||
self::MERCURE_INTERNAL_HUB_URL => self::MERCURE_PUBLIC_HUB_URL->loadFromEnv(),
|
self::MERCURE_INTERNAL_HUB_URL => self::MERCURE_PUBLIC_HUB_URL->loadFromEnv(),
|
||||||
|
|
||||||
self::DEFAULT_QR_CODE_SIZE, => DEFAULT_QR_CODE_SIZE,
|
self::DEFAULT_QR_CODE_SIZE, => DEFAULT_QR_CODE_SIZE,
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ readonly class EnabledListenerChecker implements EnabledListenerCheckerInterface
|
|||||||
EventDispatcher\RedisPubSub\NotifyVisitToRedis::class,
|
EventDispatcher\RedisPubSub\NotifyVisitToRedis::class,
|
||||||
EventDispatcher\RedisPubSub\NotifyNewShortUrlToRedis::class => $this->redisPubSubEnabled,
|
EventDispatcher\RedisPubSub\NotifyNewShortUrlToRedis::class => $this->redisPubSubEnabled,
|
||||||
EventDispatcher\Mercure\NotifyVisitToMercure::class,
|
EventDispatcher\Mercure\NotifyVisitToMercure::class,
|
||||||
EventDispatcher\Mercure\NotifyNewShortUrlToMercure::class => $this->mercureOptions->isEnabled(),
|
EventDispatcher\Mercure\NotifyNewShortUrlToMercure::class => $this->mercureOptions->enabled,
|
||||||
EventDispatcher\Matomo\SendVisitToMatomo::class => $this->matomoOptions->enabled,
|
EventDispatcher\Matomo\SendVisitToMatomo::class => $this->matomoOptions->enabled,
|
||||||
EventDispatcher\UpdateGeoLiteDb::class => $this->geoLiteOptions->hasLicenseKey(),
|
EventDispatcher\UpdateGeoLiteDb::class => $this->geoLiteOptions->hasLicenseKey(),
|
||||||
default => false, // Any unknown async listener should not be enabled by default
|
default => false, // Any unknown async listener should not be enabled by default
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ readonly class ShortUrlTitleResolutionHelper implements ShortUrlTitleResolutionH
|
|||||||
private function encodeToUtf8WithMbString(string $titleInOriginalEncoding, string $pageCharset): string|null
|
private function encodeToUtf8WithMbString(string $titleInOriginalEncoding, string $pageCharset): string|null
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
return mb_convert_encoding($titleInOriginalEncoding, 'utf-8', $pageCharset);
|
return mb_convert_encoding($titleInOriginalEncoding, 'utf-8', $pageCharset) ?: null;
|
||||||
} catch (Throwable $e) {
|
} catch (Throwable $e) {
|
||||||
$this->logger->warning('It was impossible to encode page title in UTF-8 with mb_convert_encoding. {e}', [
|
$this->logger->warning('It was impossible to encode page title in UTF-8 with mb_convert_encoding. {e}', [
|
||||||
'e' => $e,
|
'e' => $e,
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ class EnabledListenerCheckerTest extends TestCase
|
|||||||
return new EnabledListenerChecker(
|
return new EnabledListenerChecker(
|
||||||
new RabbitMqOptions(enabled: $rabbitMqEnabled),
|
new RabbitMqOptions(enabled: $rabbitMqEnabled),
|
||||||
$redisPubSubEnabled,
|
$redisPubSubEnabled,
|
||||||
new MercureOptions(publicHubUrl: $mercureEnabled ? 'the-url' : null),
|
new MercureOptions(enabled: $mercureEnabled),
|
||||||
new GeoLite2Options(licenseKey: $geoLiteEnabled ? 'the-key' : null),
|
new GeoLite2Options(licenseKey: $geoLiteEnabled ? 'the-key' : null),
|
||||||
new MatomoOptions(enabled: $matomoEnabled),
|
new MatomoOptions(enabled: $matomoEnabled),
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user