Когда-то давно, в 2011 году, я пришёл на хабр со статьёй «Debian Server для новичка», которая представляла из себя систематизацию различной информации и представление её в актуальном и работоспособном виде. Данная статья так же позиционируется как справочный материал для новичка или обычного пользователя Linux, этакий мой небольшой вклад в популяризацию Linux. По сути, всё о чём я буду писать – это некая развёрнутая инструкция по установке и настройке домашнего облачного сервиса Nextcloud с нуля.



Созданная виртуальная машина с Nextcloud отработала с марта 2017 года практически без сбоев и осенью 2017 года я задумался о статье. У меня осталось много записей и комментариев в части решения различных проблем и нюансов, я долго вынашивал идею всё же привести всё это в порядок и опубликовать и новогодние праздники 2018 года мне в этом помогли. Надо сказать, что статья запоздала как минимум на полгода, но, думаю, что установить и настроить актуальные версии Debian и Nextcloud по аналогии с нижеприведённой информацией не составит большого труда, хотя, как известно, дьявол кроется как раз в деталях.
Ниже читатель познакомится с предпосылками создания своего облака и получит работающие инструкции по стартовой настройке Debian, лёгкому тюнингу среды Gnome3, компиляции, сборке и установке пакетов для Debian, установке и настройке сервисов Apache, SQL и PHP и начала работы с ними, генерации и подключения самоподписного сертификата SSL для виртуального хоста Apache, установка и настройка Nextcloud. Я не стал оформлять эту статью как технический мануал или туториал с длинной вереницей команд, а решил попробовать написать статью как рассказ, но без ущерба технической составляющей. Опытный пользователи Linux вряд ли тут найдут что-то новое, но, возможно, смогут прочитать его как тематическую историю в минутку своего свободного времени.

Предисловие


Наша история начинается в конце 2015 года, когда мной был приобретён новый смартфон. Motorola Droid Turbo оказался производительным аппаратом, с большой памятью, QHD дисплеем с приемлемой (относительно небольшой) диагональю, ёмким аккумулятором и практически чистым Android’ом на борту, что в моих глазах всегда являлось несомненным плюсом. Отделка задней панели баллистическим нейлоном придаёт ему своеобразный стиль, выделяясь на фоне аппаратов эпохи «обмылки». Давно привычные жесты включения фонарика потряхиванием или камеры быстрым помахиванием телефона уже вроде бы никого и не удивляют, но Motorola останется навсегда в истории как первопроходец с безупречной реализацией подобного функционала – к жестам я привык настолько, что даже не знаю где находится значок камеры. В общем, вы уже поняли, что телефон мне нравится всё хорошо и я от него в восторге до сих пор, кроме одного досадного момента – вся память телефона распаяна внутри него. И чтобы потерять наши драгоценные 64 гигабайта (пользовательских данных на самом деле меньше) нужно просто споткнуться так, чтобы телефон выпал из рук и «удачно» упал. Хотя в какой-то день он может просто не включиться. Или когда-то его могут банально украсть.

Все пользователи компьютерной техники делятся на две группы – те, кто делают бекапы и те, кто ещё их не делают. Я из второй группы перешёл в первую лет пятнадцать назад. По крайней мере на первом телефоне резервирование было продумано следующим образом. Все приложения с их настройками ежедневно автоматически бекапились через Titanium Backup на SD карту. На телефон устанавливалась SambaDroid, которая настраивалась таким образом, чтобы расшаривать SD карту телефона только при подключении его к сети с определённым SSID. Как нетрудно догадаться это происходило только при подключении телефона к Wi-Fi маршрутизатору у меня дома. На компьютере периодически запускался BitTorrent Sync, который на всякий случай запирался через файрвол в локальной сети (разрешалась активность только по локальным адресам), и при обнаружении расшаренной карты синхронизировал её содержимое с папкой на компьютере. В случае поломки телефона можно было просто вытащить SD карту с данными. В любом другом случае – всегда есть бэкап карты памяти на компьютере. Если в этот же день сломается компьютер — есть холодный бекап диска с данными, который находится в другом доме. Сон спокойный, здоровый, крепкий, поэтому руки от напряжения не трясутся и, как следствие, телефон никогда и не падает.

А что делать с этим новым телефоном? Приложения так же бекапятся через Titanium Backup. Но SD карта не вытаскивается, а SambaDroid, отлично работавшая на Android 2.х на линейке 4/5/6 ведёт себя нестабильно, да и от BitTorrent Sync я через некоторое время отказался. Наверняка можно было бы найти аналогичное решение, но я загорелся универсальным облачным решением. Казалось бы, вывод напрашивается сам собой и очевиден – есть Google Drive и куча приложений, которые синхронизируют указанные данные с облаком, обеспечивая (в теории) End-to-End шифрование. Но… с таким подходом эта статья бы никогда не была написана! Тем более автор в 2018 году даже не собирается подключать гуглоаккаунт к телефону и уж тем более не думает о синхронизации фотографий своих котиков с какими-то другими сервисами. Да, у меня паранойя, недоверие к корпорациям, желание держать личные данные под своим контролем, желание независимости от работы другого сервиса (который может и закрыться) и я не хочу платить за куцые гигабайты в облаке.

Пока я думал о том, что нужно что-то делать в плане исправления этой ситуации пролетел весь 2016 год и я понял, что вот, прямо сейчас надо уже реально озаботиться этой проблемой. Хотелось всё сделать красиво, с прицелом на будущее, на универсальность, надежность и, разумеется, автоматизм. Так как я активно не приемлю слишком уж большое и навязчивое участие корпораций в личной жизни решено было попробовать сделать своё персональное облако в локальной сети, используя ownCloud.
Цитата из википедии:
ownCloud — это Свободное и открытое веб-приложение для синхронизации данных, общего доступа к файлам и удалённого хранения документов в «облаке». ownCloud написан на языках программирования PHP и JavaScript. ownCloud работает с базами данных SQLite, MariaDB, MySQL, Oracle Database и PostgreSQL, и работает на серверах под управлением Linux, в том числе на Raspberry Pi. Разработку ownCloud начал один из разработчиков KDE, Франк Карлитшек, в январе 2010 г. Он стремился создать бесплатную альтернативу коммерческим облачным сервисам хранения данных. В отличие от них, ownCloud можно установить на собственный сервер без дополнительных затрат.

Возможности:
— Хранение файлов с использованием обычных структур каталогов, или с использованием WebDAV
— Криптография
— Синхронизация между клиентами под управлением Windows (Windows XP, Vista, 7 и 8), Mac OS X (10.6 и новее) или Linux
— Календарь (также как CalDAV)
— Планировщик задач
— Адресная книга (также как CardDAV)
— Потоковое мультимедиа (используется Ampache)
— Администрирование пользователей и групп (с использованием OpenID или LDAP)
— Расшаривание контента между группами или используя публичные URL
— Онлайн текстовый редактор с подсветкой синтаксиса и сворачиванием. Анонсирована поддержка онлайн-версий редакторов LibreOffice.
— Закладки
— Механизм сокращения URL
— Фотогалерея
— Просмотрщик PDF (используется PDF.js)
— Просмотрщик ODF файлов (.odt, .odp, .ods)
— Модуль логирования

По функционалу мы видим полноценное облако, которое может крутиться на… да вон том компьютере! При сильной паранойе активность сервиса можно запереть внутри локальной сети через файрвол.

У меня уже были сохранены некоторые ссылки на материал по установке и настройки ownCloud, но когда я начал разбираться с ним, то обнаружил, что в 2016 году главный разработчик ownCloud (Франк Карличек) покинул компанию и объявил о создании форка — Nextcloud. В отличии от ownCloud, который платен при некоторых условиях, Nextcloud бесплатен полностью. Учитывая то, что работу над новым форком возглавил имеющий большой опыт подобной разработки Франк Карличек, я решил выбрать Nextcloud. В начале 2017 года актуальной версией Nextcloud была версия 11.0.2 и именно её установка и настройка будет описана ниже. На январь 2018 года актуальной версией является 12.0.4, но, я думаю, никаких принципиальных отличий в установке и настройке не должно быть.

Постановка задачи


Поначалу всё казалось простым и я даже предположить не мог, что посидеть «пару выходных» растянется аж на два, два с половиной интересных месяца. Нередко красноглазил по ночам и задавал умные и не очень вопросы на тематических форумах. Мой совет новичкам – если что-то хотите сделать, не пугайтесь объёму работы и делайте. Главное, чтобы получилось хоть что-то в первый раз. Путь даже оно работает криво. Можно делать не понимая, как обезьяна, копировать длинную череду команд нередко доходя до места где что-то сбоит и просто ничего не получается. Может быть была допущена ошибка ранее, может опечатка в команде, может автор в своём мануале пропустил строку кода/команды, может быть в примере релиз ОС другой и на вашем работать не будет, может быть библиотеки не те – да мало ли что ещё может быть! Но когда что-то получится ты удивлённо скажешь: «Черт подери – заработало!» Это стоит того и будет началом появления азарта, стимулом разбираться дальше и уверенность в том, что получится: ведь если получилось один раз, то значит получится и в следующий, надо просто разбираться.

Итак, нужно определиться что именно нужно делать. Имеется пара телефонов, которые нужно подключить к облаку. Кроме этого хотелось бы еще подключить к нему и компьютер – объём дискового пространства в облаке теперь зависит только от моего желания и мне не нужно постоянно доплачивать за 10/20/30 гигабайт – я могу просто купить жесткий диск на пару терабайт. Центральным звеном в домашней сети является Wi-Fi маршрутизатор – именно к нему подключены телефоны через Wi-Fi, компьютер и ещё один компьютер, который выполняет роль нечаянного «сервера»: изначально компьютер собирался под задачи несостоявшегося HTPC, а сейчас на нём просто работает софт виртуализации от VMWare. VMWare Workstation имеет свой собственный виртуальный маршрутизатор, к которому пока подключена только одна виртуальная машина с FTP сервером. Решение напрашивается само собой – создать и подключить ещё одну виртуальную машину, через сетевые настройки VMWare пробросив на неё порты 80 (HTTP) или 443 (HTTPS). Решение модульное и элегантное в том плане, что абсолютно аппаратно-независимое и единожды настроенную виртуальную машину можно будет легко развернуть где угодно, на любом обычном компьютере.



Создание и базовая настройка виртуальной машины


Nextcloud – совсем грубо говоря, это сайт, который крутится на веб-сервере. В качестве веб-сервера я выбрал LAMP = Linux + Apache + MySQL + PHP. Это значит, что всё это нужно установить и настроить. А чтобы оно правильно работало надо понимать что устанавливать и как настраивать.

С Linux я сталкиваюсь только периодически и это больше ещё одно хобби, чем необходимость. Но раз уж я замахнулся на универсальность, то на этот раз я решил разбить всю работу на три логических части, каждая из которых должна заканчиваться вполне определённым и универсальным результатом. Для начала необходимо сделать себе удобную среду для работы, то есть не просто установить систему на виртуальную машину, но настроить её под себя, приблизить её к тому виду, который мне удобнее и привычнее. Второй этап – доведение этой машины до функционирующего веб-сервера. Третий – превращение веб-сервера в облако.

В качестве операционной системы был выбран Debian 8.7.1. В VMWare Workstation создаётся виртуальная машина, которой отводится один двухпотоковый процессор, два гигабайта оперативной памяти и жёсткий диск объёмом 120 гигабайт. Режим работы сетевой карты – NAT. Скачиваем ISO образ операционной системы для архитектуры amd64. После скачивания подключаем образ к виртуальному приводу и запускаем виртуальную машину. Установка операционной системы довольно банальна и её можно выполнить даже без мурзилок, которых предостаточно в интернете. В качестве графического окружения был выбран Gnome3, а также установлены «Standard system utilities» и «Print Server». Жесткий диск в процессе установки разбит на два раздела — общий раздел (/, /home, /usr и т.д.) и swap. Нового созданного пользователя обозвали нейтрально «user».

Сразу после установки пользователю показывается пустой рабочий стол. Файловый менеджер наутилус — типа проводника Windows, никогда не понимал почему им пользуются. Меню приложений не блещет своим структурированием. NumLock после загрузки всегда отключен. От текстовых редакторов nano или vi начинающий линуксоид вообще впадает в уныние. Надо всё это как-то исправлять. Нижеприведённое описание системы «под себя». О вкусах не спорят: кому-то понравится, кому-то – нет. Замечу, что без преодоления трудностей профессионального роста не будет и чем больше копаешься в чём-то — тем больше понимаешь как это работает.

Настройка в панели управления


Я привык переключать раскладку клавиатуры кнопками CTRL и SHIFT. Возможно в этом виноват драйвер клавиатуры со времён MS DOS 6.22, но что ж теперь поделать – привычка вторая натура. Кроме того, я не хочу, чтобы виртуальная машина засыпала или гасила экран и не хочу после каждого запуска вводить пароль.

Элементарная начальная настройка среды производится в панели управления:

— Язык и регион > Добавить русский язык в источники ввода.
— Клавиатура > Комбинации клавиш > Ввод > Клавиша модификатор переключает источники ввода > Назначить кнопку переключения языков Ctrl+Shift (если невозможно установить такое сочетание — пропустить этот шаг, настроим в разделе «Настройка gnome», который приведён ниже).
— Клавиатура > Комбинации клавиш > Дополнительные комбинации > Добавить новый пункт с названием «Terminal» и командой «x-terminal-emulator». После добавления щёлкаем по надписи «Выключен» и вводим комбинацию двух клавиш: Super (Win) + t.
— Мониторы > Установить разрешение экрана под текущий дисплей, так как по умолчанию установлено некомфортное 800х600.
— Электропитание > ОТКЛ выключение дисплея.
— Подробности > Съёмный носитель > ОТКЛ автозапуск при подключении носителей.
— Пользователи > ВКЛ автоматический доступ для пользователя user.

Настройка BASH


Следующий важный этап – настройка терминала. С командной строкой работать придётся очень много. Мало того, некоторые, если не многие, вещи в Linux проще и удобнее делать через терминал и именно поэтому в предыдущем пункте мы сделали комбинацию клавиш для быстрого вызова терминала. Bash — это интерпретатор командного языка, выполняющий команды, поступающие с клавиатуры. Bash умеет подсвечивать разным цветом файлы, папки, сетевые папки, файлы с различными правами доступа. С подстветкой становится ориентироваться несколько проще и веселее.

Важное замечание. Строки команд, начинающиеся с символа $, будут обозначать, что команду необходимо ввести от лица пользователя – нужно просто открыть терминал (ищется в меню приложений или просто нажимается комбинация Super+T) и ввести команду. Если строка начинается с символа # — это значит, что ввод должен производиться от имени суперпользователя (root). Для этого нужно открыть терминал пользователя и ввести команду:

$ su

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

Итак, как мне «раскрасить» терминал? Для этого выполняем команду:

$ nano /home/user/.bashrc

По этой команде в текстовом редакторе nano откроется конфигурационный файл bashrc. В этом файле нужной найти и раскомментировать строку «force_color_prompt=yes». Ниже ищем строку следующего вида (ниже условия if [ "$color_prompt" = yes ]; then):
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

и копируем её (Shift+Ctrl+C), после чего редактор можно закрыть (Ctrl+X) с сохранением сделанных изменений.

Далее выполняем следующую команду:

# nano /root/.bashrc

Опять открывается конфигурационный файл, но уже для суперпользователя. Ниже закомментированной строки "#PS1=..." нужно вставить (Shift+Ctrl+V) скопированную строку с небольшим изменением (с заменой числа 32 на 31):
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

Это небольшое изменение изменит цвет приглашения Bash: пользовательское приглашение user@debian будет подсвечиваться зелёным, а суперпользовательское root@debian – красным. Это поможет от нечаянной путаницы, когда по ошибке вводятся команды не от того пользователя от которого нужно.

Настройка репозиториев


Репозиторий – это база пакетов, доступных для установки. Важно поддерживать эту базу в актуальном состоянии. Сразу после установки у нас прописан базовый репозиторий и ссылка на установочный DVD, который содержит какое-то количество популярных пакетов. Для работы с репозиториями можно использовать программу synaptic с графическим интерфейсом. Но гораздо проще отредактировать список вручную через обычный текстовой редактор:

# nano /etc/apt/sources.list

Проверяем список репозиториев на соответствие нижеприведённому списку.
# security updates
deb security.debian.org jessie/updates main contrib non-free
deb-src security.debian.org jessie/updates main contrib non-free
# jessie-updates
deb httpredir.debian.org/debian jessie-updates main contrib non-free
deb-src httpredir.debian.org/debian jessie-updates main contrib non-free
# binary and source packages
deb httpredir.debian.org/debian jessie main contrib non-free
deb-src httpredir.debian.org/debian jessie main contrib non-free
# backports
# deb httpredir.debian.org/debian jessie-backports main contrib non-free
# deb-src httpredir.debian.org/debian jessie-backports main contrib non-free

Репозиторий Backports прописан, но отключен. Строго говоря его можно и не прописывать, но если прописать сразу, то потом отключать или подключать этот репозиторий будет проще – нужно будет просто закомментировать или раскомментировать требуемые строчки. Зачем он вообще нужен? Дело в том, что наряду с тем, что Debian является одним из самых стабильных дистрибутивов, как следствие, ПО в его репозиториях зачастую прилично устаревшее. Подключение Backports – это простой способ получить гораздо более новую версию какого-то софта (даже новее, чем в ветке testing Debian). Но нужно быть очень внимательным, так как при установке какой-то программы по зависимостям могут подтянуться другие пакеты, которые могут сломать систему из-за несовместимости старого софта с новыми пакетами. Backports – этот тот случай, когда вы точно знаете зачем это делаете.

После любого изменения содержимого файла sources.list нужно обязательно выполнить синхронизацию с репозиториями:

# apt-get update

Обязательно смотрим лог – никаких ошибок быть не должно. В противном случае нужно проверить корректность содержимого файла sources.list.

Обновление операционной системы



Чтобы узнать текущую версию системы выполним команду:

$ cat /etc/debian_version

Если система установлена из образа по вышеприведённой ссылке, то её номер будет 8.7.

Для обновления системы существует две команды: apt-get upgrade и apt-get dist-upgrade. Первая команда только обновит установленные пакеты, но при этом могут возникнуть конфликты и неудовлетворённые зависимости. Это некое безопасное обновление, при котором старые программы точно не портятся, но новые могут и не заработать. Вторая же команда удалит старые пакеты, разрешит конфликты, доставит необходимые зависимости и доставит новые пакеты, если требуется. При возникновении конфликтов она будет пытаться произвести обновление наиболее важных пакетов за счет менее важных. Этакое более умное обновление.

Обновим систему:

# apt-get dist-upgrade

После обновления системы проверяем лог на предмет ошибок, проверяем новую текущую версию системы и убеждаемся, что всё в рамках ожидаемого.

Установка программного обеспечения


Устанавливаем следующие пакеты:

# apt-get install mc
# apt-get install gksu
# apt-get install numlockx
# apt-get install libcanberra-gtk-module
# apt-get install libqt5webkit5 libqt5svg5 coreutils
# apt-get install doublecmd-gtk
# apt-get install galculator
# apt-get install samba smbclient cifs-utils
# apt-get install jigdo-file
# apt-get install audacious
# apt-get install smplayer
# apt-get install firefox-esr
# apt-get install gufw


mc – это старый добрый Notron Commander только в Linux. Забываем про команды ls, cd, mkdir, rm и прочие.

gksu – позволит запускать программы с графическим интерфейсом от имени суперпользователя, а так же добавит в меню приложений терминал суперпользователя, который можно будет запускать сразу, а не выполнять последовательность «терминал > $ su > ввод пароля суперпользователя».

numlockx – поможет решить проблему с режимом numlock после загрузки системы, так как по умолчанию он всегда выключен.

Пакеты libcanberra-gtk-module, libqt5webkit5 libqt5svg5 coreutils нужны для функционирования двухпанельного менеджера Double Commander и текстового редактора Notepadqq, который мы установим чуть позже.

doublecmd-gtk – аналог Total Commander для Linux.

galculator – просто калькулятор, который умеет переключаться в инженерный вид.

samba smbclient cifs-utils – пакеты, необходимые для обеспечения работы в сети: расшаривание папок, доступ к расшаренным папкам, монтирование сетевых ресурсов.

jigdo-file – это инструмент для закачки и обновления образов CD, DVD, BD. например, если вы когда-то захотите создать полностью автономный и полный официальный репозиторий из Blu-Ray дисков дистрибутива Debian, то именно этот «торрент» нам понадобится, так как диски Blu-Ray распространяются в первую очередь через jigdo.

audacious – аудиоплеер.

smplayer – видеоплеер.

firefox-esr – браузер не нуждающийся в представлении.

gufw – графическая оболочка для утилиты настройки брандмауэра.

Вышеприведённые программы будут несколько дополнять базовый пакет ПО установленной системы, который немал, если при установке системы был выбран стандартный набор утилит. Функции MS Office выполняет пакет программ LibreOffice, есть графический редактор GIMP, Transmission для торрентов, почтовый клиент Evolution, просмотрщик фотографий, простой текстовой редактор gedit и прочее ПО. Аудио и видеоплееры в стандартном наборе тоже есть, но audacious и smplayer будут являться более функциональными и удобными программами.

Настройка программного обеспечения


numlockx решает проблему с режимом numlock после загрузки системы. После установки пакета нужно просто выполнить команду:
# numlockx on
И теперь после загрузки операционной системы NumLock будет всегда включен.

Файловый менеджер Double Commander я привёл к более минималистическому виду произведя следующие действия в его меню:

— Вид > Краткий (выполнить на обоих панелях)
— Настройки > Параметры > Инструменты > Терминал > В разделе «Команда запуска терминала» прописать «x-terminal-emulator», поле параметров оставить пустым
— Настройки > Параметры > Шрифты > все шрифты =11, шрифт «Просмотрщика (режим „Книга“)» =14
— Настройки > Параметры > Просмотр файлов > Выбрать метод сортировки «Естественная сортировка: алфавитно-числовая»
— Настройки > Параметры > Просмотр файлов > Установить опцию «Показывать системные и скрытые файлы»
— Настройки > Параметры > Вид окна > Установить только след. опции:
— Главное меню
— Панель инструментов + Плоские
— Кнопка списка дисков
— Строка свободного места на диске + Кратко
— Текущий путь
— Заголовки табуляторов
— Строка состояния
— Кнопки функциональных клавиш
— Плоский интерфейс
— Панель фоновых операций

Видеоплеер SMPlayer так же был немного настроен через меню пункт «Настройки»:

— Панели > ОТКЛ Главная панель и Языковая панель
— Настройки > Основные: ОТКЛ «Запоминать настройки всех файлов»
— Настройки > Внешний вид: Автоматически изменять размер — ВКЛ «Когда это нужно»
— Настройки > Внешний вид: ОТКЛ «Запоминать позицию и размер»
— Настройки > Обновления: ОТКЛ «Проверить обновления» и ОТКЛ «Открыть страницу с информацией после обновления»

Из минимальных расширений для firefox стоит упомянуть Ghostery, с помощью которого можно блокировать многие следящие жучки и рекламу, и friGate, расширяющий возможности браузера по настройке прокси (прокси нам, конечно ни к чему, но вдруг понадобится – так он всегда тут, под рукой). Отмечу, что стоит ставить friGate версии 2.2.1.1 (из архивов), так как ветка 3.х демонстрирует полную победу «эффективного» менеджмента и маркетинга над здравым смыслом.

Что делать, если в браузере нужен Flash Player? На странице загрузки Adobe Flash Player выбираем .tar.gz для Linux и скачиваем предложенный файл. Из архива необходимо «достать» libflashplayer.so и скопировать его в /home/user/.mozilla/plugins. Все действия можно сделать через Double Commander – он умеет заходить в архивы как папки. Ниже я привёл как это сделать через команды в терминале:

$ cd /home/user/Загрузки
$ mkdir flash
$ tar xzf flash_player_npapi_linux.x86_64.tar.gz -C flash
$ mv flash/libflashplayer.so /home/user/.mozilla/plugins


После перезапуска firefox и разрешения работы плагина флеш на сайтах должен заработать. Но в некоторых случаях это может быть недостаточно или задачи требуют запуска флеш локально из какого-то приложения. Тогда можно установить Flash Player в систему, хотя мне кажется это далеко не лучшая идея (собственно, как и разрешать flash в барузере). Для этого нам нужно сконвертировать полученный архив в DEB пакет, который потом установить с помощью менеджера пакетов. На самом деле это просто.

Устанавливаем конвертер и компилятор:

# apt-get install alien make gcc

Преобразовываем полученный архив:

# alien --to-deb flash_player_npapi_linux.x86_64.tar.gz

Смотрим какой пакет у нас получился, допустим flash-player-npapi-linux.x86-64_1-2_all.deb, и устанавливаем его:

# dpkg --install flash-player-npapi-linux.x86-64_1-2_all.deb

Настройка gnome


Пришла пора внести изменения в соответствии со своими представлениями как должно выглядеть графическое окружение. Ведь одно из самых замечательных свойств в Linux – тут много чего можно настроить даже не являясь программистом в полном понимании этого смысла.

С установкой Double Commander можно сказать: «Долой командную строку!» Но как быть если нужно побродить в папках от суперпользователя? Каждый раз заходить в терминал суперпользователя и набирать doublecmd? Можно проще! Создадим ярлык в меню для Double Commander, который будет запускать его в сессии суперпользователя:

# doublecmd /usr/share/applications

Нужно сделать копию файла doublecmd.desktop и назвать новый файл doublecmd-root.desktop. Можно использовать привычное сочетание клавиш Ctrl+C и Ctrl+V. Далее нужно открыть файл doublecmd-root.desktop (нажимаем привычную кнопку F4 для запуска встроенного в файловый менеджер текстового редактора) и скорректировать соответствующие строки к следующему виду:
Name=Double Commander [root]
Exec=gksu doublecmd

Затем закрываем все открытые программы и идём в меню «Приложения», в котором удаляем все значки из избранного (левая вертикальная колонка с иконками программ). После чего из меню программ добаляем (перетаскиваем) в избранное значки в следедующем порядке: Double Commander > Nautilus > Firefox > Терминал > Galculator > Терминал суперпользователя > Double Commander [root].

После этих изменений перезагружаем графическую оболочку: нажимаем Alt+F2 и вводим команду r.

Теперь приступим к тонкой настройке оболочки. Для этого существует специальный софт:

$ gnome-tweal-tool

Замечу, что запускать команду нужно только от имени пользователя, а не суперпользователя. Я некоторое время запускал её из-под суперпользователя и не мог понять почему у меня вообще ничего не отрабатывает. После запуска перед нами появляется меню, в котором я сделал следующие изменения:

— Верхняя панель > ВКЛ отображение даты
— Окна > ВКЛ разворачивание и сворачивание окон
— Рабочий стол > ВКЛ отображения значков на рабочем столе, ОТКЛ системных значков (Сеть, Корзина и т.д.)
— Расширения > ВКЛ расширения Applications Menu, Window List
— Электропитание > выключение компьютера при нажатии на кнопку питания (выбрать Shutdown)
Если на этапе «Настройка в панели управления» не получилось настроить переключение раскладки клавиатуры по Ctrl+Shift, то вносим изменение с следующий пункт:
— Клавиатура > в пункте «Переключение на другую раскладку» выбрать сочетание клавиш Ctrl+Shift

В пункте «Расширения» внизу есть ссылка на загрузку дополнительных расширений, при переходе по которой в браузере откроется сайт с дополнениями для gnome. Через поиск находим расширения Lock keys и Remove dropdown arrows и устанавливаем их. Будьте внимательны – перед поиском расширений необходимо в браузере разрешить временное выполнение плагина Gnome Shell Integration. При открытии странички с расширением вверху есть движковая кнопочка ON/OFF, по нажатию на которую будет предложено добавить расширение. Первое расширение добавит индикатор кнопок Caps Lock и Num Lock (у меня беспроводная клавиатура, на которой соответствующих индикаторов нет). Второе – уберёт ниспадающие стрелочки у меню приложений, окон на панели задач и языковой панели.

В результате такого нехитрого тюнинга графическое окружение у нас приблизилось к более практическому виду.

Как было:



Как стало (разрешение экрана, к сожалению, уже другое):



Отличий может быть и немного на первый взгляд по сравнению с тем количеством действий, которое было сделано, но зато теперь понятно, как и что делать и куда лезть в случае необходимости. Как как-то говорил наш лектор по квантовой физике: «От вас не требуется прямо сейчас понимать квантовую физику, от вас требуется понимать в какой раздел учебника открыть, когда в этом наступит необходимость».

Настройка сети


Для сетевого взаимодействия с своей виртуальной машиной создадим папку и всем дадим права на её изменение:

$ mkdir /home/user/Net
$ chmod 777 /home/user/Net


Теперь нужно эту папку расширить. В Linux это делает очень просто:

# mcedit /etc/samba/smb.conf

В конце открывшегося файла нужно добавить новую секцию, прописав следующий текст:
[Net]
path = /home/user/Net/
comment = Net Folder
readonly = no
guest ok = yes

После всех этих действий необходимо перезапустить сервис для применения нового конфига:

# service smbd restart

Никаких перезагрузок операционной системы не требуется — с хостовой операционной системы сразу станет доступна сетевая папка Net внутри гостевой виртуальной машины.

Настройка файрвола


Для настройки брандмауэра в Linux имеется мощное средство IPTables. К сожалению сходу в него сразу не погрузиться, тем более новичку, а если периодически не пользоваться, то утратить опыт настройки довольно легко. Поэтому будем использовать специальную утилиту для конфигурирования правил iptables — Uncomplicated Firewall (ufw). Правила можно создавать через графический интерфейс, для чего было установлен gufw, но, как я говорил, начально это проще сделать через терминал.

Включаем логгирование файрвола и настраиваем его правила – запрещаем все входящие:

# ufw logging on
# ufw default deny incoming
# ufw default allow outgoing


Разрешаем соединение для SSH:

# ufw allow 22/tcp

Разрешаем соединения для сетевого окружения и доступа к файлам:

# ufw allow 138/udp
# ufw allow 139/udp
# ufw allow 139/tcp
# ufw allow 445/tcp


Разрешаем соединения для функционирования почтовых клиентов:

# ufw allow 25
# ufw allow 465
# ufw allow 110
# ufw allow 143
# ufw allow 993


Включаем защиту:

# ufw enable

Установка vmware-tools 10.0.10 в среде Debian 8.7.1


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

Так уж получилось, что моя история работы с vmware-tools в Linux – это история периодического хождения по граблям. Одно время я даже использовал open-vm-tools, но там были проблемы с монтированием папки hgfs (именно в ней появляются подключенные папки в разделе Shared Folders настроек виртуальной машины).

В начале 2017 года у меня была VMWare Workstation 12.1.0, которая комплектовалась набором ISO образов vmware-tools версии 10.0.10. Как ни странно, всё прошло неожиданно гладко, тихо и спокойно.

Для установки vmware-tools нам нужно будет установить компилятор и, обязательно, headers, без которых нормально vmware-tools, по крайней мере раньше, не собирались в принципе:

# apt-get install linux-headers-$(uname -r) make gcc

На этот раз я не стал помещать образ linux.iso в виртуальный привод, а скопировал его в сетевую папку (сеть-то теперь у нас уже есть) после чего примонтировал его в Linux и распаковал нужный архив:

# mkdir /mnt/iso
# chmod 777 /mnt/iso
# mount -o loop -t iso9660 /home/user/Net/linux.iso /mnt/iso
$ tar xvzf /mnt/iso/VMwareTools-10.0.10-4301679.tar.gz -C /home/user/Net


Теперь можно запустить скрипт, который скомпилирует и установит vmware-tools:

$ cd /home/user/Net/vmware-tools-distrib
# ./vmware-install.pl


На первый вопрос скрипта нужно ответить утвердительно, на все последующие вопросы — отвечать значениями по умолчанию (просто нажимать везде Enter). В процессе компиляции могут появляться предупреждения, но никаких ошибок быть не должно.

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

# umount /mnt/iso
$ rm -rf /home/user/Net/vmware-tools-distrib
$ rm /home/user/Net/linux.iso
# reboot


После перезагрузки стоит «сходить» и проверить наличие папки /mnt/ngfs – если она существует, то установка прошла корректно. Кроме этого, должно начать нормально работать масштабирование разрешения внутри виртуальной системы под размер окна VMWare и включиться совместный буфер обмена.

Сборка, установка и настройка notepadqq


Я давно привык к связке Total Commander + Notepad++ и, естественно, искал альтернативу в Linux. Роль Total Commander неплохо заменяет Double Commander, хотя полностью Total заменить нечем. Нашёлся и аналог Notepad++, который называется Notepadqq, который так же полностью не заменяет Notepad++, однако лучше встроенного редактора Double Commander или того же nano. По крайней мере подсветка синтаксиса в Notepadqq есть и она нормально работает.

Внезапно появилась только одна проблема – в репозиториях пакета не было. Совместимый deb пакет для установки я нашёл, но версия была неактуальная и софт откровенно и безбожно глючил. Вариантов не было – надо было самому собирать пакет из доступных исходников.
После скачивания архива с исходным кодом внутри обнаружился файл README.md, в котором была найдена инструкция по сборке и установке пакета с помощью утилиты make. Однако мне хотелось иметь полноценный пакет, который я бы мог установить и безболезненно удалить, чего в принципе невозможно, установив его через make install. Вообще, на Хабре есть хорошая статья на эту тему. Поэтому я собирал пакет через checkinstall.

Сначала нужно установить пакеты, необходимые для работы:

# apt-get install git qt5-qmake checkinstall
# apt-get install libqt5webkit5 libqt5svg5 coreutils
# apt-get install libqt5webkit5-dev libqt5svg5-dev qttools5-dev-tools
# apt-get install libcanberra-gtk-module


Скачиваем исходный код (на начало 2017 года актуальной версией была 1.0.1) и запускаем сессию fakeroot:

$ git clone github.com/notepadqq/notepadqq.git
$ cd notepadqq
$ fakeroot


Fakeroot запускает программы в особом окружении, которое эмулирует сессию супер-пользователя. Повышенные права могут потребоваться для работы утилиты make.

Теперь нужно сконфигурировать окружение для проекта в зависимости от архитектуры процессора (в моём случае – первый вариант, x86_64):

$ ./configure --prefix /usr --qmake /usr/lib/x86_64-linux-gnu/qt5/bin/qmake

или

$ ./configure --prefix /usr --qmake /usr/lib/i386-linux-gnu/qt5/bin/qmake

или

$ ./configure --prefix /usr --qmake /usr/lib/arm-linux-gnueabihf/qt5/bin/qmake

И компилируем программу, наблюдая за происходящей магией в терминале:

$ make

После успешной компиляции можно собрать пакет с заполнением информации о нём:

$ checkinstall -D --install=no

Если запустить checkinstall без директивы «--install=no», то собранный пакет автоматически установится в систему, а файл пакета будет сразу удалён. Меня это категорически не устраивало, так как для сборки я использую отдельную виртуальную машину (не стоит замусоривать целевую машину различными компиляторами, IDE и прочим софтом, который там никогда использоваться не будет) и в результате мне нужно было получить нормальный DEB пакет, который я могу перенести на нужную виртуальную машину и там установить. Директива «--install=no» нужна для того, чтобы только создать пакет и не устанавливать его.

В процессе сборки нам будет задан вопрос об описании пакета. Я написал следующее: «Notepadqq 1.0.1 amd64 build 20170326». После ввода описания, я бы рекомендовал заполнить поле Maintainer (сборщик пакета, его сопроводитель) – нажать кнопку 0 (ноль) и ввести свой ник или хоть что-то, но не оставлять его пустым.

После сборки пакета выходим из сессии fakeroot:

$ exit

Если всё прошло успешно и без ошибок, то у нас в рабочей папке появился файл вида notepadqq_20170326-1_amd64.deb. Теперь его можно установить, используя нормальный менеджер пакетов:

# dpkg –i notepadqq_20170326-1_amd64.deb

Запускаем Double Commander и подключаем notepadqq в качестве редактора по умолчанию:
Настройка > Редактор > Включить опцию «Использовать внешнюю программу», в качестве пути прописать: notepadqq

Собранная мной версия 1.0.1 зарекомендовала себя очень хорошо и я с ней отработал целый год. Теперь мы умеем правильно собирать пакеты из исходников – это совсем несложно!

Сборка и установка Double Commander


В установленном Double Commander было несколько неприятностей. Он глючил при работе с сетевыми папками и редактировании длинным имён файлов. Кроме этого иногда он криво закрывался из-под суперпользователя. Из репозитория изначально была установлена версия 0.5.х, в то время как на сайте проекта была доступна 0.7.8, которая этими проблемами уже не болела. Попытка получить DEB пакет вывела на ресурс launchpad.net/ubuntu, где предлагалось скачать несколько собранных пакетов версии 0.6.х и установить их в какой-то комбинации. Зачем несколько пакетов? Да и версия совсем не новая. Попытка необдуманно поставить новую версию из Backports привела к падению системы, починить не удалось и я просто удалил виртуальную машину, подтянув заботливо сохранённый резервный файл образа жесткого диска.

Однако какие проблемы могут тут быть, если есть исходный код? Я же теперь могу скомпилировать и собрать пакет самостоятельно! Сначала шло всё как обычно. Получение исходников, разбирательство что там и где и попытки их как-то скомпилировать, не понимая логики своих действий. Потом я всё же сподобился почитать документацию из которой следовало, что для компиляции никакой make не поможет – нужна полноценная IDE, в которой и разрабатывается проект. Ну… а почему бы не поставить IDE? И я резво пошёл по граблям, не предполагая, что этой займет с неделю.

Для работы нам нужно установить уже знакомые пакеты:

# apt-get install make gcc checkinstall subversion

Для нормальной установки IDE (Lazarus) необходимо доставить следующие пакеты:

# apt-get install libdbus-1-dev libglib2.0-dev libncurses5-dev libx11-dev libgtk2.0-dev libcanberra-gtk-module

Очень важное замечание: на странице разработки вики проекта приведён перечень необходимых пакетов, в котором прописан пакет libgtk-2.0-dev, которого на самом деле не существует – вместо него нужно ставить libgtk2.0-dev (без дефиса!).

Теперь нам надо установить саму IDE. Lazarus – это открытая среда разработки программного обеспечения на языке Object Pascal для компилятора Free Pascal. То есть помимо IDE надо ещё и компилятор поставить. Сначала я бодро нашёл и скачал нужные файлы, разумеется последней версии, установил их и долго не мог понять причину почему проект упорно не компилируется. Конечно, учитывая, что я делал всё в первый раз на софте, который до этого в глаза не видел, я допускал феерические ошибки и алогичные действия. Но правда оказалась горька – в совокупности с проблемой лишнего дефиса в libgtk-2.0-dev оказалось, что для Double Commander 0.7.8 рекомендовано использование lazarus 1.6.2, а не 1.6.4, которую я установил.

Для установки среды разработки нужно открыть сайт проекта Lazarus и выбрать Lazarus Linux amd64 DEB или Lazarus Linux i386 DEB в зависимости от архитектуры процессора. После этого выбираем версию IDE (для Double Commander 0.7.8 — 1.6.2) и скачиваем пакеты lazarus-project, fpc, fpc-src.

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

# dpkg -i fpc_3.0.0-151205_amd64.deb
# dpkg -i fpc-src_3.0.0-151205_amd64.deb
# dpkg -i lazarus-project_1.6.2-1_amd64.deb


После установки запускаем среду разработки, проигнорировав предупреждение о недоступности отладчика:

$ startlazarus

В настройках «Сервис» выбираем пересборку (перекомпиляцию) lazarus (по профилю Normal IDE). IDE должна нормально пересобраться — иначе с ней работать дальше нельзя и надо разбираться почему никогда не было, но вот, случилось опять. Бывали случаи, что проще было взять новую виртуальную машину и сделать всё заново, так как в процессе установки/удаления lazarus где-то что-то не устанавливалось или не удалялось и система необратимо замусоривалась.

После всех разрешенных вопросов с IDE получаем исходный код. Можно получить исходный код с svn (релиза 0.7):

$ svn co svn.code.sf.net/p/doublecmd/code/branches/0.7 doublecmd

Можно получить исходный код текущего проекта с svn:

$ svn co svn.code.sf.net/p/doublecmd/code/trunk doublecmd

Можно просто скачать исходный код с сайта проекта и распаковать файл:

$ tar xzf doublecmd-0.7.8-src.tar.gz

Допустим мы получили папку с исходным кодом и она находится по пути /home/user/work/doublecmd.

Далее нужно скомпилировать проект. Запускаем IDE в сессии fakeroot:

$ fakeroot
$ startlazarus


В соответствии с файлом doublecmd\doc\INSTALL.txt (для актуальной версии уточнить пакеты на странице разработки проекта в разделе «Building from source») нужно подключить или скомпилировать пакеты к lazarus, а после подключения последнего пакета пересобрать lazarus. Делается это следующим образом: следуем в меню Package > Open package file (.lpk) > Выбираем требуемый файл и открываем его > В открывшемся новом окне нажимаем кнопку «Use» после чего выбираем «Install», если пункт «Install» недоступен, то просто нажимаем на кнопку «Compile». Все компоненты находятся в папке components исходного кода. Нам нужно подключить следующие компоненты:
— chsdet/chsdet.lpk
— CmdLine/cmdbox.lpk
— multithreadprocs/multithreadprocslaz.lpk
— dcpcrypt/dcpcrypt.lpk
— doublecmd/doublecmd_common.lpk
— KASToolBar/kascomp.lpk
— gifanim/pkg_gifanim.lpk
— viewer/viewerpackage.lpk

После подключения последнего компонента нужно утвердительно ответить на вопрос о пересборке IDE либо самостоятельно запустить пересборку через меню «Сервис».

Если пересборка успешно завершилась, то можно попробовать откомпилировать проект, открыв через Lazarus файл doublecmd/src/doublecmd.lpi и запустив компиляцию (кнопка F9). После успешной компиляции (в процессе могут показываться предупреждения, но ничего страшного – главное, чтобы фатальных ошибок не было) должен отрыться Double Commander. Если этого не произошло то, с высокой долей вероятности, в процессе компиляции возникла ошибка и надо разбираться что с ней делать и как жить дальше. Можно попытаться решить проблему логически, но при отсутствии опыта шансов, конечно, очень мало. Поэтому нежно забираем текст ошибки в буфер обмена и идём с ней прямо в неведомые дали интернета.
После успешной компиляции проекта закрываем IDE.

Итак, мы получили в папке с исходным кодом бинарный файл doublecmd, который запускается. Всё хорошо, но… а как сделать нормальный пакет? Вот тут нам поможет папочка install. Если вдумчиво понаблюдать за кодом файла create_packages.sh, само название которого сильно обнадёживает, то можно сделать далеко идущие выводы о том, что нам нужно в части параметров, которые нужно прописывать при запуске скрипта. По применению этого скрипта возможно даже есть какая-то документация, но мне хватило логического осмысления кода. Одна просто запуск на исполнение этого файла мне ничего не давал так как процесс постоянно сбоил и останавливался на ошибках, как правило, отсутствия нужных путей. Для успешной сборки пакета нужно немного подправить скрипт create_packages.sh.

Ищем в коде строку и комментируем или удаляем её:
svn export ../ $BUILD_DC_TMP_DIR

Ниже прописываем:
cp -vR /home/user/work/doublecmd/ $BUILD_DC_TMP_DIR

Ищем в коде строку и комментируем или удаляем её:
linux/update-revision.sh ../ $BUILD_DC_TMP_DIR

Если код получен с svn, то эти два изменения можно и не делать, но при скачивании кода отдельным архивом без этих правок сделать пакет не получалось.
Далее ищем строку и опять комментируем/удаляем:
export MAINTAINER=«Alexander Koblov <Alexx2000@mail.ru>»

Вместо неё прописываем себя:
export MAINTAINER=«Vlastelin Mira»

Далее ищем строку и снова комментируем/удаляем:
checkinstall -D --default --pkgname=doublecmd --pkgversion=$DC_VER --pkgarch=$DEB_ARCH --pkgrelease=1.$lcl --pkglicense=GPL --pkggroup=contrib/misc --requires=libx11-6 --nodoc --pakdir=$PACK_DIR $BUILD_DC_TMP_DIR/install/linux/install.sh

Ниже прописываем то же самое, но с небольшим изменением, которое позволит после сборки пакета автоматически не устанавливать его в систему и сохранит собранный пакет:
checkinstall -D --install=no --default --pkgname=doublecmd --pkgversion=$DC_VER --pkgarch=$DEB_ARCH --pkgrelease=1.$lcl --pkglicense=GPL --pkggroup=contrib/misc --requires=libx11-6 --nodoc --pakdir=$PACK_DIR $BUILD_DC_TMP_DIR/install/linux/install.sh

Запускаем генерацию пакета для Debian в сессии fakeroot из которой мы и не выходили:

$ ./create_packages.sh -D --ws=gtk2 --cpu=x86_64

Наблюдаем за магией в консоли – там столько всего происходит! После успешной сборки пакета выходим из сессии fakeroot:

$ exit

Полученный пакет, например, doublecmd_0.7.8-1.gtk2_amd64.deb, будет находиться в /doublecmd/install/linux/release/ откуда его можно установить обычной командой:

# dpkg -i doublecmd_0.7.8-1.gtk2_amd64.deb

Комментарии (92)


  1. aik
    10.01.2018 07:08

    А зачем все эти графические финтифлюшки для сервера?


    1. Angrynik
      10.01.2018 07:48

      Поддерживаю. Автору на заметку:
      1. На веб-сервере нет нужды в GUI. Вся статья могла быть заменена установкой openssh-server и samba + загрузка/установка putty/любого_другого_клиента_ssh на рабочую машину, а не сервер.
      2. В материале Вы делаете упор на то, что статья для новичков. Однако Вы не обьяснили, почему в начале той или иной комманды стоит # или $, нет обьяснения, что ~/.something — относительный путь в скрытую (по умолчанию) дирректорию пользователя.
      3. Про вредность графического окружения было в п.1. Здесь хотелось бы добавить о неприемлимости навязывания разного рода софта. Хотя это мое субъективное мнение.
      4. Непостоянство написание комманд в статье. Вы сначала предлагаете устанавливать пакеты отдельными коммандами, хотя можно было одной. Почему лучше одной? Каждый раз вызывая apt-get install Вы заставляете эту утилиту читать базу пакетов, что занимает лишнее время. Сюда же можно отнести мелькающие ключи -y — то они есть, то их нет. Тоже субъективное мнение
      5. Неверный заголовок статьи. На мой взгляд правильнее — «Настойка среды debian для повседевного пользования». Кроме как предисловием статья никак не раскрывает сути заголовка.


      1. AlexanderS Автор
        10.01.2018 07:54

        1. Уже ответил ниже.
        2. Вообще-то — объяснил ) А вот с тильдой домашнего каталога да — как-то упустил.
        5. Принято!


        1. Angrynik
          10.01.2018 08:00

          За пункт 2 прошу прощения, упустил. А по поводу п. 5 — как ни крути, облако можно настроить не имея gui. Его упоминание излишне в этой статье. А с учетом, что управление сервером, как правило, происходит удаленно — gui будет просто занимать лишнюю ram и дисковое место. А ведь их полезнее использовать, например, для кеширования.


      1. Ryav
        10.01.2018 14:47

        Всё правильно, иксы лишние, сам вот на праздниках занялся настройкой медиа-сервера на debian, изначально планировал делать чисто консольный вариант, но в последний момент решил всё же на всякий случай воткнуть Cinnamon, в дальнейшем же просто убрал из автозагрузки иксы. Сначала через команду ps ищем сервис иксов (в моём случае lightdm.service), потом выполняем 2 команды:
        sudo systemctl stop lightdm.service
        sudo systemctl disable lightdm.service


        Кстати, у меня возникли трудности с настройкой веб-морды rutorrent для rtorrent, а также rtorrent как-то выборочно то качает, то не качает раздачи с rutracker. Если кто может посодействовать, прошу написать в личку.


        1. omgiafs
          11.01.2018 16:51

          rtorrent вообще своей жизнью живёт.
          единственное, что могу порекомендовать — установите вместо rtorrent rtorrent-PS. Это rtorrent на стероидах, с багфиксами и кучей преднастроек.

          У меня rtorrent-PS работает в связке с rutorrent и torrentmonitor. Последний мониторит обновления раздач, средний скачивает обновлённые торрент-файлы и скармливает их первому :)

          Чтобы всё работало и в недалеком не очень светлом будущем к вам не было претензий у провайдеров и прочих правообладателей, запросы к трекерам исключительно через TOR и отключить udp-трекеры и DHT.


    1. geisha
      10.01.2018 19:14

      Зачем финтифлюшки — не знаю, но чего вы все так прицепились к GUI? Как пропадёт надобность — снесёт гном, а так — речь идёт о ~500 мегабайт оперативной памяти. Для nextcloud остается ещё 1.5 Гб, что для одного юзера и трёх устройств более чем достаточно.


      Автору: я тоже держу nextcloud в виртуалке и было бы интересно узнать, как правильно настраивать сеть: пробрасывать в неё порты с "белого" IP физического интерфейса и как заставить программы типа openvpn-client не ломать эту маршрутизацию.


      1. aik
        10.01.2018 21:34

        Слишком много рассказывается про ненужное. Если бы он настраивал свой компьютер как хост и там бы запускал там виртуалку с файлопомойкой, тогда все телодвижения были бы логичны.
        А поднимать виртуалку, в ней поднимать графическое окружение, чтобы потом в ней настраивать серверные службы — это нерационально и непонятно. Графическое окружение у него на хосте есть, нахрена дополнительная прослойка?


      1. Meklon
        10.01.2018 23:23

        Nextcloud на KVM виртуальную машину. Каталог data монтируется через cifs-utils. Физически data лежит на хост системе. Сама виртуальная машина получает реальный IP адрес, так как на хост системе поднят bridge интерфейс, прицепленный к eth0.


        1. Alexsey
          11.01.2018 01:06

          Каталог data монтируется через cifs-utils.

          На вкус и цвет фломастеры разные, но если нет необходимости в доступе к этой папке из винды то лучше, наверное, все же nfs.


          1. Meklon
            11.01.2018 01:39

            Согласен отчасти. Принципиальной разницы нет. Просто у меня это еще и сервер-NAS для всех операционных систем. SAMBA уже настроена все равно. А есть реальная разница?

            UPD. Почитал. Согласен. Но работает, однако.
            Сейчас fstab виртуалки выглядит так:

            //192.168.100.201/Storage_3/nextcloud_data /mnt/nextcloud_data cifs user,uid=33,gid=33,credentials=/etc/.smbcredentials,iocharset=utf8,x-systemd.automount 0 0


        1. geisha
          11.01.2018 05:04

          У меня нет возможности получить белый IP адрес на виртуальной машине, поскольку он администрируеится провайдером, привязка к MAC и всё такое. В общем, жду следующей части.


          1. Alexsey
            11.01.2018 12:16

            У меня нет возможности получить белый IP адрес на виртуальной машине, поскольку он администрируеится провайдером, привязка к MAC и всё такое. В общем, жду следующей части.

            А у вас что, кабель от провайдера напрямую в компьютер идет? Рискованно живете :)


            1. Massacre
              12.01.2018 02:00

              Почему рискованно? С настроенным фаерволом — никаких проблем…


          1. AlexanderS Автор
            11.01.2018 13:34

            У меня только опыт локального решения. NC я дальше локальной сети не выводил.


  1. vankosa
    10.01.2018 07:11

    Извините, но статья должна называться "Как НЕ надо делать домашнее облако"


    1. AlexanderS Автор
      10.01.2018 07:37

      Хотелось бы конструктивной критики. Тем более, никто и не запрещает пропустить эту часть.

      Проблема в том, что человек пришедший «с винды» далеко не всегда сразу может вот так легко управлять с командной строки. Пару раз попробовал и бросил, пришел ко мне: «Дай готовую виртуалку». Только он в этой виртуалке ни IP поправить не может, ни пароли для доступа поменять, ни сам конфиг для облака изменить. Так утверждается миф Linux — это сложно. Но это неправильно, потому что это не так. Просто погружение должно быть плавным и понятным. GUI — это только вопрос удобства и не более.


      1. vankosa
        10.01.2018 07:55

        GUI — это удобство только для браузера и офисного софта. Если во всех мануалах по own/nextCloud все действия по установке выполняются в консоли, то зачем нужен гуй? По итогу получается, что «файлопомойка» вместо 100 мегабайт ОЗУ будет потреблять 500 (если нагрузги не будет) и все эти гуи будут висеть мёртвым грузом. Про ssh, как мне кажется, должен знать любой человек, кто хоть как то касается линуксов.
        Далее. Если вы написали статейку о Debian Server, то почему до сих пор не знаете, что список пакетов в apt можно писать через пробел?
        Далее. Раскрашивание консоли? Серьёзно? Тогда к чему 90% статьи про GUI?
        Далее. Debian 7 в 2017(8) году? Зачем?
        Ненужность сборки софта из сырцов объяснять не буду по причинам, изложенным выше

        PS: Очень интересно почитать, что будет во второй части


        1. AlexanderS Автор
          10.01.2018 08:08

          Если вы написали статейку о Debian Server, то почему до сих пор не знаете, что список пакетов в apt можно писать через пробел?

          Можно и кое-где пишу. Разделение пакетов по отдельности — смысловое.

          Раскрашивание консоли? Серьёзно? Тогда к чему 90% статьи про GUI?

          Ответил же выше про плавность перехода)

          Debian 7 в 2017(8) году? Зачем?

          А вы… по-диагонали читали! )

          Очень интересно почитать, что будет во второй части

          Ну, я думаю, конкретно вы там вряд ли что-то новое найдете)
          А вот оценка и критика реализации того как и что я понял и сделал мне самому интересна.


      1. MasMaX
        10.01.2018 10:58

        Управление непосредственно NextCloud все равно будет либо через командную строку, либо через веб. Настройка IP, смена пароля, обновление пакетов — все это несколько команд в консоли.

        GUI в данной статье исходя из ее названия и целей нужен лично вам. Проще было писать две независимые статьи: «Как я знакомился с Debian» и «Как настроить nextCloud». Только первая на данном ресурсе будет не очень популярна, так как их много уже.


      1. Massacre
        12.01.2018 02:14

        Ну вот у меня основная система — винда. И большой опыт работы в DOS в своё время тоже был. GUI линуксов для меня какие-то… не такие. Особенно, Gnome. С линуксами (шеллы на хостингах) общаюсь через putty, и mc достаточно, чтобы избавиться от рутинных файловых операций. А офис и браузер на сервере — действительно лишнее. Особенно, если им всегда управляют извне.

        Может, конечно, автор в действительности хотел написать статью «настраиваем Debian для офисной работы», но причём тут приватное облако?


  1. DaemonGloom
    10.01.2018 08:00

    Хотите я открою вам страшную тайну? При нежелании/неумении работать с линуксом и консолью, домашнее облако делается так: ставите, например, nethserver, открываете в браузере его панельку управления и там выбираете «хочу nextcloud».


    1. Angrynik
      10.01.2018 08:11

      Сюда же можно отнести докер и готовые образы OS с облаком на борту. Автор просто попытался написать очередную статью об основах работы эникея, но выстрелил себе в колено


      1. AlexanderS Автор
        10.01.2018 09:23
        +1

        Если использовать сразу все готовое, то понимания не будет. Мне хотелось разобраться и сделать все самому. Я ж не связан по работе с администрированием, сайтами, да и вообще программированием по сути-то. Это больше хобби, чем необходимость) Я ж статью не для плюсиков писал, а как помощь действительно начинающему плюс вынос на общий доступ своего понимания, т.к. отзывы позволят выявить свои ошибки или непонимание чего-то, что благотворно скажется на дальнейшем развитии. Ну вот чему-то научился я — а к кому за оценкой обратиться? В моем окружении особо не к кому. Так что про колено это вы зря — по крайней мере морально я готов к минусам и кармасливу) Это-та статья — это ерунда. Равно как и по самому облаку. А вот с настройкой веб сервера будет все поинтереснее.


        1. Rumlin
          10.01.2018 11:27

          Надо было спойлерами скрывать подробности. И по моему у публикации можно поставить метку туториал


          1. AlexanderS Автор
            10.01.2018 12:19

            Для туториала тут слишком много лишнего. Это надо тогда выкинуть все исторические отсутпления и всякую философию. Получится просто сухой перечень команд с краткими комментариями — вполне себе туториал нормальный тогда будет. Но в этот раз я не стал позиционировать статью таким образом.


  1. MasMaX
    10.01.2018 10:51

    Соглашусь с другими комментаторами. Статья начиналась про настройку своего облака, а потом все ушло в сторону допиливания под себя свое удобство дебиана. Для настроек именно сервера 90% этой статьи не нужно. Тем более настройка NumLock или Видеоплеера, это вообще зачем тут?


  1. 74tms
    10.01.2018 11:24

    В далеком 1999 году мне понадобился дома шлюз в инет с неким набором софта, которого тогдашние (да и нынешние) роутеры дать не могли. У меня был старенький, но вполне рабочий комп на Pentium-166MMX и я сел и ничтоже сумняшеся поставил на него FreeBSD 4.x и установил все, что мне надо было. И «погружение» прошло замечательно без всяких Double commander и прочих GUI, даже mc и тот не пользовал в виду отсутствия нужды (и сейчас использую крайне редко), ssh и только он.
    Статья скорее вредная, чем полезная. Тех же пользователей винды заставляет жить виндовыми привычками, вместо того, чтобы взять и показать, как оно на самом деле.


    1. aik
      10.01.2018 11:46

      Тех же пользователей винды заставляет жить виндовыми привычками

      Я бы не сказал, что виндовые привычки — это так уж плохо. Если человеку так удобней, то почему бы и не сохранять их?
      У меня и кодировка в линуксе до перехода на юникод была 1251, и сохранение в vim по F2, а выход по F10…

      Другое дело — что в линуксе консоль основополагающа и, если уж есть желание разобраться, то начинать надо с неё, а не с установки double commander и сборки текстового редактора. А в графику переходить только тогда, когда этого требуют задачи.


  1. mosidze
    10.01.2018 11:38

    эммм.
    1) Ставим ubuntu server (никаких gui для запуска сервиса)
    2) wget raw.githubusercontent.com/nextcloud/vm/master/nextcloud_install_production.sh
    3) sudo bash nextcloud_install_production.sh
    в принципе, кроме того что надо пару раз нажать next и ответить Y ничего не требуется…


    1. ZaitsXL
      10.01.2018 11:56

      поддерживаю, что то слишком много буков как для домашнего файлосервера, и перестаньте уже все подряд называть облаками — у вас это NAS скорее


    1. MasMaX
      10.01.2018 11:58

      Production скрипт, а в конце обновление дистрибутива и reboot без вопросов. Жестокие они.


    1. Meklon
      10.01.2018 12:42

      Этот скрипт официальный? Очень странные некоторые места. Зачем он repair выполняет, например?

      mysqlcheck -u root -p"$MARIADB_PASS" --auto-repair --optimize --all-databases
      check_command sudo -u www-data $NCPATH/occ config:system:set mysql.utf8mb4 --type boolean --value="true"
      check_command sudo -u www-data $NCPATH/occ maintenance:repair

      Ну и мне тот же nginx привычнее.


      1. DaemonGloom
        10.01.2018 15:22

        Там из странных мест есть ещё установка странных dns'ов, кучка ненужных пакетов (ifupdown, например) и странная локаль «sv_SE.UTF-8».
        А с repair всё просто. Конвертация таблиц после включения 4-байтной поддержки utf-8 в mysql.


        1. Meklon
          10.01.2018 17:02

          А это точно надо? Я не делал.


          1. DaemonGloom
            11.01.2018 06:56

            Нет, это не обязательно. Это нужно для emoji и ещё пары каких-то особо специфичных символов. Для классического NAS с файлами на латинице/кириллице это не нужно.


  1. Shaz
    10.01.2018 12:00

    А в чем смысл установки debian 8.7.1 и после этого dist-upgrade? А список репозиториев после апгрейда у вас так и остался для jessie? И если нет, то почему в статье об этом ни слова?


    1. AlexanderS Автор
      10.01.2018 14:42

      Смысл в том, чтобы показать как обновлять систему. На текущий момент она обновится до версии 8.10, т.е. в рамках релиза Jessie. И я это проверил. Но… Вот насчёт списка репозиториев после вашего вопроса у меня закрались сомнения. upgrade его точно обновить не должен. А вот dist-upgrade… я не уверен) Вечером проверю.
      Спасибо, ценное замечание.


      1. Meklon
        10.01.2018 17:02

        Jessie уже oldstable. Актуальный Debian — stretch.


        1. AlexanderS Автор
          10.01.2018 17:49

          Я в курсе. Но у меня всё построено и работает именно на jessie. Выкладывать же код для stretch — это надо на нём всё проверить, мне совесть не позволит писать не проверив. А если я буду переводить всё на stretch… наверняка появятся свои моменты, которые надо сидеть решать и тогда я на статью всего скорее всего просто забью. Я эту-то три дня писал, правил, корректировал. А написана только четверть того, что хотел.


    1. AlexanderS Автор
      10.01.2018 22:02

      А список репозиториев после апгрейда у вас так и остался для jessie?

      Проверил. Да, список остался)


  1. imnnrv
    10.01.2018 12:22

    Администрирование очень быстро утомляет. Нужно, чтобы просто работало, особенно, если это домашнее/личное облако. Если хочется поиграться с Linux, то зачем гуи? Если же хочется чтобы просто и надежно, то зачем возиться?
    Сам наигравшись ушел на YunoHost (готов рассмотреть альтернативы). FOSS, всё из коробки. Уже больше полугода вообще не вспоминаю о том, что нужно что-то настраивать.


  1. Meklon
    10.01.2018 12:26

    Я на всякий случай оставлю свой ранее опубликованный мануал по развертыванию owncloud/nextcloud. Если вы что-то добавите — буду благодарен. Буквально несколько дней назад заново понимал виртуальную машину со свежей версией.

    Поднимаем Owncloud с нуля с динамическим IP и Let's Encrypt. Тысяча слонов!*

    В целом, я согласен с комментариями по поводу бессмысленности GUI на самом сервере. Корректный вариант — GUI на клиенте, если это необходимо. Например, я использую virt-manager на десктопе, чтобы через SSH управлять KVM виртуальными машинами на сервере. В любом случае, спасибо за пост.


    1. casphar
      10.01.2018 13:15

      В целом, я согласен с комментариями по поводу бессмысленности GUI на самом сервере.

      Это если на сервере только облако.
      У меня, например, кроме owncloud и transmission на «сервере» стоит kodi, которому нужны иксы.


      1. Meklon
        10.01.2018 13:22

        У меня тоже стоит Kodi. На сервере. Но при этом там нет GUI, DM, WM и всего прочего. Только голые иксы под которыми стартует Kodi. Большая разница по количеству лишних пакетов и ОЗУ. Или это скорее исключение. А основные сервисы упакованы в виртуальные машины и изолированы от железа.


        1. casphar
          10.01.2018 13:26

          Вы линуксоид, видимо вам так удобнее. А человеку не знакомому с линуксом, на порядок проще поставить дистрибутив с gui.


      1. aik
        10.01.2018 13:25

        Ну так ему наверняка только библиотеки нужны, а не полноценное декстопное окружение с файловыми менеджерами и текстовыми редакторами.
        У меня в своё время на домашнем сервере жил ktorrent качалкой — запускался под Xvnc. Само собой, ему нужны были какие-то KDE'шные библиотеки, но полный KDE я не ставил. Сперва даже пытался вообще без WM жить, но потом всё же evilwm поставил.


  1. nidalee
    10.01.2018 13:50

    К сожалению вынужден присоединиться к постам остальных комментаторов: GUI не нужен. Мои познания в работе с Linux настолько скудны, что после отвала сети мне приходится переустанавливать систему, а vi мне до сих пор снится в кошмарах. Тем не менее, на установку nextcloud ушло меньше часа. Надо сказать, что если бы я следовал Вашему гайду, наверняка забросил бы где-то на «раскрашивании терминала». Очень много лишнего даже с моей точки зрения, а мне бы «костыли» на самом деле не помешали.

    Я устанавливал так: ubuntu server, добавление репозиториев (ух, проклятый vi!), установка nano, ssh сервера, webmin, samba. Дальше все это добро настраивалось через тот же webmin и после этого скриптом поднимался nextcloud.
    Для мультимедиа в локальной сети еще ставил plexmediaserver и netdata.
    Это действительно покрывает 90% нужд, КМК.

    Сложнее всего для меня было ставить, как ни смешно, торренты. Так и не нашел клиента, который хотелось бы видеть, поставил deluge лишь бы работало. Еще какие-то проблемы были с правами на доступ к файлам и папкам в samba. Пришлось везде вкорячивать (простите!) chmod 777, благо локальная сеть.

    GUI, сборка текстового редактора — бррр… Собирать я вообще что-то боюсь, хотя тьфу-тьфу пока получалось. В общем новичка такой гайд реально может шокировать.


    1. Ryav
      10.01.2018 15:00

      А там всё просто в samba, создаёте группу и добавляете туда пользователей, потом в конфиге к каталогу подписываете valid users = @имя_группы
      Только я не понял, во сколько групп можно добавить пользователей, подскажет кто?
      В качестве торрент-качалки выбрал rtorrent, вот только не могу веб-морду к нему настроить.


    1. STingerOid
      10.01.2018 18:41

      Я устанавливал так: ubuntu server, добавление репозиториев (ух, проклятый vi!), установка nano

      С каких пор в ubuntu server nano не установлен по умолчанию?)
      В 16.04 еще был. А вот в centos'е nano ручками устанавливать пришлось, правда ось там не мной была поставлена, может это её установщик любителем vim'а был.


      1. nidalee
        10.01.2018 21:38

        Хороший вопрос!
        В 17, что я скачал с сайта, nano не было.


        1. Meklon
          10.01.2018 23:25

          Месье знает толк в извращениях. Под сервер крайне желательно все же брать стабильный LTS релиз. 16.04, то есть.


          1. nidalee
            11.01.2018 00:24

            Один раз живем!
            Работает, и то ладно.


            1. Meklon
              11.01.2018 01:43

              У меня боевая машина, на ней данные целой лаборатории научной… Жуткие вещи я творю на тестовых машинах.


  1. gravl
    10.01.2018 14:28

    Вставлю и свои 5 копеек.


    1. Виртуалка с облачным сервисом — зачем её настраивать так, будто это основная рабочая машина на повседнев? Минимальненько должно быть, только самое важное.
    2. GUI — а вот тут ругать не стану =) Хотя и хвалить не буду. Тем не менее для новичка визуально ориентироваться в папках проще, чем вспоминать названия папок в консоли. В конце концов GUI после настройки сносится к чертовой бабушке, а понимание где находятся основные конфиги остается и консоль становится на миллиметр дружелюбнее.
    3. Где собсна nextcloud? Пришел по заголовку на одну тему, а статья вообще о другом. Подготовка сервера умещается в пару небольших абзацев. Установка nextcloud — еще небольшой один абзац. А вот всякие неожиданности и хитрости по настройки, а так же объяснение не всем понятных моментов и функций должны были стать основной простыней текста в статье.
      Я сам ставил и own и next cloud. Установить — проблем особо не возникает, а как доходит дело до грамотной настройки облака, интеграции девайсов, так сразу вылезают различные приколы, которые у некоторых просто отбивают все желание. А учитывая слабое понимание у новичков самих принципов работы сервиса и линя в целом, из-за кучи ошибок, непонятного нелогичного по их мнению поведения начинает складываться ощущение, что все это еще сырое, нестабильное и вообще ну его нафиг, гугол и яндекс как то проще...

    Пожалуйста, AlexanderS, напишите ту статью, которую от Вас хотят получить, и которую Вы, как я думаю, изначально хотели дать.


    1. AlexanderS Автор
      10.01.2018 14:54

      По пунктам 1 и 3 отвечу цитатой из текста:

      Для начала необходимо сделать себе удобную среду для работы, то есть не просто установить систему на виртуальную машину, но настроить её под себя, приблизить её к тому виду, который мне удобнее и привычнее. Второй этап – доведение этой машины до функционирующего веб-сервера. Третий – превращение веб-сервера в облако.


      1. gravl
        10.01.2018 15:25

        Вы позиционируете статью на некий круг людей, с минимальными познаниями, а в итоге пишите про настройку "под себя". Почему бы тогда не начать с установки и настройки vmware? Это равносильно тому, что инструктор в школе вождения начнет вдалбливать будущим водителям, что для того, чтобы начать ездить, нужно сперва установить кожаные сидения с массажем (потому что у инструктора спина болит), прорезать люк (чтобы останавливаться прямо под светофором), купить громкую стереосистему (чтобы даже глухой услышал) и т.д. А что, ведь ездить станет удобнее.


        Вы пишете не для себя памятку, а инструкцию для других, разве не так?


        Допустим даже что новичку, на Ваш взгляд, действительно необходимы некоторые дополнительные инструменты. Зачем новичку забивать голову тем, что для текущей задачи ему вообще не нужно? Сборка ПО, Вы серьезно? Новичек хочет plug&play решение, поставил, настроил и забыл. Для чего углубляться в такие дебри, как сборка, если подразумевается что задача настройки является однократной и подойдет любая уже готовая альтернатива, которая потом будет удалена. Если Вы начнете рассказывать про развитие навыков и т.д., то я сразу отвечу — тема статьи о конкретной задаче, а не научиться линуксу.


        1. AlexanderS Автор
          10.01.2018 16:34

          gravl, да не ругайтесь вы так)
          Я вас услышал.

          Да, я пишу инструкцию для других. Но я же честно написал: «Нижеприведённое описание системы «под себя». О вкусах не спорят: кому-то понравится, кому-то – нет».

          тема статьи о конкретной задаче, а не научиться линуксу

          Смысл статьи — решить конкретную задачу, заодно научившись линуксу. Для решения конктерной задачи есть короткие туториалы.

          Новичек хочет plug&play решение, поставил, настроил и забыл.

          Нет, статья не для таких новичков. для Статья для колеблющихся, тем кто хотел бы начать пользоваться Linux, но не готов сразу с головой в bash. Эта часть наглядно показывает, что можно поставить «тотал коммандер с нотепадом» и пользоваться так как привычно: открывать файлы по F4, сохранять по F2 и закрывать программу по Ctrl+F4. В статье приводится пример, что все эти аналогичные и привычные инструменты есть — линуксом можно пользоваться каждый день и если понадобиться проблем с инмтрументами не будет.

          Я соглашусь, что у меня получается некая солянка-хардкор. Кто-то негодует, что мало консоли и зачем гуи, кто-то говорит, если есть гуи — да нафиг мне эту консоль? Чтобы ничего не делать можно же просто поставить Mint и не париться. А для узкого решения задачи есть более профессиональные и чёткие мануалы в интернете.
          Я вот посмотрел — в ноябреwtigga
          оказывается уже выкладывал свою статью по установке и настройке Nextcloud 12. Нормальная такая грамотная и чёткая статья без всякой воды. Если бы я догадался проверить «близкие» статьи по nextcloud, может и не стал бы писать, а то три дня потратил только лишь на одну эту статью. Ну, посмотрим, что у меня выйдет со следующей частью)


          1. Bonio
            10.01.2018 17:22

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

            Теперь к критике. GUI на серверной машине не нужен, ну тут и так все сказали, как и лишние инструменты, вроде mc, текстовых редекторов и уж тем более firefox и плееров. Мне самому привычнее работать из винды, из нее я и работаю с сервером. Для редактирвоания файлов непосредственно в notepad++, есть удобный плагин NppFTP, просто и удобно, подключается через sftp. В качестве менеджера файлов — filezilla, так же через sftp.
            Сеть настраивается вообще один раз и то опционально, по умолчанию настрйки принимаются по dhcp. А все остальные службы все равно придется настраивать правя конфигурационные файлы. Вобщем gui на сервере — свистелка без задачь.
            Фаервол на машине внутри домашней локальной сети тоже считаю лишним, логичнее настраивать фаервол на роутере (вот на vps с внешним ip, да, там он нужен).

            Кстати, раз уж у вас используется гипервизор, роутер тоже можно было бы перенести в виртуальную среду. Но это так, к слову.


            1. AlexanderS Автор
              10.01.2018 17:53

              Кстати, раз уж у вас используется гипервизор, роутер тоже можно было бы перенести в виртуальную среду. Но это так, к слову.

              Не совсем понял, что вы имеете ввиду? Можно развернуть?


              1. Bonio
                10.01.2018 18:46

                Можно запустить pfsense внутри виртуальной машины, это крутой дистрибутив роутера на freebsd, и все из web интерфейса настраивается. Получится высокопроизводительный роутер. Но для этого понадобится как минимум две сетевые карты и чуть-чуть настройки гипервизора. Можно сразу воткнуть wifi карту и настроить точку доступа, а можно и внешнюю использовать.

                Я себе из какого-то полусломанного моноблока собрал такой в железе, чтобы прозрачно заворачивать домашний трафик в vpn без потери скорости, там две сетевые карты и wifi адаптер. Почему бы не перенести это все в виртуальную среду? Вот накоплю себе на новый сервер, так и сделаю.


          1. gravl
            10.01.2018 17:45

            gravl, да не ругайтесь вы так) Я вас услышал.

            А я и не ругаюсь… Может мне скучно на работе =) Просто грустно от того, что заходишь почитать статью об интересующей теме, а в результате нужного контента нет =( Особенно учитывая, что на nextcloud я полностью перейти так и не смог в связи с наличием некоторых технических проблем, о которых сейчас даже и не вспомню (в частности с мобильными приложениями, которые у меня вызывали ненависть), и в надежде что может быть увижу решение какой то части вопросов, а то и вовсе полностью настроенное решение в котором ну вот вообще все работает и можно полноценно пользоваться.


            Буду ждать следующую часть, быть может порадуете.


            1. AlexanderS Автор
              10.01.2018 18:12

              Смотря что вы ждёте от облака. Как правильно заметили у меня и не облако, а по задаче — получается действительно как NAS в который по расписанию через webDAV сливаются определённые папки с телефонов используя FolderSync.
              Ну… надо сказать со стороны NC11 был косяк, связанный с локом файлов в своей базе данных. Пришлось полазить и найти костыль, который я скрестил с cron. И был ещё косяк с файлами .htaccess — тут мне не помогли и пришлось велосипед самому изобретать. С двумя этими костылями всё отработало практически год. По-моему неплохо.

              Хотя, по хорошему, сейчас правильно поднимать Nextcloud 12 на Debian 9, а не решение годовалой давности. Просто у меня пока нет времени и на то и на другое и пока я выбрал писанину, раз уж долго собирался.


              1. gravl
                10.01.2018 18:34

                Ну тема же про некстклауд, соответственно и жду я от него то, что заявлено. И если с синхронизацией файлов вопросов в итоге вроде бы нет, то с остальными задачами (контакты, календарь, еще что то) у меня были проблемы. Так и не получилось создать полную замену гуглу для телефона. А использовать его ради файлов — есть варианты проще. У меня дома так же как и у вас стоит отдельно машина с гипервизором и на ней различные сервисы живут. Но вот облако пока не прижилось.


                1. AlexanderS Автор
                  10.01.2018 19:56

                  Я контакты, календарь и прочее оставил «на вырост». Но… оказалось, что мне это просто не нужно. Однако мне очень пригодилась версионность ради которой все и делалось.


              1. Meklon
                10.01.2018 23:26

                Официально рекомендуется Ubuntu 16.04 LTS


  1. Ryav
    10.01.2018 15:06

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


    P.S. Привет пользователю Droid Turbo, сам я неделю уже как пользователь OnePlus 5T, но Droid Turbo осталась в качестве плейера и второй трубки.


    1. AlexanderS Автор
      10.01.2018 16:39

      И как он вам?

      Я посмотрел… 6 дюймов многовато. Опять эта мода — слегка выпирающая камера. Беспроводной зарядки нет. microSD тоже нет. На что турбу менять?)


      1. Ryav
        10.01.2018 16:49

        Ну 128 гб должно хватить, выпирающая камера сглаживается карбоновым чехлом (как задняя сторона на Motorola Razr Maxx), беспроводной зарядкой почти не пользовался, она медленная, ну а дисплей прекрасен, не намного телефон больше по размерам.


        1. AlexanderS Автор
          10.01.2018 16:55

          А я привык к Qi. Купил две зарядки по 300р на ali. Одну дома положил, одну — на работе. теперь просто телефон живёт в этих местах и я забыл что такое подзарядка от розетки/USB. Непонимаю, почему такое удобство стремительно не набирает популярность.


          1. aik
            10.01.2018 17:28

            В телефонах и так куча антенн натыкана. Ещё одну разместить не всегда просто.


          1. adson
            10.01.2018 20:42

            Тоже пользуюсь DroidTurbo (чего стоило везти его без нотификации...), и тоже все устраивает. Если не успел зарядить от Qi (или времени не хватает), тогда сильно помогает родной TurboCharger.


  1. STingerOid
    10.01.2018 16:18

    Облако, чтобы бэкапить телефон? =)

    Как это сделано у меня:
    1)Круглосуточно работающий сервер на Ubuntu (кстати с запускаемым ручками гуем, да, он мне тоже нужен!), ssh c авторизацией только по ключу.
    2)На телефоне файловый менеджер, умеющий в самбу и sftp по ключу. Вместо того, чтобы таскать с собой на телефоне все ценное и бояться потерять, я держу это на сервачке. На телефоне нет ничего такого, что потерять страшно, половина карточки тупо занята копией всей фонотеки.
    Если мне вдали от дома нужно достать что-то с сервера, или наоборот на него положить, а под рукой только телефон — кликаю на ярлычок в менеджере и делаю что надо.
    Если случится ужасное, и телефон украдут — отзову его ключик ssh.
    Самба — только в локальной сети дома, просто потому что быстрее sftp.

    И зачем линукс внутри VMWare? Линукс сам умеет быть гипервизором.
    У меня на сервачке стоит xen (при переустановке как-нить сменю на kvm), есть виртуалка с ХР, также vnc сервер на самом сервачке. На телефоне vnc-клиент.
    Нужна винда — запускаем виртуалку, нужен графический линукс — запускаем гуй. Подключаемся по vnc и пользуемся.


    1. AlexanderS Автор
      10.01.2018 16:46

      У вас решена задача доступа. В принципе интересно, а файловый менеджер какой? Случайно не TC с плагином SFTP?)

      У меня бэкапится в облако не только что-то ценное, но и вообще настройка всей среды. Titanium Baclup создает бекап всех приложений на пару гигов. Nova Launcher, True Phone, QuickPic и подобные. Т.е. если что — я беру новый телефон, разворачиваю все из бэкапов и получаю всё в точности такое же как было до аварии. Но смысл в том, чтобы это было всё в акутальном виде, а не вчера, позавчера, неделю назад. Резервируется всё каждый день — титаниум отрабатывает ночью по расписанию, синхронизация — вечером.

      И зачем линукс внутри VMWare?

      Так исторически сложилось. На том компе уже все есть и работает — виртуалку подоткнуть было проще, чем всё сносить и делать канонически правильно.


      1. STingerOid
        10.01.2018 19:35

        Тут у меня скорее другая концепция пользования телефоном — он не рабочий инструмент, а мессенджер и терминал доступа, и на нем тупо нечего бэкапить)) Настройки приложений подойдут даже из бэкапа годичной давности, ну а диалоги из фконтактика никуда не денутся.
        Плюс к тому же я категорически протестую против современных сенсорных обмылков, и мой телефон до сих пор слайдер-клавиатурник родом из 2010 года — HTC Desire Z. В случае появления у меня нового устройства (которое врядли будет этим банальным сенсорным обмылком) на него во-1 ничего не перенесется, а во-2 это будет что-то принципиально новое, и копание в настройках снова наше всё, ведь от старого они не подойдут.

        Файловый менеджер — fx file explorer, только старый (у современного кстати дизайн на скринах мне не нра). С плагином для сетевых и облачных возможностей (на момент установки сетевые фичи реализовывались таким образом, как сейчас — хз).


  1. amarao
    10.01.2018 18:26

    make install. И ещё раз. И ещё раз. И так, пока не придёт время преустанавливать систему.


  1. Artarik
    10.01.2018 21:43

    А мне статья понравилась, есть моменты, которые мне мешали, но было лень гуглить их решение, а здесь нашёл). Жду следующую часть!


  1. kudryavy
    11.01.2018 10:37

    Занудно поинтересуюсь про лицензию на workStation: наличие таковой у автора и стоимость для того, кто будет следовать инструкции.
    Мне кажется, что хорошее решение не должно использовать пиратский софт.


    1. AlexanderS Автор
      11.01.2018 11:20

      У меня никаких лицензий нет. Лицензия VMware Workstation Pro стоит порядка 200-250$, но она не нужна — используете бесплатный VMware Workstation Player, в котором с версии 3.0 без проблем создаются виртуалки. Функционал порезан, но для обычного домашнего использования (как развертывание того же Nextcloud) это никак не критично.


      1. kudryavy
        11.01.2018 11:48

        Прошу прощения. Для меня есть разница между фразами VMware Workstation и VMware Workstation Player, поэтому полез уточнять.
        Интересно также уточнить про "В начале 2017 года у меня была VMWare Workstation 12.1.0". Это тоже исключительно бесплатный Player? Или там есть тонкости?
        Вы в своем решении использовали Player или просто пишете, что его можно использовать бесплатно, а на практике в нем не проверяли?


        1. AlexanderS Автор
          11.01.2018 13:01

          Я изначально использовал Workstation Pro. Потом пробовал Workstation Player. И там и там были проблемы и есть моменты. Это всё будет в третьей части)

          VMware Workstation Pro тоже можно ведь бесплатно пользоваться — там есть 30 дневный бесплатный период после которого софт просто переустанавливается с зачисткой реестра. К слову говоря, VMWare свои 200$ вполне отрабатывает. После нее никакого желания использовать VBox не возникает. VBox бесплатен да, но если надо использовать тонкие настройки сети, то тут только VMWare. Плюс она стабильнее. Но всё равно, следующий этап — это отказ от Windows и VMWare вообще в пользу KVM/XEN. Тема очень интересная, но у меня до этого руки уже года два как не доходят(


          1. Meklon
            11.01.2018 13:48

            KVM штука очень стабильная и удобная. Не вижу причин не использовать его.


            1. AlexanderS Автор
              11.01.2018 14:10

              В принципе, на виндах (Windows 10 Pro или Enterprise) есть ещё Hyper-V. В принципе тоже было бы интересно попробовать. От стороннего софта виртаулизации можно быо бы вообще отказаться при эксплуатации виртуальных машин.


              1. Artarik
                11.01.2018 16:40

                так хипер-в вообще бесплатный ж… только в нем и крутятся все мои ВМ для home office


                1. aik
                  11.01.2018 17:26

                  Только очень куцый по возможностям, если нужна прямая работа с железом, то hyperv не годится. Даже usb внутрь не пробросить.


                  1. AlexanderS Автор
                    11.01.2018 19:45

                    Я читал, что в XEN можно пробросить полноценно PCI устройство. Если бы такое умела делать VMWare ей бы цены не было.


                    1. aik
                      11.01.2018 20:22

                      ESXi ещё умеет. Правда она капризна в плане железа.
                      Сам я пользуюсь xenserver'ом, но он скурвился с версии 7.3, потому потихоньку думаю о переезде на что-то другое.


  1. morihaos
    13.01.2018 17:55

    Смотря что вы ждёте от облака. Как правильно заметили у меня и не облако, а по задаче — получается действительно как NAS в который по расписанию через webDAV сливаются определённые папки с телефонов используя FolderSync.

    Я так понимаю, что вы просто синхронизируете разнородную информацию между лично своими устройствами (смартфонами, компами и т.п.). Ну и зачем этот огород с облаками (Nextcloud, Owncloud, GD, ЯД и им подобными)? Зачем вам этот отдельный сервер с облачным сервисом? Определите каталоги (папки, файлы, иные ресурсы) на каждом устройстве для синхронизации и синхронизируйте без всяких «облаков». Нет, я понимаю, что облака нужны, к примеру, в организации с N-ым кол-вом сотрудников, сидящими в разных точках планеты, в разных сетях и т.д. (сделать им каталоги личные и общие, распределить права доступа, создать логины и пароли, поставить свой сервер со своим облаком, чтобы не платить сторонним облачным сервисам и т.д. и т.п.) — да, это удобно и оправдывает себя. Но, создавать облако для себя одного… какой смысл… У меня дома три компа, два планшета, смартфон, на работе — пара компов, на складе — комп, на VDS пара серверов — это все мое, я просто взял Syncting — настроил в нем ресурсы и забыл, висит себе в бэкграунде, синхронизирует, не нужны никакие DDNS, пробросы на роутерах (ну только, если нужно извне попасть по 8384 в панель управления, хотя это очень редко бывает).


    1. AlexanderS Автор
      13.01.2018 18:01

      Тут всё хуже)
      1) Nextcloud реально работает на обычном компе в локальной сети — никакого интернета.
      2) Я даже не синхронизирую — я просто делаю автоматический бекап с версионностью.

      Но, создавать облако для себя одного… какой смысл…

      Не стоит подходить ко всему в жизни сугубо практично. По пути я более плотно подошел к вопросу как бы мне поудобнее обустроиться в линуксе, а так же «пощупал» что такое и как работает веб-сервер. Было свободное время и мне просто было интересно этим позаниматься. Кто-то в бильяр ходит играть, а я вот за компом поторчал ;)


      1. morihaos
        13.01.2018 18:11

        Ааа, понятно. То есть — это так сказать «получение чего-то полезного для себя путем изучения». Тогда, не слушайте никого в плане «зачем Иксы на сервере» и т.п. :-)


        1. AlexanderS Автор
          13.01.2018 19:13

          Ну почему — слушать надо. Правильное отношение к критике — это вообще по сути умение учиться.

          Иксы на сервере действиетльно не нужны, т.к. они тупо 99% времени жрутЬ ресурсы, ничего не давая взамен. Я когда опубликовал статью, думал, что меня будут критиковать за отключение парольно входа, за использование прямого рута, а не sudo и такое подобное. Но вопрос про GUI забил собой всё ))) С другой стороны, в этой статье обсуждать действительно нечего. Следующая будет поинтереснее.


  1. AlexanderS Автор
    13.01.2018 19:31

    Случайно отклонил сообщение пользователя SaddamHusein, публикую его:

    При сильной паранойе активность сервиса можно запереть внутри локальной сети через файрвол.

    Излишнее. достаточно оставить только локальные адреса в config.php
    'trusted_domains' => array(0 => '192.168.0.XXX')

    Даже если машина теоретически доступна извне, сервис не будет откликаться на внешние запросы.

    А вообще для бэкапа телефона — перебор, хоть и работает на ура.
    У меня дома в виртуалке под убунтой постоянно висит owncloud. На работе агент постоянно синхронизирует рабочую папку (да, можно: всё своё). И тот же аккаунт облака синхронизируется с папкой на домашнем компе. Могу продолжить работу с домашнего компа без подключения к удаленной машине, могу восстановить всё за считанные минуты, если с рабочим компом совсем беда. Заодно работает как time-machine, так как хранит все версии изменяемых файлов.