홈랩 알림을 위해 Discord 사용을 중단하세요—대신 제가 바꾼 것은 이겁니다
Discord 웹훅은 많은 사람들이 자신의 홈 서버에서 푸시 알림을 받는 방법입니다. 그러나 너무 지연이 심하거나 모든 서버 알림을 한 채널에서 받기에는 너무 복잡하다면 훨씬 더 간단한 방법이 있습니다. 이 도구를 사용하면 단일 curl 명령으로 휴대폰에 알림을 푸시할 수 있습니다.
Ntfy란 무엇인가요
원하는 만큼 많은 장치에 즉시 알림을 보내는 똑똑한 서비스
Ntfy는 서버에 자체 호스팅할 수 있는 무료 오픈 소스 간단한 푸시 알림 서비스입니다. HTTPS 요청을 수락하고 자체 호스팅된 Ntfy 서버에 연결된 모든 장치로 즉시 푸시합니다. 스크립트나 크론 작업에 간단한 curl 명령을 포함하여 푸시 알림을 받을 수 있습니다.
알림을 '주제'별로 푸시할 수 있습니다. 기본적으로 Ntfy는 알림을 다양한 채널로 분류하고 정리할 수 있게 해줍니다. 예를 들어, 가동 시간 알림용 채널 하나와 백업용 채널 하나를 만들 수 있습니다. 그런 다음 휴대폰이나 태블릿에서 이 주제들 중 하나 또는 둘 모두를 '구독'하여 푸시 알림을 받을 수 있습니다.
이것은 거의 리소스를 소비하지 않기 때문에 꽤 가벼운 설정으로, Docker 컨테이너를 실행할 수 있는 모든 곳에서 실행할 수 있습니다. 푸시 알림을 받으려면 Android 또는 iOS 기기에서 Ntfy 앱을 다운로드할 수 있습니다. 서버 주소를 통해 접근 가능한 브라우저 앱을 통해 데스크톱 알림도 받을 수 있습니다.
서버 설정 방법
당신은 그냥 도커가 필요합니다
서버에서 Ntfy를 설정하는 가장 간단하고 실용적인 방법은 공식 Ntfy Docker 이미지를 사용하는 것입니다. 서버에 Docker가 아직 설치되어 있지 않다면 공식 Bash 스크립트를 사용하여 설치할 수 있습니다.
curl -fsSL https://get.docker.com | sudo sh인터넷에서 다운로드한 스크립트를 실행하기 전에 항상 두 번 확인하는 것이 좋습니다. 해당 셸 스크립트의 내용을 확인하려면 URL을 방문하거나 cat 명령어를 사용하여 내용을 출력할 수 있습니다.
Docker가 설치되었으므로 이제 Docker compose 파일을 사용하여 가벼운 Ntfy 컨테이너를 실행할 수 있습니다. Ntfy 컨테이너와 그 compose 파일을 보관할 새 디렉토리를 만들어 봅시다.
mkdir -p ntfy/{config,cache,data}컴포즈 파일을 만들어 봅시다.
nano docker-compose.yml이 내용을 compose 파일에 붙여넣으세요. 그 다음에 Ctrl+O와 Enter를 눌러 저장하세요. 그런 다음 Ctrl+X를 눌러 nano 편집기를 종료하세요.
services:
ntfy:
image: binwiederhier/ntfy
container_name: ntfy
command: serve
environment:
- NTFY_BASE_URL=http://192.168.1.50:9000
- NTFY_LISTEN_HTTP=:80
- NTFY_CACHE_FILE=/var/cache/ntfy/cache.db
- NTFY_AUTH_FILE=/etc/ntfy/auth.db
- NTFY_AUTH_DEFAULT_ACCESS=deny-all
volumes:
- ./cache:/var/cache/ntfy
- ./config:/etc/ntfy
ports:
- "9000:80"
restart: unless-stopped이제 이 명령어로 컨테이너를 시작할 수 있습니다.
docker compose up -d컨테이너가 실행 중이며 올바른 포트에서 실행되고 있는지 확인하십시오.
docker ps기술적으로 Ntfy를 설정하는 데 Docker 컨테이너가 꼭 필요한 것은 아닙니다. 시스템 서비스로 실행되는 간단한 APT 패키지로 설치할 수 있으며(서버가 부팅되면 자동으로 시작됩니다). 하지만 서버 간에 이동하거나 의존성 문제에 직면할 계획이라면 복잡해질 수 있습니다. Docker 컨테이너는 이동이 쉽고 삭제가 쉬우며, 의존성 문제에 직면하지 않습니다.
휴대폰에서 Ntfy 알림을 받는 방법
앱을 설치하고 서버에 연결하세요
기본적으로, 개인 서버에서 실행 중인 Ntfy 인스턴스에 접근할 수 있는 URL과 Ntfy 앱만 있으면 됩니다. Android의 경우 F-Droid 또는 Google Play 스토어에서, iOS의 경우 App Store에서 Ntfy를 다운로드할 수 있습니다.
앱을 실행하고 상단의 세 점을 눌러 설정 메뉴를 엽니다. 일반 설정으로 스크롤한 다음 기본 서버를 탭하세요. 주소는 대략 이렇게 생겼을 것입니다. 포트는 Ntfy 서버용 Docker 컨테이너를 생성할 때 선택한 값입니다.
http://192.168.1.50:9000그런 다음 저장을 클릭하세요.
이제 서버에서 오는 여러 개의 '주제' 또는 알림 채널을 구독할 수 있습니다. 하단의 플러스 버튼을 탭하세요. '주제 구독' 창이 나타납니다. 주제 이름은 서버에서 푸시 알림을 보낼 주소입니다. 입력한 후 구독을 누르세요.
모든 것이 HTTP 연결을 통해 이루어지고 있으므로, 추측하기 어려운 고유한 주제 이름을 선택하세요. 이 이름은 비밀번호 역할도 하게 됩니다. 만약 'alerts' 같은 흔한 것을 선택하면, Wi-Fi 네트워크에 연결된 누구나 같은 주제를 구독하여 기술적으로 서버에서 알림을 가져올 수 있습니다.
서버에 바로 연결되어야 하며 메인 메뉴에 알림 체인이 표시되어야 합니다.
오류가 보이면 올바른 서버 IP와 포트 주소를 입력했는지 확인하세요. 또한 서버와 동일한 Wi-Fi 네트워크에 연결되어 있는지 확인하세요. 집 밖의 Wi-Fi 네트워크에서 알림에 접근하려면 리버스 프록시나 Tailscale과 같은 개인 네트워크를 설정할 수 있습니다.
우리의 새로운 설정을 테스트해봅시다.
서버에서 curl 명령어를 사용하여 선택한 채널로 알림을 전송하세요.
curl -d "This is a test alert from my server" http://192.168.1.50:9000/jelly_alerts알림은 알림 스레드뿐만 아니라 휴대폰의 알림 창에도 즉시 표시되어야 합니다.
프로 팁 몇 가지
우선 순위 알림을 설정하고 파일 첨부도 보낼 수 있습니다
이 알림을 수동으로 전송하는 것은 거의 쓸모가 없지만, 아마도 이러한 curl 호출을 스크립트 안에 포함시키고 싶을 것입니다. 예를 들어, 저는 Asana API를 사용하여 저에게 알림을 보내는 스크립트를 설정했습니다. 원하는 만큼 많은 스크립트에 대한 채널을 설정할 수 있습니다. 또한 이러한 플래그를 사용하여 푸시 알림의 우선순위를 설정할 수도 있습니다.
curl \
-H "Title: Emergency" \
-H "Priority: high" \
-d "Immediate attention needed" \
http://192.168.1.50:9000/jelly_alerts그런 다음 앱 설정 내에서 Ntfy의 알림 우선순위를 구성합니다. 푸시 알림에 로컬 파일을 첨부하거나 다운로드 URL도 첨부할 수 있습니다.
가볍고 간편한 푸시 알림
백업, API 호출, 스크립트 또는 가동 시간 모니터링 알림에 대한 알림을 간단하고 가볍게 보내는 방법을 찾고 있다면, Ntfy가 사용하는 기본 curl 구문보다 더 간단한 방법은 없습니다.











