블로그 / 분류
회사 시스템 구축기.
맥미니 서버·자동화를 직접 만들고 운영하며 겪은 문제와 해결.
맥미니 집 서버가 정전 뒤 다시 살아나는지 확인하는 법 — 자동 켜기, FileVault, 컨테이너 재시작
전기가 돌아왔을 때 맥미니 서버가 혼자 다시 올라오는지는 pmset, fdesetup, docker inspect, launchd 설정 네 가지로 미리 확인할 수 있습니다. FileVault가 켜져 있으면 잠금 화면에서 멈추는 이유와 고를 수 있는 선택지를 정리했습니다.
회사 시스템 구축기아침 7시 반에 글 초안이 와 있게 만든 구조 — 수집, 후보, 초안, 검토
매일 06:00 뉴스 요약, 06:15 주제 후보 적재, 06:20 초안 한 건, 07:30 텔레그램 알림으로 이어지는 Spring 스케줄러 체인입니다. 후보를 고르는 순서, 안 쓴 초안이 쌓이지 않게 한 장치, 초안을 그대로 올리지 않는 이유를 코드와 함께 적었습니다.
회사 시스템 구축기GitHub Actions와 Watchtower로 집 서버에 접속하지 않고 배포하는 방법
코드를 main에 올리면 GitHub Actions가 도커 이미지를 ghcr.io에 올리고, 집 서버의 Watchtower가 5분마다 확인해 컨테이너를 바꿔 끼우는 구성입니다. 워크플로·compose 설정, 자동으로 바꿀 컨테이너만 고르는 라벨, 실제 로그와 되돌리는 방법을 적었습니다.
회사 시스템 구축기Cloudflare Tunnel로 포트포워딩 없이 집 서버를 도메인에 연결하는 방법
공유기 포트를 열지 않고 집에 둔 Mac mini를 내 도메인으로 공개하는 순서입니다. cloudflared 설치, 터널 생성, DNS 연결, config.yml 작성, 서비스 등록, 연결 확인까지와 석 달 넘게 운영하며 알게 된 것, 무료 플랜의 한도를 적었습니다.
회사 시스템 구축기GitHub Actions 무료 2,000분을 다 썼을 때 집 컴퓨터를 self-hosted 러너로 쓰는 방법
비공개 저장소 다섯 개를 돌리다가 월 2,000분 한도에 닿았습니다. 분을 줄이는 설정 세 가지, 집 컴퓨터를 조직 단위 러너로 등록하는 순서, 조직 변수 하나로 GitHub 러너와 집 러너를 오가는 구성을 적었습니다.
회사 시스템 구축기claude -p와 텔레그램으로 음성비서 만들기: 폰에 말하면 집 맥이 답하는 구성
갤럭시 폰 앱이 받아 적은 말을 집 맥의 게이트웨이가 claude -p나 다른 에이전트에 넘기고, 결과를 텔레그램과 이어폰으로 돌려받는 구성입니다. API 키 없이 구독 CLI를 쓰는 방법과 답이 안 올 때 확인할 곳을 함께 적었습니다.
회사 시스템 구축기Tailscale로 집 서버·맥·안드로이드 폰을 한 네트워크로 묶는 방법
포트포워딩 없이 밖에서 집 서버에 ssh로 들어가고, 다른 네트워크에 있는 안드로이드 폰에 무선 adb로 앱을 설치하기까지의 설정 순서입니다. 무료 범위, 연결 확인 명령, 서버에서 꺼 둘 설정을 함께 적었습니다.
회사 시스템 구축기PostgreSQL 백업 복구 리허설, 운영 DB 대신 임시 DB에 pg_restore 하기
Backblaze B2에 올려둔 암호화 덤프를 내려받아 임시 데이터베이스에 복원하고 운영 DB와 행 수를 대조하는 절차입니다. 단계별 명령어와 안 될 때 확인할 곳, 18MB 덤프로 해본 시간을 같이 적었습니다.
회사 시스템 구축기자동 백업이 한 달 동안 안 돈 걸 몰랐던 이유와 heartbeat 감시 붙이기
에러 알림만 걸어 둔 자동화는 스크립트가 아예 실행되지 않으면 아무 신호도 보내지 않습니다. 백업이 지금 도는지 확인하는 순서와, 성공 신호가 끊기면 알리는 heartbeat를 직접 만들거나 Healthchecks.io로 붙이는 방법을 적었습니다.
회사 시스템 구축기cron과 claude -p로 급하지 않은 AI 작업을 새벽 2~5시에 처리하는 워커
낮에 쌓인 요약·리포트 작업을 cron이 새벽 2시에 깨운 Node 워커가 5시까지 한 건씩 처리합니다. 래퍼 스크립트와 루프 코드, 워커가 안 돌 때 확인할 곳을 정리했습니다.
회사 시스템 구축기git worktree로 작업 중인 브랜치를 두고 main만 꺼내 배포하기
작업 중인 브랜치를 stash로 치우지 않고, git worktree로 main을 옆 폴더에 따로 열어 배포하는 방법입니다. add·list·remove 명령, .env와 node_modules가 따라오지 않는 점, remove가 거부되는 경우까지 정리했습니다.
회사 시스템 구축기중고 Mac mini 2018을 25만 원에 사서 회사 서버로 쓰는 구성과 비용
당근에서 산 2018년 맥미니 한 대에 백엔드, DB, 봇, 자동 배포를 올려 쓰고 있습니다. 산 값과 매달 드는 돈, 같은 사양 클라우드 요금, 넉 달 돌린 뒤의 메모리와 가동 기록, 자가호스팅이 맞는 조건을 적었습니다.