Comments 40
У вас получилось антирезюме.
Необходимые и достаточные условия и для установки:
apt install nginx
ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
apt install certbot python3-certbot-nginx
certbot --nginx -d example.com
Изучайте документацию.
Здравствуйте, я согласен с Вашим решением, но в моё решение заложена масштабируемость. Я дальше планирую внедрять другие технологии, а не останавливаться на том результате, что получился сейчас. И мне не хочется потом всё переносить на Docker, я решил это сделать сразу, а за одно рассказать, то как я это сделал.
Напишите через полгода сколько раз серт отвалился)
Работа с certbot в docker-compose чувствительна к ошибкам, если проблем nginx и certbot конкурировать за 80 порт можно решить без проблем, то в отладке certbot контейнера очень легко попасть на бан частых запросов сертификата. Далее узнается, что нет возможности перезагрузить Nginx контейнер из контейнера certbot не давая ему особых прав на управление. Так и остановился на двух таймерах для двух контейнеров. Они nginx reload, а другой - на истечение сетификатов. Более минималистично разве что с другим вебсервером.
А зачем плагин какой то? Certbot имеет post hooks где можно указать nginx reload
Сертификаты letsencrypt нужно регулярно обновлять. Таймеры systemd / cron? Не слышали?
Рекомендую Traefik. Я для своих домашних проектов использую за место Nginx. Он настраивается легко, работает в рамках docker-compose и автоматом перевыпускает сертификаты.
И, конечно же, он у вас отдаёт статику?
Контейнеры разные бывают. Если вам нужна статика, то внутри делается либо nginx, либо там свой сервер с роутами.
Traefik очень удобен когда поднимаешь много контейнеров и нужно их проксировать.
То есть для того чтобы автору статьи хостить страничку с html/css вы предлагаете взять Traefik, а потом всё равно внутри контейнер с nginx?
Я использую Traefik на работе. И жалею об этом каждый второй день. Настройка через labels выглядит ужасно, а чтобы что-то добавить или поменять - надо рестартовать весь контейнер. Дефолтных настроек мало, их не хватает, нам предлагают использовать сомнительные сторонние "плагины", с версиями 0.12.0 или 0.3.3 (не похоже на стабильный релиз), обновлённые последний раз 3 года назад.
Учитывая что у меня через него проксируется куча всего, включая RabbitMQ - при рестарте насильно дропаются все коннекты, что красиво красит все логи красным.
Мне очень жаль что вы неистово страдаете от Traefik и решили пожаловаться.
Только вот зачем? Это была моя рекомендация для автора попробовать, вас я не заставлял его использовать.
Вы, видимо, не прочитали в чем ИМХО мой плюс. Я не жадный, цитирую:
Traefik очень удобен когда поднимаешь много контейнеров и нужно их проксировать.
Если вас использование Traefik триггерит и вы явно его ненавидите, думаю проблема не в нем).
Здравствуйте, я не знаком с Вашим решением, спасибо. Возьму на вооружение.
Посмотрите Caddy еще
Навернуть кучу всего ради одной html-странички... напомнило ощущение от первого "Hello, world" на Java
Че я сижу просто тау? Дай вместо изучения техник папку расшарю в сеть, что протоколу читать про себя красивого. Не осуждаю.
В мире докер не принято переносить файлы по серверам. Образы же. Для деплоя можно создать ssh туннель в кластер и выполнить команду развертывания локально. Nginx на файлах конфигурации это все же наследие додокерной эпохи. Выше порекомендовали Traefik. Посмотрите Labels. В Кубере они везде.
Почему не github pages или аналоги?
Кстати есть уже готовые решения для Github Pages, грубо говоря свой сайт с резюме и прочим.
Как пример: al-folio и academicpages. Уверен есть ещё похожие, но для себя пометил именно эти.
Можете объяснить, для чего тут докер?
Для резюме вероятно)
Потому что микросервисы, что не понятного. Но у меня другой вопрос, а автор не думал о том что надобы ufw заюзать, а nginx умеет на разные порты на разные сервисы проксить и без докер образов? Хотя чейта я, пойду дальше рейды с mdadm собирать... простите, что напугал вас своими красными глазами.
Я бы рекомендовал людям, то что описано в статье - побаловаться локально, а резюме оформлять где-то а-ля github, LinkedIn. Ну или если сайт хочется резюме, то Tilda вам в помощь. Короче не покупайте домен, он вам в целях тренировки не нужен
У меня тоже мысль крутится заточить сайт на домашнем компе. Думаю установить на WM Vare Линукс с nginx, затем с вм-варе пробросить порт на роутер (у меня белый ip), думаю будет так если набрать мой ай пи, то роутер переадресует на ай пи виртуальной машины, а там Линукс с нджингсом, а значит сайт будет лежать в www/HTML которую делает нджинкс. А там уже можно что-накручивать. Сам ещё не пробовал, идея только крутится в голове. Если заработает, то это же проще предложенного варианта, и можно даже будет из Виндоус что-то прикрутить через общую папку с виртуальной машиной. Причем не надо пока париться с доменными именами и вообще минимум настроек, по идее всё по дефолту должно работать.
Слишком сложно, слишком много всего. Крошечный скрипт на питоне создаёт и поднимает веб сервер который опубликует ваш файлик с резюме и не только. Пользы от освоения http и способности написать собственный сервер будет гораздо больше. Сильно придает уверенности в своих силах.
Возможно, разработка и так идёт на VM в линуксе, тогда остаётся только настроить роутер. Устанавливать VM только для Nginx то это да, избыточно
VM ни в Линукс, ни в Windows не нужен. В Windows питон просто кладём в папку (D:/python3.3* подойдёт) из архива, пишем в переменную окружения PATH путь к этой папке и всё готово. Можно работать. Посмотрите, может быть у Вас питон давно поселился где то в системе, и надо только указать путь. При запуске скрипта открывающего порт наружу может потребоваться дать разрешение в файервол.
Я так делал, правда на Oracle Virtualbox, никаких проблем и сложностей не было. Единственное, надо настроить сеть в режиме моста с сетевым адаптером на хосте.
А зачем Вам Докер на домашнем сервере? Это не претензия, просто любопытство. Он же съест памяти х80 от того, что занимает сам сайт-резюме (достаточно простой). Или нет?
Я не хочу издеваться, но заведите порносайт .
Смех смехом , но будет нагрузка сразу 😂
Научитесь всему за полгода точно 🤣
Все испробуете , высоконагруженные системы в действии 🎯
И резюме ❗ скажем так зайдет 🔥 куда вам необходимо 😉
чувак, учи git, terraform и ansible. а в настройках нгинкса не забывай отключать устаревшую криптографию.
Соглашусь с комментариями, что докер лишний. Он здесь никак не используется по факту, и есть только ради того, чтобы был (передача файлов по sftp, даже не git!).
Буквально на днях снова приходилось поднимать и настраивать сервер, так вот установка nginx от поиска до верификации заняла 10 минут (опыт уже был, просто забыл шаги), зато разбор certbot занял 2 часа (опыт тоже был). Там серт выпускался, но не вписывался в nginx и прочие конфиги, оказалось что нужно было скачать модуль со скриптом...
Это я к тому, что в целом я не могу сказать что настроить что-то можно всегда по одному и тому же алгоритму. Отсюда нет смысла пытаться это далее автоматизировать. Лучше как раз идти шаг за шагом, вручную, проверяя что всё получается. Как пример - появление необходимости перед запуском писать server_name в конфиг nginx для успешного получения серта. Об этом бы никто не мог догадаться, потому что server_name ты и так указываешь в челенджах, для чего эта избыточность?
Вы можете юзать докер для настройки проекта и иметь с этого выгоду. Но класть настройку инфраструктуры в докер... Скромный гешефт заменяется забыванием основ настройки, что немаловажно, особенно если у вас разные ожидания от инфраструктуры.
Все жалуются что сложно, но ведь можно ещё сложнее! Например хоумлаберы часто делают схему с туннелем до дешман vps, чтобы не палить свой домашний ip и не открывать порты. Плюс можно подумать над защитой от ddos и фильтрацией geoip, например crowdsec.
Docker + Nginx + Certbot: как я поднял свой сайт-резюме на домашнем сервере