{"id":25315699,"url":"https://github.com/felipeelias/local-ai","last_synced_at":"2026-05-04T07:40:17.888Z","repository":{"id":277325509,"uuid":"930253218","full_name":"felipeelias/local-ai","owner":"felipeelias","description":"Run a full AI Platform locally, including Chat, Image generation, Cursor/VSCode integration","archived":false,"fork":false,"pushed_at":"2025-02-13T10:11:12.000Z","size":52,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T15:53:03.530Z","etag":null,"topics":["continue-dev","cursor","ollama","openwebui","vscode"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/felipeelias.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-10T10:32:45.000Z","updated_at":"2025-02-13T10:11:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"c44465d8-cf9d-4da4-8729-746044cd351c","html_url":"https://github.com/felipeelias/local-ai","commit_stats":null,"previous_names":["felipeelias/local-ai"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/felipeelias/local-ai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipeelias%2Flocal-ai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipeelias%2Flocal-ai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipeelias%2Flocal-ai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipeelias%2Flocal-ai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/felipeelias","download_url":"https://codeload.github.com/felipeelias/local-ai/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipeelias%2Flocal-ai/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32599408,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"online","status_checked_at":"2026-05-04T02:00:06.625Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["continue-dev","cursor","ollama","openwebui","vscode"],"created_at":"2025-02-13T18:24:46.387Z","updated_at":"2026-05-04T07:40:17.882Z","avatar_url":"https://github.com/felipeelias.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Local AI Infrastructure\n\nIf you're worried about privacy and security, you can run your own local AI infrastructure with this repository.\n\nImagine running ChatGPT, Stable Diffusion, Cursor (or VSCode) chat/autocomplete, and more, locally.\n\nIt includes the following basic services:\n\n- [Ollama](https://github.com/ollama/ollama) as the LLM provider\n- [Open WebUI](https://github.com/open-webui/open-webui), a browser-based AI platform\n- [ComfyUI](https://github.com/comfyanonymous/ComfyUI), for image generation, integrated with Open WebUI\n- [ngrok](https://ngrok.com/), enable internet access and Cursor integration\n\nIt's also possible to integrate this with Cursor or VSCode, via [continue.dev](https://continue.dev/).\n\n\n## Prerequisites\n\n### Hardware\n\nThis was built with focus on NVIDIA GPUs, using other GPUs is out of scope, but it's possible by tweaking the docker-compose file.\n\n### Ngrok\n\nIf you want to expose your services to the internet, you can use [ngrok](https://ngrok.com/). This is not required, so if you don't want to use it, you can just remove the `ngrok` and `nginx` services from the docker-compose file.\n\n## Usage\n\nStart the services with docker compose. This will take quite a while, mostly due to `comfyui` image. If are interested in only testing it, you can skip the `comfyui` service (comment it out).\n\nCreate the external volumes for the services that need them:\n\n```bash\ndocker volume create ollama\ndocker volume create open-webui\ndocker volume create comfyui-checkpoints\ndocker volume create comfyui-vae\n```\n\nand then start the services:\n\n```bash\ndocker compose up -d\n```\n\n## Configuration\n\n### Ollama\n\nTo get started, you need to download the models from the [ollama models page](https://ollama.com/models).\n\nYou can do that by running the following command:\n\n```bash\ndocker compose exec -it ollama ollama pull llama3.1:8b\n```\n\nTo verify that the model was downloaded correctly, run:\n\n```bash\ndocker compose exec -it ollama ollama list\n```\n\n### Open WebUI\n\nOpen WebUI documentation is available [here](https://docs.openwebui.com/).\n\nThe service can be accessed at [localhost:3002](http://localhost:3002) and if you open for the first time, you'll need to create an account.\n\nThere isn't much to setup so you can create a chat and start using it right away.\n\n### ComfyUI\n\nComfyUI documentation is available [here](https://docs.comfy.org/).\n\nThe service can be accessed at [localhost:8188/](http://localhost:8188/) however you still need to configure it.\n\nA guide on how to configure Open WebUI to use ComfyUI is available [here](https://docs.openwebui.com/tutorials/images#comfyui).\n\n### VSCode\n\nTo integrate with VSCode, you can use the [continue.dev](https://continue.dev/) extension.\n\nOnce installed, you need to point it to the local ollama instance. Detailed documentation is available [here](https://docs.continue.dev/chat/model-setup#local-offline-experience), but in short, you need to add this to the extension's `config.json` file:\n\n```json\n{\n  \"models\": [\n    {\n      \"title\": \"llama3.1:8b\",\n      \"provider\": \"ollama\",\n      \"model\": \"llama3.1:8b\",\n      \"apiBase\": \"http://localhost:11434\"\n    }\n  ]\n}\n```\n\n### Cursor\n\nIt's possible to point Cursor to use the local ollama instance. This will work for the \"chat\" and \"composer\", but not for the autocomplete features.\n\nAs the time of the writing, Cursor servers need to reach out to your local machine, so you need `ngrok` and `curxy` running.\n\n\u003e `curxy` is a very simple proxy that fixes some of the issues with the way Cursor makes requests to the API by pretending that it's an OpenAI API endpoint.\n\nCreate an [auth token](https://dashboard.ngrok.com/get-started/your-authtoken) and optionally a [domain](https://dashboard.ngrok.com/domains) (since every time ngrok starts, it will generate a new domain and you'll need to reconfigure Cursor).\n\nCopy the `ngrok.example.yml` and configure the `agent.authtoken` and the `endpoints.web.url` to point to your ngrok's domain.\n\n```bash\ncp config/ngrok/ngrok.example.yml config/ngrok/ngrok.yml\n```\n\nThen, configure cursor by following these steps:\n\n1. Cursor Settings \u003e Models \u003e Model Names \u003e Add `llama3.1:8b` as model to Cursor\n2. Cursor Settings \u003e OpenAI API Key \u003e Enable\n3. Cursor Settings \u003e OpenAI API Key \u003e Override OpenAI Base URL \u003e Add `https://your-ngrok-domain.ngrok-free.app/curxy/v1` \u003e Save\n4. Cursor Settings \u003e OpenAI API Key \u003e Add arbitrary string as OpenAI API key \u003e Verify\n5. Use `llama3.1:8b` as Chat Model\n\n\n## Acknowledgements\n\nThanks to [ryoppippi/curxy](https://github.com/ryoppippi/curxy) for the Cursor/Ollama proxy. I'm currently using a copy of it due to [this issue](https://github.com/ryoppippi/curxy/issues/33).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelipeelias%2Flocal-ai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffelipeelias%2Flocal-ai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelipeelias%2Flocal-ai/lists"}