콘텐츠로 이동

alfheim

Oracle Cloud Infrastructure ARM VM입니다 (aarch64-linux). 홈랩에서 처음으로 클라우드에 둔 애플리케이션 노드이며 jamye-plz를 실행합니다.

책임

  • 실제 서비스를 올린 상태에서 OCI 위의 NixOS 동작 검증
  • upstream flake module로 jamye-plz full-stack PWA 실행
  • 공유 운영자 베이스라인을 갖춘 소형 원격 노드 제공

공개 트래픽은 여전히 yggdrasil로만 들어옵니다. yggdrasil의 Caddy가 jamye-plz.ridewithmin.com을 tailnet의 alfheim.tail6fc192.ts.net:8080으로 프록시합니다.

호스트 전용으로 로드하는 모듈

modules/podman.nix
services/jamye-plz.nix

서비스 포트

포트 서비스 공개 URL
8080 jamye-plz full-stack PWA 엔트리포인트 https://jamye-plz.ridewithmin.com
9429 vlagent 공개 미노출 (신뢰 인터페이스 경유 tailnet 도달 가능); journald 로그를 VictoriaLogs로 버퍼링 전송
45876 beszel-agent 미개방 (에이전트가 tailnet으로 Beszel 허브에 먼저 접속)

jamye-plz 메모

  • 애플리케이션 코드는 jamye-plz flake input에서 오며 현재 flake.lock에 고정되어 있습니다.
  • services/jamye-plz.nix가 upstream NixOS 모듈을 import하고 services.jamye-plz를 활성화합니다.
  • upstream 모듈이 frontend, backend API, 로컬 PostgreSQL 데이터베이스, alfheim-local Caddy를 함께 실행합니다.
  • 비밀은 secrets/jamye-plz.yaml에 있고 sops.templatesjamye-plz.env를 렌더링합니다.
  • OAuth redirect URI와 FRONTEND_ORIGINhttps://jamye-plz.ridewithmin.com을 사용합니다.

접근

SSH는 의도적으로 tailnet으로만 노출됩니다. OCI 공인 주소로는 SSH가 열려 있지 않습니다.

배포 시 SSH

GitHub Actions CD는 저장소의 배포 키 비밀을 사용합니다. 로컬 비상 배포는 운영자의 SSH 클라이언트 설정에 의존합니다. justnixos-rebuild는 호스트 이름(alfheim)을 그대로 넘기고, ~/.ssh/config의 alias가 이를 alfheim.tail6fc192.ts.net과 알맞은 키로 연결합니다. 다른 호스트도 같은 방식으로 접근합니다. Justfile 자체는 SSH 키나 호스트 이름을 지정하지 않습니다.

점검

애플리케이션 systemd unit 이름은 jamye-plz-backend지만, 공개 서비스는 Caddy가 제공하는 full PWA이며 로컬 PostgreSQL 데이터베이스를 함께 사용합니다.

systemctl is-active jamye-plz-backend caddy postgresql
journalctl -u jamye-plz-backend -f
curl -fsS https://jamye-plz.ridewithmin.com/