1. Paperclip이란

Paperclip이란?
에이전트 팀을 만들고 관리하는 Orchestration 도구.
오픈소스로 무려 MIT 라이선스다.
2. 설치
가지고 있는 홈서버에 배포한다.
컨셉은 언제 어디서든 모바일로 작업을 지시하는 거다.

보안을 위해서 외부망에 노출하지 않고 VPN을 통해서만 접근할 수 있도록 한다.
VPN → DMZ → VM의 과정을 통해서 접근하록 방화벽을 설정한다.
로컬로 설치하는 방법도 있지만 관리의 편의성을 위해서 Docker Compose를 사용할 생각이다.

운영 중인 홈서버에 새로운 VM을 생성한다.
일단 메모리 8G 하드디스크 20G로 설정했다.
내부망에서 사용할 DNS 레코드 추가하고 Reverse Proxy도 추가한다.
CONTAINER_NAME=paperclip
PAPERCLIP_VERSION=latest
PAPERCLIP_PUBLIC_URL=https://paperclip.your-domain.com
PAPERCLIP_PORT=80
PAPERCLIP_DATA_DIR=./data/docker-paperclip
PAPERCLIP_DEPLOYMENT_MODE=authenticated
PAPERCLIP_DEPLOYMENT_EXPOSURE=private
# BETTER_AUTH_SECRET should be at least 32 characters long for adequate security.
# Generate one with `npx @better-auth/cli secret` or `openssl rand -base64 32`.
BETTER_AUTH_SECRET=
OPENAI_API_KEY=
ANTHROPIC_API_KEY=
Code language: PHP (php)
.env 파일이다.
BETTER_AUTH_SECRET는 npx @better-auth/cli secret나 openssl rand -base64 32로 생성하면 된다.
파일을 만들고 붙여넣은 상황에 맞게 수정한다.
chmod 600 .env를 실행해서 나만 볼 수 있게 설정하자.
mkdir -p ./data/docker-paperclip
sudo chown -R 1000:1000 ./data/docker-paperclip
paperclip의 Dockerfile을 보면 UID가 1000, GID도 1000으로 되어있다.
권한 문제를 피하기 위해서 bind mount할 디렉터리를 미리 생성해야 한다.
UID/GID도 1000:1000으로 설정한다.
services:
paperclip:
image: "ghcr.io/paperclipai/paperclip:${PAPERCLIP_VERSION:-latest}"
container_name: "${CONTAINER_NAME:-paperclip}"
restart: always
env_file:
- .env
ports:
- "${PAPERCLIP_PORT:-3100}:3100"
environment:
HOST: "0.0.0.0"
PAPERCLIP_HOME: "/paperclip"
OPENAI_API_KEY: "${OPENAI_API_KEY:-}"
ANTHROPIC_API_KEY: "${ANTHROPIC_API_KEY:-}"
PAPERCLIP_DEPLOYMENT_MODE: "${PAPERCLIP_DEPLOYMENT_MODE:-authenticated}"
PAPERCLIP_DEPLOYMENT_EXPOSURE: "${PAPERCLIP_DEPLOYMENT_EXPOSURE:-private}"
PAPERCLIP_PUBLIC_URL: "${PAPERCLIP_PUBLIC_URL}"
BETTER_AUTH_SECRET: "${BETTER_AUTH_SECRET}"
volumes:
- "${PAPERCLIP_DATA_DIR:-./data/docker-paperclip}:/paperclip"
Code language: JavaScript (javascript)
공식문서의 docker-compose.quickstart.yml(https://github.com/paperclipai/paperclip/blob/master/docker/docker-compose.quickstart.yml)를 참고해서 나에게 맞춘 docker-compose.yml을 작성했다.
이미지는 ghcr.io/paperclipai/paperclip:latest를 사용하면 되는 것 같다.
Paperclip는 Github Packages를 통해서 Docker 이미지를 배포하고 있었다.
일단 사용해보았다.
services:
paperclip:
# image: "ghcr.io/paperclipai/paperclip:${PAPERCLIP_VERSION:-latest}"
build:
context: ./paperclip/
dockerfile: Dockerfile
container_name: "${CONTAINER_NAME:-paperclip}"
restart: always
env_file:
- .env
ports:
- "${PAPERCLIP_PORT:-3100}:3100"
environment:
HOST: "0.0.0.0"
PAPERCLIP_HOME: "/paperclip"
OPENAI_API_KEY: "${OPENAI_API_KEY:-}"
ANTHROPIC_API_KEY: "${ANTHROPIC_API_KEY:-}"
PAPERCLIP_DEPLOYMENT_MODE: "${PAPERCLIP_DEPLOYMENT_MODE:-authenticated}"
PAPERCLIP_DEPLOYMENT_EXPOSURE: "${PAPERCLIP_DEPLOYMENT_EXPOSURE:-private}"
PAPERCLIP_PUBLIC_URL: "${PAPERCLIP_PUBLIC_URL}"
BETTER_AUTH_SECRET: "${BETTER_AUTH_SECRET}"
volumes:
- "${PAPERCLIP_DATA_DIR:-./data/docker-paperclip}:/paperclip"
Code language: PHP (php)
Github Packages를 통해서 배포한 도커 이미지는 아직 불안정해서 잘 동작하지 않았다.
소스코드를 다운로드 받아서 직접 빌드해야 한다.
추후에 안정화되면 배포하는 이미지를 사용하면 될 듯하다.

처음 실행하면 pnpm paperclipai auth bootstrap-ceo을 실행하라고 안내한다.
docker exec -it paperclip /bin/bash
pnpm paperclipai auth bootstrap-ceo
도커 컨테이너 내부로 진입해서 실행한다.

초기 설정을 거치는 것 같다.

계정을 생성할 수 있는 링크를 클릭하면 된다.


계정을 생성하면 된다.

해당 화면이 나오면 정상적으로 설치된거다.
해당 이미지는 내부에 이미 claude와 codex가 설치되어 있다고 한다.
Claude 또는 OpenAI의 API 키를 환경변수로 넘겨서 인증하는 방식이다.
OAuth를 사용하고 싶은 경우는 컨테이너 내부에서 OAuth 인증을 진행해야 한다.
docker exec -it paperclip /bin/bash
codex

원격으로 진행하기 때문에 2번 Sign in with Device Code로 진행해야 한다.
VPN으로 접근할 생각이라서 공식문서에서 하라는대로 Deployment Modes를 authenticated + private로 설정한다.
Deployment Modes는 PAPERCLIP_DEPLOYMENT_MODE라는 이름의 환경변수로 설정할 수 있다.
3. 실행
모델은 카톡 대란으로 값싸게 구한 codex를 활용했다.

첫번째 작업으로 엔지니어를 고용하라고 시켰는데 뭔가 하고 있다.

CTO 뽑아왔다고 최종 승인을 구한다.
4. 후기
개발, 영상 편집 등을 시켜보았다.
뭔가 열심히 일하는 것 같은데 뭘 하는지 모르겠다.
보고있으면 기분은 좋은데 딱 거기까지다.
AI Agent들이 인간 사회를 흉내내는 것에 집중한 나머지 가짜 노동을 하고 있다.
실제로 의미있는 산출물을 만들어내지 않는다.
아이디어는 좋지만 당장은 사용하지 않을 것 같아서 삭제했다.
하지만 언제든 다시 꺼내서 쓸 수 있도록 준비해둘 생각이다.
어쨋든 Agent가 팀을 이뤄서 일해야 하는 시점이 다가오고 있고, 궁합이 좋은 Agent와 만나면 다른 결과를 가져올 수 있기 때문이다.
방향성은 좋지만 아직 성숙하지 못하다.
활용법이 충분히 연구되고 나면 다시 설치해서 사용하게 될 수도 있겠다.
- 2026.04.08 추가 : codex 사용량을 조회해보니 토큰 소비량이 미쳤다. 에반데;;;