NixOS가 자유로움을 주다—9줄로 FreshRSS 배포
원제 NixOS is making me less afraid
119 포인트댓글 81
Key Point
NixOS의 선언적 설정 방식이 자가 호스팅 서비스 배포 및 유지의 복잡성을 획기적으로 낮추는 방법을 보여준다.
핵심 요약
- 저자는 FreshRSS(RSS 피드 애그리게이터)를 NixOS 서버에 9줄의 Nix 코드로 배포했다.
- 기존에는 RSS 피드를 스마트폰에만 로컬로 저장했는데, 화면이 작고 읽음/안 읽음 상태가 단말 전환 시 손실되는 문제가 있었다.
- 서버 기반 피드 애그리게이터를 원했으나 별도 프로젝트 유지 부담이 커서 미루고 있었다.
- NixOS 없이 FreshRSS를 설치하려면 아카이브 압축 해제, 권한 설정, nginx·php-fpm 설치, Let's Encrypt 인증서 구성, 백업 설정 등 많은 수동 작업이 필요하다.
- 컨테이너 이미지를 사용해도 백업, systemd 서비스, TLS 리버스 프록시 설정과 정확한 이미지 버전 기록이 필요하고, 같은 Dockerfile도 시간이 지나면 다른 결과를 만들 수 있다.
- 저자는 CFEngine, Ansible, podman, k3s 등을 시도했으나 설치·구성·배포 경험을 크게 개선하지 못했다.
- 쉘 스크립트 방식도 사용했지만 시간이 지나면서 가정이 무효화되거나 다른 환경에서 작동하지 않는 문제가 생긴다.
- NixOS 설정은 주의깊게 쓴 설명서처럼 읽히면서도 실행 가능하고 매번 동일한 결과를 만든다.
- 서버가 장애나면 같은 설정으로 약 15분 내에 새 서버를 구성할 수 있어 새 소프트웨어를 시도하는 장벽이 대폭 낮아졌다.