본문 바로가기

서버, 인프라21

docker.sock을 Jenkins한테도 AI한테도 주지 마세요 [서버 침해 대응기 시리즈] 1인 개발자가 크립토재킹 당하고, 서버를 통째로 새로 만든 5일간의 기록1편.내 서버가 6주째 몰래 채굴당하고 있었습니다 2편. docker.sock을 Jenkins한테도 AI한테도 주지 마세요 (socket-proxy) ← 지금 글 3편. 7개 도메인 무중단 HTTPS 이전기 (nginx + certbot)4편. Jenkins 자동배포, 보안이랑 403 싸운 이야기5편. 그래서 보안과 편의 사이, 어디에 서야 할까지난 편에서 제 서버가 6주간 채굴당한 얘기를 했어요.범인은 Jenkins였고.정확히는 Jenkins한테 물려준 docker.sock이었죠.그래서 새 서버를 만들면서 결심했어요.이번엔 docker.sock을 아무한테도 안 줄 거라고.근데 문제가 있어요.안 주면 빌드.. 2026. 6. 19.
내 서버가 6주째 몰래 채굴당하고 있었습니다 [서버 침해 대응기 시리즈] 1인 개발자가 크립토재킹 당하고, 서버를 통째로 새로 만든 5일간의 기록1편. 내 서버가 6주째 몰래 채굴당하고 있었습니다 ← 지금 글2편. docker.sock을 Jenkins한테도 AI한테도 주지 마세요 (socket-proxy)3편. 7개 도메인 무중단 HTTPS 이전기 (nginx + certbot)4편. Jenkins 자동배포, 보안이랑 403 싸운 이야기5편. 그래서 보안과 편의 사이, 어디에 서야 할까지난 글에서 이런 얘기를 했어요.AI한테 권한을 어디까지 줄 거냐.자동화를 할수록 권한 분리가 중요하다고.근데 솔직히 그땐 좀 추상적인 얘기였거든요."중요하다" 정도였죠.이번에 제대로 당했습니다.제 서버가 6주 동안 누군가의 채굴기로 돌아가고 있었어요.처음엔 그냥 서.. 2026. 6. 18.
Docker 안에서 Claude Code, Codex 쓰다가 git push 막힌 분들 보세요 git push 날렸는데 이런 거 본 적 있죠? textHost key verification failed.fatal: Could not read from remote repository.저도 딱 이 상황이었어요.Claude Code가 커밋까지는 멀쩡하게 만들었는데, push에서 뻗어버리는 거예요. 커밋은 됐는데 push가 안 되는 그 묘한 상황.원인은 간단해요. Docker 컨테이너 안에 SSH 키가 없으니까요.제 환경 먼저 설명할게요서버는 Hetzner Ubuntu 기준이고, 이렇게 쓰고 있어요.Claude Code랑 Codex, 둘 다 Docker 컨테이너로 올려놨고 /opt/workspace를 공유해서 같은 git 프로젝트를 바라보게 했어요.접속은 이렇게 sh 파일로 만들어뒀어요. bash# .. 2026. 6. 3.
Ubuntu 서버에 Claude Code + Codex 올려봤더니, 개발 방식이 달라졌어요 처음엔 저도 그냥 로컬에서 썼어요.Claude Code 터미널 켜고, 이것저것 시키고. 그러다 문득 이런 생각이 들더라고요."얘가 실수로 뭔가 지우면 어떡하지?"그 불안감 한 번쯤 느껴보셨죠?그래서 아예 Ubuntu 서버에 AI 개발 환경을 분리해서 올려봤어요. Hetzner 서버 기준으로요.결론부터 말하면, 생각보다 훨씬 강력했고, 구조 설계를 잘못하면 진짜 사고 납니다.왜 로컬이 아니라 서버인가요?질문 당연하죠. 저도 처음엔 그랬거든요.근데 로컬에서 Claude Code 돌리다 보면 문제가 생겨요.개발 환경이 프로젝트마다 충돌남AI가 수정한 파일이 어떤 건지 추적이 힘듦다른 기기에서 이어서 작업하려면 동기화 문제가 생김서버에 올리면 이게 싹 해결돼요. AI가 항상 같은 환경에서, 같은 코드를 보고 작.. 2026. 6. 2.
[Claude 블로그 자동화] 블로그 글감 자동화 완성 — 수집부터 티스토리 발행까지 5편 4편까지 오면서 인프라는 다 만들었어요.서버 올리고, RSS 수집하고, 자동 배포하고, 도메인까지 붙였죠.근데 솔직히 말하면, 인프라 세팅이 목적이 아니었잖아요.블로그 글을 꾸준히 쓰고 싶었던 거거든요.그게 출발점이었어요.오늘은 그 마지막 퍼즐 조각이에요.수집된 글감을 Claude.ai에 넘기고, 초안 받고, 티스토리에 발행하는 전체 흐름을 정리할게요.이전글 : [서버, 인프라] - nginx + certbot SSL 설정으로 도메인 연결하기 4편전체 흐름 한눈에 보기매일 05:00 crontab 자동 수집↓출근 후 웹에서 오늘 수집 데이터 확인↓"오늘 수집 데이터 복사" 버튼 클릭↓Claude.ai에 붙여넣기↓주제 고르고 초안 요청↓Markdown 다듬기↓티스토리 발행[이미지 삽입] 키워드: "cont.. 2026. 5. 31.
[Claude 블로그 자동화] nginx + certbot SSL 설정으로 도메인 연결하기 4편 http://서버IP:5000이 주소로 접속하고 있으면, 솔직히 좀 찜찜하죠.포트 번호 붙어있고, http에, IP 주소 그대로고.브라우저에서 "안전하지 않은 사이트"라고 뜨는 순간 의욕이 떨어지거든요.오늘은 이걸 정리해요.nginx 리버스 프록시로 Flask 앱을 도메인에 연결하고, HTTPS까지 올리는 작업이에요.이 작업전에 jenkins를 활용해 RSS 사이트의 자동 배포 파이프라인을 구축했었어요. 그부분은 아래 링크에서 확인 가능해요. 이전글 : [서버, 인프라] - Jenkins로 Docker 자동 배포 파이프라인 구축하기 3편예전 글에서 이미 다뤘어요nginx + certbot + SSL 인증서 발급 전체 과정은 이전에 정리한 글이 있어요.Docker Compose 환경에서 Certbot을 컨.. 2026. 5. 30.