Как настроить домашний компьютер для использования в качестве веб-сервера и для работы над собственными проектами?

Конечно! Вот переформулированный вопрос:  
"Какие операционные системы рекомендуется использовать для домашнего ПК, который планируется использовать для изучения технологий создания веб-сайтов на Flask, Django или Node.js, а также для запуска телеграм-ботов? Какие дистрибутивы Linux представляются наиболее подходящими? Как обеспечить удаленный доступ к ПК для мониторинга и обновления файлов из GitHub? Актуален ли Docker для таких целей или он потребует слишком много ресурсов? Как правильно запустить несколько веб-сайтов на одном ПК, используя разные порты роутера? Как обеспечить безопасность при пробросе портов?"
  • 3 апреля 2024 г. 21:59
Ответы на вопрос 6
Для использования домашнего компьютера в качестве веб-сервера и для работы над собственными проектами, рекомендуется использовать операционную систему Linux, так как она более надежная, стабильная и оптимизирована для работы с веб-технологиями.

Среди дистрибутивов Linux наиболее подходящими для данных целей являются Ubuntu Server, CentOS и Debian. Они имеют обширное сообщество пользователей, хорошую документацию и поддержку.

Для обеспечения удаленного доступа к компьютеру для мониторинга и обновления файлов из GitHub, можно использовать SSH (Secure Shell) или VPN (Virtual Private Network). Это позволит безопасно обмениваться данными между компьютером и удаленным сервером.

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

Для запуска нескольких веб-сайтов на одном компьютере, вы можете использовать разные порты роутера. Например, веб-сайт на Flask можно запустить на порте 5000, на Django - на порте 8000 и т.д. Затем настроить маршрутизацию портов на вашем роутере, чтобы перенаправлять трафик на соответствующие порты компьютера.

Для обеспечения безопасности при пробросе портов, следует следовать ряду практик, таких как использование сложных паролей, обновление программного обеспечения, настройка файрволлов и мониторинг журналов регистрации на предмет подозрительной активности. Также рекомендуется использовать HTTPS для шифрования трафика и SSL-сертификаты для проверки подлинности сервера.

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

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

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

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

Как раз стоит изучить решения по защите (nginx Bunker, geoip, crowdsec)
Proxmox + виртуалки/lxc контейнеры - для системы на базе гипервизора. 

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

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

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

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

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

Обезопасить - nginx, главное порт ssh если открывать в сеть будешь, перед тем как это сделать настрой ssh ключи.
Если не боитесь использовать Cloudflare в наших волшебных политических реалиях, то у них есть прекрасное решение для обеспечения безопасности: "Zero trust tunnel". Это не просто прокси-сервер, а самый настоящий туннель. Т.е. ваш сервак может находиться за непробиваемым файрволом, но по туннелю вы сможете организовать безопасный доступ к тем ресурсам, к которым пожелаете. 
Таким образом, даже если кто-то будет атаковать ваши ресурсы, то атаковать они будут Cloudflare, а не ваш ненаглядный сервачок.
дома есть второй ПК, который хотел бы пустить в дело на изучение разных технологий.
На данный момент хочу запустить пару простеньких сайтов на flask, django или node.js, а также запускать телеграмм ботов.

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

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


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

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

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

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

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


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

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

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

Правильно запускать разные сайты на разных доменных именах
Раз выполняется проброс порта, то как это обезопасить?

В разных случаях по разному
Похожие вопросы