stitionai / devika

Devika is an Agentic AI Software Engineer that can understand high-level human instructions, break them down into steps, research relevant information, and write code to achieve the given objective. Devika aims to be a competitive open-source alternative to Devin by Cognition AI.
MIT License
18.28k stars 2.38k forks source link

Docker config is broken. Cant create a project or select a model. #443

Open thenetguy opened 5 months ago

thenetguy commented 5 months ago

Describe the bug

running devika with docker , cant create a project or select a model

How To Reproduce

Steps to reproduce the behavior (example):

  1. clone the repo
  2. rename sample.config.toml to config.toml + add api keys
  3. run docker-compose up -d

Expected behavior

i should be able to create a project and select a model which cant be done.

Screenshots and logs

Backend logs:

04/24/14 21:08:11: root: INFO : Starting initialization of Devika...
04/24/14 21:08:11: root: INFO : Setting up prerequisite jobs...
04/24/14 21:08:15: root: INFO : Beginning to load BERT models from sentence-transformer...
04/24/14 21:08:26: root: INFO : Successful loading of BERT model.
04/24/14 21:08:29: root: WARNING: Ollama is currently unavailable.
04/24/14 21:08:29: root: WARNING: Please start the Ollama server for its models, or opt for alternative models.
huggingface/tokenizers: A fork in the current process has been detected post the use of parallelism, leading to disabled parallelism to prevent deadlocks. To circumvent this warning:
- Refrain from utilizing tokenizers prior to forking, if feasible.
- Manually specify the TOKENIZERS_PARALLELISM environment variable to either (true | false).
huggingface/tokenizers: Detected a process fork after parallelism usage, hence parallelism has been disabled to avert deadlocks. To avoid this alert:
- Avoid employing tokenizers before forking when possible.
- Directly set the TOKENIZERS_PARALLELISM environment variable to (true | false).
04/24/14 21:08:30: root: INFO : Devika is now fully operational!

Frontend logs:

$ vite dev --host
Dependencies are being re-optimized
VITE version 5.2.8 is up and running in 461 ms
➜ Access locally at: http://localhost:3000/
➜ Access over the network at: http://172.22.0.4:3000/
9:08:35 PM [vite] πŸš€ Optimizing new dependencies: mode-watcher, svelte-sonner, @xterm/xterm, @xterm/addon-fit, paneforge, socket.io-client, tiktoken/lite, clsx, tailwind-merge
9:08:35 PM [vite] πŸ”„ Dependencies have been updated. Refreshing...
9:08:54 PM [vite] πŸš€ New optimization completed for: bits-ui
9:08:54 PM [vite] πŸ”„ Updated optimized dependencies. Refreshing...
npm ERR! Error in path /home/nonroot/client/ui
npm ERR! The command was terminated
npm ERR! Received SIGTERM signal
npm ERR! Command execution failed: sh -c bun run dev -- --host
npm ERR! Detailed logs of this run can be found at: /home/nonroot/client/.npm/_logs/2024-04-14T21_08_11_687Z-debug-0.log
$ vite dev --host
VITE version 5.2.8 is up and running in 410 ms
➜ Access locally at: http://localhost:3000/
➜ Access over the network at: http://172.22.0.4:3000/

Ollama Logs:

Couldn't find '/root/.ollama/id_ed25519'. Generating new private key.
Your new public key is: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEEKVm9147YxtqIAPhHmbIDPxMpbaVEJmNzwHnjpj1oK
time=2024-04-14T21:08:11.032Z level=INFO source=images.go:804 msg="total blobs: 0"
time=2024-04-14T21:08:11.032Z level=INFO source=images.go:811 msg="total unused blobs removed: 0"
time=2024-04-14T21:08:11.032Z level=INFO source=routes.go:1118 msg="Listening on [::]:11434 (version 0.1.31)"
time=2024-04-14T21:08:11.033Z level=INFO source=payload_common.go:113 msg="Extracting dynamic libraries to /tmp/ollama2785824563/runners ..."
time=2024-04-14T21:08:13.140Z level=INFO source=payload_common.go:140 msg="Dynamic LLM libraries [cpu cuda_v11 cpu_avx2 rocm_v60000 cpu_avx]"
time=2024-04-14T21:08:13.140Z level=INFO source=gpu.go:115 msg="Detecting GPU type"
time=2024-04-14T21:08:13.141Z level=INFO source=gpu.go:265 msg="Searching for GPU management library libcudart.so*"
time=2024-04-14T21:08:13.142Z level=INFO source=gpu.go:311 msg="Discovered GPU libraries: [/tmp/ollama2785824563/runners/cuda_v11/libcudart.so.11.0]"
time=2024-04-14T21:08:13.143Z level=INFO source=gpu.go:340 msg="Unable to load cudart CUDA management library /tmp/ollama2785824563/runners/cuda_v11/libcudart.so.11.0: cudart init failure: 35"
time=2024-04-14T21:08:13.143Z level=INFO source=gpu.go:265 msg="Searching for GPU management library libnvidia-ml.so"
time=2024-04-14T21:08:13.144Z level=INFO source=gpu.go:311 msg="Discovered GPU libraries: []"
time=2024-04-14T21:08:13.144Z level=INFO source=cpu_common.go:11 msg="CPU has AVX2"
time=2024-04-14T21:08:13.144Z level=INFO source=routes.go:1141 msg="no GPU detected"
[GIN] 2024/04/14 - 21:14:32 | 200 | 538.219Β΅s | 172.22.0.1 | GET "/favicon.ico"

Configuration

Docker on windows and ubuntu have the same result of nothing works

Additional context

the apparent solution is to run bun run dev --host. if thats the case can the repo be updated to reflect that fact.

ARajgor commented 5 months ago

Current docker file is broken. If you can update it that would be great.

tensiondriven commented 5 months ago

Same issue here on ecee79f212168a9f0e7da86aec16ec0d62953f69

I am running docker with docker compose up on a headless ubuntu machine which is attached to my network (I am not running devinka locally).

I have edited my config.toml to point to the DNS name for my server. The config file seems to be copied into the docker environmnent correctly.

In addition to not being able to save the projects, I am also seeing errors in the console related to the HTTP host not being respected.

I have set my config.toml to point to llm, which is my local DNS name for my server.

However, I am still seeing socketio errors which are referencing 127.0.0.1.

Note that I do see that the DNS name is respected in some cases.

Copy of chrome console log follows:

injected.js:4 Retrieving "b5x-stateful-inline-icon" flag errored: timed out - falling back
qy @ injected.js:4
await in qy (async)
Qy @ injected.js:4
(anonymous) @ injected.js:4
(anonymous) @ injected.js:6
Show 4 more frames
Show less
api.js:26 

       GET http://127.0.0.1:1337/socket.io/?EIO=4&transport=polling&t=Oxzs4Js net::ERR_CONNECTION_REFUSED
create @ socket__io-client.js?v=17038681:898
_Request @ socket__io-client.js?v=17038681:841
request @ socket__io-client.js?v=17038681:794
doPoll @ socket__io-client.js?v=17038681:819
poll @ socket__io-client.js?v=17038681:711
doOpen @ socket__io-client.js?v=17038681:672
open @ socket__io-client.js?v=17038681:490
open @ socket__io-client.js?v=17038681:1378
_Socket @ socket__io-client.js?v=17038681:1329
open @ socket__io-client.js?v=17038681:3067
Manager @ socket__io-client.js?v=17038681:3002
lookup2 @ socket__io-client.js?v=17038681:3324
(anonymous) @ api.js:26
Show 12 more frames
Show less
Sidebar.svelte:23 URLΒ {origin: 'http://llm:3000', protocol: 'http:', username: '', password: '', host: 'llm:3000', …}
api.js:30 

       GET http://127.0.0.1:1337/api/data net::ERR_CONNECTION_REFUSED
window.fetch @ fetcher.js?v=17038681:65
fetchInitialData @ api.js:30
load @ +page.svelte:27
(anonymous) @ +page.svelte:33
run @ chunk-XCXM2EVN.js?v=17038681:27
(anonymous) @ chunk-XCXM2EVN.js?v=17038681:2132
flush @ chunk-XCXM2EVN.js?v=17038681:1329
init @ chunk-XCXM2EVN.js?v=17038681:2213
Root @ root.svelte:21
createProxiedComponent @ svelte-hooks.js?v=17038681:341
ProxyComponent @ proxy.js?v=17038681:242
Proxy<Root> @ proxy.js?v=17038681:349
initialize @ client.js?v=17038681:434
navigate @ client.js?v=17038681:1410
await in navigate (async)
_goto @ client.js?v=17038681:367
goto @ client.js?v=17038681:1732
start @ client.js?v=17038681:295
(anonymous) @ (index):27
Promise.then (async)
(anonymous) @ (index):26
Show 13 more frames
Show less
fetcher.js?v=17038681:65 

       Uncaught (in promise) TypeError: Failed to fetch
    at window.fetch (fetcher.js?v=17038681:65:10)
    at fetchInitialData (api.js:30:26)
    at load (+page.svelte:27:13)
    at +page.svelte:33:5
    at run (chunk-XCXM2EVN.js?v=17038681:27:10)
    at Array.map (<anonymous>)
    at chunk-XCXM2EVN.js?v=17038681:2132:50
    at flush (chunk-XCXM2EVN.js?v=17038681:1329:9)
    at init (chunk-XCXM2EVN.js?v=17038681:2213:5)
    at new Root (root.svelte:21:25)
window.fetch @ fetcher.js?v=17038681:65
fetchInitialData @ api.js:30
load @ +page.svelte:27
(anonymous) @ +page.svelte:33
run @ chunk-XCXM2EVN.js?v=17038681:27
(anonymous) @ chunk-XCXM2EVN.js?v=17038681:2132
flush @ chunk-XCXM2EVN.js?v=17038681:1329
init @ chunk-XCXM2EVN.js?v=17038681:2213
Root @ root.svelte:21
createProxiedComponent @ svelte-hooks.js?v=17038681:341
ProxyComponent @ proxy.js?v=17038681:242
Proxy<Root> @ proxy.js?v=17038681:349
initialize @ client.js?v=17038681:434
navigate @ client.js?v=17038681:1410
await in navigate (async)
(anonymous) @ +page.svelte:33
run @ chunk-XCXM2EVN.js?v=17038681:27
(anonymous) @ chunk-XCXM2EVN.js?v=17038681:2132
flush @ chunk-XCXM2EVN.js?v=17038681:1329
init @ chunk-XCXM2EVN.js?v=17038681:2213
Root @ root.svelte:21
createProxiedComponent @ svelte-hooks.js?v=17038681:341
ProxyComponent @ proxy.js?v=17038681:242
Proxy<Root> @ proxy.js?v=17038681:349
initialize @ client.js?v=17038681:434
navigate @ client.js?v=17038681:1410
await in navigate (async)
_goto @ client.js?v=17038681:367
goto @ client.js?v=17038681:1732
start @ client.js?v=17038681:295
(anonymous) @ (index):27
Promise.then (async)
(anonymous) @ (index):26
Show 22 more frames
Show less
api.js:26 

       GET http://127.0.0.1:1337/socket.io/?EIO=4&transport=polling&t=Oxzs4Th net::ERR_CONNECTION_REFUSED
create @ socket__io-client.js?v=17038681:898
_Request @ socket__io-client.js?v=17038681:841
request @ socket__io-client.js?v=17038681:794
doPoll @ socket__io-client.js?v=17038681:819
poll @ socket__io-client.js?v=17038681:711
doOpen @ socket__io-client.js?v=17038681:672
open @ socket__io-client.js?v=17038681:490
open @ socket__io-client.js?v=17038681:1378
_Socket @ socket__io-client.js?v=17038681:1329
open @ socket__io-client.js?v=17038681:3067
(anonymous) @ socket__io-client.js?v=17038681:3274
setTimeout (async)
reconnect @ socket__io-client.js?v=17038681:3268
maybeReconnectOnOpen @ socket__io-client.js?v=17038681:3054
onError @ socket__io-client.js?v=17038681:3083
Emitter.emit @ socket__io-client.js?v=17038681:356
onError @ socket__io-client.js?v=17038681:1709
Emitter.emit @ socket__io-client.js?v=17038681:356
onError @ socket__io-client.js?v=17038681:482
(anonymous) @ socket__io-client.js?v=17038681:822
Emitter.emit @ socket__io-client.js?v=17038681:356
onError @ socket__io-client.js?v=17038681:916
(anonymous) @ socket__io-client.js?v=17038681:894
setTimeout (async)
xhr.onreadystatechange @ socket__io-client.js?v=17038681:893
XMLHttpRequest.send (async)
create @ socket__io-client.js?v=17038681:898
_Request @ socket__io-client.js?v=17038681:841
request @ socket__io-client.js?v=17038681:794
doPoll @ socket__io-client.js?v=17038681:819
poll @ socket__io-client.js?v=17038681:711
doOpen @ socket__io-client.js?v=17038681:672
open @ socket__io-client.js?v=17038681:490
open @ socket__io-client.js?v=17038681:1378
_Socket @ socket__io-client.js?v=17038681:1329
open @ socket__io-client.js?v=17038681:3067
Manager @ socket__io-client.js?v=17038681:3002
lookup2 @ socket__io-client.js?v=17038681:3324
(anonymous) @ api.js:26
Show 35 more frames
Show less
api.js:26 

       GET http://127.0.0.1:1337/socket.io/?EIO=4&transport=polling&t=Oxzs55i net::ERR_CONNECTION_REFUSED
create @ socket__io-client.js?v=17038681:898
_Request @ socket__io-client.js?v=17038681:841
request @ socket__io-client.js?v=17038681:794
doPoll @ socket__io-client.js?v=17038681:819
poll @ socket__io-client.js?v=17038681:711
doOpen @ socket__io-client.js?v=17038681:672
open @ socket__io-client.js?v=17038681:490
open @ socket__io-client.js?v=17038681:1378
_Socket @ socket__io-client.js?v=17038681:1329
open @ socket__io-client.js?v=17038681:3067
(anonymous) @ socket__io-client.js?v=17038681:3274
setTimeout (async)
reconnect @ socket__io-client.js?v=17038681:3268
(anonymous) @ socket__io-client.js?v=17038681:3277
onError @ socket__io-client.js?v=17038681:3081
Emitter.emit @ socket__io-client.js?v=17038681:356
onError @ socket__io-client.js?v=17038681:1709
Emitter.emit @ socket__io-client.js?v=17038681:356
onError @ socket__io-client.js?v=17038681:482
(anonymous) @ socket__io-client.js?v=17038681:822
Emitter.emit @ socket__io-client.js?v=17038681:356
onError @ socket__io-client.js?v=17038681:916
(anonymous) @ socket__io-client.js?v=17038681:894
setTimeout (async)
xhr.onreadystatechange @ socket__io-client.js?v=17038681:893
XMLHttpRequest.send (async)
create @ socket__io-client.js?v=17038681:898
_Request @ socket__io-client.js?v=17038681:841
request @ socket__io-client.js?v=17038681:794
doPoll @ socket__io-client.js?v=17038681:819
poll @ socket__io-client.js?v=17038681:711
doOpen @ socket__io-client.js?v=17038681:672
open @ socket__io-client.js?v=17038681:490
open @ socket__io-client.js?v=17038681:1378
_Socket @ socket__io-client.js?v=17038681:1329
open @ socket__io-client.js?v=17038681:3067
(anonymous) @ socket__io-client.js?v=17038681:3274
setTimeout (async)
reconnect @ socket__io-client.js?v=17038681:3268
maybeReconnectOnOpen @ socket__io-client.js?v=17038681:3054
onError @ socket__io-client.js?v=17038681:3083
Emitter.emit @ socket__io-client.js?v=17038681:356
onError @ socket__io-client.js?v=17038681:1709
Emitter.emit @ socket__io-client.js?v=17038681:356
onError @ socket__io-client.js?v=17038681:482
(anonymous) @ socket__io-client.js?v=17038681:822
Emitter.emit @ socket__io-client.js?v=17038681:356
onError @ socket__io-client.js?v=17038681:916
(anonymous) @ socket__io-client.js?v=17038681:894
setTimeout (async)
xhr.onreadystatechange @ socket__io-client.js?v=17038681:893
XMLHttpRequest.send (async)
create @ socket__io-client.js?v=17038681:898
_Request @ socket__io-client.js?v=17038681:841
request @ socket__io-client.js?v=17038681:794
doPoll @ socket__io-client.js?v=17038681:819
poll @ socket__io-client.js?v=17038681:711
doOpen @ socket__io-client.js?v=17038681:672
open @ socket__io-client.js?v=17038681:490
open @ socket__io-client.js?v=17038681:1378
_Socket @ socket__io-client.js?v=17038681:1329
open @ socket__io-client.js?v=17038681:3067
Manager @ socket__io-client.js?v=17038681:3002
lookup2 @ socket__io-client.js?v=17038681:3324
(anonymous) @ api.js:26
Show 58 more frames
Show less
api.js:26 

       GET http://127.0.0.1:1337/socket.io/?EIO=4&transport=polling&t=Oxzs67d net::ERR_CONNECTION_REFUSED
create @ socket__io-client.js?v=17038681:898
_Request @ socket__io-client.js?v=17038681:841
request @ socket__io-client.js?v=17038681:794
doPoll @ socket__io-client.js?v=17038681:819
poll @ socket__io-client.js?v=17038681:711
doOpen @ socket__io-client.js?v=17038681:672
open @ socket__io-client.js?v=17038681:490
open @ socket__io-client.js?v=17038681:1378
_Socket @ socket__io-client.js?v=17038681:1329
open @ socket__io-client.js?v=17038681:3067
(anonymous) @ socket__io-client.js?v=17038681:3274
setTimeout (async)
reconnect @ socket__io-client.js?v=17038681:3268
(anonymous) @ socket__io-client.js?v=17038681:3277
onError @ socket__io-client.js?v=17038681:3081
Emitter.emit @ socket__io-client.js?v=17038681:356
onError @ socket__io-client.js?v=17038681:1709
Emitter.emit @ socket__io-client.js?v=17038681:356
onError @ socket__io-client.js?v=17038681:482
(anonymous) @ socket__io-client.js?v=17038681:822
Emitter.emit @ socket__io-client.js?v=17038681:356
onError @ socket__io-client.js?v=17038681:916
(anonymous) @ socket__io-client.js?v=17038681:894
setTimeout (async)
xhr.onreadystatechange @ socket__io-client.js?v=17038681:893
XMLHttpRequest.send (async)
create @ socket__io-client.js?v=17038681:898
_Request @ socket__io-client.js?v=17038681:841
request @ socket__io-client.js?v=17038681:794
doPoll @ socket__io-client.js?v=17038681:819
poll @ socket__io-client.js?v=17038681:711
doOpen @ socket__io-client.js?v=17038681:672
open @ socket__io-client.js?v=17038681:490
open @ socket__io-client.js?v=17038681:1378
_Socket @ socket__io-client.js?v=17038681:1329
open @ socket__io-client.js?v=17038681:3067
(anonymous) @ socket__io-client.js?v=17038681:3274
setTimeout (async)
reconnect @ socket__io-client.js?v=17038681:3268
(anonymous) @ socket__io-client.js?v=17038681:3277
onError @ socket__io-client.js?v=17038681:3081
Emitter.emit @ socket__io-client.js?v=17038681:356
onError @ socket__io-client.js?v=17038681:1709
Emitter.emit @ socket__io-client.js?v=17038681:356
onError @ socket__io-client.js?v=17038681:482
(anonymous) @ socket__io-client.js?v=17038681:822
Emitter.emit @ socket__io-client.js?v=17038681:356
onError @ socket__io-client.js?v=17038681:916
(anonymous) @ socket__io-client.js?v=17038681:894
setTimeout (async)
xhr.onreadystatechange @ socket__io-client.js?v=17038681:893
XMLHttpRequest.send (async)
create @ socket__io-client.js?v=17038681:898
_Request @ socket__io-client.js?v=17038681:841
request @ socket__io-client.js?v=17038681:794
doPoll @ socket__io-client.js?v=17038681:819
poll @ socket__io-client.js?v=17038681:711
doOpen @ socket__io-client.js?v=17038681:672
open @ socket__io-client.js?v=17038681:490
open @ socket__io-client.js?v=17038681:1378
_Socket @ socket__io-client.js?v=17038681:1329
open @ socket__io-client.js?v=17038681:3067
(anonymous) @ socket__io-client.js?v=17038681:3274
setTimeout (async)
reconnect @ socket__io-client.js?v=17038681:3268
maybeReconnectOnOpen @ socket__io-client.js?v=17038681:3054
onError @ socket__io-client.js?v=17038681:3083
Emitter.emit @ socket__io-client.js?v=17038681:356
onError @ socket__io-client.js?v=17038681:1709
Emitter.emit @ socket__io-client.js?v=17038681:356
onError @ socket__io-client.js?v=17038681:482
(anonymous) @ socket__io-client.js?v=17038681:822
Emitter.emit @ socket__io-client.js?v=17038681:356
onError @ socket__io-client.js?v=17038681:916
(anonymous) @ socket__io-client.js?v=17038681:894
setTimeout (async)
xhr.onreadystatechange @ socket__io-client.js?v=17038681:893
XMLHttpRequest.send (async)
create @ socket__io-client.js?v=17038681:898
_Request @ socket__io-client.js?v=17038681:841
request @ socket__io-client.js?v=17038681:794
doPoll @ socket__io-client.js?v=17038681:819
poll @ socket__io-client.js?v=17038681:711
doOpen @ socket__io-client.js?v=17038681:672
open @ socket__io-client.js?v=17038681:490
open @ socket__io-client.js?v=17038681:1378
_Socket @ socket__io-client.js?v=17038681:1329
open @ socket__io-client.js?v=17038681:3067
Manager @ socket__io-client.js?v=17038681:3002
lookup2 @ socket__io-client.js?v=17038681:3324
(anonymous) @ api.js:26
Show 81 more frames
Show less
api.js:26 

       GET http://127.0.0.1:1337/socket.io/?EIO=4&transport=polling&t=Oxzs7I3 net::ERR_CONNECTION_REFUSED
tensiondriven commented 5 months ago

I checked the docker-compose.yml file and saw that the VITE is hard-coded, e.g. not reading from config.toml (I didn't see any environment variable references in the docker-compose.yml file):

  devika-frontend-app:
    build:
      context: .
      dockerfile: app.dockerfile
      args:
        - VITE_API_BASE_URL=http://127.0.0.1:1337

I changed this VITE_API_BASE_URL to point to my local machine (dns name llm).

Also, it looks like in some cases, the docker-compose file is referencing localhost (for the health checks` and in others 127.0.0.1.

Ideally this VITE_API_BASE_URL would be "relative" to the page being viewed, but because a different port is being used (1337), I'm not sure how you can construct a relative URL in the docker-compose file.

Another option might be to remove this environment variable entirely and somehow generate it on the client at runtime, so it could be relative to the current page, e.g.

https://stackoverflow.com/questions/6016120/relative-url-to-a-different-port-number-in-a-hyperlink

tensiondriven commented 5 months ago

I'm able to select a project and set a search engine and model, and interact with the model. So, this particular issue may be solved. I have the following issues when using devinka now:

thenetguy commented 5 months ago

I'm able to select a project and set a search engine and model, and interact with the model. So, this particular issue may be solved. I have the following issues when using devinka now:

* Refreshing the page loses all state; my project is not selected.  When I do choose the project, it doesn't update the selected search engine or LLM model (which i would expect)

* I'm not able to get Devinka to do anything terribly useful, though perhaps this is a limitation of the system.  A file tree/browser would help me understand what the system has done.

changing the VITE_API_BASE_URL to localhost or the ip or the DNS name of the machine has the same result. still Cant create a project or select a model.

tensiondriven commented 5 months ago

@thenetguy Did you pull?

BindingOx commented 4 months ago

any fix?

beetlezap commented 4 months ago

same issue for me...what can I do to help ?

imkebe commented 4 months ago

Where the app.dockerfile suppose to be located ? There is none in repo.