{"id":180,"date":"2026-09-05T17:28:14","date_gmt":"2026-09-05T20:28:14","guid":{"rendered":"https:\/\/www.linuxpro.com.br\/?p=180"},"modified":"2026-09-10T22:57:20","modified_gmt":"2026-09-11T01:57:20","slug":"rodando-ia-local-no-linux-com-ollama","status":"publish","type":"post","link":"https:\/\/www.linuxpro.com.br\/en\/2026\/09\/rodando-ia-local-no-linux-com-ollama\/","title":{"rendered":"Running local AI on Linux with Ollama"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" alt=\"Mascote do LinuxPro conversando com um modelo de IA rodando na pr\u00f3pria m\u00e1quina, com a lhama do Ollama ao lado\" src=\"\/wp-content\/uploads\/2026\/09\/ollama-v4.webp\" width=\"1486\" height=\"856\" \/><\/p>\n<p><strong>Rodar modelos de IA localmente<\/strong> deixou de ser coisa de laborat\u00f3rio: com o Ollama voc\u00ea baixa e executa LLMs no seu pr\u00f3prio Linux, sem enviar dados para a nuvem e sem pagar por token. Este post conta de onde o projeto veio \u2014 a origem explica muita coisa do desenho dele \u2014 e mostra como instalar, ajustar e usar de verdade.<\/p>\n<h2>De onde veio o Ollama<\/h2>\n<p>Para entender por que o Ollama parece tanto com o Docker, basta olhar quem o escreveu. <strong>Jeff Morgan<\/strong> e <strong>Michael Chiang<\/strong> s\u00e3o dois canadenses que se conheceram na Universidade de Waterloo e, antes disso tudo, criaram o <strong>Kitematic<\/strong> \u2014 a interface que tornava o Docker utiliz\u00e1vel por gente normal. A Docker comprou o projeto em <strong>2015<\/strong>, e aquilo virou o que hoje se chama Docker Desktop.<\/p>\n<p>A dupla passou pelo Y Combinator na turma de <strong>inverno de 2021<\/strong> e, em <strong>26 de junho de 2023<\/strong>, abriu o reposit\u00f3rio do Ollama. A tese era a mesma do Kitematic, trocando container por modelo: existe uma tecnologia poderosa e chata de operar, e algu\u00e9m precisa embrulh\u00e1-la num comando s\u00f3.<\/p>\n<p>Da\u00ed vem tudo o que parece familiar. Voc\u00ea faz <code>pull<\/code> de um modelo de um registro. Voc\u00ea descreve o seu modelo num arquivo chamado <strong>Modelfile<\/strong>, que \u00e9 um Dockerfile com outro nome. Voc\u00ea lista o que tem instalado com <code>list<\/code> e apaga com <code>rm<\/code>. Nada disso \u00e9 coincid\u00eancia.<\/p>\n<p>N\u00fameros de setembro de 2026: escrito em <strong>Go<\/strong>, licen\u00e7a <strong>MIT<\/strong>, mais de <strong>180 mil estrelas<\/strong> no GitHub e cerca de <strong>9 milh\u00f5es de desenvolvedores<\/strong> usando. Em julho de 2026 a empresa \u2014 de apenas 14 pessoas \u2014 levantou uma s\u00e9rie B de <strong>US$ 65 milh\u00f5es<\/strong> liderada pela Theory Ventures, chegando a US$ 88 milh\u00f5es no total, com Benchmark e o pr\u00f3prio Y Combinator na lista.<\/p>\n<p>Um detalhe t\u00e9cnico importante da trajet\u00f3ria: at\u00e9 2025 o Ollama era, no fundo, uma casca sobre o <strong>llama.cpp<\/strong>. Em maio daquele ano o projeto lan\u00e7ou <strong>motor pr\u00f3prio<\/strong>, constru\u00eddo sobre a biblioteca de tensores GGML, porque dar suporte a modelo multimodal remendando o llama.cpp tinha virado insustent\u00e1vel. Hoje cada modelo \u00e9 autocontido e traz a pr\u00f3pria camada de proje\u00e7\u00e3o \u2014 mas o GGML continua ali embaixo, por compatibilidade de CPU.<\/p>\n<h2>Por que rodar IA local?<\/h2>\n<ul>\n<li><strong>Privacidade<\/strong>: seus dados n\u00e3o saem da m\u00e1quina \u2014 decisivo para c\u00f3digo propriet\u00e1rio, documento interno e qualquer coisa sob LGPD.<\/li>\n<li><strong>Custo zero por uso<\/strong>: depois de baixar o modelo, rode quantas vezes quiser.<\/li>\n<li><strong>Funciona offline<\/strong>: \u00fatil em rede restrita, laborat\u00f3rio isolado e servidor sem sa\u00edda para a internet.<\/li>\n<li><strong>Sem limite de taxa<\/strong>: nenhum &#8220;voc\u00ea excedeu a cota&#8221; no meio de um processamento em lote.<\/li>\n<\/ul>\n<p>E o outro lado, que \u00e9 justo dizer: <strong>a qualidade n\u00e3o \u00e9 a mesma<\/strong>. Um modelo de 8B rodando na sua GPU n\u00e3o substitui um modelo de fronteira. Para tarefa mec\u00e2nica \u2014 resumir, classificar, extrair, reformatar \u2014 a diferen\u00e7a some. Para racioc\u00ednio dif\u00edcil, n\u00e3o.<\/p>\n<h2>Requisitos reais: \u00e9 a mem\u00f3ria que manda<\/h2>\n<p>A conta pr\u00e1tica: um modelo quantizado em 4 bits ocupa mais ou menos <strong>0,6 GB por bilh\u00e3o de par\u00e2metros<\/strong>, mais uma folga para o contexto. Traduzindo:<\/p>\n<table>\n<thead>\n<tr>\n<th>Tamanho do modelo<\/th>\n<th>VRAM ou RAM necess\u00e1ria<\/th>\n<th>Serve para<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1B \u2013 3B<\/td>\n<td>~2\u20134 GB<\/td>\n<td>Classificar, extrair, autocompletar; roda at\u00e9 em CPU<\/td>\n<\/tr>\n<tr>\n<td>7B \u2013 8B<\/td>\n<td>~6\u20138 GB<\/td>\n<td>O ponto ideal de custo-benef\u00edcio para uso geral<\/td>\n<\/tr>\n<tr>\n<td>14B<\/td>\n<td>~10\u201312 GB<\/td>\n<td>C\u00f3digo e racioc\u00ednio, com placa de 12 GB ou mais<\/td>\n<\/tr>\n<tr>\n<td>32B<\/td>\n<td>~20\u201324 GB<\/td>\n<td>Precisa de placa grande; qualidade bem melhor<\/td>\n<\/tr>\n<tr>\n<td>70B+<\/td>\n<td>40 GB ou mais<\/td>\n<td>Duas GPUs ou muita paci\u00eancia com offload para RAM<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Se o modelo n\u00e3o couber na VRAM, o Ollama joga o excedente na RAM do sistema e continua funcionando \u2014 s\u00f3 que devagar. Se voc\u00ea quer saber onde investir, veja o <a href=\"\/2026\/09\/servidor-ia-recondicionado-64gb-vram-v100-p100-mi25\/\">servidor de IA recondicionado com 64 GB de VRAM<\/a> e a <a href=\"\/2026\/09\/tesla-v100-ia-local-barata\/\">Tesla V100 de 32 GB<\/a>.<\/p>\n<h2>Instalando<\/h2>\n<p>Instala\u00e7\u00e3o em uma linha, direto do site oficial:<\/p>\n<pre><code class=\"language-bash\">curl -fsSL https:\/\/ollama.com\/install.sh | sh<\/code><\/pre>\n<p>O instalador cria o servi\u00e7o systemd <code>ollama<\/code> e detecta a GPU automaticamente. Confira:<\/p>\n<pre><code class=\"language-bash\">systemctl status ollama\nollama --version\nnvidia-smi        # a GPU foi vista?<\/code><\/pre>\n<p>Se voc\u00ea prefere cont\u00eainer \u2014 \u00fatil para isolar a instala\u00e7\u00e3o ou rodar em servidor j\u00e1 containerizado:<\/p>\n<pre><code class=\"language-bash\">docker run -d --gpus=all -v ollama:\/root\/.ollama -p 11434:11434 \n  --name ollama ollama\/ollama\n\ndocker exec -it ollama ollama run qwen2.5-coder<\/code><\/pre>\n<h2>Baixando e rodando um modelo<\/h2>\n<pre><code class=\"language-bash\"># baixa e j\u00e1 abre o chat interativo\nollama run llama3.2\n\n# s\u00f3 baixar, sem abrir o chat\nollama pull qwen2.5-coder\n\n# tamanho espec\u00edfico\nollama pull llama3.2:3b\n\n# listar o que est\u00e1 instalado, com tamanho\nollama list\n\n# ver o que est\u00e1 carregado na mem\u00f3ria agora\nollama ps\n\n# uma pergunta s\u00f3, direto do shell \u2014 \u00f3timo para script\nollama run llama3.2 \"explique o comando: tar czf backup.tar.gz \/etc\"\n\n# ler um arquivo e mandar para o modelo\nollama run llama3.2 \"resuma os erros deste log\" &lt; \/var\/log\/syslog<\/code><\/pre>\n<p>Dentro do chat interativo, <code>\/bye<\/code> sai, <code>\/clear<\/code> esquece a conversa e <code>\/set verbose<\/code> passa a mostrar a velocidade em tokens por segundo \u2014 a m\u00e9trica que voc\u00ea quer olhar ao comparar modelos.<\/p>\n<p>Para m\u00e1quina modesta, prefira as variantes menores. Para programar, as fam\u00edlias <em>coder<\/em> se saem visivelmente melhor que os modelos generalistas do mesmo tamanho.<\/p>\n<h2>O Modelfile: a heran\u00e7a do Docker<\/h2>\n<p>Aqui a origem dos criadores aparece inteira. Voc\u00ea personaliza um modelo declarando o que quer num arquivo de texto \u2014 mesma l\u00f3gica do Dockerfile:<\/p>\n<pre><code class=\"language-text\">FROM qwen2.5-coder:7b\n\n# temperatura baixa = respostas mais previs\u00edveis\nPARAMETER temperature 0.2\nPARAMETER num_ctx 8192\n\nSYSTEM \"\"\"\nVoc\u00ea \u00e9 um assistente de sysadmin Linux. Responda em portugu\u00eas do Brasil,\nsempre com o comando pronto para colar. Avise quando o comando for\ndestrutivo. N\u00e3o invente flag que voc\u00ea n\u00e3o tem certeza que existe.\n\"\"\"<\/code><\/pre>\n<pre><code class=\"language-bash\">ollama create sysadmin -f .\/Modelfile\nollama run sysadmin<\/code><\/pre>\n<p>\u00c9 o jeito mais r\u00e1pido de transformar um modelo gen\u00e9rico numa ferramenta com a cara do seu trabalho \u2014 e o resultado fica salvo como um modelo local seu, que voc\u00ea pode listar, rodar e apagar como qualquer outro.<\/p>\n<h2>Usando pela API<\/h2>\n<p>O Ollama sobe uma API HTTP local na porta <strong>11434<\/strong>. A nativa:<\/p>\n<pre><code class=\"language-bash\">curl http:\/\/localhost:11434\/api\/generate -d '{\n  \"model\": \"llama3.2\",\n  \"prompt\": \"Explique o comando: tar czf backup.tar.gz \/etc\",\n  \"stream\": false\n}'<\/code><\/pre>\n<p>E \u2014 o que resolve a vida de quem j\u00e1 tem c\u00f3digo pronto \u2014 ele tamb\u00e9m fala o <strong>protocolo da OpenAI<\/strong>. Qualquer aplica\u00e7\u00e3o ou SDK que use a API da OpenAI passa a apontar para a sua m\u00e1quina trocando s\u00f3 a URL:<\/p>\n<pre><code class=\"language-python\">from openai import OpenAI\n\nclient = OpenAI(base_url=\"http:\/\/localhost:11434\/v1\", api_key=\"ollama\")\n\nresposta = client.chat.completions.create(\n    model=\"llama3.2\",\n    messages=[{\"role\": \"user\", \"content\": \"Escreva uma unit systemd para um script em \/opt\/job.sh\"}],\n)\nprint(resposta.choices[0].message.content)<\/code><\/pre>\n<h2>Os ajustes que importam<\/h2>\n<p>O padr\u00e3o funciona, mas quase nunca \u00e9 o que voc\u00ea quer num servidor. A configura\u00e7\u00e3o vai no systemd:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl edit ollama<\/code><\/pre>\n<pre><code class=\"language-ini\">[Service]\n# escutar na rede, n\u00e3o s\u00f3 no localhost\nEnvironment=\"OLLAMA_HOST=0.0.0.0:11434\"\n\n# guardar os modelos num disco maior\nEnvironment=\"OLLAMA_MODELS=\/dados\/ollama\"\n\n# manter o modelo carregado (padr\u00e3o: 5 minutos)\nEnvironment=\"OLLAMA_KEEP_ALIVE=30m\"\n\n# quantas requisi\u00e7\u00f5es atender em paralelo\nEnvironment=\"OLLAMA_NUM_PARALLEL=4\"\n\n# quantos modelos diferentes manter na mem\u00f3ria ao mesmo tempo\nEnvironment=\"OLLAMA_MAX_LOADED_MODELS=2\"<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo systemctl daemon-reload &amp;&amp; sudo systemctl restart ollama<\/code><\/pre>\n<p><strong>Aviso de seguran\u00e7a:<\/strong> o Ollama <em>n\u00e3o tem autentica\u00e7\u00e3o<\/em>. Ao trocar o <code>OLLAMA_HOST<\/code> para <code>0.0.0.0<\/code> voc\u00ea abre a porta 11434 para qualquer um que alcance a m\u00e1quina \u2014 e quem alcan\u00e7a pode usar a sua GPU e ler as suas conversas. Em servidor exposto, ponha um proxy reverso com autentica\u00e7\u00e3o na frente e feche a 11434 no firewall.<\/p>\n<h2>Ollama, llama.cpp ou vLLM?<\/h2>\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th>Ollama<\/th>\n<th>llama.cpp<\/th>\n<th>vLLM<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Para quem<\/strong><\/td>\n<td>Uso pessoal e equipe pequena<\/td>\n<td>Quem quer controle fino<\/td>\n<td>Servi\u00e7o multiusu\u00e1rio em produ\u00e7\u00e3o<\/td>\n<\/tr>\n<tr>\n<td><strong>Facilidade<\/strong><\/td>\n<td>Um comando e funciona<\/td>\n<td>Exige compilar e ajustar<\/td>\n<td>Exige planejar VRAM<\/td>\n<\/tr>\n<tr>\n<td><strong>Formato<\/strong><\/td>\n<td>GGUF, via registro pr\u00f3prio<\/td>\n<td>GGUF<\/td>\n<td>Pesos do Hugging Face<\/td>\n<\/tr>\n<tr>\n<td><strong>Modelo n\u00e3o cabe<\/strong><\/td>\n<td>Faz offload para a RAM<\/td>\n<td>Faz offload para a RAM<\/td>\n<td>Precisa de <code>--cpu-offload-gb<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>Vaz\u00e3o sob carga<\/strong><\/td>\n<td>Cai r\u00e1pido<\/td>\n<td>Cai r\u00e1pido<\/td>\n<td>\u00c9 o objetivo do projeto<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Resumindo: se \u00e9 voc\u00ea na sua m\u00e1quina, Ollama. Se \u00e9 uma API que v\u00e1rias pessoas ou v\u00e1rios agentes v\u00e3o consumir ao mesmo tempo, o caminho \u00e9 o <a href=\"\/2026\/09\/vllm-primeiros-passos-linux\/\">vLLM<\/a>.<\/p>\n<h2>Manuten\u00e7\u00e3o e limpeza<\/h2>\n<p>Modelo ocupa v\u00e1rios GB e some do radar. De vez em quando:<\/p>\n<pre><code class=\"language-bash\">ollama list                 # o que eu tenho mesmo?\nollama rm llama3.2          # apagar um\ndu -sh ~\/.ollama\/models     # quanto isso est\u00e1 comendo de disco<\/code><\/pre>\n<p>Os modelos ficam em <code>~\/.ollama\/models<\/code> quando voc\u00ea roda como usu\u00e1rio, e em <code>\/usr\/share\/ollama\/.ollama\/models<\/code> quando roda como servi\u00e7o.<\/p>\n<h2>Linha do tempo<\/h2>\n<ul>\n<li><strong>2015<\/strong> \u2014 a Docker compra o Kitematic, de Jeff Morgan e Michael Chiang; o projeto vira a base do Docker Desktop.<\/li>\n<li><strong>Inverno de 2021<\/strong> \u2014 a dupla passa pelo Y Combinator.<\/li>\n<li><strong>26 de junho de 2023<\/strong> \u2014 o reposit\u00f3rio do Ollama \u00e9 criado, em Go e sob licen\u00e7a MIT, como uma camada sobre o llama.cpp.<\/li>\n<li><strong>Maio de 2025<\/strong> \u2014 o projeto lan\u00e7a motor pr\u00f3prio sobre a biblioteca GGML, para dar conta dos modelos multimodais.<\/li>\n<li><strong>Julho de 2026<\/strong> \u2014 s\u00e9rie B de US$ 65 milh\u00f5es liderada pela Theory Ventures; total captado chega a US$ 88 milh\u00f5es, com cerca de 9 milh\u00f5es de desenvolvedores usando.<\/li>\n<li><strong>Setembro de 2026<\/strong> \u2014 mais de 180 mil estrelas no GitHub; a linha est\u00e1vel \u00e9 a 0.33.<\/li>\n<\/ul>\n<h2>Fechando<\/h2>\n<p>O m\u00e9rito do Ollama n\u00e3o \u00e9 t\u00e9cnico \u2014 o llama.cpp j\u00e1 fazia infer\u00eancia local antes dele. O m\u00e9rito \u00e9 de embalagem: dois caras que j\u00e1 tinham feito exatamente isso com o Docker olharam para os LLMs e transformaram um processo de compilar, converter e ajustar par\u00e2metro em <code>ollama run<\/code>. \u00c9 a mesma li\u00e7\u00e3o do Kitematic, dez anos depois.<\/p>\n<p>Para continuar: <a href=\"\/2026\/09\/assistentes-de-ia-no-terminal-linux\/\">assistentes de IA no terminal Linux<\/a> mostra como plugar isso no seu fluxo de trabalho, e <a href=\"\/2026\/09\/gpu-vs-tpu-como-funcionam-chips-ia\/\">GPU vs TPU<\/a> explica o que est\u00e1 acontecendo no hardware enquanto o modelo responde.<\/p>\n<p><strong>Links oficiais:<\/strong> <a href=\"https:\/\/ollama.com\/\" target=\"_blank\" rel=\"noopener\">ollama.com<\/a> \u00b7 <a href=\"https:\/\/docs.ollama.com\/\" target=\"_blank\" rel=\"noopener\">documenta\u00e7\u00e3o<\/a> \u00b7 <a href=\"https:\/\/github.com\/ollama\/ollama\" target=\"_blank\" rel=\"noopener\">github.com\/ollama\/ollama<\/a> \u00b7 <a href=\"https:\/\/github.com\/ollama\/ollama\/releases\" target=\"_blank\" rel=\"noopener\">releases<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Running AI models locally is no longer just a laboratory activity: with Ollama, you download and run LLMs on your own Linux machine without sending data to the cloud or paying per token. This post explains where the project came from \u2014 its origin explains much of its design \u2014 and shows how \u2026 <a title=\"Running local AI on Linux with Ollama\" class=\"read-more\" href=\"https:\/\/www.linuxpro.com.br\/en\/2026\/09\/rodando-ia-local-no-linux-com-ollama\/\" aria-label=\"Read more about Rodando IA local no Linux com Ollama\">Read more<\/a><\/p>","protected":false},"author":0,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[115,2],"tags":[116,4,128,127],"class_list":["post-180","post","type-post","status-publish","format-standard","hentry","category-ia","category-linux","tag-ia","tag-linux","tag-llm","tag-ollama"],"_links":{"self":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/comments?post=180"}],"version-history":[{"count":8,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/180\/revisions"}],"predecessor-version":[{"id":1509,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/180\/revisions\/1509"}],"wp:attachment":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/media?parent=180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/categories?post=180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/tags?post=180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}