vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Тут при оченедном обсуждении мессенждеров [personal profile] vikarti_anantra задала вопрос: "А что сложно свой сервер поднять?".

Сложно. Для тех для кого адмнистрирование юникс-систем не является основной работой, поднять сервер и сконфигурировать на нем пяток нужных сервисов - занятие и правда не простое. Другой вопрос, что уже давно можно было бы, если бы существовал хоть какой консенсус на тему того, что на таком сервере должно быть, следать коробку "все в одном", настраивать которую было бы не сложнее, чем типичный Wi-Fi роутер. А с ними вроде народ в массе своей справляется. И чтобы можно было в течение нескольких минут накатить этот образ на виртуалку на любом VPS-хостинге.

Что собственно, нужно от точки присутствия в интернете? Предполагается что это может быть не только личная точка присутствия, но и семейная или небольшой группы единомышлинников, вроде мастерской группы LRPG.

  1. Сервер электронной почты на пару десятков аккаунтов. При этом чтобы почту с него принимали во всяких gmail-ах (а это, увы, moving target), и чтобы была какая-никакая защита от спама. graylisting+spamassassin вполне хватает по моему опыту.
  2. Веб-интерфейс к этой почте. А то вдруг придется доступаться из какого-нибдуь интернет кафе, где ничего кроме браузера не предусмотрено.
  3. Сервер федерированного мессенжера (matrix или jabber).
  4. К нему тоже web-интерфейс (element)
  5. turn-сервер, как совершенно необходимая вещь для голосовых и видеозвонокв через matrix/jabber
  6. CalDAV/CardDAV сервер
  7. Возможность выложить файл для последующего скачивания. Я в общем обхожусь для этого webdav. Хотя возможно web-based файл-менеджер не помешал бы. В принципе этого уже достаточно для того чтобы сделать сколь угодно навороченный статический web-сайт, благо локальных генераторов сайтов, запускаемых на ноутбуке/рабочей станции существует море. Поэтому пока вам не нужно на сайте комментирование, ничего более другого и не нужно.
  8. Фотогалерея. Она отдельно, потому что фотграфируют нынче в основном смартфонами и планшетами, следовательно фотографии должны попадать на сайт непосредственно с мобильного устройства, и минимально обрабатываться уже на сервере.
  9. Средства администрирования. Должны позволять завести нового юзера всего предыдущего, заблокировать/удалить старого, сменить пароль. Возможно стоит жестко требовать наличия единого пароля для всего перечисленного, а возможно и нет. Возможно, тот же инструмент должен менеджить authorized_keys для доступа по ssh. Тут, правда, стоит подумать о соотношении системных пользователей и пользователей веб-сервисов (по-моему не должны совпадать). Там же должна быть кнопочка для установки апдейтов.
  10. Автомат для обновления сертификатов Let's Encrypt
  11. DNS-сервер. Дело в том, для значительной части вышеприведенных сервисов нам понадобятся специальные (SRV, TXT) записи в DNS. Да, и электронной почты это тоже касается. Без TXT-записи _dmarc никто почту принимать с вашего домена не будет. Опять же openpgp-ключи так публиковать можно. Но в общем стоит исходить из того, что именно этот сервер будет первичным DNS вашего домена. Тогда все этои нетривилаьные DNS-записи можно будет автоматизировать.

Можно еще поставить туда прокси/VPN, если юрисдикция хостера не совпадает с юрисдикцией домашней машины, но мы пока этот вопрос рассматривать не будем. На худой конец можно ssh -D использовать.

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

Для решения перечисленных задач нужно

  1. dovecot (в дистрибутиве)
  2. postfix (в дистрибутиве)
  3. ciderwebmail (по-моему в Debian еще не попала версия, которую я год назад патчил на предмет русских имен папок )
  4. matrix-synapse (надо брать из бэкпортов, там он заметно новее)
  5. element-web (в дистрибутиве нет, но есть отдельный репозиторий с пакетами
  6. coturn (в дистрибутиве)
  7. radicale (в дистрибутиве)
  8. Какой-нибудь web-сервер чтобы все вышеперчисленные интерфейсы проксировать. nginx сойдет, но apache лучше (оба в дистрибутиве)
  9. acme-tiny (в дистрибутиве)
  10. bind9 (в дистрибутиве.)

Остальное надо писать, но его довольно немного. В основном скрипты для администрирования. Учитывая что почти у всех сервисов которые нам нужны, свои заморочки насчет хранения паролей. Насчет галерей и CMS я просто не очень в курсе что нынче бывает, и как его задеплоить так, чтобы не бояться взлома при отсутствии квалифицированного администрирования.

Деплоймент этой штуки выглядит так:

  1. Регистрируем домен.
  2. Покупаем VPS-ку
  3. Накатываем на VPS-ку образ системы (лично я всегда rsync-ом обходился, но возможны варианты вроде загрузочного ISO-образа)
  4. Заходим в эту VPS-ку по HTTP. Указываем домен и IP-адрес выданный хостером. Жмем кнопку "обновить сертификаты"
  5. Заходим туда по HTTPS, меняем пароли, загружаем ssh-ключи и проверяем соответветсвие списка включенных сервисов требуемому.
  6. Правим в настройках DNS регистратора адрес первичного DNS, указывая вот на этот сервер, и настраиваем вторичный DNS.
  7. Пинаем хостера чтобы разрешил слать и принимать почту с этой VPS-ки

Вместо п 2 и 3 можно поставить raspberry pi, и на нее накатить аналогичный образ. Правда перспективы запинывания домашнего провайдера, чтобы разрешил слать/получать почту мне кажутся несколько менее радужными. Зато порыться в вашем почтовом ящике без вашего ведома ни одна спецслужба не сможет - они будут вынуждены прийти к вам домой и предъявить ордер на обыск.

X-Post to LJ

Date: 2025-04-10 11:38 am (UTC)
jno: (Default)
From: [personal profile] jno
ну, фоссиль - да, но - нет.
это, по сути, гит такой странный :)
всяки вики там - случайный припёк.

а Обсидиан выглядит десктопным...
так-то и Жоплин есть - как приклад, который умеет и в вебдав и в дропбокс (внутри - маркдаун).

Date: 2025-04-10 11:55 am (UTC)
jno: (Default)
From: [personal profile] jno
ну, и Жоплин - тоже.

у него - просто файловый бэк, который, в том числе, может и синхронизироваться (штатно) через всякое серверное.

ЗЫ. оно, правда, не столько вики, сколько заметки, но смысл примерно тот же.
Edited Date: 2025-04-10 11:55 am (UTC)

Date: 2025-04-10 03:15 pm (UTC)
From: [personal profile] vikarti_anantra
У Joplin есть еще такая штука как Joplin Server - ускоряет синхронизацию серьезно если данных реально _много_ (ну и позволяет шарить заметки через Web например). их Joplin Cloud вроде как на нем сделан. Самый простой вариант настройки да - Docker.
Так то можно хоть Dropbox хоть вообще S3 в качестве хранилища...

Date: 2025-04-10 03:22 pm (UTC)
From: [personal profile] vikarti_anantra

У Obsidian (и Joplin и повально всех заметочников кроме старой версии Evernote) есть другая проблема.
Мобильный клиент у них на чем то React-подобном. Поскольку сами на Electron'е.
И разработчики (судя по тому что это массовая проблема - видимо в самом React'е что-то не так с этим) НЕ осилили нормальную фоновую синхронизацию на мобилках (к Joplin был патч но разработчику что-то там не понравилось). В результате если объем базы в гигабайтах и десятках гигабайт и десятки тысяч заметок (история, Web Clipper(в Joplin хороший), всякая автосинхронизация например с Readwise/Bookfusion) а мобильные устройства иногда меняются то с Joplin на мобилке это все не юзабельно а с Obsidian(и родным синк-сервисом) - можно попробовать раз прогнать синхронизацию руками не трогая аппарат - тогда последующие синки за относительно вменяемое время.

Ну или (с Obsidian) - тупо использовать Syncthing а не родной сервис, Syncthing в фоне вполне работает. Но вот только ситуация с почти-одновременными правками на нескольких устройствах отрабатывается не очень.

Date: 2025-04-10 12:47 pm (UTC)
From: [personal profile] fhunter
Obsidian по ощущениям страшно тормозной.
На телефоне он стартует несколько секунд, что для приложения "для заметок сейчас" - ИМХО, неприемлемо.
На desktop-е собственно тоже

Date: 2025-04-10 01:14 pm (UTC)
fau74: (Default)
From: [personal profile] fau74
А Обсидиан научился публикации страниц/статей/заметок не через эксклюзивно свой собственный сервис? Помнится, я когда искал - не нашел для этой задачи ничего селфхостного. Но это было относительно давно.

Date: 2025-04-10 03:16 pm (UTC)
From: [personal profile] vikarti_anantra
Нет насколько я знаю.
А вот Joplin кстати может - ставим куда нибудь Joplin Server и наслаждаемся.

Date: 2025-04-10 07:32 pm (UTC)
fau74: (Default)
From: [personal profile] fau74
Nyet.

Жоплин публикует не заметку, а снапшот заметки на момент публикации. Последующие изменения на публикацию не влияют. Только что проверил, у меня он как раз стоит. То есть поправил текст, иди перегенери ссылку и перераздай всем, кто ей пользуется.

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

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

June 2025

S M T W T F S
1 23 4 56 7
89 1011 12 13 14
15161718192021
22232425262728
2930     

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 15th, 2025 05:54 pm
Powered by Dreamwidth Studios