Субботний вомбат на злободневную тему


Сохраняй посты, комментируй и ставь оценки
Немного вводных - летом проект переехал целиком на инфраструктуру Beget. Включая хранилище, базы, приложение.
2 ноября Beget был взломан. Облако провайдера уничтожено целиком: серверы, база, хранилище файлов, бэкапы на их стороне. Это не наша ошибка и не наш взлом, пострадали все клиенты (более 200 тысяч клиентов и 350 тысяч проектов в рунете). Вот их хронология (можно на beget.com смотреть)

У нас со своей стороны были ежедневные бэкапы базы (в хранилище) и еженедельные выгрузки актуального бэкапа на локальные машины. Но т.к. отдельное хранилище Beget тоже потерял, то наши потери по данным составили примерно неделю (посты, комментарии, оценки, Вомбаттл). Посты из этой недели почти все удалось восстановить отдельно.
С медиа-файлами ситуация хуже. Тоже были в хранилище и не бэкапились на регулярной основе из-за больших размеров. Полный бэкап был в конце лета, но большую часть картинок постов удалось восстановить из резервных источников (CDN). Итого у постов потеряно около 430 картинок. У серий постов потеряны все обложки (сейчас они заменены на первую картинку поста этой серии). Загруженные к нам видео с июля по октябрь потеряны.
Мы пока ещё ждём официальных заявлений от Beget, будут ли восстановлены хранилища. Если будут - то все данные довольно быстро вернутся на своё место. Также они обещали восстановить базы, в таком случае недельные потери комментов/оценок и прочего тоже будут восстановлены (вероятность этого высокая по словам хостера).
Сейчас была экстренно собрана новая инфраструктура на мощностях другого хостера, поэтому что-то может работать некорректно, просьба сообщать о багах.
Нужно ли делать что-то с постами без картинок? Пока нет. Подождём официального ответа. Разве что можно у серий постов поставить нужную, если автоматически встала неподходящая. Судя по ответам хостера, полное понимание ситуации можно будет ждать в течение недели.
И ещё один важный момент - ваши пароли от Вомбата никуда не утекли, за это можно не переживать. В открытом виде они никогда не хранятся.
С моей стороны работа ещё продолжается, пингуйте модераторов, если обнаружатся какие-то проблемы.
Давно хотел поднять собственный облачный сервер для хранения каких то личных моментов (фото, видео и тд…), т.к. хранить на смартфоне всю информацию не очень хорошо (забивает драгоценную память на моем iPhone), а так же хотелось бы всегда иметь под рукой доступ к часто используемым файлам.
Наткнулся на Nextcloud (open source программа, с помощью которой можно организовать собственное облачное хранилище). Выглядит все это дело так:







а так же разделы: События, контакты, почта, календарь, заметки и многое другое . Кстати, присутствует поддержка офисных документов… Еще в nextcloud имеется центр приложений, откуда можно скачать полезные для себя скрипты.
В этой статье я распишу установку пакета на сервере.
В моем случае параметры сервера такие:
CPU: Intel(R) Xeon(R) CPU E5-2643 0 @ 3.30GHz (1 core)
HDD: 512GB
ОЗУ: 4GB
OS: UBUNTU 22.04
Нагрузка:

Установку операционной системы на сервер или какие либо настройки виртуальной тачки (своей или арендованной), я описывать не буду, мануалов по этому делу полно в интернете.
Итак установка NextCloud:
Подготовка к установке
Для начала установим необходимые пакеты:
Веб-сервер Apache, базу данных MariaDB и различные модули для PHP:
sudo apt update sudo apt install apache2 mariadb-server libapache2-mod-php php-gd php-mysql php-curl php-mbstring php-intl php-gmp php-bcmath php-xml php-imagick php-zip unzip
Мы установили основной набор пакетов для Nextcloud. Если вы решите добавить дополнительные приложения (аддоны), тогда возможно потребуется установить дополнительные пакеты. Перед началом установки новых приложений рекомендуется внимательно изучить их требования и устанавливать необходимые пакеты по мере необходимости.
Большинство настроек Nextcloud сохраняет в базе данных. Поэтому перед первым запуском мы создадим базу данных и пользователя, а сам Nextcloud автоматически сформирует необходимые таблицы, индексы и представления. Для доступа к нашему локальному серверу мы воспользуемся простой консольной утилитой mysql.
sudo mysql
Создадим пользователя и БД. Введите следующие команды, и не забудьте установить пароль! Также можно указать другое имя пользователя и БД при необходимости.
CREATE USER 'nextcloud_user'@'localhost">localhost' IDENTIFIED BY 'ВАШ__ПАРОЛЬ'; CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud_user'@'localhost">localhost';FLUSH PRIVILEGES;
База настроена, выходим из командной строки SQL:
quit;
Установка и настройка Nextcloud
Теперь мы готовы к установке Nextcloud. Скачиваем самую последнюю версию и распаковываем ее:
unzip latest.zip
Затем переместим распакованное приложение директорию /var/www:
sudo cp -r nextcloud /var/www
И сменим владельца каталога, чтобы Apache мог корректно обрабатывать все вложенные файлы:
sudo chown -R www-data:www-data /var/www/nextcloud
Настройка веб-сервера Apache
Теперь настроим Apache. Создайте файл /etc/apache2/sites-available/nextcloud.conf с настройками виртуального хоста.
В качестве доменного имени мы будем использовать cloud.YOU_DOMAIN.com, а вам необходимо указать свой домен:
<VirtualHost *:80> DocumentRoot /var/www/nextcloud/ ServerName cloud.YOU_DOMAIN.com
<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
</VirtualHost>
Чтобы Apache начал использовать этот файл конфигурации, выполните в shell-консоли команду:
a2ensite nextcloud.conf
Далее активируем несколько модулей Apache, которые необходимы Nextcloud для корректной работы:
a2enmod rewritea2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
Перезапустим Apache, чтобы применить все выполненные настройки:
service apache2 restart
Получение TLS-сертификата
Nextcloud в настоящее время готов к использованию, однако работает по протоколу HTTP и не обеспечивает шифрование трафика. Для увеличения безопасности сервера мы планируем выдать и настроить бесплатный TLS-сертификат от Let’s Encrypt. Первым шагом будет установка утилиты certbot, которая автоматически генерирует и обновляет TLS-сертификаты.
sudo apt-get install -y certbot
Запросим сертификат с помощью команды (не забудьте в параметре указать свое доменное имя):
sudo certbot --nginx -d cloud.my-domain.com
Затем Certbot запросит указать адрес электронной почты и согласиться с условиями использования. На этот адрес будут приходить уведомления о скором истечении срока сертификата. Сертификаты Let’s Encrypt действительны 90 дней. Для автоматического обновления сертификата добавьте задание cron или таймер systemd, который будет запускать следующую команду.:
sudo certbot renew --quiet
Теперь необходимо включить соответствующие модули в Apache, чтобы он начал использовать SSL-сертификаты:
a2enmod ssl a2ensite default-ssl
И еще раз перезапустим Apache, чтобы он применил новые настройки:
service apache2 reload
Инициализация облака Nextcloud и начальный интерфейс
Откроем в браузере страницу https://cloud.YOUR_DOMAIN.com и увидим окно первоначальной настройки Nextcloud. Создадим учетную запись администратора, а также укажите название БД, пользователя и пароль, которые мы заводили на этапе настройки MariaDB. При необходимости также можете поменять каталог, где будут размещаться пользовательские данные.

Затем появится окно для ввода учетной записи, где требуется ввести логин и пароль для только что созданного пользователя. После завершения начальной настройки мы перейдем к основному интерфейсу Nextcloud. Здесь уже доступны примерные файлы для ознакомления и базовые приложения активированы, такие как синхронизация файлов, просмотр фотографий, создание записей и другие функции.
Nextcloud успешно установлен и готов к использованию. Теперь вы можете создавать новых пользователей, добавлять дополнительные приложения и настраивать Nextcloud различными способами по вашему усмотрению.
Ссылки
Заключение
Мы успешно развернули и сконфигурировали облачное хранилище Nextcloud на нашем собственном сервере. Все требуемые зависимости были установлены, MariaDB и Apache были предварительно настроены для развертывания, а сервер был защищен бесплатным SSL-сертификатом от Let’s Encrypt для обеспечения шифрования трафика.
После установки настоятельно рекомендую заглянуть в раздел «Параметры сервера - Общие сведения» и убедиться в отсутствии ошибок сервиса. (В моем случае были ошибки с SSL сертификатом, а так же некоторые системные ошибки, решил гугля, а так же читая документацию)


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



Наш облачный сервер готов, приятного пользования!

Привет Пикабу. У меня есть сайт, уже давно. До начала СВО я не знал проблем с хостингом. Хостился в Германии у украинского хостера за хорошую цену. Как всё началось, хостер стал переезжать за рубеж и с оплатой стало проблемно, ну и я подумал, что надо на российский хостинг перейти, а то удалят мой сайт, мало ли.
И вот решил перейти на Рег. Ру. Я честно полагал, что все хостинги +- одинаковые. Выбрал себе тариф чуть подороже, чем у меня был и переехал.
Проблемы начались через месяц. Оказывается на рег.ру на каждый тариф есть какая-то нагрузка на процессор или как-то так. На моем тарифе 2,5%.
хостер стал заваливать меня письмами о превышении лимита, периодически блокируя сайт. Какое то время я терпел. Думал, может купить тариф повыше на 4% нагрузки... Но сегодня меня убило.
Сайт снова заблокирован. Они мне присылают статистику, где написано, что у меня 17% нагрузки. В статистике я не особо что понял. Регру предлагает перейти на более высокий тариф и подключить защиту от атак, за деньги. Такое ощущение, что они заточены как можно больше денег выкачать с меня. И вот вопрос. Что делать или куда переезжать? Может есть менее крупный хостинг без нагрузок на процессор? Посоветуйте
Как и обещал, вот инструкция как получить сертификат SSL для сайта: бесплатно, без линуксов, если ваша панель управления сайтом не поддерживает его выпуск в автоматическом режиме.
Этот вариант подходит например тем, кто хостится у ру-центра (nic.ru) - там специально не вводят автоматику установки сертификата, чтобы продавать задорого то, что давно не нужно.
Увы, большинство инструкций или ведут на платные сервисы, или на линуксовые инструкции для хостингов, чтобы найти вариант "на домашнем компе и без заморочек с автоматикой", пришлось напрячься, так что если кому-то время сэкономлю - будет уже неплохо.
Итак, сперва нам надо скачать последнюю версию клиента win-acme с официального сайта: https://www.win-acme.com/

Распаковываем в удобное место, запускаем wacs.exe:

Выбираем N для создания нового сертификата, и 2 для ручной настройки:

Вводим адрес нашего домена, и тут я рекомендую через запятую ввести его в формате "www.домен".
В следующем пункте выбираем 3 (загрузить файл верификации по FTP):

Краткая справка: для выпуска сертификата сервис должен проверить, что вы действительно владеете этим сайтом. Самый простой способ - программа генерирует специальный файл, загружает его на ваш сервер, сервис проверяет его корректность, и только после этого происходит генерация сертификатов. Можно проверить и другими способами, но для конечного пользователя, которых хочет просто чтобы google chrome не рисовал страшилки о небезопасном соединении, это хватит за глаза. Так же, можно и вручную нужный файл грузить... Но за чем, если данная прога это сделает за вас?)
Далее у нас просит адрес вашего FTP с сайтом. Посмотреть его можно в панели управления сайтом на вашем хостинге, при чём путь должен быть именно до папки, где хранятся сами файлы сайта. Если вы тоже используете nic.ru, то это проще всего сделать путём создания нового пользователя FTP - просто укажите ему доступ к папке конкретного сайта:

В противном случае, вам надо будет сперва подключиться имеющимся пользователем по FTP и найти там папку с файлами сайта, и прописать путь именно до неё. На примере того же ру-центра, это выглядит как "ftp://ftp.ИМЯ_АККАУНТА.nichost.ru:21/home/ИМЯ_АККАУНТА/ИМЯ_...". На крайняк - с этим может помочь техподдержка хостинга, только не говорите, что вам для установки сертификата, потому что я однажды столкнулся с полным забиванием на мои запросы после этого (ага, как же иначе - посмел покуситься на потенциальную прибыль барыг).
Далее нам надо отказаться от загрузки вебконфига (просто тыкаем enter), ввести имя пользователя FTP, которого мы создали, выбрать ввод пароля в консоли (2), ввести сам пароль, отказаться от его сохранения (enter):

Далее надо выбрать тип файла, в котором нам отдадут сертификат. Почти наверняка вам понадобится формат PEM, так что выбираем пункт 2 (если вдруг не подойдёт - в техподдержку, или попробуйте другие форматы).
Следующим пунктом идёт место сохранения сертификата. Проще всего - в папке программы создайте папку SSL, и скопирeйте прямо из окна проводника путь (для вставки скопированного текста - нажмите правой кнопкой мыши в окне программы):


Далее соглашаемся ввести пароль от приватного ключа в консоли (2), придумываем и вводим пароль, отказываемся от сохранения (enter), и отказываемся от выполнения дополнительных скриптов (3):

Всё, осталось только дождаться завершения проверки и выпуска сертификата. Если всё правильно сделали - это максимум пара минут, и видим заветное "certificate ... created"!

А в созданной папке для сертификатов появилось 4 файла:

Нам отсюда обычно нужны только файлы сертификата (-crt) и ключа (-key).
Дальше - надо загрузить их на хостинг, и тут уже зависит от конкретного хостинга. Я покажу на примере ру-центра.
В панели управления хостингом выбираем "Сайты", потом ваш сайт, вкладку "Безопасность", при необходимости включаем "Защищенное HTTPS-соединение" и нажимаем на "Добавить/сменить сертификат".
Тут нам надо скормить полученный файлы хостеру. Выбираем напротив "сертификат" кнопку "загрузить файл", грузим файл с crt в названии, аналогично с приватным ключом, вводим под ним пароль, который мы задали ранее, и нажимаем на "Установить":

Поздравляю, сертификат установлен!

Поверить срок действия можно в разделе "безопасность" конкретного сайта:

Через без копеек 3 месяца надо будет повторить процесс, но win-acme сохранил данные (кроме паролей), и при запуске надо будет выбирать не "N: Create certificate", а "R: Run renewals".

текст:
Протестуйте против войны
Будьте смелыми, пусть вас услышат, покажите вашу поддержку украинскому народу.
Мы прекратили принимать платежи из России так как мы против агрессии со стороны российского правительства по отношению к Украине.
________________
У кого там сайты размещены? Какие мысли?