Я пытаюсь установить Discourse, настроил свою базу данных, Redis и SMTP. Для PostgreSQL проблем с Unix-сокетом не возникло, но Redis, похоже, жалуется.
Настройки Redis:
sudo sed -i 's/^# unixsocket /unixsocket /' /etc/redis/redis.conf
sudo sed -i 's/^# unixsocketp.*/unixsocketperm 770/' /etc/redis/redis.conf
sudo sed -i 's/^# maxmemory <bytes>/maxmemory 1024mb/' /etc/redis/redis.conf
sudo sed -i 's/^# maxmemory-policy noeviction/maxmemory-policy allkeys-lru/' /etc/redis/redis.conf
sudo cat /etc/redis/redis.conf | grep "^maxmemory\|^unixsocket"
Если вы хотите установить Discourse для production, используйте официальную стандартную установку Discourse. Если вы хотите установить окружение для разработки, существуют темы для каждой ОС.
Только для уточнения: у меня всё полностью запущено и работает, но я был вынужден установить хост Redis как “localhost”, поскольку подключение к Redis через unix-сокет не работало.
Думаю, что установка или поддержка рабочей копии без использования Docker будет довольно сложной. Существует ряд тонкостей во взаимодействии между nginx и Discourse, которые будет трудно поддерживать без предоставленного ими Docker-контейнера, но, в принципе, всё возможно.
Это вряд ли изменится. Если текущий шаблон не поддерживает использование сокета, это означает, что CDCK не использует сокет Redis в своём хостинге или в поддерживаемой установке Docker.
Не уверен, какую проблему вы решаете, отказываясь от поддерживаемой конфигурации ./launcher и docker, но, скорее всего, вы столкнётесь с множеством других проблем.
Не уверен, что вы когда-либо использовали Proxmox, но на мой взгляд это фантастика! Я могу войти в веб-интерфейс и в один клик создать резервную копию, затем внести изменения, и если что-то пойдёт не так, просто выбрать резервную копию и нажать «Восстановить».
Кроме того, вы получаете значительно лучшую производительность от контейнера LXC по сравнению с образом Docker — здесь даже нет сравнения.
Я не говорю, что Docker плох, ведь, как вы правильно заметили, он делает настройку ОЧЕНЬ простой.
Скорее всего, для ваших задач он оказался отличным!
Я почти уверен, что такое сравнение уже проводилось, и что образов Docker работает в 100–1000 раз больше, чем LXC (который я когда-то использовал).
Я не говорю, что Proxmox плох, но если вы хотите, чтобы Discourse было легко настроить и поддерживать, используйте Docker. Для примера: если бы вы попросили помощи в канале Marketplace с бюджетом менее 1000 долларов, я бы не ответил.
Смысл этой ветки заключался в том, чтобы спросить о текущем статусе Unix-сокета Redis. Не в том, чтобы спорить о том, что лучше подходит для Discourse — LXC или Docker. Я лишь упомянул, почему не использую Docker, потому что, казалось, вам это может быть интересно. Для обычного пользователя Docker всегда будет выигрывать, потому что он прост. Это также причина, по которой долгое время так много приложений использовали MySQL вместо PostgreSQL. Но я абсолютно люблю PostgreSQL.
Пока я не столкнусь с какими-то катастрофическими проблемами, я точно буду оставаться на LXC, оно просто отлично работает! Также я полностью согласен: если вы думаете, что вам может понадобиться внешняя поддержка, то лучше придерживаться рекомендованных настроек по умолчанию. У меня самого 20 различных сервисов, каждый в своём собственном контейнере LXC, работающих на одном узле Proxmox, и все они работают отлично. И это всего лишь один узел в кластере Proxmox. Автоматическое резервное копирование, мониторинг, миграция между узлами кластера — всё это замечательные вещи
Я уже упоминал, что моя установка прошла гладко? Пока я в восторге от Discourse. За исключением необходимости использовать localhost для Redis вместо Unix-сокета, у меня не было никаких проблем. Постараюсь не забыть вернуться через несколько месяцев и сообщить, всё ли ещё так
Полагаю, это usermod -aG redis discourse или, в качестве альтернативы, unixsocketperm 777, чтобы у Unicorn были права на доступ к сокету. Также убедитесь, что каталог, в котором должен создаваться сокет, существует и принадлежит пользователю redis. Однако стандартный пакет redis-server, основанный на systemd-сервисе в Ubuntu, гарантирует это.