🚀 Как быстро раздать HTML-сайт с VPS за 1 минуту

Зачем это нужно?

Иногда нужно срочно:

  • Показать кому-то локальную страницу
  • Раздать HTML-прототип или лэндинг
  • Тестировать фронтенд без полноценного хостинга

И ты не хочешь возиться с Nginx, конфигами и SSL. Нужно что-то простое.

🛠 Решение: встроенный Python-сервер

Создай любую директорию и положи туда сайт. Пример:

mkdir ~/site
cd ~/site

nano index.html

Пример содержимого index.html:

<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Моя визитка</title>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" />
  <style>
    body {
      font-family: sans-serif;
      margin: 0;
      padding: 0;
      background: #f5f5f5;
      color: #333;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      height: 100vh;
      text-align: center;
    }

    .card {
      background: white;
      padding: 2rem;
      border-radius: 10px;
      box-shadow: 0 8px 16px rgba(0,0,0,0.1);
      max-width: 400px;
    }

    h1 {
      margin-bottom: 0.5rem;
    }

    p {
      margin-top: 0;
      font-size: 1.1rem;
    }

    .contacts {
      margin-top: 1.5rem;
    }

    .contacts a {
      margin: 0 10px;
      color: #333;
      text-decoration: none;
      font-size: 1.5rem;
    }

    .contacts a:hover {
      color: #007BFF;
    }

    @media (max-width: 480px) {
      .card {
        margin: 1rem;
      }
    }
  </style>
</head>
<body>
  <div class="card">
    <h1>BigGratz</h1>
    <p>Разработчик, блогер, энтузиаст open source</p>
    <div class="contacts">
      <a href="mailto:you@example.com" title="Почта"><i class="fas fa-envelope"></i></a>
      <a href="https://t.me/yourusername" title="Telegram"><i class="fab fa-telegram"></i></a>
      <a href="https://github.com/yourusername" title="GitHub"><i class="fab fa-github"></i></a>
    </div>
  </div>
</body>
</html>

🚀 Запуск сервера

python3 -m http.server 8080 --bind 0.0.0.0

Теперь страница доступна по адресу:

http://your-vps-ip:8080

Проверь внешний IP:

curl -4 ifconfig.me

🧱 Открыть порт в фаерволе

Если используешь ufw:

sudo ufw allow 8080/tcp

Для iptables:

sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

🔐 Ограничить доступ только себе

sudo ufw allow from YOUR_IP to any port 8080 proto tcp
sudo ufw deny 8080/tcp

📌 Как остановить

Нажми Ctrl+C в терминале. Или найди и убей процесс:

ps aux | grep http.server
sudo kill <PID>

🧠 Заключение

  • Без nginx, без docker, без systemd
  • 1 команда = сайт онлайн
  • Идеально для тестов, прототипов и учебных проектов