프로젝트 소개
itsUP는 무중단 배포와 보안에 중점을 두고 Docker 서비스 관리를 자동화하는 Python 기반 홈 인프라 스택입니다.
DNS 확인, Traefik 리버스 프록시, 컨테이너 워크로드를 포함한 완전한 네트워 스택을 관리하며, 이 모든 것은 프로젝트 기반 디렉터리 구조에서 조정됩니다. 각 서비스 프로젝트는 자체 docker-compose.yml과 구성 파일을 가지고 있어 인프라를 코드로 정리하고 버전 관리할 수 있습니다.
주요 기능:
- 무중단 롤아웃: docker rollout을 사용해 컨테이너를 확장하고 상태 확인을 기다린 후 이전 인스턴스를 교체합니다. 스마트 변경 감지로 변경 사항이 없으면 아웃을 건너뜁니다.
- 관리형 프록시: 원활한 업데이트를 위해 SO_REUSEPORT로 Traefik 구성을 생성합니다. TLS 종료, TLS 패스스루, TCP/UDP 포워딩, 호스트 포트 바인딩을 지원합니다.
- 컨테이너 보안 모니터: DNS 쿼리와 직접 IP 연결을 연관시켜 손상된 컨테이너를 탐지합니다. 선택적 iptables 차단을 위해 OpenSnitch와 통합됩니다.
- DNS 허니팟: 모든 테이너 DNS 트래픽을 로깅 기능이 있는 dnsmasq를 통해 라우팅하여 위협 탐지를 수행합니다.
- 자동 백업: 예약된 복원 기능이 있는 야간 S3 백업.
- 위협 인텔리전스: AbuseIPDB API 통합을 통한 일일 보고서.
- OpenVPN 서버: SSH 액세스를 갖춘 내장 VPN 지원.
itsup CLI가 기본 인터페이스이며 init, apply, validate, dns/proxy/svc/monitor 관리 명령을 제공합니다. Systemd 타이머는 Linux에서 부팅 시작, 야간 apply, 백업, 상태 확인을 처리합니다. macOS에서는 launchd 에이전트가 유사한 자동화를 제공합니다.
전제 조건으로 rollout 플러그인이 있는 Docker, Python 의존성 관리를 위한 uv, 80/443 포트 포워딩, 일드카드 DNS 도메인이 필요합니다. 구성은 비밀 암호화를 위해 SOPS/age를 사용하며 프로젝트와 비밀을 위한 별도의 git 저장소를 사용합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.