공개 고지: 이 프로젝트는 제가 만든 것입니다. 무료이며 오픈 소스이고, 저는 아무것도 판매하지 않습니다. 프로젝트: https://agentic.hosting 코드: https://github.com/dennisonbertram/agentic-hosting
놓치셨다면 배경 지식: 10월 21일 Railway는 누군가가 고객의 환경 변수(environment variables)에 접근했을 수 있으며, 일부는 복호화되었고 배포가 약 하루 동안 중단되었다고 공개했습니다. 그들의 게시물에 따르면 이는 플랫폼 회사들을 대상으로 한 일련의 공격 중 일부였습니다. 저는 고객이었고 정리 작업은 고통스러웠습니다. 짜증 나는 부분은 타이밍이었습니다. 키를 로테이션(rotate)하라는 지시를 받았지만, 배포가 재개될 때까지는 로테이션된 키 값을 라이브로 만들 수 없었습니다. 거실에서 저녁 식사를 하며 로테이션 작업을 했습니다. 그날 밤의 몇 가지 게시물이 이를 요약합니다: “우리는 무효화하고 로테이션할 수는 있지만, 새로운 키 값으로 배포할 수는 없습니다. 이는 모든 서비스를 중단시키고 해결책이나 시간표가 없습니다.” @jimmy0x52 "openrouter가 제 키를 취소했지만, 빌드가 일시 중지되어 환경 변수를 로테이션하고 재배포할 수 없어요??!" @roguesherlock
그들을 비난하려는 것이 아닙니다. 저에게 가장 와닿았던 점은 우리 대부분이 비밀(secrets)을 몇 군데의 같은 장소에 보관한다는 것입니다. 그래서 한 번의 침입으로 모두가 영향을 받습니다. 여러분 중 대다수는 셀프 호스팅(self-hosting)이 작동한다는 것을 이미 알고 있습니다. 제가 듣는 일반적인 반론은 누군가가 박스(box)를 돌봐줘야 한다는 것입니다. 이것이 제가 테스트해 온 내용입니다: AI 에이전트가 그 '돌봄' 역할을 할 수 있을까요? 그래서 저는 agentic-hosting을 만들었습니다. 이는 UI 대신 HTTP API를 통해 에이전트에 의해 구동되도록 설계된 배포 서버(deploy server)입니다.
- 단일 Go 바이너리, 상태 관리를 위한 SQLite 사용. 제가 Hetzner CX33에서 실행합니다.
- git URL을 제공하면 Nixpacks로 빌드하고 URL을 반환합니다.
- 앱당 Postgres와 Redis를 사용합니다.
- 컨테이너는 gVisor 아래에서 실행되며, 테넌트(tenant)당 하나의 Docker 네트워크가 있습니다.
- 환경 변수는 저장 시 암호화됩니다 (AES-256-GCM). 마스터 키는 호스트에 보관됩니다.
ah backup은 상태 DB의 WAL-일관성(WAL-consistent), gzipped 스냅샷을 작성합니다 (최근 10개 유지).
- 셀프-힐러(Self-healer)가 30초마다 확인하고 비정상적인 컨테이너를 재시작합니다.
솔직한 트레이드오프: 여러분의 에이전트는 장애 조치(fail over)할 두 번째 박스나 예약된 볼륨 백업과 같이 여러분을 위해 복원력(redundancy)과 백업을 구축할 수 있습니다.
ah backup은 제어 평면(control-plane) DB만 커버합니다. Postgres/Redis 볼륨은 아직 포함되지 않았으므로, 사용자가 직접 볼륨 백업을 수행해야 합니다.
- 백업은 동일한 마스터 키(master key)로만 작동합니다. 이 키를 분실하면 암호화된 환경 변수(env vars)는 복구할 수 없습니다.
- 방화벽 규칙(Firewall rules)은
ah가 시작될 때만 확인됩니다. ufw/fail2ban을 리로드하는 경우, 반드시 ah를 재시작해야 합니다.
- 세련된 사용자 인터페이스(UI)가 없습니다. 대시보드를 원한다면, 현재로서는 Coolify나 Dokploy가 더 적합합니다.
- 단일 노드(Single node) 구성입니다. 고가용성(HA, High Availability)을 지원하지 않습니다.
- 셀프 호스팅(Self-hosting)이 자동으로 더 안전한 것은 아닙니다. 패치되지 않은 VPS가 좋은 플랫폼보다 더 위험할 수 있습니다. 핵심은 에이전트가 시스템을 지속적으로 패치하고 감시하며, 사용자가 같은 출입구 뒤에 있는 수많은 테넌트 중 한 명이 아니라는 점입니다.
빠른 시작(Quickstart)(약 5분 소요)은 README 상단에 있습니다: https://github.com/dennisonbertram/agentic-hosting
피드백을 받고 싶은 부분
에이전트가 서버에 접근하도록 허용한다면, 어디까지 권한을 부여해야 할까요? 읽기 전용(Read-only)으로 제한할지, 아니면 apt upgrade를 실행할 수 있게 해야 할까요?
저장된 환경 변수(env-var) 암호화와 전체 디스크 암호화 중 어느 것이 더 가치가 있을까요?
빠른 시작 과정에서 사용자의 환경에 맞지 않아 작동하지 않는 부분이 있습니까.
submitted by /u/Equivalent-Tax1300 [link] [comments]