sourcebot-dev / sourcebot

Blazingly fast code search 🏎️ Deployed as a single Docker image 📦 Search million+ lines of code in your GitHub, GitLab, and Gitea repositories 🪄 MIT licensed ✅
https://sourcebot.dev
MIT License
1.17k stars 37 forks source link

Certificate error #100

Open elettrico opened 3 days ago

elettrico commented 3 days ago

Hi, I'm trying to use sourcebot for indexing a self-hosted instance. When I start the docker image it immediately stop with this error:

[backend] | 2024-11-29T13:13:42.246Z debug: [GitLab] Fetching all projects visible in https://gitlab.*****.com....
[backend] | 2024-11-29T13:13:42.349Z error: [main] Failed to sync configuration file /data/config.json with error:
[backend] | TypeError: fetch failed
[backend] |     at node:internal/deps/undici/undici:13392:13
[backend] |     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
[backend] |     at async defaultRequestHandler (file:///app/node_modules/@gitbeaker/rest/dist/index.mjs:66:22)
[backend] |     at async file:///app/node_modules/@gitbeaker/core/dist/index.mjs:99:22
[backend] |     at async measure (file:///app/packages/backend/dist/utils.js:5:18)
[backend] |     at async getGitLabReposFromConfig (file:///app/packages/backend/dist/gitlab.js:23:53)
[backend] |     at async syncConfig (file:///app/packages/backend/dist/main.js:109:37)
[backend] |     at async measure (file:///app/packages/backend/dist/utils.js:5:18)
[backend] |     at async _syncConfig (file:///app/packages/backend/dist/main.js:191:36)
[backend] |     at async main (file:///app/packages/backend/dist/main.js:226:5) {
[backend] |   [cause]: Error: unable to verify the first certificate
[backend] |       at TLSSocket.onConnectSecure (node:_tls_wrap:1677:34)
[backend] |       at TLSSocket.emit (node:events:518:28)
[backend] |       at TLSSocket._finishInit (node:_tls_wrap:1076:8)
[backend] |       at ssl.onhandshakedone (node:_tls_wrap:862:12) {
[backend] |     code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE'
[backend] |   }

while debug is active, it's not very clear to me which certificate it's complaining about (I suppose it doesn't like my gitlab instance has a self-signed certificate, also I am behind a proxy) and how can I inject my certificates or eventually ignore them.

Is there a way to do it?

Thanks

brendan-kellam commented 2 days ago

Heya - looking at the GitBeaker docs it mentions that you can use the NODE_EXTRA_CA_CERTS to inject your own certs.

Could you try adding -v /path/to/cert.pem:/app/cert.pem -e NODE_EXTRA_CA_CERTS=/app/cert.pem to your docker run command?