Installing Redmine from Ubuntu package

Tags:

Устанавливаем Redmine из пакетов в Ubuntu. Версия в пакетах не самая свежая, зато никаких заморочек с настройкой руби и интеграцией с БД.

В качестве БД будем использовать Postgresql, на фронтенде Nginx, все совершенно стандартно.

Устанавливаем все нужные пакеты:

sudo apt install redmine redmine-psql postgresql nginx thin

В вопросах инсталятора redmine выбираем бэкэнд psql, в следующем диалоге на запрос автоматической конфигурации БД говорим yes, оставляем поле пароля пустым. Пароль будет сгенерирован автоматически и данные зальются в схему redmine_default.

Redmine установится в /usr/share/redmine, его конфигурация будет лежать в /etc/redmine но сейчас там нет ничего интересного для нас.

Проверим что все работает корректно. Идем в /usr/share/redmine и запускаем Redmine с помощью webrick

 ruby script/rails server webrick -e production

Демон запустится на 0.0.0.0:3000 заходим, проверяем что все работает, гасим демона.

Теперь настроим thin для запуска Redmine. Создадим конфиг файл:

sudo thin config --config /etc/thin1.9.1/redmine.yml --chdir YOUR_REDMINE_DIRECTORY     --environment production --address 0.0.0.0 --port 3030     --daemonize --log /var/log/thin/redmine.log --pid /var/run/thin/redmine.pid     --user www-data --group www-data --servers 1 --prefix YOUR_PREFIX

YOUR_REDMINE_DIRECTORY - путь к директории куда установлен Redmine, в нашем случае /usr/share/redmine. YOUR_PREFIX - префикс в адресе по которому будет доступен Redmine, для установки в http://your_redmine.domain/ пишем /. Если хотим чтобы доступ был через http://your_redmine.domain/redmine пишем redmine.

Команда для установки в корень по умолчанию будет выглядеть как-то так:

sudo thin config --config /etc/thin1.9.1/redmine.yml --chdir /usr/share/redmine --environment production --address 0.0.0.0 --port 3030 --daemonize --log /var/log/thin/redmine.log --pid /var/run/thin/redmine.pid --user www-data --group www-data --servers 1 --prefix /

Теперь настроим Nginx.

Создадим файл /etc/nginx/sites-available/redmine со следующим содержимым:

upstream redmine_thin_servers {
    server 0.0.0.0:3030;
}

server {

  listen   80; ## listen for ipv4

  server_name your_redmine.domain;
  server_name_in_redirect off;

  proxy_set_header        Host $http_host;
  proxy_set_header        X-Real-IP $remote_addr;
  proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header        X-Forwarded-Proto $scheme;
  proxy_redirect off;

  location / {
    root   /usr/share/redmine/public;

    error_page 404  404.html;
    error_page 500 502 503 504  500.html;

    try_files $uri/index.html $uri.html $uri @redmine_thin_servers;
  }

  location @redmine_thin_servers {
    proxy_pass http://redmine_thin_servers;
  }
}

Создадим на него ссылку в /etc/nginx/sites-enabled

cd /etc/nginx/sites-enabled
sudo ln -s ../sites-available/redmine

Запустим thin и nginx

sudo service thin start
sudo service nginx start

После этого redmine должен быть доступен на 80м порту вашего домена. Если там 502 или еще чего - значит конфигурация отличается и надо смотреть какую ошибку пишут в логах thin и redmine.

Теперь закроем все это дело firewall. Так как никаких творческих решений нам не нужно, а нужно чтобы работало - то будем использовать ufw

Оставим открытыми только ssh и http(80) порты

sudo apt install ufw ufw allow ssh ufw allow http ufw enable

Это установит ufw, добавит ssh и http в список разрешенных портов, заблокирует все остальные и добавит правил firewall в автозагрузку при старте системы.

Enjoy.

DBD::Pg install

Tags:

Markdown content goes here.

Если при установке DBD::Pg через CPAN у вас начинают спрашивать какие-то странные слова про номер версии и расположение директорий Postgresql - проверьте что у вас установлен пакет postgresql-server-dev-X.X (postgresql-server-dev-all).

После его установки проблема магическим (на самом деле нет) образом исчезает.

ubuntu 15.04 и BCM43142

Tags:

После апгрейда Ubuntu 14.04 на Kubuntu 15.04 выяснилось что Wi-Fi на моем ноутбуке работать не хочет от слова "совсем". И если в 14.04 после подключения к интернету он сам предлагал доустановить нужные драйвера - то в 15.04 магия не срабатывала и Wi-Fi не работал.

Симптомы: * в NetworkManager нет даже пункта про беспроводные подключения. * # lshw -c Network говорит что-то вроде:

*-network UNCLAIMED     
   description: Network controller
   product: BCM43142 802.11b/g/n
   vendor: Broadcom Corporation
   physical id: 0
   bus info: pci@0000:02:00.0
   version: 01
   width: 64 bits
   clock: 33MHz
   capabilities: bus_master cap_list
   configuration: latency=0
   resources: memory:90500000-90507fff

Как можно заметить - устройство карте не назначено. Значит надо доустановить пакет с прошивкой для карты. С 14.04 эта карта поддерживается в официальных драйверах, так что просто устанавливаем пакет руками:

sudo apt-get install bcmwl-kernel-source

Перезагружемся и видим в NetworkManager раздел с беспроводными сетями.

Ubuntu 14.04 + Gearman

Tags:

В базовой установке Gearman в ubuntu 14.04 есть баг - инит-скрипт написан не правильно и в результате Gearman не реагирует наличие конфиг файла и запускается с настойками по умолчанию. Причем, на одном из серверов у меня проблемма после обновления усугубилась и он перестал запускаться даже с настройками по умолчанию.

Есть два варианта решения проблемы:

  1. Пропатчить инит-скрипт, как это сделать можно прочитать здесь
  2. Запускать его из под supervisord.

У меня все приложения крутятся под supervisor, так что я пошел этим путем.

Минимальный конфиг файл для супервизора:

[program:gearmand]
command=/usr/sbin/gearmand -L 127.0.0.1 --user=gearman --log-file=stderr
autorestart=true
autostart=true

-L 127.0.0.1 указано, во первых, что-бы gearman не биндился на внешние интерфейсы (там все закрыто фаирволом, но все же). Во вторых - если на машине включен ipv6, но не настроен, то gearman будет пытаться забиндиться и на ipv6 и падать.

З.Ы. инит для supervisord в 14.04 тоже кривой, но это уже другая история.

Ubuntu LC_ALL = (unset)

Tags:

При установке Ubuntu (в основном на VDS) периодический вылезает ошибка:

LANGUAGE = (unset)
LC_ALL = (unset)

Для исправления делаем:

# echo LC_ALL="ru_RU.UTF-8" >> /etc/environment
# echo LC_CTYPE="ru_RU.UTF-8" >> /etc/environment
# locale-gen ru_RU.UTF-8

И перелегониваемся.

Яндекс.Метрика