Зачем это нужно?
Иногда нужно срочно:
- Показать кому-то локальную страницу
- Раздать 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 команда = сайт онлайн
- Идеально для тестов, прототипов и учебных проектов