Обычно всё бывает замечательно и ничто не предвещает беды, пока кто-нибудь не теряет доступ к своим конфиденциальным и/или бизнес-данным, потому что доверил их хранение кому-то другому.
Не нужно быть специалистом по поиску информации, чтобы найти кучу историй о людях, по которым прокатились монструозные корпорации, исповедующие принципы в духе «don’t be evil».
Вот несколько примеров:
Для владения своими данными далеко недостаточно иметь резервные копии цифровой информации. Дело ещё и в контроле с конфиденциальностью. Дело в доверии. Не знаю, как вы, а я не особо доверяю многим сервисам в вопросе хранения моих данных (за редкими исключениями).
Так как эта статья о самостоятельном хостинге, я не буду проповедовать (хотя от этого сложно удержаться), что вам надо задуматься о переходе с WhatsApp на Signal, с Google Maps на OpenStreetMap, или что нужно прекратить пользоваться Instagram и Facebook. Вы создаёте там большой объём информации, и владельцы этих сервисов используют её не самым лучшим образом. Ну вот, я всё-таки начал проповедовать, простите.
Примечание: я не полностью избавился от социальных сетей. Я пользуюсь Twitter и LinkedIn. Всё, что у меня есть в Twitter, публично и неприватно, а функцией приватных сообщений я не пользуюсь. LinkedIn используется для общения по работе, и я постепенно начну от него отказываться, но бросить его сложно.
Пояснение: я понимаю, что большинство людей не является продвинутыми пользователями, и что не каждый хочет тратить время на настройку альтернатив вышеупомянутых сервисов, а также создавать стратегии резервного копирования, как я. Для этого действительно требуется время (в основном для настройки) и деньги. Если уж и брать самое важное из этого поста, то это вывод, что всегда нужно создавать резервные копии данных (да, даже если они дублируются в пяти дата-центрах Google). Если возникнут серьёзные проблемы, то адаптация к новым инструментам и процессам работы с ними может занять время, но, по крайней мере, у вас будут резервные копии. Сохраняйтесь чаще, сохраняйтесь заранее.
Я нарисовал простую диаграмму, чтобы показать, как приблизительно работает моя личная система. Понимаю, кто-нибудь скажет, что мой самостоятельный хостинг не является действительно самостоятельным. Для хостинга своих веб-приложений я использую Vultr*, а не находящийся у меня дома сервер. К сожалению, пока ситуация не позволяет мне реализовать это.
Итак, вот моя диаграмма. Ниже будет представлено подробное описание.
Я разделил диаграмму на четыре части, каждая часть представляет отдельное физическое размещение данных.
Самой активной частью является жёлтая, расположенная в облаке.
Я живу в Германии, поэтому логичнее всего было запустить мои инстансы в дата-центре Vultr* во Франкфурте, ведь до этого центра у меня самый низкий пинг.
На данный момент у меня в нём запущено шесть вычислительных инстансов. Типы облачных вычислительных инстансов показаны на изображении ниже. Они практически аналогичны продуктам DigitalOcean или AWS EC2.
Почему я выбрал Vultr*? Здесь у него довольно неплохая техподдержка, к тому же, я нашёл его ещё до того, как DigitalOcean стал большим и популярным, а AWS превратился в лидера рынка облачных вычислений. Несмотря на это, я бы не выбрал AWS, даже если бы пришлось выбирать сегодня. Оставлю всё как есть.
Разбивка по ценам выглядит так:
Всё в сумме стоит мне 55 долларов в месяц.
Nextcloud — это основная движущая сила моих повседневных потоков данных и манипуляций с ними. При добавлении приложений он становится очень мощным универсальным решением, служащим альтернативой популярных продуктов монстров из FAANG. После правильной настройки системы ей практически не требуется никакой поддержки.
Также я могу передавать потоковую музыку из Nextcloud в свой телефон при помощи Nextcloud music. В качестве клиента можно использовать любые приложения, совместимые с Ampache или Subsonic. Я выбрал Power Ampache. Впрочем, я не слушаю через стриминг особо много музыки. У меня всегда на телефоне 30-40 ГБ файлов MP3, которые время от времени заменяются.
Все данные из Nextcloud синхронизированы с Synology у меня дома через CloudSync. Серьёзным плюсом является красивая тёмная тема для графического веб-интерфейса:
Я разработчик, и больше, чем воздух и кофе, мне нужно управление версиями. Я выбрал git, и это удачно, потому что для него существует множество хостинг-решений. Выбор свёлся к GitLab или Gitea.
Для моих потребностей GitLab был слишком уж мощным, поэтому я выбрал Gitea. Он легковесный, простой в обновлении и просто работает. Его интерфейс чёток и прост в понимании, потому что UI похож на интерфейс GitHub; люди, с которыми я работаю, сказали, что не заметили разницы. С другой стороны, если вы захотите его настроить под себя, это может обернуться мучениями.
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. Если вы решите двинуться по этому пути, придётся пойти на компромиссы. Иногда всё происходит без проблем, но время от времени жутко бесит. Для меня игра стоила свеч. Я ценю свою свободу и конфиденциальность настолько, что мирюсь с возникающими время от времени проблемами глючного ПО.
Вот список часто используемых мной приложений, которые связаны с самостоятельным хостингом:
Как говорилось выше, на ноутбуке, как и на десктопе, установлена Ubuntu LTS. Для частичной синхронизации с NextCloud я использую официальный десктопный клиент. Для перечисления других связанных с самостоятельным хостингом инструментов, которые я использую как разработчик, потребовалось бы ещё две тысячи слов, поэтому пока я заниматься этим не буду.
Стоило ли это потраченного времени и усилий? Ответить на этот вопрос можете только вы сами.
Поиск альтернатив коммерческим облачным продуктам а также настройка всего, безусловно, заняли какое-то время. Я не фиксировал его поэтому не могу сказать, сколько точно, но определённо двузначное количество часов. Я бы сказал, что примерно 40 часов.
К счастью, после этого этапа всё работает (в основном) без моего вмешательства. У меня есть ежемесячное напоминание, что нужно проверять наличие обновлений и обновлять работающее у меня ПО. Я не заморачиваюсь с мелкими обновлениями — не надо чинить то, что не сломано.
Если я мотивировал хотя бы одного человека как минимум задуматься о возможности самостоятельного хостинга, то я буду счастлив. Напишите мне, если решитесь пойти на это!
Не нужно быть специалистом по поиску информации, чтобы найти кучу историй о людях, по которым прокатились монструозные корпорации, исповедующие принципы в духе «don’t be evil».
Вот несколько примеров:
- Как однажды мне на месяц заблокировали доступ к аккаунту Google
- Каково это — бессрочно быть заблокированным в Google
- Apple Card отключила мои аккаунты iCloud, App Store и Apple ID [перевод на Хабре]
- GitHub заблокировал всю компанию, потому что один её сотрудник находился в Иране
Как сохранить контроль над своими данными и инструментами
Для владения своими данными далеко недостаточно иметь резервные копии цифровой информации. Дело ещё и в контроле с конфиденциальностью. Дело в доверии. Не знаю, как вы, а я не особо доверяю многим сервисам в вопросе хранения моих данных (за редкими исключениями).
Так как эта статья о самостоятельном хостинге, я не буду проповедовать (хотя от этого сложно удержаться), что вам надо задуматься о переходе с 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 часов.
К счастью, после этого этапа всё работает (в основном) без моего вмешательства. У меня есть ежемесячное напоминание, что нужно проверять наличие обновлений и обновлять работающее у меня ПО. Я не заморачиваюсь с мелкими обновлениями — не надо чинить то, что не сломано.
Если я мотивировал хотя бы одного человека как минимум задуматься о возможности самостоятельного хостинга, то я буду счастлив. Напишите мне, если решитесь пойти на это!