Ну, что, соскучились? Давно я не рассказывал вам о развитии проекта SQLtest.online. И вот отличные новости — сайт уже запущен, и вы можете зайти и протестировать его функциональность. Регистрация не требуется: просто выберите язык (русский или английский) и проверьте свои навыки в SQL.
К сожалению, пока на сайте всего лишь 15 вопросов и только одна база данных, но это только начало. Каждый день я добавляю новые задания, так что следите за обновлениями. Как я уже упоминал в предыдущей статье, код сайта доступен в открытом доступе. Если у вас есть желание, вы можете предложить свои задачи для добавления на сайт (после моей модерации, конечно).
Буду также рад любой конструктивной критике и предложениям в моем телеграм-чате. Давайте вместе сделаем SQLtest.online еще лучше! 🚀
Привет, друзья! Хочу поделиться с вами новыми подробностями разработки моего нового проекта sqltest.online, который я решил разрабатывать публично. Весь код проекта будет доступен на GitHub по адресу https://github.com/rozhnev/sqltest
Предыдущие вытуски серии можно увидеть здесь, здесь и тут.
Здесь я буду выкладывать весь код и размещать обновления. Проект открыт для всех, и любой из вас сможет следить за прогрессом разработки. Также, при желании, вы можете активно участвовать в улучшении кода.
Никаких претензий на звание "идеального кода" у меня нет. Это будет функциональный код, который делает свою работу. Если у вас появятся вопросы или предложения по коду, вы можете обсудить их с помощью стандартных инструментов на GitHub.com.
На сервере я создал пользователя с именем deployer и предоставил ему доступ к загрузке кода из репозитория. Теперь я могу легко применять все обновления сайта одной простой командой.
После этого я выполнил клонирование кода проекта из репозитория на сервер и изменил настройки Apache так чтобы он использовал для сайта папку проекта
Если сейчас зайти на сайт при помощи браузера он покажет содержимое папки.
Сайт показывает список файлов проекта
В дальнейшем я закрою эту возможность, оставив только показ самого сайта без возможности увидеть список файлов.
После этого я смогу применять все обновления сайта простой командой
sudo su - deployer
cd /var/www/sqltest
git pull
Следите за новостями и присоединяйтесь к обсуждению на GitHub! 🚀
Я продолжаю публиковать свои заметки о работе над проектом SQLtest.online Предыдущие части можно прочитать здесь и здесь. Ещё раз хочу отметить для всех читающих что всё что я пишу не является руководством по созданию веб-сайтов или другим техническим материалом. Это скорее графоманские заметки в стиле открытого дневника где я описываю свой процесс работы над проектом.
Итак, несмотря на низкую активность участников опроса опубликованного в прошлой статье (всего трое проголосовавших) победителем вышел вебсервер Apache.
Не могу сказать что с удовольствием, но я принимаю ваш выбор, оставляя за собой право изменить его в дальнейшем.
Установка сервера в операционной системе Ubuntu Linux выполняется в две команды:
sudo apt update
sudo apt install apache2
После их успешного завершения мы можем проверить работу сервера просто отрыв браузер и набрав в адресной строке SQLtest.online
Вы помните, в предыдущей статье мы настроили DNS и сейчас каждый браузер в мире знает где находится сайт.
Если всё сделано то вы увидите такой сайт
Фрагмент экрана
Следующим шагом мне нужно обеспечить возможность безопасного подключения к серверу по протоколу https - без этого обмен данными между вашим компьютером и сервером может быть перехвачен посторонними. Если честно https тоже может быть перехвачен, но уже не так просто. Кроме этого многие поисковые системы не выдают в поиске сайты не использующие безопасный протокол.
Для поддержки протокола https мне нужно установить на сервер сертификат SSL подтверждающий подлинность сайта.
Богатые компании приобретают для этого дорогие сертификаты у специализированных провайдеров за сотни долларов.
Я же воспользуюсь бесплатным сервисом от Let's encrypt (обязательно пожертвую им 10% от своей первой выручки)
После её выполнения можно зайти на сайт по безопасному протоколу https набрав адрес https://sqltest.online в браузере.
И последнее что я хочу сделать - это внести изменения в настройку веб-сервера чтобы автоматически переключать все запросы на безопасный протокол. Для этого я заменю содержимое файла /etc/apache2/sites-available/000-default.conf на следующее:
Итак в предыдущей статье данной серии мы определились с доменным именем нового проекта. С небольшим перевесом победил вариант SQLtest.online (спасибо всем принявшим участие в голосовании)
Если вы пропустили голосование, у вас есть еще шанс присоединиться. Если ваши голоса повлияют на результат, я готов переименовать проект.
Следующим этапом после выбора домена стал поиск хостинга для нашего нового проекта. Можете возразить, сказав, что этот этап можно отложить, ведь разработку можно вести локально.
Однако мой план - вести проект публично, начиная с самых первых стадий, поэтому мне уже сейчас нужен хостинг.
Мой выбор пал на провайдера MVPS.net, с которым я сотрудничаю давно.
Если вы решите воспользоваться их услугами по моей реферальной ссылке, то помимо широкого выбора опций по довольно низким ценам, вы также поддержите меня (при заказе сервера через мою ссылку, я получу небольшой бонус, что будет стимулом для меня продолжать работу над проектом).
Итак, для старта проекта я решил взять сервер в минимальной конфигурации (при его успехе всегда можно улучшить) и оплатить его сразу на три месяца, чтобы получить пятипроцентную скидку (ещё $12 к моим общим расходам).
Вот такой сервер я возьму для начала
В качестве операционной системы я предпочитаю Ubuntu Linux в его последней стабильной версии 22.04
Уже виден IP моего сервера
Установка сервера занимает некоторое время. В моем случае пришлось подождать около десяти минут. Сразу после приобретения сервера я выполню одно важное действие — настрою файрвол, чтобы обеспечить защиту моего сервера от ненужного трафика.
Настройки файрвола
Все входящие порты, за исключением следующих, будут закрыты:
Порт 22 — для подключения к серверу по протоколу SSH для управления.
Порты 80 и 443 — для веб-сервера (при этом порт 80 оставлю только для обратной совместимости; любое обращение на этот порт будет автоматически переадресовываться на порт 443 — протокол HTTPS).
После аренды виртуального сервера (VPS) я получу уникальный белый IP-адрес, по которому любой пользователь интернета сможет обратиться к серверу и получить ответ.
Последнее, что я сделаю сегодня, — настрою DNS, то есть свяжу доменное имя SQLtest.online, которое вы выбрали, с полученным IP. Это также можно сделать в панели управления MVPS, но я предпочту воспользоваться услугами регистратора доменов (в моем случае это domain.com).
Давайте войдем в панель управления домена и создадим соответствующую запись, которая свяжет имя домена с адресом сервера.
Наспройки DNS
Через некоторое время каждый браузер в интернете будет знать, что сайт SQLtest.online располагается по адресу 185.170.213.189. Однако, если вы попробуете зайти на него прямо сейчас, браузер вам не поможет, так как на сервере ещё не установлен веб-сервер – программа, отвечающая за обработку запросов пользователей и предоставление содержимого сайта для отображения в браузере.
Следующим шагом будет установка необходимых программ на мой сервер, о чем я подробно расскажу в следующей статье. А пока давайте проведем опрос, чтобы узнать ваше мнение:
Вы наверное уже знаете что я развиваю свой проект - онлайн песочницу Sqlize.online
Из предыдущих постов я понял что есть потребность в расширении функционала и частности в добавлении возможности практиковаться в написании запросов выполняя задания.
Для этого я решил запустить отдельный проект и назвать его SQLtest.
Я планирую создать сайт где есть возможность практиковаться используя различные базы данных и автоматическая проверка результатов тестирования.
Сайт планируется бесплатным с монетизацией при помощи размещения рекламы и без регистрации.
Кроме этого я решил параллельно разработке публиковать здесь заметки об этом процессе, советуясь с вами по тем или иным вопросам.
Для начала я зарегистрировал два домена sqltest.me и sqltest.online (за $7 пару на первый год) так как не смог определиться какой из них лучше.
Итак опрос:
Выберите доменное имя для проекта
Если у вас есть вопросы по будущему проекту - пишите в чат