Как реализовать домашний ПК для веб сервера и pet проектов?

Хотел бы получить тезисно информацию для дальнейшего самостоятельного изучения
Буду очень признателен!

Суть в том, что дома есть второй ПК, который хотел бы пустить в дело на изучение разных технологий.
На данный момент хочу запустить пару простеньких сайтов на flask, django или node.js, а также запускать телеграмм ботов.
В сети в основном вся информация о сетевом хранилище.

Уже имеется статичный IP для таких дел
1) Подскажите какую лучше поставить операционную систему? Если Linux, то в сторону каких дистрибутивов смотреть.
Хотелось бы удалённо подключаться к этому ПК для мониторинга или обновления файлов с github.
2) Актуален ли для подобного Docker или слишком много ресурсов будет отнимать?
3) Правильно ли запускать различные сайты просто на разных портах роутера?
5) Раз выполняется проброс порта, то как это обезопасить?

Дополнительно:

Proxmox + виртуалки/lxc контейнеры - для системы на базе гипервизора.

Виртуалка - изолирована лучше, но медленнее.
Lxc контейнер - изолирован хуже, но работает быстрее.

Если тебе не нужно строить сложное взаимодействие между виртуальными средами - ставь Ubuntu + docker на хост, будет намного быстрее работать, дальше через nginx reverse proxy прокидываешь порты к нужным контейнерам.

На компе можешь (винда) в файле hosts указать домены которые указывают на твой сервак, чтобы не париться с роутером и уже в nginx конфигах в зависимости от домена, на порт определённый направлять.

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

В этом плане Proxmox + виртуалки отлично подходят, настроил хост - эксперименты на виртуалках ставишь.
Дальше если по скорости не устраивает, сносишь и заводишь на хосте всё, как сказал выше, уже с полученными знаниями.

Обезопасить - nginx, главное порт ssh если открывать в сеть будешь, перед тем как это сделать настрой ssh ключи.

1) Подскажите какую лучше поставить операционную систему? Если Linux, то в сторону каких дистрибутивов смотреть. Хотелось бы удалённо подключаться к этому ПК для мониторинга или обновления файлов с github.

Proxmox или другой гипервизор

2) Актуален ли для подобного Docker или слишком много ресурсов будет отнимать?

Актуален.

3) Правильно ли запускать различные сайты просто на разных портах роутера?

Лучше использовать прокси (я бы использовал traefik или nginx).

5) Раз выполняется проброс порта, то как это обезопасить?

Как раз стоит изучить решения по защите (nginx Bunker, geoip, crowdsec)

Если не боитесь использовать Cloudflare в наших волшебных политических реалиях, то у них есть прекрасное решение для обеспечения безопасности: "Zero trust tunnel". Это не просто прокси-сервер, а самый настоящий туннель. Т.е. ваш сервак может находиться за непробиваемым файрволом, но по туннелю вы сможете организовать безопасный доступ к тем ресурсам, к которым пожелаете.
Таким образом, даже если кто-то будет атаковать ваши ресурсы, то атаковать они будут Cloudflare, а не ваш ненаглядный сервачок.

дома есть второй ПК, который хотел бы пустить в дело на изучение разных технологий.
На данный момент хочу запустить пару простеньких сайтов на flask, django или node.js, а также запускать телеграмм ботов.

Домашний сервер (с доступом из вне) - только кажущаяся экономия. Одно электричество может обойтись дороже аренды ВПС. И надёжность системы - низкая. ну разве что для изучения.
Кроме того, нужно понимать, что многие провайдеры не разрешают поднимать дома сервер. Так что это нужно смотреть договор.
Многие другие аспекты так же говорят против такого решения (начиная от безопасности, включая пожаробезхопастность, навыков администрирования (которых нет, судя по вопросам) и много другого).
Так что для изучения лично я рекомендовал бы аренду ВПС.
А в некоторых случаях нужный стек технологий можно получить и бесплатно.

Но если очень хочется то...

1) Подскажите какую лучше поставить операционную систему? Если Linux, то в сторону каких дистрибутивов смотреть.

Любую серверную. Убунту, дебиан и пр.

2) Актуален ли для подобного Docker или слишком много ресурсов будет отнимать?

Докер нужен если он нужен. Если нет то зачем?

3) Правильно ли запускать различные сайты просто на разных портах роутера?

Правильно сайты запускать не на роутере, а на сервере. И не разных портах, а на разных вируталхостах.
Для экономии на доменах (если для паблика) можно делать на поддоменах.

  • Я не согласен с вашей позицией по экономии. Китайцы давно продают мини-пк даже без активного охлаждения, которые неплохо справляются с возложенными на низ задачами, а потребляют энергии смехотворно мало.
    Как пример, у меня дома стоит такой сервер.
    На нем стоит Proxmox и куча виртуальных машин: и роутер pfSense, и Home Assistant, и виртуалка, куда я как раз выкладываю свои проекты, чтобы показать заказчику, и куча всяких контейнеров.
    Всё это работает на пассивном охлаждении и потребляет просто невероятное количество энергии - целых 15 ватт!
  • Виктор Кожухарь, ценю твоё мнение, но ты в своих расчётах не учитываешь стоимость "минипк" и много чего ещё.
    А вот у ТСа явно не мини ПК и расчёты для него будут совсем другие.

    А главное - посмотри на квалификацию ТСа (видно же по вопросу) и задачи.
    И вообще - те, кто способен поднять сервер дома, те таких вопросов не задают 🙂

  • многие провайдеры не разрешают поднимать дома сервер.

    Видимо я был не в курсе и у меня сервак дома работал лет шесть так в одном месте и еще пару лет в другом. И да, я и торренты раздавал иногда. И почта и веб и прокси - все полноценные серверные службы.

    И надёжность системы - низкая.

    для пет-проектов вполне хватает

  • CityCat4,
    Зачем мне эта информация? Хочешь поговорить об этом? Ок.
    Торенты тут не причём.
    Тебе повезло.
    "Был". Был а теперь нет. Посчитал затраты/целесообразность?
    Для тестовых сайтов не нужен выделенный IP и доступ из вне. И даже отдельный ПК не нужен.
    Всё равно ТС с этим не справиться и ему это не нужно и в любом случае дороже.

    🙂

  • Refguser, так и есть что опыта в этом деле у меня 0, но хочется потрогать и поизучать)
    Уверен на 100%, что где-то арендовать сервер было бы в тыщу раз проще и скорее всего дешевле
    А так как не знаю с чего начать поиск, то и решил спросить у разных гуру )
  • Refguser, Зачем? Затем, чтобы не делать заявлений "за весь свет". В FIDO была замечательная фраза - "отучаемся говорить за всех"

    Тебе повезло.

    С провайдером? Да, согласен. В том доме, где я сейчас снимаю хату - его нет и это реально бесит. Тут только уебищный РТК.

    "Был". Был а теперь нет. Посчитал затраты/целесообразность?

    Да нет, не делся никуда, просто когда сьехал с жилья бывшей жены с собой эту шумную плоскую коробищу не потащил - пристроил в конторскую серверную. Сервак пашет по-прежнему, только прокси на нем больше не нужен.

    Всё равно ТС с этим не справиться

    Вот это вполне возможно - ну так хоть учиться будет на кошках.

  • MegaTort, начать/поучится можно с локального сервера. Без доступа к нему из-вне. Это если тебе в первую очередь нужны навыки администрирования, а не написания веб-приложений.
    А если первична веб-разработка, то лучше сразу на нормальных серверах учится. А потом/параллельно не помешает и локальный понять и учится основам администрированию (чтобы понимать что как работает)
  • Refguser, 150 американских рублей - вот и все траты. Возможно, придётся памяти побольше поставить, потому что память - это главный ресурс при использовании гипервизора.
    При этом масса плюсов:
    - Proxmox стабилен и сильного ухода не требует. Надо будет тупо по хорошему туториалу его установить.
    - Это же касается и виртуальных машин типа роутера, Home Assistant и т.д. Они отлично и стабильно работают.
    - Для брачных игр с Линуксом и т.д. можно просто завести отдельную виртуальную машину и полностью убивать и переустанавливать её с нуля при необходимости. При этом всё остальное будет работать.
    - Чтобы это было безопасно, весь сервер может находиться за файрволом и не быть видным снаружи, а доступ к отдельным ресурсам, которые всё же надо выставить наружу, организовать через Cloudflare tunnels.
    - А ещё можно установить свой VPN и из какой-то кафешки с ноутбука подключаться по нему к своей локальной сети, и видеть все её ресурсы. Это также обезопасит от кражи информации через публичный WiFi.

    Я вообще не вижу минусов, одни плюсы. Потому как только возня со своим собственным железными сервером может чему-то реально научить быстро и качественно.

Ответы:

Если Linux, то в сторону каких дистрибутивов смотреть.

Любых, по которым есть рядом гуру. Но лучше сразу поднять гипер. Да, сам по себе линух - это тоже гипер, можно KVM (qemu + libvirt) использовать, но Proxmox - кузявее. Еще можно использовать vmware, хотя она сказала известную фразу про русский корабль.

Актуален ли для подобного Docker или слишком много ресурсов будет отнимать?

Для линуха - актуален. Для Proxmox - там уже виртуализация, но поэкспериментировать кончено можно.

Правильно ли запускать различные сайты просто на разных портах роутера?

Правильно запускать разные сайты на разных доменных именах

Раз выполняется проброс порта, то как это обезопасить?

В разных случаях по разному

Можно вообще на минималках, если комп не выключаете (как я) или не надо, чтобы проекты круглые сутки в интернет торчали.
Просто Windows 10/11 + WSL2 + Docker Desktop (либо тот же Ubuntu). Каждый проект в свой docker-compose оборачивайте и свои порты давайте. Порты пробросить наружу с компа без проблем, если ip белый.
Это будет максимально близко к тому с чем вы будите работать в реальных проектах.

 

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

 

    • Как реализовать домашний ПК для веб сервера и pet проектов?Есть ответ
    • 07.04.2024
    Ответить

    Для создания домашнего сервера для веб-проектов и pet проектов вам понадобится компьютер с достаточными ресурсами, операционная система, веб-сервер, база данных и необходимое программное обеспечение.

    1. Выбор оборудования:
    Выберите компьютер с хорошим процессором, достаточным объемом оперативной памяти и жестким диском. Желательно использовать SSD для ускорения работы сервера.

    2. Установка операционной системы:
    Установите операционную систему, наиболее распространенным выбором для веб-сервера является Linux, такие как Ubuntu, CentOS или Debian. Вы также можете использовать Windows Server, если вам более знакома данная ОС.

    3. Установка веб-сервера:
    Для хостинга веб-проектов на сервере вам понадобится веб-сервер. Один из самых популярных веб-серверов - это Apache. Вы можете также рассмотреть использование Nginx или LiteSpeed. Установите и настройте веб-сервер в соответствии с вашими потребностями.

    4. Установка базы данных:
    Для работы с базами данных на сервере вам понадобится установить MySQL, PostgreSQL или другую подходящую систему управления базами данных. Установите и настройте базу данных в соответствии с вашими потребностями.

    5. Установка программного обеспечения:
    Установите необходимое программное обеспечение для работы с веб-проектами, такое как PHP, Python, Ruby и т.д. Установите и настройте необходимые фреймворки и библиотеки для разработки.

    6. Безопасность:
    Обеспечьте безопасность сервера путем установки брандмауэра, обновлений безопасности и других мер защиты. Не забудьте про регулярное резервное копирование данных.

    7. Тестирование и отладка:
    После настройки сервера убедитесь, что все работает корректно. Проведите тестирование и отладку, чтобы убедиться, что ваш сервер готов к использованию.

    Эти шаги помогут вам создать домашний сервер для веб-проектов и pet проектов. Не забывайте следить за обновлениями и поддерживать сервер в актуальном состоянии.

Оставить комментарий