ntfy на Pethost в один клик
Push-уведомления на телефон и компьютер из ваших скриптов, по HTTP
Что произойдет
- Вы входите в Pethost или создаете аккаунт — с passkey, через GitHub или Google.
- Машины еще нет? Вы выбираете тариф, и мы готовим машину для вас. Ссылка ждет в вашем браузере, пока машина не будет готова.
- Окно «Новый проект» открывается на этом приложении. Вы заполняете то, что оно просит, и нажимаете «Создать проект»: Пароль администратора.
- Через минуту-две приложение работает по своему адресу с HTTPS. Его секреты создаются случайно, а данные попадают в ночной бэкап.
- Это проект как любой другой: его compose.yaml, .env, логи и терминал — в панели, а ваш агент может его изменить, откатить или восстановить.
Первые шаги
Войдите как admin с паролем администратора, который вы указали. Для всех остальных топики закрыты: заведите отдельного пользователя для телефона или скрипта в терминале сервиса ntfy, командами ntfy user add и ntfy access. В приложении ntfy добавьте https://ntfy.sam.pethost.app как сервер. Сообщения хранятся в /var/lib/ntfy.
Что запускается
Шаблон — это этот compose.yaml и переменные, которые он пишет в .env проекта. Pethost запускает файл так, как он написан.
services:
ntfy:
image: binwiederhier/ntfy:v2.30.0
restart: unless-stopped
environment:
NTFY_BASE_URL: ${URL}
NTFY_LISTEN_HTTP: ":80"
NTFY_BEHIND_PROXY: "true"
NTFY_CACHE_FILE: /var/lib/ntfy/cache.db
NTFY_AUTH_FILE: /var/lib/ntfy/user.db
# Without a user nobody reads or sends: the address alone does not open a topic.
NTFY_AUTH_DEFAULT_ACCESS: deny-all
NTFY_ENABLE_LOGIN: "true"
NTFY_REQUIRE_LOGIN: "true"
ADMIN_PASSWORD: ${ADMIN_PASSWORD}
# ntfy makes its user database at the first start, and only then takes a user: it is started
# once on a port nobody reaches, the admin is added, and the server proper starts.
entrypoint:
- sh
- -c
- |
set -e
if [ ! -f /var/lib/ntfy/user.db ]; then
ntfy serve --listen-http 127.0.0.1:81 &
until wget -q -O /dev/null http://127.0.0.1:81/v1/health; do sleep 1; done
kill $$!
wait $$! || true
NTFY_PASSWORD="$$ADMIN_PASSWORD" ntfy user add --role=admin admin
fi
exec ntfy serve
volumes:
- data:/var/lib/ntfy
volumes:
data: