Иногда хочется быстро поднять легковесный API без Nginx/Apache, чтобы протестировать интеграцию или выдавать системные данные в JSON. Для этого достаточно bash + netcat.
Общая идея такова:
📍netcat слушает порт (например, 8080);
📍bash скрипт парсит запрос и отвечает заголовками + данными;
📍результат можно использовать для локальных API-запросов (например, мониторинг).
🛠 Минимальный пример
#!/bin/bash
PORT=8080
while true; do
# Принимаем одно соединение
{
# Читаем первую строку HTTP-запроса
read request
echo ">>> $request"
# Отправляем HTTP-ответ
echo -e "HTTP/1.1 200 OK\r"
echo -e "Content-Type: application/json\r"
echo -e "\r"
echo -e '{"status": "ok", "time": "'$(date +%T)'"}'
} | nc -l -p $PORT -q 1
done
▪️ Запуск
chmod +x mini-http.sh
./mini-http.sh
Теперь можно открыть в браузере: http://localhost:8080
▪️ Возможности
📍отдавать системные метрики:
echo -e '{"load": "'$(uptime | awk "{print \$10}")'"}'
📍простой healthcheck для Docker:
curl localhost:8080/health📍мини-API для локальных скриптов (например, статус бэкапа).
Такой подход позволяет собрать сверхлегкий REST-like API прямо из bash - без сторонних веб-фреймворков.
BashTex 📱 #bash #utils