From 02475713481e0350006d563b41597e4ac64594f0 Mon Sep 17 00:00:00 2001 From: Nivesh Krishna Date: Wed, 13 Apr 2022 19:24:49 +0530 Subject: [PATCH 1/8] install sentry sdk --- requirements-dev.txt | 1 + requirements.txt | 1 + searx/webapp.py | 20 ++++++++++++++++++++ setup.py | 32 +++++++++++++++++++++++--------- 4 files changed, 45 insertions(+), 9 deletions(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index e1cb212da..485669710 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,5 +1,6 @@ mock==4.0.3 nose2[coverage_plugin]==0.10.0 +sentry-sdk[flask]==1.5.9 cov-core==1.15.0 pycodestyle==2.7.0 pylint==2.10.2 diff --git a/requirements.txt b/requirements.txt index 31f48c269..f0f31bdc5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,6 +3,7 @@ babel==2.9.1 flask-babel==2.0.0 flask==2.0.2 jinja2==3.0.3 +sentry-sdk[flask]==1.5.9 lxml==4.7.1 pygments==2.8.0 python-dateutil==2.8.2 diff --git a/searx/webapp.py b/searx/webapp.py index 4ad907247..ff430ce24 100755 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -103,6 +103,26 @@ from searx.settings_loader import get_default_settings_path from werkzeug.serving import WSGIRequestHandler WSGIRequestHandler.protocol_version = "HTTP/{}".format(settings['server'].get('http_protocol_version', '1.0')) +import sentry_sdk +from sentry_sdk.integrations.flask import FlaskIntegration + +sentry_sdk.init( + dsn=os.getenv("SENTRY_DSN"), + integrations=[FlaskIntegration()], + + # Set traces_sample_rate to 1.0 to capture 100% + # of transactions for performance monitoring. + # We recommend adjusting this value in production. + traces_sample_rate=os.getenv("SENTRY_TRACES_SAMPLE_RATE", 1.0), + + # By default the SDK will try to use the SENTRY_RELEASE + # environment variable, or infer a git commit + # SHA as release, however you may want to set + # something more human-readable. + release="spot@{}".format(os.getenv("SPOT_HOSTNAME")), +) + + # check secret_key if not searx_debug and settings['server']['secret_key'] == 'ultrasecretkey': logger.error('server.secret_key is not changed. Please use something else instead of ultrasecretkey.') diff --git a/setup.py b/setup.py index e7e421797..84188f026 100644 --- a/setup.py +++ b/setup.py @@ -1,18 +1,30 @@ # -*- coding: utf-8 -*- -"""Installer for Searx package.""" +"""Installer for Spot package.""" from setuptools import setup from setuptools import find_packages +from searx.version import VERSION_STRING +from searx import brand +with open('README.md', encoding='utf-8') as f: + long_description = f.read() -requirements = open('requirements.txt').read().splitlines() -dev_requirements = open('requirements-dev.txt').read().splitlines() +with open('requirements.txt') as f: + requirements = [ l.strip() for l in f.readlines()] + +with open('requirements-dev.txt') as f: + dev_requirements = [ l.strip() for l in f.readlines()] setup( - name='searx', - use_scm_version={"tag_regex": r"^(?:[\w-]+-)?(?P[vV]?\d+(?:\.\d+){0,2}.*)$"}, + name='spot', + version=VERSION_STRING, description="A privacy-respecting, hackable metasearch engine", - long_description=open('README.md').read(), + long_description=long_description, + url=brand.DOCS_URL, + project_urls={ + "Code": brand.GIT_URL, + "Issue tracker": brand.ISSUE_URL + }, classifiers=[ "Development Status :: 4 - Beta", "Programming Language :: Python", @@ -22,13 +34,12 @@ setup( 'License :: OSI Approved :: GNU Affero General Public License v3' ], keywords='metasearch searchengine search web http', - author='Adam Tauber', - author_email='asciimoo@gmail.com', + author='ECORP SAS', + author_email='dev@e.email', license='GNU Affero General Public License', packages=find_packages(exclude=["tests*", "searx_extra"]), zip_safe=False, install_requires=requirements, - setup_requires=["setuptools_scm"], extras_require={ 'test': dev_requirements }, @@ -41,6 +52,9 @@ setup( package_data={ 'searx': [ 'settings.yml', + '../README.md', + '../requirements.txt', + '../requirements-dev.txt', 'data/*', 'plugins/*/*', 'static/*.*', -- GitLab From 6bf103bb879dabdf9ea6da4249d9b0388ebf254c Mon Sep 17 00:00:00 2001 From: Nivesh Krishna Date: Wed, 13 Apr 2022 19:32:31 +0530 Subject: [PATCH 2/8] update env variables --- .env.prod | 2 ++ .gitlab-ci.yml | 8 ++++++++ docker-compose.prod.yml | 2 ++ docker-compose.yml | 2 ++ 4 files changed, 14 insertions(+) diff --git a/.env.prod b/.env.prod index 969758dc8..fedd0ff6b 100644 --- a/.env.prod +++ b/.env.prod @@ -15,3 +15,5 @@ MORTY_PORT=8089 INTERNAL_NETWORK_NAME=default NODE_NAME=spot11 CI_REGISTRY_IMAGE=image +SENTRY_DSN=public_key:gitlab.com +SENTRY_TRACES_SAMPLE_RATE=1.0 diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2852d4abd..e63cb5706 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -114,6 +114,8 @@ deploy:spot.eeo.one.backend1: && sed -i 's/MORTY_PORT=8089/MORTY_PORT=$MORTY_PORT/g' .env && sed -i 's/INTERNAL_NETWORK_NAME=default/INTERNAL_NETWORK_NAME=$INTERNAL_NETWORK_NAME/g' .env && sed -i 's/NODE_NAME=spot11/NODE_NAME=$NODE_NAME/g' .env + && sed -i 's|SENTRY_DSN=public_key:gitlab.com|SENTRY_DSN=$SENTRY_DSN|g' .env + && sed -i 's|SENTRY_TRACES_SAMPLE_RATE=1.0|SENTRY_TRACES_SAMPLE_RATE=$SENTRY_TRACES_SAMPLE_RATE|g' .env && sed -i 's|CI_REGISTRY_IMAGE=image|CI_REGISTRY_IMAGE=$CI_REGISTRY_IMAGE|g' .env && docker-compose pull && docker-compose stop filtron && sleep 2 && docker-compose up -d" @@ -157,6 +159,8 @@ deploy:spot.eeo.one.backend2: && sed -i 's/MORTY_PORT=8089/MORTY_PORT=$MORTY_PORT/g' .env && sed -i 's/INTERNAL_NETWORK_NAME=default/INTERNAL_NETWORK_NAME=$INTERNAL_NETWORK_NAME/g' .env && sed -i 's/NODE_NAME=spot11/NODE_NAME=$NODE_NAME/g' .env + && sed -i 's|SENTRY_DSN=public_key:gitlab.com|SENTRY_DSN=$SENTRY_DSN|g' .env + && sed -i 's|SENTRY_TRACES_SAMPLE_RATE=1.0|SENTRY_TRACES_SAMPLE_RATE=$SENTRY_TRACES_SAMPLE_RATE|g' .env && sed -i 's|CI_REGISTRY_IMAGE=image|CI_REGISTRY_IMAGE=$CI_REGISTRY_IMAGE|g' .env && docker-compose pull && docker-compose stop filtron && sleep 5 && docker-compose up -d" @@ -199,6 +203,8 @@ deploy:spot.ecloud.global.backend1: && sed -i 's/MORTY_PORT=8089/MORTY_PORT=$MORTY_PORT/g' .env && sed -i 's/INTERNAL_NETWORK_NAME=default/INTERNAL_NETWORK_NAME=$INTERNAL_NETWORK_NAME/g' .env && sed -i 's/NODE_NAME=spot11/NODE_NAME=$NODE_NAME/g' .env + && sed -i 's|SENTRY_DSN=public_key:gitlab.com|SENTRY_DSN=$SENTRY_DSN|g' .env + && sed -i 's|SENTRY_TRACES_SAMPLE_RATE=1.0|SENTRY_TRACES_SAMPLE_RATE=$SENTRY_TRACES_SAMPLE_RATE|g' .env && sed -i 's|CI_REGISTRY_IMAGE=image|CI_REGISTRY_IMAGE=$CI_REGISTRY_IMAGE|g' .env && docker-compose pull && docker-compose stop filtron && sleep 2 && docker-compose up -d" @@ -241,6 +247,8 @@ deploy:spot.ecloud.global.backend2: && sed -i 's/MORTY_PORT=8089/MORTY_PORT=$MORTY_PORT/g' .env && sed -i 's/INTERNAL_NETWORK_NAME=default/INTERNAL_NETWORK_NAME=$INTERNAL_NETWORK_NAME/g' .env && sed -i 's/NODE_NAME=spot11/NODE_NAME=$NODE_NAME/g' .env + && sed -i 's|SENTRY_DSN=public_key:gitlab.com|SENTRY_DSN=$SENTRY_DSN|g' .env + && sed -i 's|SENTRY_TRACES_SAMPLE_RATE=1.0|SENTRY_TRACES_SAMPLE_RATE=$SENTRY_TRACES_SAMPLE_RATE|g' .env && sed -i 's|CI_REGISTRY_IMAGE=image|CI_REGISTRY_IMAGE=$CI_REGISTRY_IMAGE|g' .env && docker-compose pull && docker-compose stop filtron && sleep 2 && docker-compose up -d" diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index e4d82b3a4..a891e9b8f 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -37,6 +37,8 @@ services: GUNICORN_LOGGER: 1 GUNICORN_LEVEL: INFO NODE_NAME: "${NODE_NAME}" + SENTRY_DSN: "${SENTRY_DSN}" + SENTRY_TRACES_SAMPLE_RATE: "${SENTRY_TRACES_SAMPLE_RATE}" spot-nginx: image: ${CI_REGISTRY_IMAGE}/nginx:${SPOT_NGINX_DOCKER_TAG} diff --git a/docker-compose.yml b/docker-compose.yml index e11fe1793..a4b8c1ca5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -32,6 +32,8 @@ services: GUNICORN_LOGGER: 1 GUNICORN_LEVEL: INFO NODE_NAME: ${NODE_NAME} + SENTRY_DSN: "${SENTRY_DSN}" + SENTRY_TRACES_SAMPLE_RATE: "${SENTRY_TRACES_SAMPLE_RATE}" spot-nginx: image: ${CI_REGISTRY_IMAGE}/nginx:${SPOT_NGINX_DOCKER_TAG} -- GitLab From 762c8f2c73227004754e02dc90a50245558f03fa Mon Sep 17 00:00:00 2001 From: Nivesh Krishna Date: Wed, 13 Apr 2022 20:43:34 +0530 Subject: [PATCH 3/8] add new env variable --- .env.prod | 1 + .gitlab-ci.yml | 4 ++++ docker-compose.prod.yml | 1 + 3 files changed, 6 insertions(+) diff --git a/.env.prod b/.env.prod index fedd0ff6b..f03eda549 100644 --- a/.env.prod +++ b/.env.prod @@ -17,3 +17,4 @@ NODE_NAME=spot11 CI_REGISTRY_IMAGE=image SENTRY_DSN=public_key:gitlab.com SENTRY_TRACES_SAMPLE_RATE=1.0 +ENVIRONMENT_NAME=prod diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e63cb5706..4dee01162 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -114,6 +114,7 @@ deploy:spot.eeo.one.backend1: && sed -i 's/MORTY_PORT=8089/MORTY_PORT=$MORTY_PORT/g' .env && sed -i 's/INTERNAL_NETWORK_NAME=default/INTERNAL_NETWORK_NAME=$INTERNAL_NETWORK_NAME/g' .env && sed -i 's/NODE_NAME=spot11/NODE_NAME=$NODE_NAME/g' .env + && sed -i 's/ENVIRONMENT_NAME=prod/ENVIRONMENT_NAME=$ENVIRONMENT_NAME/g' .env && sed -i 's|SENTRY_DSN=public_key:gitlab.com|SENTRY_DSN=$SENTRY_DSN|g' .env && sed -i 's|SENTRY_TRACES_SAMPLE_RATE=1.0|SENTRY_TRACES_SAMPLE_RATE=$SENTRY_TRACES_SAMPLE_RATE|g' .env && sed -i 's|CI_REGISTRY_IMAGE=image|CI_REGISTRY_IMAGE=$CI_REGISTRY_IMAGE|g' .env @@ -159,6 +160,7 @@ deploy:spot.eeo.one.backend2: && sed -i 's/MORTY_PORT=8089/MORTY_PORT=$MORTY_PORT/g' .env && sed -i 's/INTERNAL_NETWORK_NAME=default/INTERNAL_NETWORK_NAME=$INTERNAL_NETWORK_NAME/g' .env && sed -i 's/NODE_NAME=spot11/NODE_NAME=$NODE_NAME/g' .env + && sed -i 's/ENVIRONMENT_NAME=prod/ENVIRONMENT_NAME=$ENVIRONMENT_NAME/g' .env && sed -i 's|SENTRY_DSN=public_key:gitlab.com|SENTRY_DSN=$SENTRY_DSN|g' .env && sed -i 's|SENTRY_TRACES_SAMPLE_RATE=1.0|SENTRY_TRACES_SAMPLE_RATE=$SENTRY_TRACES_SAMPLE_RATE|g' .env && sed -i 's|CI_REGISTRY_IMAGE=image|CI_REGISTRY_IMAGE=$CI_REGISTRY_IMAGE|g' .env @@ -203,6 +205,7 @@ deploy:spot.ecloud.global.backend1: && sed -i 's/MORTY_PORT=8089/MORTY_PORT=$MORTY_PORT/g' .env && sed -i 's/INTERNAL_NETWORK_NAME=default/INTERNAL_NETWORK_NAME=$INTERNAL_NETWORK_NAME/g' .env && sed -i 's/NODE_NAME=spot11/NODE_NAME=$NODE_NAME/g' .env + && sed -i 's/ENVIRONMENT_NAME=prod/ENVIRONMENT_NAME=$ENVIRONMENT_NAME/g' .env && sed -i 's|SENTRY_DSN=public_key:gitlab.com|SENTRY_DSN=$SENTRY_DSN|g' .env && sed -i 's|SENTRY_TRACES_SAMPLE_RATE=1.0|SENTRY_TRACES_SAMPLE_RATE=$SENTRY_TRACES_SAMPLE_RATE|g' .env && sed -i 's|CI_REGISTRY_IMAGE=image|CI_REGISTRY_IMAGE=$CI_REGISTRY_IMAGE|g' .env @@ -247,6 +250,7 @@ deploy:spot.ecloud.global.backend2: && sed -i 's/MORTY_PORT=8089/MORTY_PORT=$MORTY_PORT/g' .env && sed -i 's/INTERNAL_NETWORK_NAME=default/INTERNAL_NETWORK_NAME=$INTERNAL_NETWORK_NAME/g' .env && sed -i 's/NODE_NAME=spot11/NODE_NAME=$NODE_NAME/g' .env + && sed -i 's/ENVIRONMENT_NAME=prod/ENVIRONMENT_NAME=$ENVIRONMENT_NAME/g' .env && sed -i 's|SENTRY_DSN=public_key:gitlab.com|SENTRY_DSN=$SENTRY_DSN|g' .env && sed -i 's|SENTRY_TRACES_SAMPLE_RATE=1.0|SENTRY_TRACES_SAMPLE_RATE=$SENTRY_TRACES_SAMPLE_RATE|g' .env && sed -i 's|CI_REGISTRY_IMAGE=image|CI_REGISTRY_IMAGE=$CI_REGISTRY_IMAGE|g' .env diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index a891e9b8f..2561145bf 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -39,6 +39,7 @@ services: NODE_NAME: "${NODE_NAME}" SENTRY_DSN: "${SENTRY_DSN}" SENTRY_TRACES_SAMPLE_RATE: "${SENTRY_TRACES_SAMPLE_RATE}" + ENVIRONMENT_NAME: "${ENVIRONMENT_NAME}" spot-nginx: image: ${CI_REGISTRY_IMAGE}/nginx:${SPOT_NGINX_DOCKER_TAG} -- GitLab From 12b2946ff92bc97078df20916293c782c56e3f64 Mon Sep 17 00:00:00 2001 From: Nivesh Krishna Date: Wed, 13 Apr 2022 22:06:40 +0530 Subject: [PATCH 4/8] use environment in sentry init --- searx/webapp.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/searx/webapp.py b/searx/webapp.py index ff430ce24..09b5405e8 100755 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -17,6 +17,7 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >. (C) 2013- by Adam Tauber, ''' +from posix import environ import sys if sys.version_info[0] < 3: print('\033[1;31m Python2 is no longer supported\033[0m') @@ -109,17 +110,18 @@ from sentry_sdk.integrations.flask import FlaskIntegration sentry_sdk.init( dsn=os.getenv("SENTRY_DSN"), integrations=[FlaskIntegration()], + environment=os.getenv("ENVIRONMENT_NAME"), # Set traces_sample_rate to 1.0 to capture 100% # of transactions for performance monitoring. # We recommend adjusting this value in production. - traces_sample_rate=os.getenv("SENTRY_TRACES_SAMPLE_RATE", 1.0), + traces_sample_rate=float(os.getenv("SENTRY_TRACES_SAMPLE_RATE", 1.0)), # By default the SDK will try to use the SENTRY_RELEASE # environment variable, or infer a git commit # SHA as release, however you may want to set # something more human-readable. - release="spot@{}".format(os.getenv("SPOT_HOSTNAME")), + # release="spot@{}".format(os.getenv("ENVIRONMENT_NAME")), ) -- GitLab From 53cfeda7651a2f380bafb2cc9707c71fd9ebc0d0 Mon Sep 17 00:00:00 2001 From: Nivesh Krishna Date: Wed, 13 Apr 2022 22:11:20 +0530 Subject: [PATCH 5/8] remove unused import --- searx/webapp.py | 1 - 1 file changed, 1 deletion(-) diff --git a/searx/webapp.py b/searx/webapp.py index 09b5405e8..d8df93c43 100755 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -17,7 +17,6 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >. (C) 2013- by Adam Tauber, ''' -from posix import environ import sys if sys.version_info[0] < 3: print('\033[1;31m Python2 is no longer supported\033[0m') -- GitLab From 939eb53c44da6d417ea597e7dd5c96613eb7cb2b Mon Sep 17 00:00:00 2001 From: Nivesh Krishna Date: Wed, 13 Apr 2022 23:55:34 +0530 Subject: [PATCH 6/8] add release in sentry init to know which node --- searx/webapp.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/searx/webapp.py b/searx/webapp.py index d8df93c43..d328fd126 100755 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -110,6 +110,7 @@ sentry_sdk.init( dsn=os.getenv("SENTRY_DSN"), integrations=[FlaskIntegration()], environment=os.getenv("ENVIRONMENT_NAME"), + server_name=os.getenv("ENVIRONMENT_NAME"), # Set traces_sample_rate to 1.0 to capture 100% # of transactions for performance monitoring. @@ -120,7 +121,7 @@ sentry_sdk.init( # environment variable, or infer a git commit # SHA as release, however you may want to set # something more human-readable. - # release="spot@{}".format(os.getenv("ENVIRONMENT_NAME")), + release="spot@{}".format(os.getenv("ENVIRONMENT_NAME")), ) -- GitLab From 841b23702be0c459323ef154f1871d2bea7f7407 Mon Sep 17 00:00:00 2001 From: Nivesh Date: Tue, 19 Apr 2022 17:50:07 +0530 Subject: [PATCH 7/8] use sentry iff env variable is set --- requirements-dev.txt | 1 - searx/webapp.py | 43 +++++++++++++++++++++++-------------------- setup.py | 2 +- 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index 485669710..e1cb212da 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,6 +1,5 @@ mock==4.0.3 nose2[coverage_plugin]==0.10.0 -sentry-sdk[flask]==1.5.9 cov-core==1.15.0 pycodestyle==2.7.0 pylint==2.10.2 diff --git a/searx/webapp.py b/searx/webapp.py index d328fd126..d0b13ead5 100755 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -103,26 +103,29 @@ from searx.settings_loader import get_default_settings_path from werkzeug.serving import WSGIRequestHandler WSGIRequestHandler.protocol_version = "HTTP/{}".format(settings['server'].get('http_protocol_version', '1.0')) -import sentry_sdk -from sentry_sdk.integrations.flask import FlaskIntegration - -sentry_sdk.init( - dsn=os.getenv("SENTRY_DSN"), - integrations=[FlaskIntegration()], - environment=os.getenv("ENVIRONMENT_NAME"), - server_name=os.getenv("ENVIRONMENT_NAME"), - - # Set traces_sample_rate to 1.0 to capture 100% - # of transactions for performance monitoring. - # We recommend adjusting this value in production. - traces_sample_rate=float(os.getenv("SENTRY_TRACES_SAMPLE_RATE", 1.0)), - - # By default the SDK will try to use the SENTRY_RELEASE - # environment variable, or infer a git commit - # SHA as release, however you may want to set - # something more human-readable. - release="spot@{}".format(os.getenv("ENVIRONMENT_NAME")), -) + +# Enable sentry only if SENTRY_DSN variable is set +if os.getenv('SENTRY_DSN', None) is not None: + import sentry_sdk + from sentry_sdk.integrations.flask import FlaskIntegration + + sentry_sdk.init( + dsn=os.getenv("SENTRY_DSN"), + integrations=[FlaskIntegration()], + environment=os.getenv("ENVIRONMENT_NAME"), + server_name=os.getenv("ENVIRONMENT_NAME"), + + # Set traces_sample_rate to 1.0 to capture 100% + # of transactions for performance monitoring. + # We recommend adjusting this value in production. + traces_sample_rate=float(os.getenv("SENTRY_TRACES_SAMPLE_RATE", 1.0)), + + # By default the SDK will try to use the SENTRY_RELEASE + # environment variable, or infer a git commit + # SHA as release, however you may want to set + # something more human-readable. + release="spot@{}".format(os.getenv("ENVIRONMENT_NAME")), + ) # check secret_key diff --git a/setup.py b/setup.py index 84188f026..97e0e5d01 100644 --- a/setup.py +++ b/setup.py @@ -34,7 +34,7 @@ setup( 'License :: OSI Approved :: GNU Affero General Public License v3' ], keywords='metasearch searchengine search web http', - author='ECORP SAS', + author='E FOUNDATION', author_email='dev@e.email', license='GNU Affero General Public License', packages=find_packages(exclude=["tests*", "searx_extra"]), -- GitLab From 01da5bb1fc047c11a4e19166d0c5aa7be8a6a7d7 Mon Sep 17 00:00:00 2001 From: Nivesh Date: Tue, 19 Apr 2022 17:53:55 +0530 Subject: [PATCH 8/8] remove sentry from dev docker compose --- docker-compose.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index a4b8c1ca5..e11fe1793 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -32,8 +32,6 @@ services: GUNICORN_LOGGER: 1 GUNICORN_LEVEL: INFO NODE_NAME: ${NODE_NAME} - SENTRY_DSN: "${SENTRY_DSN}" - SENTRY_TRACES_SAMPLE_RATE: "${SENTRY_TRACES_SAMPLE_RATE}" spot-nginx: image: ${CI_REGISTRY_IMAGE}/nginx:${SPOT_NGINX_DOCKER_TAG} -- GitLab