Nextcloud в Docker контейнере
Вставка
- Опубліковано 22 сер 2024
- Добрались руки до проекта NextCloud, в видео я попытался рассказать для чего данный проект нужен, показываю как настроить его локально при помощи Docker, а так же разглядываю web-интерфейс этой замечательной системы.
Проект NextCloud
nextcloud.com/
github.com/nex...
hub.docker.com...
Репозиторий из видео
github.com/Evi...
Полезные ссылки:
- Телега: t.me/evilfreel...
- Основной канал: / @pavelzloi
- Live-канал: / @e-freelancerlivechann...
- Twitch: / evilfreelancer
- Twitter: / evilfreelancer
- GitHub: github.com/Evi...
Ссылки на Steam:
- Группа Steam: steamcommunity...
- Рекомендации куратора: store.steampow...
Сделать пожертвование:
- www.donational...
Очень сложно найти видео нормального качества, свежие, да ещё и на русском! И их ещё и полный канал! Я побежал оформлять подписку
Привет! Спасибо за комментарий, у меня ещё Telegram-канал t.me/evilfreelancer есть, а также блог на Дзене dzen.ru/evilfreelancer
Там тоже подписывайся :)
Интересный проект. Жду ещё видео на подобные темы.
Спасибо тебе огроменное!!!
Доброго вечера, подскажите что делать если вроде-бы все работает, но к сожалению на локалхосте пусто
UPD 28.05.24 Нету доступа к файлу при запуске docker-composer up -d
Не могу настроить вход по внешнему домену. если добавить домен в (trusted domains) nextcloud перестает отвечать на запросы даже на localhost. При запросах по локальной сети та же ситуация.
когда подключаю телефон, или сам захожу,но не с локалхоста как админ, начинает все лагать и в итоге падает сервер, сам востанавливается через какое-то время, но пока просто захожу на сервер с других устройств он крашится и тупит. Будут светлые идеи в чем может быть проблема?
Здравствуйте, сразу прошу прощения возможно вопрос будет глупый, т. к я ничего не понимаю в этом. Скажите, проделанное вами можно повторить на операционной системе windows?
Добрый день! Вопрос отличный, иногда возникают сложности в работе с Docker на Windows и MacOS. Но такие простые проекты, как тот что описан в видео, как правило работают без особых проблем.
Если сложности и возникнут то они будут связанны либо с виртуализацией, либо с файрволлом. Решение подобных сложностей отлично гуглится по симптомам или ошибкам.
Но на будущее рекомендую работать с Docker на Linux, потому как только на Linux можно ощутить всю мощь Docker.
UPD. Поправил опечатки.
@@pavelzloi Большое спасибо за ответы!)
Салют, подскажите, пожалуйста, после то =го как добавляю ssl убрав решетки в конфиге и оно перестает работать что надо еще подредачить?
апач уже умеет в fpm, 7:02 ошибка по Фрэйду)
Привет! Хорошее замечание, кстати вот ссылочка на доку про это cwiki.apache.org/confluence/display/HTTPD/PHP-FPM но есть один момент, NGINX гораздо лучше работает в режиме отдачи кучи статических файлов www.plesk.com/blog/various/nginx-vs-apache-which-is-the-best-web-server/
...
Static Content
NGINX performs 2.5 times faster than Apache according to a benchmark test running up to 1,000 simultaneous connections.
...
А Nextcloud в свою очередь как раз и выступает в роли хранилища статических файлов, то есть выбор в сторону Nginx вполне логичен, если требуется достигнуть высокой производительности, для личного использования разница конечно не будет сильно заметна, а вот если несколько людей то будет.
Плюс мне нравится, что у NGINX в конфигах по дефолту всё запрещено, кроме того что разрешено, а у Apache наоборот, надо ковырять и тюнить конфиг, дабы мамкины хацкеры не похачили.
OnlyOffice отечественный для Риги?
Отлично подробно все рассказал, спасибо. Но есть вопрос как начинающего, а на каком этапе нужно выбрать место под хранилище?
Добрый день, рад что Вам понравилось :)
Уточните пожалуйтса, какое именно хранилище Вы имееете ввиду? Хранилище файлов? Или базу данных? Или вопрос про точку монтирования?
@@pavelzloi nextcloud же использует дисковое пространство для хранения файлов, фильмы, видео, просто файл-помойка. Это потом в настройках мы путь указываем или в процессе установки?
В процессе установки можно указать путь к директории в которой будет храниться база данных (при условии что была выбрана SQLite) и файлы, разложенные по папочками соотвествующим именам пользователей (пользователи добавляются уже после установки).
По умолчанию все файлы движка Nextcloud сохряняются в директории /var/www/html
hub.docker.com/layers/nextcloud/library/nextcloud/stable-fpm-alpine/images/sha256-9949955cf015bcbe93be53e4abe89445e5b3461a0e54f8483f9b61a13adfb779?context=explore
А директория в которой хранятся фалы пользователей находится вот тут /var/www/html/data
Поэтому именно в /var/www/html/data стоит монтировать папку с файловой системы, о чём и сказано в видео.
Надеюсь мой ответ Вам прояснил детали :)
@@pavelzloi спасибо! Как в личку вопрос задать?
Приходите к нам в дискорд discord.gg/zHPFgHJ :) ссылочка одноразовая
Приветствую очень интересно было бы разобрать: как делать обновление nextcloud, котерн сервер, и проброс на внешние диски
Добрый день! Согласен, процесс обновления Nextcloud в контейнере оказался той ещё головной болью. Спасибо за идею, когда появится время запищу и про это.
@@pavelzloi Можете помочь объяснить, почему когда собираю docker куча ошибок при сборке появляется, много изменений было за год?
@@besqda не уверен что там что-то нужно собирать, по идее там просто запуск контейнеров происходит из докер хаба. Можете пожалуйста скинуть ссылочку например на битбакет или гитхаб гист с примером ошибки? Может получится понять в чем там беда
Так хорошо начал, и на 5й минуте заговорил на непонятном языке
Здравствуйте Павел, установил nextcloud...и периодически отваливается nginx...504 Gateway Time-out , подскажите пожалуйста что делать?)
нашел причину(нагуглил), - Collabora Online Boild CODE Server, ежесекундно закидывало журнал сервера сообщениями с ошибкой. Удалил Collabora Online- и все четко ,все работает . Спасибо за статью Павел!
Только не понятно он бесплатный или нет? и как сделать чтобы пользователю было доступно только определеная папка?
Добрый день, благодарю за отличный вопрос!
OpenSource - это программное обеспечение с открытыми исходными кодами, то есть люди выкладывают свои разработки в публичный доступ и ничего не просят взамен.
Это не какой-то прикол, это своего рода философия отношения к жизни, стремление сделать жизнь для всех людей легче :)
Поэтому отвечаю на Ваш первый вопрос: да, NextCloud был, есть и будет бесплатным продуктом, об этом написано в файле License, в корне проекта на гитхаб.
Чтобы расшарить доступ к определенной директории надо просто нажать на ней и через кнопку share выбрать пользователя системы, для которого нужно дать доступ.
Ребят подскажите как добавить сохранения медия/данных если в пк 3 разных диска по 500гб?
Как раскидать на каждый диск заполнение, когда один полный тогда запись идёт на следующий?
Привет! Есть несколько вариантов, начиная от попсового RAID 0 (повышенная производительность без отказоустойчивости), или же LVM, заканчивая какими-то хитрыми решениями навроде unionfs или aufs, или mergerfs.
@@pavelzloi спасибо за ответ, а где это делается?
@@disconnect3763предположим есть какой-то сервер на котором данные диски установлены.
Допустим мы выбрали проект mergerfs для решения данной задачи, ставим бинарник из репозитория apt install mergerfs (это на Ubuntu, Debian и производных так), дальше выполняем команду:
mergerfs -o cache.files=partial,dropcacheonclose=true,category.create=mfs /mnt/hdd0:/mnt/hdd1:/mnt/hdd2 /media
Эта команда соберёт в кучку три диска смонтированные каждые в свой /mnt/hddX и подмонтирует их все в /media.
Тут технические подробности:
github.com/trapexit/mergerfs
А для чего вообще нужен тут nginx? Во многих туториалах юзают в yml только сам nc и БД
Можно использовать напрямую конечно же, но мне лично привычнее после кубернетиса проксировать на поды трафик через ингресс, так проще управлять тем куда можно и что можно. У меня дома через nginx ходит много разных проектов, не только NC.
Плюс в NC если ничего не путаю запущен апач, а он работает заметно медленнее с кучей маленьких файлов чем nginx.
Ещё один плюс это простота настройки let's encrypt, внутри контейнера NC выполнять настройку сертификатов чуть-чуть сложнее (хотя настроить на самом деле просто, а вот сложно настроить их обновление, а если проектов несколько то можно либо один раз настроить nginx для всего, либо под каждый проект изобретать велосипед).
Ну в общем если подвести итог, то разницы особой нет, если у Вас нет желания лепить из кирпичиков некое подобие идеала (как это у меня:) то решение из коробки подойдёт полностью.
Здравствуйте, у меня уже установлен docker и home assistant в контейнере, нет ручного способа установки в уже существующее окружение?
Добрый день! Смотря что Вы имеете ввиду под окружением. Если цель поставить NextCloud в контейнер то через apt или yum (ни или какой пакетный менеджер на низах используется). Если имеется ввиду добавить ещё один контейнер и зароутить в него трафик то тут уже не просто, потребуются как минимум контейнеры с NC и тот который запускает Nginx, желательно чтобы эти контейнеры работали в изолированной сети, далее на другом Nginx (или Apache2) уровнем выше настроить проксирование в сторону Nginx обслуживающий NC
Второй вариант немного сложно описывать простыми терминами, но если проецировать его на кубернетис то надо настроить сервис через который будет доступен под с веб сервером, а на него зароутить трафик через ингрес.
@@pavelzloi Я сегодня продвинулся в вопросе, получилось установить docker-compose, и установить все по вашей инструкции. Но не работает связь с базой., У меня rpi 4b, ,будет использовать как домашний сервер, на ней будет крутится Home assistant и хотел соответствено сделать облачное хранилище и самба сервер, что бы резервные копии и отсальные файлы хранить. Если можно свяжитесь со мной лично.
@@exclusru Вы всегда можете отправить мне личное сообщение в твиттере :)
А что же с phpmyadmin? Так ведь и не хочет запускаться. Хотя в логах у него все отлично
Изменил image на phpmyadmin:apache, работает
Привет. Как вынести папку с файлами за контейнер на другой диск?
Добрый вечер, для этого необходимо использовать директиву volumes, а уже в ней указать через двоеточие путь к нужной папке на диске и его связь с папкой внутри контейнера.
docs.docker.com/compose/rails/
Вот тут будет пример использования директорий по относительным путям, но Вам ничего не мешает настроить пути абсолютные и даже пути на разных дисках.
@@pavelzloi На самом деле я в восторге от Вашей конфигурации Nextclouda в докере. Работает намного быстрей. Синхронизация так же быстрее обычного. огромный плюс всего этого это то что сам сервер не тронут если ломанут nextcloud.
Видео очень помогло, спасибо.
И да, если пути на разных дисках указать то заполнение очередное будет или и там и там? Просто я думаю о том, как сделать так что бы данные в начале летели на один диск, потом при заполнении на другой и при этом доструп был и к тем и ктем файлам.
@@pavelzloi Подскажи пожалуйста, ге именно надо настроить ссылку? Если я правильно понимаю то это меняесть в Ямл конфиге докеркомпоза?
@@user-bv1rl4yb2d всё верно, надо поправить docker-compose.yml, в блоке volumes указать нужные пути.
Чтобы проверить правильная ли директория была подмонтированна можно заюзать docker-compose exec например.
@@pavelzloi друг, помоги))) всю голову сломал уже)) и контейнеры уже пару раз по новой перезаливал. Не могу понять как правильно прописать ссылку на папку mnt где находится премонтированный диск то есть /mnt/nextcloud/. И вот как оформить данную строку. Я пытался -/mnt/nextcloud:/var/www/html:rw . Но ничего не вышло
А если настройка идет на VPS, где нет интерфейса (бразуера) - как попасть в настройки начальные NC?
Вы можете открыть порт веб сервера на самой VPS, после чего зайти через браузер и выполнить настройку.
Просто вместо localhost будет адрес VPS :)
@@pavelzloi т.е. сделать port forwarding на порт nginx'а, находящегося в докере?
не работает
Дурацкий вопрос. А разве Docker не для временной только установки используется?
Добрый день! Это отличный вопрос, докер можно использовать в продакшен режиме, например при помощи Kubernetes или Docker Swarm, или любой другой системы оркестрации контейнеров, например docker-compose.
Самый главный бонус который Вы получаете при использовании докер это единообразное изолированнне окружение которое везде будет работать одинаково.
Иными словами можно настроить ну например Nextcloud у себя на машине, проверить работу, настроить всё необходимое, а потом скопировать всё это добро на сервер и это будет работать точно так же как и на локальном компьютере.
Второй бонус, операционная система не замусоривается файлами приложений, например файлами Nextcloud.
Ещё один бонус заключается в том что если контейнер с Nextcloud взломают то (в случае если композиция настроена правильно) дальше контейнера выйти скорее всего не получится.
Изначально докер был разработан для того чтобы отказаться от виртуальных машин и работать с ресурсами сервера напрямую, с сохранением изолированности приложения которое необходимо выполнять, ближайшие аналоги (с оговорками конечно) это chroot, lxc или например jail.
@@pavelzloi А такой вопрос)) "а потом скопировать всё это добро на сервер и это будет работать точно так же как и на локальном компьютере" это уже без докера получается?Или просто через оркестрации?)))
@@arman4chok Docker на сервере подразумевался по умолчанию, если чуть подробнее расписать то имелось ввиду что можно всё настроить локально, убедиться что всё работает, остановить композицию, заархивировать директорюи с docker-compose и файлами, после чего скопировать этот архив на сервер, распаковать и запустить.
Ну а взрослая оркестрация, например через kubernetes или swarm, ориентирована на немного иное обращение с файлами, там уже в ход идут волюмы (Persistent Volume), и самое главное что во всех мануалах не рекомендуют использовать файловую систему, что может поставить в ступор первое время.
привет подскажите, как поставить другую версию, а то по вашей image: nextcloud:fpm-alpine льется последняя stable 20.0.6 а там нет mail клиента, попробовал 19.0.8-fpm-alpine, 19.0-fpm-alpine, 19-fpm-alpine и тд, не работает -nginx 504 Gateway Time-out
Добрый вечер! Имели можно менять просто указывая тег в директиве image.
Nginx ругается потому что после пересоздания имеджа меняется ip-адрес. Чтобы это пофиксить надо просто рестартануть nginx.
@@pavelzloi спасибо, завтра попробую, но я ради интереса залил бету 21.0.0 и она стала, nginx не ругнулся) и ещё вопрос, возможно ли как нибуть прикрутить к облаку SMB шару ? Или только локально?
@@makst5287 можно конечно, берите контейнер с smbd и прикидывайте нужную директорию в сеть.
Лично я вот такую штуку дома использую:
github.com/dperson/samba
Есть вариант без докера, но мне больше нравится так.
@@pavelzloi рестартил nginx контейнер, перезаливал разные версии, ничего не работает, сейчас даже nginx перестал работать, хотя контейнер работает, пробовал удалять полностью контейнеры\образы\сети докера, ничего не помогает)))) конец моему облаку
@@makst5287 возможно поменялись названия контейнеров в списке сервисов, обычно в логах можно посмотреть из-за чего происходит рестарт.
А что так быстро? Прям уснул даже
Интересный проект. Жду ещё видео на подобные темы.
Добрый день! Благодарю за комментарий.
Могу предложить посмотреть плейлист Docker ua-cam.com/play/PLTd7y0vdxhK643dY-Th-fQvyNP46eW7CU.html там ещё несколько видосов на тему настройки окружения в Docker контейнерах при помощи docker-compose.
Про Nextcloud ещё пару видосов в планах, первый выйдет сегодня/завтра, а вот второй пока не знаю когда, возможно если будет много просмотров у этого видео то подвину выше в списке тем на обзор.
@@pavelzloi , ок. Есть ли стратегия к продвижению или что-то подобное?) Немного обидно,что видео набирают не так много просмотров. В чатах мелькать(того же laravel).
Стратегии особой нет, сарафанное радио пожалуй только, на самом деле я в принципе удивлён, что мои видосы смотрят, ибо как мне кажется у меня очень душный стиль повествования, да и к подготовке к видосам отношусь спокойно (дабы не свалиться в крайность перфекцеонизма, как в прошлый раз), экспромта более чем достаточно ИМХО. К тому же изначально идея была просто как блоги со шпаргалками для себя, моих знакомых и коллег, чтобы не забыть, поэтому я рад даже тому что есть на данный момент :)
@@pavelzloi чувствуется, что типо шпаргалики видео. Не всё понятно, но всё равно БОЛЬШОЕ СПАСИБО за информацию и проделанную работу! (посмотрю другие видео на канале)