![](https://habrastorage.org/webt/wv/bn/2m/wvbn2mzg1vmetjhsmtv_qfokop4.png)
Blot просто берёт и превращает папку в сайт. Текстовые файлы в папке автоматически становятся веб-страницами на сайте
Мы уже упоминали десяток способов, как использовать личный VPS в минимальной конфигурации за 130 рублей. Это облачное хранилище для файлов, архив для бэкапов, почтовый сервер, игровой сервер и т. д. На него можно поставить практически любой софт: 0,5 ГБ оперативной памяти хватит для запуска большинства linux-приложений (без GUI).
И веб-сервер с личным сайтом и блогом — одно из таких приложений. Почему нет? За доллар в месяц вложение в личный бренд и технологическую независимость окупится многократно.
▍ Размещение сайта на виртуалках RUVDS
В нашей инструкции можно подробно почитать о покупке домена, привязке доменного имени к серверу и настройке VPS-сервера. Она проведёт по каждому этапу этого процесса:
- Создание сайта (например, в конструкторе).
- Выбор конфигурации VPS, заказ сервера.
- Покупка доменного имени, настройка записей DNS, привязка доменного имени к серверу.
- Размещение сайта на сервере (копирование файлов).
- Настройка и запуск веб-сервера.
Если суммировать вкратце, то для размещения есть два варианта:
- Заказать инстанс минимальной конфигурации «VPS Старт» за 130 рублей в месяц, установить на нём веб-сервер и остальной софт по инструкции выше.
- CPU 1x2,2 ГГц
- RAM 0,5 ГБ
- Диск: HDD (OS) 10 ГБ
- IP-адрес: 1
- CPU 1x2,2 ГГц
- Заказать в маркетплейсе готовый шаблон LAMP — CentOS 7 (LAMP — это Linux + Apache + MySQL + PHP). Он представляет собой стабильную сборку с установленным и настроенным софтом под операционной системой CentOS.
Установленное ПО:
- веб-сервер Apache (httpd), хотя вместо него можно установить nginx и др.;
- MariaDB, популярный форк MySQL;
- PHP;
- python2-certbot (позволяет быстро настроить шифрование трафика по 443 порту);
- Fail2ban (защита от атак по SSH и HTTP протоколам).
Здесь сервер более мощной конфигурации, чем минимальный «Старт»:
- CPU 2x2,2 ГГц
- RAM 2 ГБ
- Диск SSD (OS) 20 ГБ
- IP-адрес: 1
Такой вариант стоит ₽1067 в месяц (₽854 при оплате на год). Для новых пользователей три дня для теста сервера предоставляются бесплатно. - веб-сервер Apache (httpd), хотя вместо него можно установить nginx и др.;
Процесс заказа и установки VPS полностью автоматизирован, он запускается буквально в два клика.
Если не использовать конструктор, то самый простой веб-сайт может состоять из одной странички
index.html
(пример) и одного файла style.css
(пример), которые мы редактируем на домашнем компьютере (например, в папке /htdocs
), а потом копируем на сервер простой командой rsync
:rsync -avz htdocs yourusername@yourdomain.name:/var/www/
Это стандартный путь
/var/www/htdocs/index.html
, откуда веб-сервер берёт веб-странички на раздачу по внешним запросам.Осталось только запустить веб-сервер.
▍ Нестандартные веб-серверы
Кроме стандартного шаблона LAMP, есть несколько не совсем стандартных способов поднять веб-сервер. Эти варианты можно попробовать на минимальном тарифе «Старт» за 130 руб. И деньги сэкономить, и опыт получить.
Например, веб-сервер на Bash, без всяких
socat
, netcat
и проч. Это один скрипт bash-server.sh на 507 строчек, в котором прописаны все операции и действия веб-сервера.Особо стоит упомянуть платформу Blot, которая просто берёт и превращает папку в сайт. Текстовые файлы в папке (.txt, .md, .rtf, .docx, .odt и др.) автоматически становятся веб-страницами на сайте:
![](https://habrastorage.org/webt/p-/ti/u0/p-tiu0j-janq6ytvwyw2dume-fs.png)
По сути, это генератор статических сайтов для тех, кто не знаком с такими генераторами.
Движок распознаёт Markdown, формулы и программный код (на КДПВ).
Все файлы в папке становятся публичными и автоматически доступны для скачивания (кроме файлов, у которых названия начинаются с _подчёркивания). То есть если закинуть файл
Archive.zip
в папку /files
, он сразу доступен для скачивания по адресу http://адрес.сайта/Files/Archive.zip
. См. пример сайта на Blot (блог) и файлы этого сайта.Blot можно установить на своём сервере (бесплатно) или купить облачный хостинг у разработчика. Кстати, у него самого личный сайт располагается на необычном домене lllllllllllllllll.com.
Или вот Pocketbase. Если в двух словах, это опенсорсный бэкенд для любого SaaS-сервиса или мобильного приложения в одном файле. Файл включает в себя СУБД реального времени, систему аутентификации, хранилище файлов и панель мониторинга.
![](https://habrastorage.org/webt/tr/mc/0o/trmc0ozwoi7ar6iptpk69iz6tqi.png)
![](https://habrastorage.org/webt/hk/ls/vw/hklsvwx29taanuliw-uxzmeafik.png)
Pocketbase можно установить только на своём сервере (VPS), облачный сервис пока не предоставляется. Но зато всё полностью под контролем и бесплатно. Разработчики говорят, что даже на дешёвом VPS (два CPU, 4 ГБ RAM) движок легко выдерживает более 10 000 подключений в реальном времени (бенчмарки).
Есть с чем поэкспериментировать.
▍ Зачем нужен личный веб-сайт в 2024 году
Традиционно личный веб-сайт используется для нескольких задач:
- Визитка автора как альтернатива или дополнение к профилю на
LinkedInХабракарьере (личная информация, рабочее резюме, список проектов, ссылки на соцсети, etc.), вот пример.
- Блог для периодической публикации текстов на любую тему. Это могут быть заметки абсолютно о чём угодно: заметки о путешествиях, записи на рабочую тему, мысли о прочитанных книгах или просмотренных фильмах, отчёты о путешествиях, новые стратегии для прохождения игр, новые рецепты что угодно.
Два основных типа постов в блогах: 1) записи о том, что нового узнал автор и 2) записи о новых проектах, которые он сделал или планирует сделать.
Кроме того, есть смысл вести запись важной информации, чтобы просто не забыть её.
Наверное, человек забывает до 99% информации, которая проходит через краткосрочную рабочую память. К сожалению, даже важная информация не попадает в долгосрочную память или может со временем исчезнуть оттуда. Единственный способ сохранить воспоминания — зафиксировать их в письменном виде, желательно с фотографиями и скриншотами. Часть этого контента можно публиковать в открытом доступе.
Кроме этих стандартных задач, можно использовать личный веб-сайт и более креативно. Вот некоторые идеи, что можно сделать на личном сайте:
- Список любимых книг
- Страница с рекомендациями фильмов
- Добавить тёмный режим
- Спрятать пасхалку
- Гостевая книга для отзывов
- Написать комментарии в HTML для тех, кто будет читать код
- Список интересных веб-страниц (статей, сайтов, постов в блогах, фотографий, игр и т. д.) из последнего
- Alt-текст к изображениям
- Если вы публикуете на своём сайте научные работы, добавить раздел с описанием, как правильно на них ссылаться
- Сделайте «антибиблиотеку» со своими книгами, которые не читали или не планируете читать
- Добавить раздел с головоломками
- Завести список того, что вы добавили на свой сайт (#sitedocumentation)
- Cписок слов, которые вы недавно выучили
- Добавить фид RSS, чтобы люди могли подписаться
- Страница архива со ссылками на все посты сайта
- Перевести страницу сайта на другой язык, который вы знаете или изучаете
- Выделите фрагменты кода с помощью подсветки синтаксиса (например, Prism.js)
- Добавить на сайт функцию поиска
- Добавить lite-youtube для ускорения загрузки YouTube (встроенного видео)
- Список любимых подкастов
- Написать историю создания личного сайта
- Добавить кнопку «Написано человеком», если вы сами создаёте весь контент
- Добавить примечания к страничкам
- Написать себе пост-напоминание, который будет автоматически опубликован через неделю или в любой другой день в будущем
Это лишь небольшая часть списка из сотни идей и дополнения к нему. Многие из них полезны и для работы, и для личного развития.
В общем, свой сайт — очень полезная штука.
▍ Технологическая независимость
Полный самохостинг обеспечивает человеку технологическую независимость. Это означает не зависеть ни от какой конкретной компании, поставщика или программного обеспечения, использовать только опенсорсные инструменты, желательно самые распространённые, которые входят в стандартную комплектацию Linux.
Достаточно освоить всего несколько базовых инструментов Linux, чтобы поднять собственный сервер и управлять им до конца своей жизни.
Даже сторонний удостоверяющий центр (УЦ) не нужен. Можно поднять свой УЦ и наладить выпуск собственных сертификатов. Для шифрования трафика по HTTPS между устройствами вполне достаточно самоподписанных сертификатов и стандартного шифрования. Более того, можно такие сертификаты X.509, которые будут приниматься всеми браузерами. Свой сервер с частным УЦ иногда удобнее, чем стандартный Let's Encrypt.
В наше время самохостинг, запуск личного сервера и личного сайта — не такая простая процедура. Да, некоторые этапы автоматизированы. Например, установка ОС на VPS в два клика. Но почти весь остальной софт приходится устанавливать вручную. Можно представить себе идеальное будущее, где каждый человек может поднять собственный сервер по максимально упрощённой процедуре. Это будет выглядеть примерно так:
- Скачать и установить «приложение для самохостинга» на любой компьютер, VPS, старый ноутбук или мобильный телефон Android.
- Быстрая аутентификация OAuth2 для подключения к каналу на входящий трафик.
- Простая установка всех специализированных приложений вроде Jellyfin, Calendar, Nextcloud и др. Всё в контейнерах, изолировано и безопасно по умолчанию.
- Резервное копирование выполняется автоматически (в идеале — на аналогичные инстансы друзей по OAuth2).
Нет никаких технических препятствий, чтобы реализовать такой план. Что-то подобное пытаются сделать в рамках проекта Sandstorm, хотя платформа пока не получила особого развития. Модель Sandstorm:
![](https://habrastorage.org/webt/s6/jc/1d/s6jc1d3_9r5g5atj43mz8dvghom.png)
Разработчики операционных систем могли бы добавить такую функциональность по умолчанию в Android, iOS и другие операционные системы. При первом включении смартфона человек может в несколько экранов сразу же настроить и личный сайт, который будет раздаваться с этого смартфона (или с VPS, чтобы не держать телефон включённым круглосуточно).
Telegram-канал со скидками, розыгрышами призов и новостями IT ?
![](https://habrastorage.org/webt/jx/md/ye/jxmdyendyev6uxwdkpnkdl77zac.png)