mirror of
https://github.com/odoocker/odoocker
synced 2025-11-04 15:19:22 +01:00
Merge pull request #5 from odoocker/feature/sentry-integration
Yhael | Feature | Sentry Integration
This commit is contained in:
108
.env.example
108
.env.example
@@ -5,7 +5,8 @@
|
||||
APP_ENV=local
|
||||
INIT=
|
||||
UPDATE=
|
||||
LOAD=base,web,session_redis,attachment_s3
|
||||
LOAD=base,web,session_redis,attachment_s3,sentry
|
||||
ROOT_PATH=/usr/lib/python3/dist-packages/odoo
|
||||
WORKERS=2
|
||||
DEV_MODE=reload,xml
|
||||
DOMAIN=erp.odoocker.test
|
||||
@@ -26,7 +27,7 @@ LOAD_LANGUAGE=
|
||||
DB_SSLMODE=prefer
|
||||
DB_MAXCONN=64
|
||||
DB_TEMPLATE=unaccent_template
|
||||
UNACCENT=True
|
||||
UNACCENT=False
|
||||
LIST_DB=True
|
||||
DBFILTER=.*
|
||||
|
||||
@@ -34,6 +35,16 @@ DBFILTER=.*
|
||||
LOG_LEVEL=info
|
||||
# Additional logs
|
||||
LOG_HANDLER_LEVEL=INFO
|
||||
# Sentry
|
||||
SENTRY_DSN=https://84799fb74edc4053aa3368aec3c2cb89@o4504596558577664.ingest.sentry.io/4504596563230720
|
||||
SENTRY_ENABLED=true
|
||||
SENTRY_LOGGING_LEVEL=warn
|
||||
SENTRY_EXCLUDE_LOGGERS=
|
||||
SENTRY_IGNORE_EXCEPTIONS=
|
||||
SENTRY_INCLUDE_CONTEXT=true
|
||||
SENTRY_ENVIRONMENT=production
|
||||
SENTRY_RELEASE=
|
||||
SENTRY_ODOO_DIR=${ROOT_PATH}
|
||||
|
||||
# Nginx
|
||||
CORS_ALLOWED_DOMAIN="'http://external-domain.test'"
|
||||
@@ -65,20 +76,23 @@ REDIS_HOST=redis
|
||||
REDIS_PORT=6379
|
||||
REDIS_PASSWORD=
|
||||
REDIS_URL=
|
||||
REDIS_PREFIX=odoo
|
||||
REDIS_PREFIX=odoocker
|
||||
REDIS_SENTINEL_MASTER_NAME=
|
||||
REDIS_SENTINEL_HOST=
|
||||
REDIS_SENTINEL_PORT=26379
|
||||
REDIS_EXPIRATION=604800
|
||||
REDIS_EXPIRATION_ANONYMOUS=10800
|
||||
REDIS_DATA=/var/lib/keydb
|
||||
|
||||
# Filesystem
|
||||
S3_VIRTUAL_HOST=s3.odoocker.test
|
||||
S3_API_PORT=9000
|
||||
S3_CONSOLE_PORT=9001
|
||||
|
||||
AWS_HOST=http://s3:${S3_API_PORT}
|
||||
AWS_REGION=
|
||||
AWS_ACCESS_KEY_ID=myaccesskey
|
||||
AWS_SECRET_ACCESS_KEY=mysecretkey
|
||||
AWS_BUCKETNAME=odoocker
|
||||
AWS_HOST=http://s3:${S3_API_PORT}
|
||||
AWS_REGION=
|
||||
|
||||
# PgAdmin
|
||||
PGADMIN_DOMAIN=pgadmin.odoocker.test
|
||||
@@ -103,26 +117,13 @@ SUPPORT_EMAIL=mail@example.com
|
||||
# Containers' Tags
|
||||
ODOO_TAG=16.0
|
||||
POSTGRES_TAG=16.0
|
||||
REDIS_TAG=latest
|
||||
S3_TAG=latest
|
||||
KEYDB_TAG=latest
|
||||
MINIO_TAG=latest
|
||||
NGINX_TAG=1.25.2
|
||||
NGINX_PROXY_TAG=1.3.1
|
||||
ACME_COMPANION_TAG=2.2.8
|
||||
PGADMIN_TAG=7.6
|
||||
|
||||
#------------#
|
||||
# Odoo #
|
||||
#------------#
|
||||
# Options not exposed on the command line.
|
||||
ADMIN_PASSWD=${ADMIN_PASSWD}
|
||||
CSV_INTERNAL_SEP=,
|
||||
PUBLISHER_WARRANTY_URL=http://services.openerp.com/publisher-warranty/
|
||||
ROOT_PATH=/usr/lib/python3/dist-packages/odoo
|
||||
REPORTGZ=False
|
||||
WEBSOCKET_KEEP_ALIVE_TIMEOUT=3600
|
||||
WEBSOCKET_RATE_LIMIT_BURST=10
|
||||
WEBSOCKET_RATE_LIMIT_DELAY=0.2
|
||||
|
||||
# Custom paths
|
||||
COMMUNITY_ADDONS=${ROOT_PATH}/addons
|
||||
ENTERPRISE_ADDONS=${ROOT_PATH}/enterprise
|
||||
@@ -132,6 +133,19 @@ CUSTOM_ADDONS=${ROOT_PATH}/custom-addons
|
||||
LOG_PATH=/var/log/odoo/odoo.log
|
||||
DEBUG_PATH=/usr/bin/odoo
|
||||
|
||||
#------------#
|
||||
# Odoo #
|
||||
#------------#
|
||||
# Options not exposed on the command line.
|
||||
ADMIN_PASSWD=${ADMIN_PASSWD}
|
||||
CSV_INTERNAL_SEP=,
|
||||
PUBLISHER_WARRANTY_URL=http://services.openerp.com/publisher-warranty/
|
||||
ROOT_PATH=${ROOT_PATH}
|
||||
REPORTGZ=False
|
||||
WEBSOCKET_KEEP_ALIVE_TIMEOUT=3600
|
||||
WEBSOCKET_RATE_LIMIT_BURST=10
|
||||
WEBSOCKET_RATE_LIMIT_DELAY=0.2
|
||||
|
||||
# Server startup config
|
||||
ODOO_RC=${ROOT_PATH}/odoo.conf
|
||||
SAVE=False
|
||||
@@ -159,14 +173,14 @@ XMLRPCS=True
|
||||
PROXY_MODE=True
|
||||
X_SENDFILE=False
|
||||
|
||||
# Testing
|
||||
# Testing Group
|
||||
TEST_FILE=False
|
||||
TEST_ENABLE=${TEST_ENABLE}
|
||||
TEST_TAGS=${TEST_TAGS}
|
||||
SCREENCASTS=None
|
||||
SCREENSHOTS=/tmp/odoo_tests
|
||||
|
||||
# Logging
|
||||
# Logging Group
|
||||
LOG_LEVEL=${LOG_LEVEL}
|
||||
LOG_HANDLER=odoo.http.rpc.request:${LOG_HANDLER_LEVEL},odoo.http.rpc.response:${LOG_HANDLER_LEVEL},:${LOG_HANDLER_LEVEL},odoo.sql_db:${LOG_HANDLER_LEVEL}
|
||||
LOG_DB=False
|
||||
@@ -174,7 +188,7 @@ LOG_DB_LEVEL=${LOG_LEVEL}
|
||||
SYSLOG=False
|
||||
LOGFILE=
|
||||
|
||||
# Email
|
||||
# SMTP Group
|
||||
EMAIL_FROM=${EMAIL_FROM}
|
||||
FROM_FILTER=${FROM_FILTER}
|
||||
SMTP_SERVER=${SMTP_SERVER}
|
||||
@@ -224,6 +238,29 @@ LIMIT_TIME_REAL=480
|
||||
LIMIT_TIME_REAL_CRON=600
|
||||
LIMIT_REQUEST=8192
|
||||
|
||||
# Redis
|
||||
ODOO_SESSION_REDIS=${SESSION_REDIS}
|
||||
ODOO_SESSION_REDIS_HOST=${REDIS_HOST}
|
||||
ODOO_SESSION_REDIS_PORT=${REDIS_PORT}
|
||||
ODOO_SESSION_REDIS_PASSWORD=${REDIS_PASSWORD}
|
||||
ODOO_SESSION_REDIS_URL=${REDIS_URL}
|
||||
ODOO_SESSION_REDIS_PREFIX=${REDIS_PREFIX}
|
||||
ODOO_SESSION_REDIS_SENTINEL_MASTER_NAME=${REDIS_SENTINEL_MASTER_NAME}
|
||||
ODOO_SESSION_REDIS_SENTINEL_HOST=${REDIS_SENTINEL_HOST}
|
||||
ODOO_SESSION_REDIS_SENTINEL_PORT=${REDIS_SENTINEL_PORT}
|
||||
ODOO_SESSION_REDIS_EXPIRATION=${REDIS_EXPIRATION}
|
||||
ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS=${REDIS_EXPIRATION_ANONYMOUS}
|
||||
|
||||
# Base Attachment Object Storage
|
||||
DISABLE_ATTACHMENT_STORAGE=0
|
||||
|
||||
# S3
|
||||
AWS_HOST=${AWS_HOST}
|
||||
AWS_REGION=${AWS_REGION}
|
||||
AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
|
||||
AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
|
||||
AWS_BUCKETNAME=${AWS_BUCKETNAME}
|
||||
|
||||
#--------------#
|
||||
# Docker #
|
||||
#--------------#
|
||||
@@ -270,25 +307,12 @@ DEFAULT_EMAIL=${SUPPORT_EMAIL}
|
||||
#-------------#
|
||||
# Redis #
|
||||
#-------------#
|
||||
ODOO_SESSION_REDIS=${SESSION_REDIS}
|
||||
ODOO_SESSION_REDIS_HOST=${REDIS_HOST}
|
||||
ODOO_SESSION_REDIS_PORT=${REDIS_PORT}
|
||||
ODOO_SESSION_REDIS_PASSWORD=${REDIS_PASSWORD}
|
||||
ODOO_SESSION_REDIS_URL=${REDIS_URL}
|
||||
ODOO_SESSION_REDIS_PREFIX=${REDIS_PREFIX}
|
||||
ODOO_SESSION_REDIS_EXPIRATION=${REDIS_EXPIRATION}
|
||||
ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS=${REDIS_EXPIRATION_ANONYMOUS}
|
||||
KEYDB_PORT=${REDIS_PORT}
|
||||
KEYDB_DATA=/var/lib/keydb
|
||||
|
||||
#----------#
|
||||
# S3 #
|
||||
#----------#
|
||||
AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
|
||||
AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
|
||||
AWS_REGION=${AWS_REGION}
|
||||
AWS_HOST=${AWS_HOST}
|
||||
AWS_BUCKETNAME=${AWS_BUCKETNAME}
|
||||
|
||||
DISABLE_ATTACHMENT_STORAGE=0
|
||||
#-------------#
|
||||
# Minio #
|
||||
#-------------#
|
||||
MINIO_ROOT_USER=${AWS_ACCESS_KEY_ID}
|
||||
MINIO_ROOT_PASSWORD=${AWS_SECRET_ACCESS_KEY}
|
||||
MINIO_VIRTUAL_HOST=${S3_VIRTUAL_HOST}
|
||||
|
||||
@@ -33,6 +33,9 @@ services:
|
||||
- ODOO_SESSION_REDIS_PASSWORD
|
||||
- ODOO_SESSION_REDIS_URL
|
||||
- ODOO_SESSION_REDIS_PREFIX
|
||||
- ODOO_SESSION_REDIS_SENTINEL_MASTER_NAME
|
||||
- ODOO_SESSION_REDIS_SENTINEL_HOST
|
||||
- ODOO_SESSION_REDIS_SENTINEL_PORT
|
||||
- ODOO_SESSION_REDIS_EXPIRATION
|
||||
- ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS
|
||||
- AWS_HOST
|
||||
@@ -69,18 +72,18 @@ services:
|
||||
- internal
|
||||
|
||||
redis:
|
||||
image: eqalpha/keydb:${REDIS_TAG}
|
||||
image: eqalpha/keydb:${KEYDB_TAG}
|
||||
platform: linux/amd64
|
||||
ports:
|
||||
- ${REDIS_PORT}:${REDIS_PORT}
|
||||
- ${KEYDB_PORT}:${KEYDB_PORT}
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- redis-data:${REDIS_DATA}
|
||||
- redis-data:${KEYDB_DATA}
|
||||
networks:
|
||||
- internal
|
||||
|
||||
s3:
|
||||
image: minio/minio:${S3_TAG}
|
||||
image: minio/minio:${MINIO_TAG}
|
||||
environment:
|
||||
- MINIO_ROOT_USER
|
||||
- MINIO_ROOT_PASSWORD
|
||||
|
||||
@@ -44,7 +44,7 @@ addons_path = ${ADDONS_PATH}
|
||||
upgrade_path = ${UPGRADE_PATH}
|
||||
|
||||
; --load
|
||||
server_wide_modules = ${SERVER_WIDE_MODULES}
|
||||
server_wide_modules = ${LOAD}
|
||||
|
||||
; --data-dir
|
||||
data_dir = ${DATA_DIR}
|
||||
@@ -263,6 +263,19 @@ limit_request = ${LIMIT_REQUEST}
|
||||
; External Integrations ;
|
||||
;-----------------------------;
|
||||
|
||||
;--------------;
|
||||
; Sentry ;
|
||||
;--------------;
|
||||
sentry_dsn = ${SENTRY_DSN}
|
||||
sentry_enabled = ${SENTRY_ENABLED}
|
||||
sentry_logging_level = ${SENTRY_LOGGING_LEVEL}
|
||||
sentry_exclude_loggers = ${SENTRY_EXCLUDE_LOGGERS}
|
||||
sentry_ignore_exceptions = ${SENTRY_IGNORE_EXCEPTIONS}
|
||||
sentry_include_context = ${SENTRY_INCLUDE_CONTEXT}
|
||||
sentry_environment = ${SENTRY_ENVIRONMENT}
|
||||
sentry_release = ${SENTRY_RELEASE}
|
||||
sentry_odoo_dir = ${SENTRY_ODOO_DIR}
|
||||
|
||||
;-------------;
|
||||
; Redis ;
|
||||
;-------------;
|
||||
@@ -290,12 +303,15 @@ ODOO_SESSION_REDIS_EXPIRATION = ${ODOO_SESSION_REDIS_EXPIRATION}
|
||||
; -- Time in seconds before expiration of the anonymous sessions (default is 3 hours)
|
||||
ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS = ${ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS}
|
||||
|
||||
;--------------------------------------;
|
||||
; Base Attachment Object Storage ;
|
||||
;--------------------------------------;
|
||||
; -- Disable Attachment Object Storage
|
||||
DISABLE_ATTACHMENT_STORAGE = ${DISABLE_ATTACHMENT_STORAGE}
|
||||
|
||||
;----------;
|
||||
; S3 ;
|
||||
;----------;
|
||||
; -- Disable S3 storage
|
||||
DISABLE_ATTACHMENT_STORAGE = ${DISABLE_ATTACHMENT_STORAGE}
|
||||
|
||||
; -- Not required if using AWS S3
|
||||
AWS_HOST = ${AWS_HOST}
|
||||
|
||||
|
||||
@@ -2,3 +2,4 @@ debugpy
|
||||
websocket-client
|
||||
redis
|
||||
boto3
|
||||
sentry-sdk
|
||||
|
||||
@@ -4,17 +4,14 @@ set -e
|
||||
|
||||
# Check if the repository directory exists
|
||||
if [ ! -d "odoo-cloud-platform" ]; then
|
||||
git clone https://github.com/camptocamp/odoo-cloud-platform.git --depth 1 --branch ${ODOO_TAG} --single-branch --no-tags;
|
||||
git clone https://github.com/odoocker/odoo-cloud-platform.git --depth 1 --branch ${ODOO_TAG} --single-branch --no-tags;
|
||||
cp -r odoo-cloud-platform/session_redis ${THIRD_PARTY_ADDONS}/session_redis
|
||||
cp -r odoo-cloud-platform/base_attachment_object_storage ${THIRD_PARTY_ADDONS}/base_attachment_object_storage
|
||||
cp -r odoo-cloud-platform/attachment_s3 ${THIRD_PARTY_ADDONS}/attachment_s3
|
||||
fi
|
||||
|
||||
# Define the path to the manifest file
|
||||
redis_manifest="${THIRD_PARTY_ADDONS}/session_redis/__manifest__.py"
|
||||
# Define the path to the manifest file
|
||||
s3_manifest="${THIRD_PARTY_ADDONS}/attachment_s3/__manifest__.py"
|
||||
|
||||
# Modify the manifest file
|
||||
python3 /fix-manifest.py $redis_manifest
|
||||
python3 /fix-manifest.py $s3_manifest
|
||||
# Check if the repository directory exists
|
||||
if [ ! -d "server-tools" ]; then
|
||||
git clone https://github.com/odoocker/server-tools.git --depth 1 --branch ${ODOO_TAG} --single-branch --no-tags;
|
||||
cp -r server-tools/sentry ${THIRD_PARTY_ADDONS}/sentry
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user