Pull to refresh

К чёрту всё, сделаю свой сервер

Reading time7 min
Views16K
Original author: Marko Zivanovic
Обычно всё бывает замечательно и ничто не предвещает беды, пока кто-нибудь не теряет доступ к своим конфиденциальным и/или бизнес-данным, потому что доверил их хранение кому-то другому.

Не нужно быть специалистом по поиску информации, чтобы найти кучу историй о людях, по которым прокатились монструозные корпорации, исповедующие принципы в духе «don’t be evil».

Вот несколько примеров:


Как сохранить контроль над своими данными и инструментами


Для владения своими данными далеко недостаточно иметь резервные копии цифровой информации. Дело ещё и в контроле с конфиденциальностью. Дело в доверии. Не знаю, как вы, а я не особо доверяю многим сервисам в вопросе хранения моих данных (за редкими исключениями).

Так как эта статья о самостоятельном хостинге, я не буду проповедовать (хотя от этого сложно удержаться), что вам надо задуматься о переходе с WhatsApp на Signal, с Google Maps на OpenStreetMap, или что нужно прекратить пользоваться Instagram и Facebook. Вы создаёте там большой объём информации, и владельцы этих сервисов используют её не самым лучшим образом. Ну вот, я всё-таки начал проповедовать, простите.

Примечание: я не полностью избавился от социальных сетей. Я пользуюсь Twitter и LinkedIn. Всё, что у меня есть в Twitter, публично и неприватно, а функцией приватных сообщений я не пользуюсь. LinkedIn используется для общения по работе, и я постепенно начну от него отказываться, но бросить его сложно.

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

Какую систему я создал?


Я нарисовал простую диаграмму, чтобы показать, как приблизительно работает моя личная система. Понимаю, кто-нибудь скажет, что мой самостоятельный хостинг не является действительно самостоятельным. Для хостинга своих веб-приложений я использую Vultr*, а не находящийся у меня дома сервер. К сожалению, пока ситуация не позволяет мне реализовать это.

Итак, вот моя диаграмма. Ниже будет представлено подробное описание.


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

Самой активной частью является жёлтая, расположенная в облаке.

Vultr


Я живу в Германии, поэтому логичнее всего было запустить мои инстансы в дата-центре Vultr* во Франкфурте, ведь до этого центра у меня самый низкий пинг.

На данный момент у меня в нём запущено шесть вычислительных инстансов. Типы облачных вычислительных инстансов показаны на изображении ниже. Они практически аналогичны продуктам DigitalOcean или AWS EC2.

Почему я выбрал Vultr*? Здесь у него довольно неплохая техподдержка, к тому же, я нашёл его ещё до того, как DigitalOcean стал большим и популярным, а AWS превратился в лидера рынка облачных вычислений. Несмотря на это, я бы не выбрал AWS, даже если бы пришлось выбирать сегодня. Оставлю всё как есть.


Разбивка по ценам выглядит так:

  • 1 x 10 долларов/месяц VPS + 1 x 5 $/мес хранилище для объектов — Nextcloud
  • 1 x 10 $/мес VPS — Gitea
  • 1 x 5 $/мес VPS — Monica CRM / Kanboard
  • 1 x 5 $/мес VPS — различные инструменты разработки + аналитика (Plausible)
  • 2 x 10 $/мес VPS — несколько веб-проектов, которые ведём мы с друзьями

Всё в сумме стоит мне 55 долларов в месяц.

Nextcloud


Nextcloud — это основная движущая сила моих повседневных потоков данных и манипуляций с ними. При добавлении приложений он становится очень мощным универсальным решением, служащим альтернативой популярных продуктов монстров из FAANG. После правильной настройки системы ей практически не требуется никакой поддержки.

  • Tasks — это альтернатива Todoist или Any.do, которыми я пользовался раньше.
  • Notes — альтернатива Google Keep. Не обладает такой полнотой функций, как Evernote или OneNote, которые я тоже когда-то пробовал, но меня вполне устраивает.
  • Calendar — это альтернатива Google Calendar, которым я пользовался ранее.
  • Contacts — это альтернатива Google/Samsung Contacts, которыми я пользовался ранее.

Также я могу передавать потоковую музыку из Nextcloud в свой телефон при помощи Nextcloud music. В качестве клиента можно использовать любые приложения, совместимые с Ampache или Subsonic. Я выбрал Power Ampache. Впрочем, я не слушаю через стриминг особо много музыки. У меня всегда на телефоне 30-40 ГБ файлов MP3, которые время от времени заменяются.

Все данные из Nextcloud синхронизированы с Synology у меня дома через CloudSync. Серьёзным плюсом является красивая тёмная тема для графического веб-интерфейса:


Gitea


Я разработчик, и больше, чем воздух и кофе, мне нужно управление версиями. Я выбрал git, и это удачно, потому что для него существует множество хостинг-решений. Выбор свёлся к GitLab или Gitea.

Для моих потребностей GitLab был слишком уж мощным, поэтому я выбрал Gitea. Он легковесный, простой в обновлении и просто работает. Его интерфейс чёток и прост в понимании, потому что UI похож на интерфейс GitHub; люди, с которыми я работаю, сказали, что не заметили разницы. С другой стороны, если вы захотите его настроить под себя, это может обернуться мучениями.

Monica CRM / Kanboard


Monica — это персональная CRM. Некоторые считают меня странным, потому что я пользуюсь персональной CRM. Мне же она кажется потрясающей. После встречи с людьми я часто записываю информацию о них, которую бы в противном случае забыл. Иногда я делаю заметки о длинных телефонных звонках, если знаю, что информация из разговора пригодится в будущем. Дни рождения коллег и друзей, идеи подарков для них и тому подобное — всё это сохраняется в CRM.

Я говорил о Monica в своём посте о том, что не стоит игнорировать письма с отказами, в нём есть ещё один пример того, как мне помогает эта CRM.

Kanboard — это свободное и open-source-ПО для Kanban-управления проектами. Я использую его для управления своими второстепенными проектами, но также отслеживаю в нём читаемые книги, выполняю финансовое планирование, веду трекинг процесса обучения и т.п. Kanboard написан на PHP, легко настраивается и поддерживает работу нескольких пользователей. Обычно, когда я начинаю совместные проекты, то сразу же завожу для человека аккаунт в Gitea и Kanboard.

Инструменты разработки и аналитика


Мой выбор для аналитики — Plausible, я использую его на нескольких своих веб-сайтах. Он легковесный, в open-source и, что самое важное, уважает вашу конфиденциальность. Я написал инструкцию о том, как самостоятельно установить его на машину с Ubuntu. Бонусом является подход разработчиков к ведению бизнеса, который мне очень нравится. У них есть отличный блог, в котором можно об этом прочитать.

Инструменты разработки, о которых я говорил выше — это, по сути, набор скриптов, который у меня со временем накопился. Кодировщики/декодировщики текста, палитры цветов, сборщики макетов WYSIWYG, редактор Swagger и т.д. Если я чем-то часто пользуюсь и это легко реализовать самостоятельно, то я так и делаю.

Что у меня дома


Десктопный PC и NAS — это часть моей схемы, обозначенная как «Home».

Десктоп не представляет собой ничего особенного. Я не играю в игры и не занимаюсь работой, требующей высокой вычислительной мощности. У меня i5 восьмого поколения с интегрированной графикой, SSD на 1 ТБ и 16 ГБ ОЗУ. В качестве ОС используется Ubuntu, последняя версия LTS. Она установлена и на десктопе, и на ноутбуке.

Всё, за исключением ОС и приложений синхронизируется в реальном времени с Synology при помощи Synology Drive Client.

Synology NAS, который я использую — это модель DS220j. Не самая быстрая, но, опять-таки, для меня подходит. У меня есть два диска Western Digital Red по 2 ТБ каждый.

Каждый последний выходной месяца я вручную выполняю резервное копирование всех данных на диски Blu-ray. И не один, а два раза. Одна копия отправляется в надёжное место хранения в доме, другая оказывается в совершенно другом месте.

Резервные копии в другом месте


Это моя защита от ситуации «всё поломалось, сгорело или украдено». Я не полностью доволен физической защитой, организованной дома, поэтому одна из проблем — это возможность кражи дисков и резервных копий. Здесь я ничего не могу поделать, кроме как переместиться в другую локацию, где было бы проще работать над совершенствованием физической защиты (но надеюсь, это ненадолго).

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

Ноутбук и смартфон


Когда ты хостишься самостоятельно, то это, естественно, отражается и в приложениях, которые ты выбираешь для портативных устройств. Раньше экран моего телефона в основном был заполнен приложениями Google — Calendar, Keep, Maps, Drive. Ещё были Dropbox, Spotify/Deezer. Теперь всё иначе.

Я отлучил свой телефон от Google с помощью /e/ и F-Droid. Если вы решите двинуться по этому пути, придётся пойти на компромиссы. Иногда всё происходит без проблем, но время от времени жутко бесит. Для меня игра стоила свеч. Я ценю свою свободу и конфиденциальность настолько, что мирюсь с возникающими время от времени проблемами глючного ПО.

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

  • OsmAnd~ — глобальный просмотр карт и навигация по ним для офлайн- и онлайн-карт OSM
  • Nextcloud Notes — клиентское приложение для Nextcloud Notes
  • PowerAmpache — позволяет стримить музыку из моего облака
  • PulseMusic — моё основное музыкальное приложение, которое я использую для прослушивания музыкальной коллекции, хранящейся на телефоне (примерно 30-40 ГБ, список время от времени меняется)
  • Nextcloud — это клиент синхронизации для телефона и диспетчер файлов
  • K-9 Mail — чрезвычайно уродливо выглядящий клиент электронной почты, и в то же самое время лучший, по моему мнению, клиент для Android

Как говорилось выше, на ноутбуке, как и на десктопе, установлена Ubuntu LTS. Для частичной синхронизации с NextCloud я использую официальный десктопный клиент. Для перечисления других связанных с самостоятельным хостингом инструментов, которые я использую как разработчик, потребовалось бы ещё две тысячи слов, поэтому пока я заниматься этим не буду.

Вывод


Стоило ли это потраченного времени и усилий? Ответить на этот вопрос можете только вы сами.

Поиск альтернатив коммерческим облачным продуктам а также настройка всего, безусловно, заняли какое-то время. Я не фиксировал его поэтому не могу сказать, сколько точно, но определённо двузначное количество часов. Я бы сказал, что примерно 40 часов.

К счастью, после этого этапа всё работает (в основном) без моего вмешательства. У меня есть ежемесячное напоминание, что нужно проверять наличие обновлений и обновлять работающее у меня ПО. Я не заморачиваюсь с мелкими обновлениями — не надо чинить то, что не сломано.

Если я мотивировал хотя бы одного человека как минимум задуматься о возможности самостоятельного хостинга, то я буду счастлив. Напишите мне, если решитесь пойти на это!
Tags:
Hubs:
Total votes 12: ↑10 and ↓2+17
Comments43

Articles

Information

Website
moskva.beeline.ru
Registered
Founded
Employees
1,001–5,000 employees
Location
Россия
Representative
Bee_brightside