Настройка домашнего сервера

Вводные

Для удобства управления файлами и каталогами рекомендую установить файловый менеджер MC командой sudo apt-get install mc

Каталоги с данными буду создавать в домашем каталоге пользователя в подкаталоге share

Настройка проводной сети UBUNTU

По-умолчанию сеть в Ubuntu настраивается используя DHCP, мне же было необходимо, чтобы я точно знал какой ip адрес используется серврером.

Файл кофигурации расположен по пути: /etc/network/interfaces

Для статического ip адреса дописываю в нем:

iface eth0 inet static
address 192.168.1.3
netmask 255.255.255.0
gateway 192.168.1.1
auto eth0

Если нужно получитать динамический ip, то настройки должны быть таким:

iface eth0 inet dhcp
auto eth0 

Настройка SSH

SSH устанавлен вместе с ОС и в целях обеспечения дополнительной безопасности его необходимо немного сконфигурировать.

Конфигурационный файл расположен по пути: /etc/ssh/sshd_config

И после внесенных изменений перезапуская сервис SSH командой sudo service ssh restart

Настройка NGINX

Web-server nginx устанавливается командой sudo apt-get install nginx

Основной файл конфигурации расположен по пути /etc/nginx/nginx.conf

Немного настрою nginx:

Перезапускаю сервис sudo service nginx restart для проверки настроек.

В каталоге /etc/nginx есть 2 подкаталога sites-available и sites-enabled в которых хранятся настройки виртуальных серверов. “Включение” нужного сервера осуществляется путем создания символической ссылки на файл из каталога sites-available в каталог sites-enabled.

Например:

создаю каталог, в котором будут храниться файлы будующего сайта

sudo mkdir /var/www/artchudinov 

меняю права доступа к каталогу

sudo chown artem /var/www/artchudinov

создаю файл конфигурации виртуального сервера

sudo touch /etc/nginx/sites-available/artchudinov.ru

создаю символическую ссылку для активации виртуальнго сервера

sudo ln -s /etc/nginx/sites-available/artchudinov.ru /etc/nginx/sites-enabled/

открываю файл конфигурации

sudo nano /etc/nginx/sites-available/artchudinov.ru

добавляю в него:

server {
        listen       80;
        № server_name artchudinov.ru www.artchudinov.ru;
        # rewrite      ^ http://artchudinov.ru$request_uri permanent;

        index                     index.html;
        root                      /var/www/artchudinov/;
        autoindex                 off;

        location ~* \.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
        access_log              off;
        expires                 30d;
        add_header              Cache-Control  "public";
        }

        location ~* \.(xml|txt|html|htm|js|css)$ {
        access_log              off;
        expires                 3d;
        add_header              Cache-Control  "private, must-revalidate";
        }
    }

удаляю файл конфигурации default сервера

sudo rm /etc/nginx/sites-enabled/default

перезагружаю конфигурацию nginx

sudo service nginx reload

Настройка miniDLNA

Устанавливаю Transmission командой sudo apt-get install minidlna.

Основной конфигурационный файл расположен по пути /etc/minidlna.conf.

Настройки простые:

Настройка SAMBA

Настройка AFP

Настройка TRANSMISSION

Устанавливаю Transmission командой sudo apt-get install transmission-daemon.

Основной конфигурационный файл расположен по пути /etc/transmission-daemon/settings.json.

!NB Прежде чем вносить изменения в файл settings.json необходимо остановить сервис transmission-daemon командной sudo service transmission-daemon stop иначе все внесенные изменения сотруться после перезагрузки службы.

Настройки простые и я меняю только несколько параметров:

После внесенных изменений запуская сервис командой sudo service transmission-daemon start.

Проверить работу Transmission можно двумя способами: - зайти в браузере по адресу http://server-ip-address:9091/ и ввести корректные имя пользователя и пароль - установить и настроить приложение Transmission remote GUI

Настройка MOTION

Устанавливаю Motion командой sudo apt-get install motion

Основной конфигурационный файл расположен по пути /etc/motion/motion.conf

Файл кофигурации, отвечающий за запуск Motion в качестве сервиса расположе по пути /etc/default/motion

Настраивать Motion я буду для использования совместно с моей ip-камерой, которая имеет ip адрес 192.168.1.2 и умеет отдавать MJPEG поток, который будет перехватывать Motion, анализировать движение в кадре и если оно происходит - совершать захват видео.

В файле motion.conf я изменил следующие параметры:

rotate 180
# переворачиваю картинку на 180 градусов, потому что ip камера смонтирована вверх ногами

width 640
height 480
# изменяю размер захватываемого изображения

framerate 5
# устанавливаю количество кадров в секунде при захвате

netcam_url http://192.168.1.2/videostream.cgi?usr=USERNAME&pwd=PASSWORD
# адрес ip камеры с указанием потока, а так же имени пользователя и пароля

netcam_tolerant_check on
# этот параметр, как я понял позволяет Motion игнорировать некоторые косяки в прошивках камер и работать с ними в нормальном режиме

output_normal best
# параметр best отвечает за то, что Motion сам определит лучший кадр и сделает из него snapshot

ffmpeg_cap_new on
# основной параметр отвечающий за захват видео

ffmpeg_video_codec mpeg4
# устанавливаю кодек mpeg4

target_dir /home/artem/share/camera-video/
# путь (абсолютный) к каталогу в который будут сохраняться снапшоты и видео

snapshot_filename %Y-%m-%d-/snapshot/%H%M%S
jpeg_filename %Y-%m-%d/jpeg/%H%M%S-%q
movie_filename %Y-%m-%d/movie/%H-%M-%S-v
# немного правлю правила именования сохраняемых файлов

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