~/tools / 서버에서 로컬 LLM 실행하기 / Ollama systemd Override Generator

Ollama systemd Override Generator — Ollama의 systemd 오버라이드 만들기: OLLAMA_HOST, OLLAMA_MODELS, KEEP_ALIVE 등

Linux 서버에서 Ollama의 환경 변수를 설정하는 systemd 오버라이드를 만듭니다. 수신 주소, 모델 디렉터리, 모델을 메모리에 두는 시간, 컨텍스트 길이, 병렬 요청, Flash Attention, K/V 캐시 유형, 추가 오리진, 로컬 전용 모드, HTTPS 프록시를 지정할 수 있습니다. 모든 변수는 공식 Ollama FAQ에 나온 것이며, 각 값은 systemd가 읽는 방식에 맞게 따옴표로 감쌉니다. 입력한 내용은 브라우저 밖으로 나가지 않습니다.

환경 변수

빈 칸은 출력되지 않습니다. 회색 글자는 Ollama FAQ에 나온 기본값입니다.

systemctl edit용 오버라이드

sudo systemctl edit ollama.service가 여는 편집기에서 두 주석 줄 사이에 붙여 넣으세요. /etc/systemd/system/ollama.service.d/override.conf로 저장됩니다.

[Service]
Environment="OLLAMA_KEEP_ALIVE=10m"
Environment="OLLAMA_CONTEXT_LENGTH=8192"
Environment="OLLAMA_MAX_LOADED_MODELS=1"
Environment="OLLAMA_NO_CLOUD=1"

명령어

서버에서 이 순서대로 실행하세요. 마지막 명령은 서비스가 받은 변수를 보여 줍니다. OLLAMA_MODELS를 바꿀 때는 처음 두 명령이 디렉터리를 만들고 ollama 사용자에게 줍니다. mkdir -p는 우리가 추가한 것으로, 없는 디렉터리에서는 chown이 실패하기 때문입니다.

sudo systemctl edit ollama.service
sudo systemctl daemon-reload
sudo systemctl restart ollama
systemctl show ollama --property=Environment

변수와 기본값은 Ollama FAQ에, 따옴표 규칙은 systemd.exec 매뉴얼에 나온 내용을 2026-11-03에 확인한 것입니다. Ollama FAQ / systemd.exec: Environment=

모든 처리는 브라우저에서 이루어집니다. 입력한 내용은 어디로도 전송되지 않습니다.

Ollama를 Linux에서 systemd 서비스로 실행할 때, 공식 FAQ는 systemctl edit ollama.service로 환경 변수를 설정하라고 안내합니다. [Service] 아래에 변수마다 Environment 줄을 하나씩 추가하고 저장한 뒤 systemctl daemon-reload와 systemctl restart ollama를 실행합니다. 절차는 짧지만 세부 사항에서 실수하기 쉽습니다. systemd는 지정자를 확장하므로 % 기호는 %%로 써야 하고, 따옴표로 감싼 대입문 안의 백슬래시와 큰따옴표는 이스케이프로 읽히며, 공백이 있는 값은 전체를 따옴표로 감싸야 합니다. 이 도구가 그 오버라이드를 대신 작성합니다. FAQ에 문서화된 변수만 고를 수 있게 하고, 각 변수 옆에 문서에 나온 기본값을 보여 주며, 모든 대입문을 "NAME=value" 형태로 따옴표로 감싸고 % 기호를 두 번 씁니다. Ollama가 모든 네트워크 인터페이스에서 수신하게 되는 값, 정수가 아닌 개수, Flash Attention을 끈 채 양자화된 K/V 캐시를 고른 경우에는 경고합니다. 출력은 Ubuntu 24.04와 systemd 255에서 테스트했습니다. systemctl edit에 붙여 넣고, 공백, $, ', %를 포함해 서비스가 각 값을 그대로 받는 것을 확인했습니다.

이 도구의 핵심 로직은 MIT 라이선스의 오픈 소스로 공개되어 있습니다. github.com/seigo5555/toolkitbox-lib/src/ollama-systemd.ts

이럴 때 사용

  • 작은 VPS에서 OLLAMA_KEEP_ALIVE로 모델을 메모리에 더 오래 두거나 더 일찍 내리기
  • OLLAMA_MODELS로 모델 파일을 더 큰 디스크로 옮기기
  • 메모리가 적은 서버에서 불러오는 모델을 하나로 제한하고 기본 컨텍스트 길이 설정하기

사용법

  1. 바꾸려는 변수만 입력하세요. 빈 칸은 출력되지 않으므로 Ollama는 기본값을 그대로 씁니다. 각 칸의 회색 글자는 FAQ에 나온 기본값입니다.
  2. 경고를 읽어 보세요. 수신 주소가 127.0.0.1이나 localhost가 아니면 다른 컴퓨터에서 Ollama에 접속할 수 있게 되며, FAQ에는 이에 대한 인증이 설명되어 있지 않습니다.
  3. sudo systemctl edit ollama.service를 실행하고, 열린 편집기에서 두 주석 줄 사이에 텍스트를 붙여 넣은 뒤 저장하고 종료하세요. 이어서 나머지 명령으로 systemd를 다시 불러오고, Ollama를 재시작하고, 서비스가 받은 값을 확인하세요.

FAQ

파일은 어디에 저장되나요?

systemctl edit는 이를 드롭인 파일인 /etc/systemd/system/ollama.service.d/override.conf로 저장하며, 기본 유닛 파일은 바꾸지 않습니다. Ubuntu 24.04에서 실행했을 때 편집기에는 ### Anything between here and the comment below will become the contents of the drop-in file 주석이 표시되었습니다. 이 주석과 그 아래 주석 사이에 텍스트를 붙여 넣으세요.

왜 모든 값을 큰따옴표로 감싸나요?

systemd 문서에 따르면 공백이나 등호가 들어 있는 값은 대입문 전체를 따옴표로 감싸야 합니다. 모든 줄을 같은 방식으로 감싸면 공백이 있는 경로와 OLLAMA_ORIGINS 같은 목록이 그대로 유지됩니다. 문서에는 $가 여기서 특별한 의미가 없어 쓴 그대로 전달되지만 %는 지정자의 시작이라는 설명도 있으므로, 이 도구는 % 기호 자체를 나타낼 때 %%를 씁니다.

어떤 문자는 사용할 수 없나요?

큰따옴표, 백슬래시, 탭 같은 제어 문자입니다. 따옴표로 감싼 대입문 안에서 systemd는 이를 이스케이프로 읽거나 거부하므로, 값이 입력한 그대로 Ollama에 전달되지 않습니다. 도구는 이를 오류로 알리고 그 줄을 출력하지 않습니다.

OLLAMA_HOST를 0.0.0.0으로 설정해도 안전한가요?

Ollama가 모든 네트워크 인터페이스에서 수신하게 되므로 다른 컴퓨터에서 접속할 수 있습니다. FAQ에 따르면 Ollama는 기본적으로 127.0.0.1의 11434 포트에 바인딩되며, 서버의 인증에 관한 설명은 없습니다. 문서의 내용이 아니라 우리의 권장 사항입니다. 기본값을 유지하고 SSH 터널이나 비밀번호와 HTTPS를 갖춘 프록시를 통해 Ollama에 접속하며, 방화벽에서 11434 포트를 제한하세요.

HTTPS_PROXY에 비밀번호를 넣어도 되나요?

프록시 주소에 사용자 이름과 비밀번호가 들어 있으면 도구가 경고합니다. systemd 문서에 따르면 유닛에 설정한 값을 권한 없는 클라이언트도 읽을 수 있으므로 환경 변수는 비밀 정보를 전달하는 데 적합하지 않습니다. 또 FAQ는 Ollama가 모델을 HTTPS로만 받아 오고 HTTP_PROXY는 클라이언트 연결을 방해할 수 있으므로 HTTP_PROXY를 설정하지 말라고 하며, 그래서 도구는 HTTPS_PROXY만 제공합니다.

서버로 전송되는 것이 있나요?

아니요. 오버라이드는 브라우저에서 조립됩니다.

관련 글

관련 도구