Ctrl K
ComunidadGuías…

compose.yaml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
services:
  gotenberg:
    image: ${DOCKER_REGISTRY}/${DOCKER_REPOSITORY}:${GOTENBERG_VERSION}
    ports:
      - "${API_PORT}:${API_PORT}"
    environment:
      GOTENBERG_API_BASIC_AUTH_USERNAME: ${GOTENBERG_API_BASIC_AUTH_USERNAME}
      GOTENBERG_API_BASIC_AUTH_PASSWORD: ${GOTENBERG_API_BASIC_AUTH_PASSWORD}
      OTEL_SERVICE_NAME: ${OTEL_SERVICE_NAME}
      OTEL_TRACES_EXPORTER: ${OTEL_TRACES_EXPORTER}
      OTEL_METRICS_EXPORTER: ${OTEL_METRICS_EXPORTER}
      OTEL_LOGS_EXPORTER: ${OTEL_LOGS_EXPORTER}
      OTEL_EXPORTER_OTLP_PROTOCOL: ${OTEL_EXPORTER_OTLP_PROTOCOL}
      OTEL_EXPORTER_OTLP_ENDPOINT: ${OTEL_EXPORTER_OTLP_ENDPOINT}
      OTEL_EXPORTER_OTLP_INSECURE: ${OTEL_EXPORTER_OTLP_INSECURE}
    command:
      - "gotenberg"
      - "--gotenberg-hide-banner=${GOTENBERG_HIDE_BANNER}"
      - "--gotenberg-graceful-shutdown-duration=${GOTENBERG_GRACEFUL_SHUTDOWN_DURATION}"
      - "--gotenberg-build-debug-data=${GOTENBERG_BUILD_DEBUG_DATA}"
      - "--api-port=${API_PORT}"
      - "--api-port-from-env=${API_PORT_FROM_ENV}"
      - "--api-bind-ip=${API_BIND_IP}"
      - "--api-tls-cert-file=${API_TLS_CERT_FILE}"
      - "--api-tls-key-file=${API_TLS_KEY_FILE}"
      - "--api-start-timeout=${API_START_TIMEOUT}"
      - "--api-timeout=${API_TIMEOUT}"
      - "--api-body-limit=${API_BODY_LIMIT}"
      - "--api-archive-max-entries=${API_ARCHIVE_MAX_ENTRIES}"
      - "--api-archive-max-ratio=${API_ARCHIVE_MAX_RATIO}"
      - "--api-root-path=${API_ROOT_PATH}"
      - "--api-correlation-id-header=${API_CORRELATION_ID_HEADER}"
      - "--api-enable-basic-auth=${API_ENABLE_BASIC_AUTH}"
      - "--api-download-from-allow-list=${API_DOWNLOAD_FROM_ALLOW_LIST}"
      - "--api-download-from-deny-list=${API_DOWNLOAD_FROM_DENY_LIST}"
      - "--api-download-from-deny-private-ips=${API_DOWNLOAD_FROM_DENY_PRIVATE_IPS}"
      - "--api-download-from-deny-public-ips=${API_DOWNLOAD_FROM_DENY_PUBLIC_IPS}"
      - "--api-download-from-enable-environment-proxy=${API_DOWNLOAD_FROM_ENABLE_ENVIRONMENT_PROXY}"
      - "--api-download-from-max-retry=${API_DOWNLOAD_FROM_MAX_RETRY}"
      - "--api-download-from-max-concurrency=${API_DOWNLOAD_FROM_MAX_CONCURRENCY}"
      - "--api-download-from-max-entries=${API_DOWNLOAD_FROM_MAX_ENTRIES}"
      - "--api-disable-download-from=${API_DISABLE_DOWNLOAD_FROM}"
      - "--api-disable-health-check-route-telemetry=${API_DISABLE_HEALTH_CHECK_ROUTE_TELEMETRY}"
      - "--api-disable-root-route-telemetry=${API_DISABLE_ROOT_ROUTE_TELEMETRY}"
      - "--api-disable-debug-route-telemetry=${API_DISABLE_DEBUG_ROUTE_TELEMETRY}"
      - "--api-disable-version-route-telemetry=${API_DISABLE_VERSION_ROUTE_TELEMETRY}"
      - "--api-enable-debug-route=${API_ENABLE_DEBUG_ROUTE}"
      - "--chromium-restart-after=${CHROMIUM_RESTART_AFTER}"
      - "--chromium-auto-start=${CHROMIUM_AUTO_START}"
      - "--chromium-max-queue-size=${CHROMIUM_MAX_QUEUE_SIZE}"
      - "--chromium-idle-shutdown-timeout=${CHROMIUM_IDLE_SHUTDOWN_TIMEOUT}"
      - "--chromium-max-concurrency=${CHROMIUM_MAX_CONCURRENCY}"
      - "--chromium-start-timeout=${CHROMIUM_START_TIMEOUT}"
      - "--chromium-allow-insecure-localhost=${CHROMIUM_ALLOW_INSECURE_LOCALHOST}"
      - "--chromium-ignore-certificate-errors=${CHROMIUM_IGNORE_CERTIFICATE_ERRORS}"
      - "--chromium-disable-web-security=${CHROMIUM_DISABLE_WEB_SECURITY}"
      - "--chromium-allow-file-access-from-files=${CHROMIUM_ALLOW_FILE_ACCESS_FROM_FILES}"
      - "--chromium-host-resolver-rules=${CHROMIUM_HOST_RESOLVER_RULES}"
      - "--chromium-proxy-server=${CHROMIUM_PROXY_SERVER}"
      - "--chromium-enable-environment-proxy=${CHROMIUM_ENABLE_ENVIRONMENT_PROXY}"
      - "--chromium-allow-list=${CHROMIUM_ALLOW_LIST}"
      - "--chromium-deny-list=${CHROMIUM_DENY_LIST}"
      - "--chromium-deny-private-ips=${CHROMIUM_DENY_PRIVATE_IPS}"
      - "--chromium-deny-public-ips=${CHROMIUM_DENY_PUBLIC_IPS}"
      - "--chromium-shared-browser-context=${CHROMIUM_SHARED_BROWSER_CONTEXT}"
      - "--chromium-clear-cache=${CHROMIUM_CLEAR_CACHE}"
      - "--chromium-clear-cookies=${CHROMIUM_CLEAR_COOKIES}"
      - "--chromium-clear-storage=${CHROMIUM_CLEAR_STORAGE}"
      - "--chromium-disable-javascript=${CHROMIUM_DISABLE_JAVASCRIPT}"
      - "--chromium-disable-routes=${CHROMIUM_DISABLE_ROUTES}"
      - "--chromium-debug-protocol=${CHROMIUM_DEBUG_PROTOCOL}"
      - "--libreoffice-restart-after=${LIBREOFFICE_RESTART_AFTER}"
      - "--libreoffice-max-queue-size=${LIBREOFFICE_MAX_QUEUE_SIZE}"
      - "--libreoffice-idle-shutdown-timeout=${LIBREOFFICE_IDLE_SHUTDOWN_TIMEOUT}"
      - "--libreoffice-auto-start=${LIBREOFFICE_AUTO_START}"
      - "--libreoffice-start-timeout=${LIBREOFFICE_START_TIMEOUT}"
      - "--libreoffice-allow-list=${LIBREOFFICE_ALLOW_LIST}"
      - "--libreoffice-deny-list=${LIBREOFFICE_DENY_LIST}"
      - "--libreoffice-deny-private-ips=${LIBREOFFICE_DENY_PRIVATE_IPS}"
      - "--libreoffice-deny-public-ips=${LIBREOFFICE_DENY_PUBLIC_IPS}"
      - "--libreoffice-enable-macros=${LIBREOFFICE_ENABLE_MACROS}"
      - "--libreoffice-enable-environment-proxy=${LIBREOFFICE_ENABLE_ENVIRONMENT_PROXY}"
      - "--libreoffice-disable-routes=${LIBREOFFICE_DISABLE_ROUTES}"
      - "--log-level=${LOG_LEVEL}"
      - "--log-fields-prefix=${LOG_FIELDS_PREFIX}"
      - "--log-std-format=${LOG_STD_FORMAT}"
      - "--log-std-enable-gcp-fields=${LOG_STD_ENABLE_GCP_FIELDS}"
      - "--log-std-level-case=${LOG_STD_LEVEL_CASE}"
      - "--pdf-max-concurrency=${PDF_MAX_CONCURRENCY}"
      - "--pdf-max-stream-bytes=${PDF_MAX_STREAM_BYTES}"
      - "--pdf-max-embedded-file-bytes=${PDF_MAX_EMBEDDED_FILE_BYTES}"
      - "--pdf-max-image-pixels=${PDF_MAX_IMAGE_PIXELS}"
      - "--pdf-max-render-pixels=${PDF_MAX_RENDER_PIXELS}"
      - "--pdf-allow-list=${PDF_ALLOW_LIST}"
      - "--pdf-deny-list=${PDF_DENY_LIST}"
      - "--pdf-deny-private-ips=${PDF_DENY_PRIVATE_IPS}"
      - "--pdf-deny-public-ips=${PDF_DENY_PUBLIC_IPS}"
      - "--pdf-enable-environment-proxy=${PDF_ENABLE_ENVIRONMENT_PROXY}"
      - "--pdf-disable-routes=${PDF_DISABLE_ROUTES}"
      - "--pdf-disable-stages=${PDF_DISABLE_STAGES}"
      - "--webhook-enable-sync-mode=${WEBHOOK_ENABLE_SYNC_MODE}"
      - "--webhook-allow-list=${WEBHOOK_ALLOW_LIST}"
      - "--webhook-deny-list=${WEBHOOK_DENY_LIST}"
      - "--webhook-deny-private-ips=${WEBHOOK_DENY_PRIVATE_IPS}"
      - "--webhook-deny-public-ips=${WEBHOOK_DENY_PUBLIC_IPS}"
      - "--webhook-enable-environment-proxy=${WEBHOOK_ENABLE_ENVIRONMENT_PROXY}"
      - "--webhook-max-retry=${WEBHOOK_MAX_RETRY}"
      - "--webhook-retry-min-wait=${WEBHOOK_RETRY_MIN_WAIT}"
      - "--webhook-retry-max-wait=${WEBHOOK_RETRY_MAX_WAIT}"
      - "--webhook-client-timeout=${WEBHOOK_CLIENT_TIMEOUT}"
      - "--webhook-disable=${WEBHOOK_DISABLE}"

  otel-collector:
    image: otel/opentelemetry-collector-contrib:latest
    command: ["--config=/etc/otel-collector-config.yaml"]
    volumes:
      - ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
    ports:
      - "4317:4317" # OTLP gRPC receiver
    depends_on:
      openobserve:
        condition: service_started
    restart: on-failure

  openobserve:
    image: public.ecr.aws/zinclabs/openobserve:latest
    restart: always
    ports:
      - "5080:5080"
      - "5081:5081"
    environment:
      ZO_ROOT_USER_EMAIL: telemetry@gotenberg.dev
      ZO_ROOT_USER_PASSWORD: telemetry

networks:
  default:
    enable_ipv6: false