Home Settings
Aa

Как бесплатно поднять сайт

Важное примечание

Всё, что описано в этой статье, технически действительно бесплатно, однако большинство сервисов взамен на услуги просят предоставить данные банковской карточки и для проверки её работоспособности могут взымать и отменять платежи примерно по 1 евро.

Также стоит быть внимательным и читать, что именно сервисы предоставляют полностью бесплатно, а за что списывают деньги. К примеру, Google Cloud Platform может снимать 10 центов каждый месяц только из-за того, что тип диска не был сменён с варианта по умолчанию на бесплатный.

Второе важное примечание

В этой статье я описываю варианты поднятия сервера на виртуальных машинах, так как они предоставляют самые широкие возможности управления и настройки сервера.

Однако стоит упомянуть и другие варианты предоставления услуг хостинга кода. Например AWS Lambda, которая берёт плату за каждую обработку события (вроде загрузки страницы сайта), или Google App Engine, позволяющий писать на ограниченном списке языков программирования с ограниченным инструментарием, но не требующий долгой настройки и с доменом *.appspot.com в комплекте.

Хостинги

Бесплатные подачки на всех сервисах, которые я нашёл, делятся на временные и "Always free". Среди первых больше вариантов и доступных мощностей, однако не хочется через 2-12 месяцев думать, куда и как переносить сервер, поэтому Amazon Web Services и Microsoft Azure, предоставляющие пробные виртуальные машины максимум на год, отпадают.

Остаются Google Cloud Platform и Oracle cloud:

Кол-во Архитектура CPU Частота RAM Диск Сеть
GCP (e2-micro) 1 x86_64 (Intel) 1 2.2 GHz 800 Mb До 40 Gb
Oracle (E2.1.Micro) 2 x86_64 (AMD) 1 2.0 GHz¹ 1 Gb До 200 Gb² 480 Mbps
Oracle (A1.Flex) 1-4 ARM 3.0 GHz 24 Gb² До 200 Gb² 1-4² Gbps
  1. 2.0-2.25 GHz, 3.0-3.4 GHz при максимальном разгоне
  2. Бесплатные 200 Gb выделяются на все виртуальные машины Oracle суммарно, 4 процессора и 24 Gb оперативки - на все A1.Flex машины суммарно, 1 Gbps скорости сети - на каждый процессор.
  3. Я не нашёл информацию про пропускную способность сети у гугла, но нашёл лимит на 1 Gb исходящих из Северной Америки данных.

Конкретные ссылки с информацией из таблички: GCP и Oracle.

Статические Ipv4 адреса

GCP предоставляет бесплатный динамический адрес, который меняется каждый раз при перезапуске через сайт, однако если перезапускать машину командой sudo reboot он остаётся прежним.

Oracle предоставляет 5 бесплатных адресов.

Домен

Github student pack предлагает студентам 3 сервиса - Namecheap, Name.com и .TECH domains, которые дают различные домены на год.

Более универсальным решением (не только для студентов) является Freenom, предоставляющий домены .tk (Токелау), .ml (Мали), .ga (Габона), .cf (Центральноафриканской Республики) и .gq (Экваториальной Гвинеи) тоже на год.

Эти страны разрешают бесплатную регистрацию национальных доменов ради повышения своей узнаваемости, вследствие чего на данный момент домен островов Токелау, появившийся ещё в 1997-ом, стал самым популярным из национальных, обогнав в 2016 году Китайский почти в два раза.

Freenom для регистрации не требует карточку, только почту, но имеет крайне неинтуитивный интерфейс, который может врать про доступность доменов, но на ютубе нашёлся хороший туториал от индуса, описывающий решения всех возникающих в процессе регистрации проблем.

Сервер

Есть много разных вариантов бесплатного программного обеспечения для поднятия сайтов, например Wordpress, но интереснее написать всё самому, поэтому дальше распишу полезные ссылки для написания сервера на Flask.

Начать можно с гайда от Oracle, который подробно включает в себя все этапы запуска Hello World на их виртуальных машинах. Отдельно выделю параграф про открытие 5000 порта и 6 подпункт про обновление настроек firewall-а, для запуска не тестового https сервера эти процедуры нужно повторить с 80 и 443 портами.

Чуть более продвинутый гайд по тому как запускать сервер на Flask при помощи gunicorn и nginx, а также описание создания демона.

Ещё можно почитать исходные коды этого сайта в качестве примера.

https

Гайд Certbot-а довольно исчерпывающе описывает процедуру получения SSL-сертификата.