- Бесплатные панели управления хостингом. «Монетка»
- Возможности
- Системные требования
- Подготовка сервера
- Установка
- Интерфейс
- Стандартная настройка
- Бесплатные панели управления хостингом. Богиня Vesta
- Предисловие
- Установка
- Веб-интерфейс
- Пользователи
- Домены
- Базы данных
- Почта
- Резервное копирование
- Безопасность
- Отчеты
- Обновления
- Плюшки
Бесплатные панели управления хостингом. «Монетка»
Наступает момент когда виртуального хостинга становится недостаточно и Ваш проект так и «просится» на сервер. Не всегда для новых задач Вам понадобится сразу выделенный сервер, но как минимум с виртуального сервера начать стоит. При этом многие из Вас, что бы как то сэкономить начинают искать партнера(ов) для аренды более производительной услуги. Также, одним из вариантов экономии бюджета — есть использование бесплатного программного обеспечения.
Ведь не каждому из Вас, например, будет приятно сидеть в консоли и устанавливать необходимое ПО, или производить управление Вашими сайтами через туже командную строку. В такие моменты на помощь многим вебмастерам приходят панели управления хостингом, и как же приятно когда эта панель — именно качественный и бесплатный софт. Совсем недавно мы уже рассказывали об одном бесплатном программном продукте, ну а сегодня речь пойдет об еще одной интересной панели управления хостингом, а именно о «монетке»…
Думаю многие из Вас догадались, что речь пойдет о CentOS Web Panel (CWP). В отличие от многих других панелей управления CWP позволит автоматически развернуть полный стек LAMP с кэшированием на уровне веб-сервера посредством Varnish Cache — это замечательно решение для хранения «горячего» кэшируемого контента Ваших веб-страниц в оперативной памяти. Оно позволит ускорить Ваш веб-сайт, и в то же время уменьшит нагрузку на процессор.
Возможности
Но вернемся к самой панели, перед установкой хотелось бы выделить несколько основных ее преимуществ:
- по умолчанию доступна возможность переключения версий PHP — администратор на своей стороне может в несколько кликов установить необходимую версию, а пользователь в свою очередь может выбрать нужную ревизию PHP для своих сайтов;
- панель ориентирована как на управление серверов, так и на предоставление услуг хостинга (поддержка тарифных планов, ограничений и т.п.);
- есть возможность противодействия небольшим DDoS-атакам и блокирования нежелательного трафика за счет использования расширений для работы с CSF (Config Server Firewall);
- из коробки CWP поддерживает CloudLinux — коммерческое расширение CentOS, ориентированное в первую очередь на хостинг-провайдеров;
- довольно удобный хостинг проектов с потоковым вещанием видео за счет встроенной поддержки ffmpeg;
- CWP имеет интегрированный механизм борьбы со спамом на базе AmaVIS, ClamAV, OpenDKIM, проверок RBL, SpamAssassin;
- панель поддерживает размещение на сервере как собственных серверов имен, так и использование FreeDNS;
- наличие встроенных средств мониторинга.
С полным списком возможностей CentOS Web Panel Вы можете ознакомиться на официальном сайте программного продукта по следующей ссылке. Как можно заметить большинство коммерческих систем управления сервером и хостингом не имеют такого широкого спектра возможность, а что уже говорить о бесплатных продуктах.
Системные требования
Что касается системных требований, то согласно заявлению разработчиков нам понадобится сервер минимум с 512 МБ оперативной памяти (для 32-битной версии ОС) и установленной «монеткой», а именно CentOS 6.x. Если Вы хотите наслаждаться всеми возможностями этой панели, например такими как антивирусное сканирование почты, то на борту Вашей «машинки» должно быть не менее 4 ГБ ОЗУ. CWP также поддерживает такие операционные системы как RedHat 6.x и CloudLinux 6.x.
Подготовка сервера
После того как хостинг-провайдер предоставил сервер с CentOS необходимо сделать несколько полезных действий перед установкой CWP. Если у Вас не установлена утилита Wget — консольная программа для загрузки файлов по сети, то подключаемся к «машинке» по SSH и вводим следующую команду:
Далее обновим Ваш сервер с помощью команды:
И не забываем перезагрузить «машинку», чтобы изменения вступили в силу:
Установка
Теперь мы готовы к установке CentOS Web Panel. Переходим в директорию /usr/local/src:
Куда загружаем последнюю версию установочных файлов:
Если основная ссылка не работает, то используйте следующую команду:
После чего запускаем саму установку:
Процесс установки может длиться порядка 30 минут, потому спокойно идите на кухню за чашечкой хорошего напитка (вкусы у каждого свои). Как только панель установится в консоли, Вы увидите следующее сообщение:
Не забудьте сохранить доступы, в частности пароль суперпользователя MySQL. После, согласно инструкции самих разработчиков, перезагружаем сервер с помощью кнопки ENTER. Если это результата не дало, то используем команду reboot, о которой мы вспоминали ранее. При попытке снова подключиться к серверу по SSH Вы увидите экран приветствия CWP, на котором будет отображена краткая информацию о зарегистрированных пользователях и текущей ситуации по использованию дискового пространства:
Интерфейс
Давайте зайдем в панель с помощью своего любимого браузера, используя одну из следующих ссылок, доступы те же, что и к серверу:
После успешной аутентификации мы попадаем на страничку меню Dashboard, отсюда Вы сможете управлять всеми настройками панели CWP. Мы постараемся кратко рассказать о каждом блоке панели:
- Navigation — меню навигации для просмотра различных настроек каждой службы;
- Top 5 Processes — отображает в реальном времени 5 наиболее «прожорливых» процессов на Вашем сервере;
- Disk Details — данный блок предоставляет информацию о дисках Вашей «машинки»;
- Service Status — показывает текущее состояние служб, а также дает возможность управлять ими в случае необходимости (запускать, останавливать и т.п.);
- System Stats — отображает потребление оперативной памяти, количество процессов и писем в очереди;
- Application Version — показывает версии установленных приложений, таких как Apache, PHP, MySQL и FTP;
- System Info — отображает информацию о модели процессора, количестве ядер, их частоте, версии операционной системе, времени работы сервера и т.п.;
- CWP Info — показывает какие серверы имен настроены для Вашей «машинки» в данный момент, а также отображает IP-адрес сервера и версию панели.
Стандартная настройка
Далее проведем настройку нескольких основных параметров, которые необходимы нам для работы с CWP. Для начала настроим серверы имен. Для этого идем в раздел меню DNS Functions и выбираем пункт Edit Nameservers IPs.
Указываем свои серверы имен и нажимаем кнопку Save changes. Что бы ознакомиться с инструкцией настройки DNS (BIND) воспользуйтесь следующей ссылкой, которая также доступна на страничке Edit Nameservers IPs.
Следующим шагом будет настройка «шаред» IP-адреса и почты суперпользователя — это очень важные действия для размещения сайтов на Вашем сервере. Как правило IP сервера и так уже указан, но чтобы убедиться в этом, переходим в раздел меню CWP Settings, а далее выбираем Edit Settings.
Видим, что в поле Shared IP скорей всего стоит IP-адрес Вашей «машинки» (если это не так, то укажите его), а в поле Root Email Вам необходимо указать свою почту. После указания всех необходимых данные не забываем нажать кнопку Save changes. Теперь CWP готова принять на размещение сайты.
Вы ведь помните, что панель способна предоставлять услуги хостинга. В CWP у Вас есть возможность настроить любое количество тарифных планов. Для этого переходим в раздел меню Packages и выбираем пункт Add a Package. Заполняем все необходимые поля согласно тому количеству ресурсов сервера, которые Вы готовы предоставить своим потенциальным клиента, и как обычно, не забываем применить изменения — в данном случаи нажатием кнопки Create.
Для того чтобы добавить домен в панель у Вас должна быть хоть одна учетная запись пользователя. Идем в User Accounts, выбираем New Account и создаем аккаунт. Обращаю Ваше внимание на то, что по умолчанию доступ к shell для новосозданного пользователя отключен. Советую несколько раз подумайте перед тем, как активировать данный функционал своим клиентам. Также здесь можно задать лимиты по inode для каждого юзера. После того как заполнили все поля нажимаем кнопку Create.
Теперь давайте добавим новый домен. Для этого переходим в раздел меню Domains и выбираем пункт Add Domain. Указываем необходимый домен, присваиваем его соответствующему пользователю и закрепляем все действия кнопкой Create.
Стандартно настроена панель должна потреблять небольшое количество ресурсов Вашего сервера, давайте это проверим. Для проверки потребления ОЗУ подключимся к серверу по SSH и введем следующую команду:
На экране нашей «машинки» отобразились вот такие данные:
Думаю, у Вас будет подобный результат. Как видим из общего объема оперативной памяти в 1 ГБ используется порядка половины — 522 МБ, что вполне сходится с заявлением разработчиков. Такое потребление ресурсов является довольно низким для панелей управления хостингом.
Также установка по умолчанию уже содержит последнюю стабильную версию PHP c приложением Zend Optimizer и утилитой ionCube PHP Loader, что легко проверить с помощью команды:
В консоли у Вас должна отобразиться следующая информация:
Если Вы лояльно относитесь к CentOS и порядка $13 в месяц своего бюджета хостинга (для сравнения мы взяли стоимость лицензии ISPmanager Business) готовы вложить в железо, а не софт, то панель CWP Вам должна понравиться. Возможно, как раз сейчас Вы задумываетесь о запуске своего первого хостинг-сервера, то почему бы эти средства с лицензионного ПО и в самом деле не направить на аренду более производительной «машинки», и тем самым сделать своих потенциальных клиентов немножко счастливее. Не всегда то, что бесплатно — это плохо. Не нужно бояться чего-то нового, на первый взгляд неизвестного.
Тестируйте на здоровье, и у Вас все получится!
Источник
Бесплатные панели управления хостингом. Богиня Vesta
Эти не очень популярны в наших кругах.
Вот так произошло мое первое знакомство с одной из самых популярных бесплатных панелей управления хостингом в рунете — Vesta CP. Мне бы хотелось рассказать Вам, как решение поставленных задач приводит не только к написанию туториалов, но и позволяет познакомиться с интересными людьми, которые вкладывают свою душу в то дело, которые реально приносит им удовольствие. И как следствие, мы с Вами получаем замечательный программный продукт. Ну разве это не чудесно? Приятного и конструктивного Вам чтения…
Предисловие
Так как панель Vesta и в самом деле для меня была малознакома я начал собирать информацию. Нашел несколько неплохих публикаций, в том числе на ресурсе Хабрахабр, после чего даже задумался над тем, что же еще можно рассказать об этой панели, так как материала по ней в рунете реально достаточно. Но как же все может изменить один разговор!? После прочтения хорошей статьи я решил написать автору, и узнать его мнение не только о панели Vesta, но и в целом о нише бесплатных панелей управления хостингом. На мое удивление ответ не заставил себя долго ждать, а сам диалог продолжает длиться и сейчас… Много чего удалось обсудить, но это была лишь малая часть того, о чем еще предстоит поговорить. Да, скорей всего это материал для отдельной статьи, но не будем забегать наперед и вернемся к самой панели Vesta.
Установка
Не буду изменять своим привычкам — установлю на виртуальный сервер CentOS (также панель имеет поддержку Debian, Ubuntu) и подключусь к нему по SSH. Для этого, если Вы используете MacBook, запускаем Терминал и вводим следующую команду:
Подтверждаем подключение, указываем пароль суперпользователя, и после всех этих действий мы попадаем в консоль. Если Вы пользователь Windows, то используйте для работы с сервером эмулятор терминала PuTTY.
Далее загружаем на сервер необходимые установочные файлы с помощью команды:
Перед тем, как приступить к самому процессу установки, хотелось бы сообщить, что установщик панели автоматически классифицирует серверы на следующие 4-е группы:
- micro — менее 1 ГБ ОЗУ;
- small — менее чем 3 ГБ ОЗУ;
- medium — менее 7 ГБ ОЗУ;
- large — более чем 7 ГБ ОЗУ.
В зависимости от технических характеристик Вашего сервера, в данном случае количества оперативной памяти, установщик автоматически произведет установку определенного набора пакетов и конфигов панели Vesta. Например, пакет антивирусов будет корректно работать (согласно рекомендаций разработчиков) начиная с версии medium, а поддержка php cgi, в свою очередь, доступна для всей группы серверов кроме micro. Но ничего не мешает Вам установить недостающее программное обеспечение вручную.
Продолжаем процесс установки панели, для этого запускаем скрипт с помощью команды:
На экране Вы должны получить следующее сообщение:
Подтверждаем свои действия с помощью клавиши y (yes). Далее необходимо будет указать свой email:
После чего установщик может запросить ввести имя хоста:
Сам же процесс установки может занят около 15 минут. Немного забегая вперед, хотелось бы сказать, что если Вы устанавливаете панель Vesta на один сервер, то ввод всех необходимых данных во время установки не должен занять много времени. Но если же Вам необходимо подготовить несколько десятков серверов с данной панелью, совсем недавно один из наших клиентов поставил такую задачу, то советуем запустить установочный скрипт с ключом h (help):
И ознакомиться с полным списком доступных опций:
Которые, в свою очередь, позволят произвести установку «под себя», а также помогут ускорить процесс настройки целого «автопарка машинок». Самый простой способ пропустить ввод дополнительных данных во время установки панели — это деактивировать интерактивный режим, как следствие запустить установочный скрипт с ключом y (interactive) и параметром no.
Если есть еще и желание самостоятельно задать пароль доступа к панели, то добавьте ключ p (password) со своим вариантом пароля:
Для тех пользователей кому не в кайф проводить «разбор полетов» в консоли разработчики сделали удобный веб-конфигуратор опций, что значительно упрощает процесс кастомной установки. Просто в секции Advanced Install Settings задаем необходимые параметры, после чего нажимаем кнопку Generate Install Command и вставляем уже готовую команду в консоль. Как Вам такой вариант установки?
После завершения установки на экран выведется следующее сообщение:
Веб-интерфейс
Ну что, Вы готовы к встрече с «богиней»? Тогда открываем браузер и авторизируемся в панели. Обращаю Ваше внимание на то, что имя пользователя — admin.
Сразу после входа мы попадаем на страничку USER и видим информацию пока что о единственном пользователя admin с правами системного администратора. Если кому-то более приятно работать с русским интерфейсом, то открываем настройки пользователя admin и в поле Language выбираем необходимый язык. Не забываем нажать кнопку Save, чтобы сохранить изменения.
Также в работе с панелью очень помогают горячие клавиши (SHORTCUTS), которые упрощают навигацию по меню и позволяют производить управления с помощью клавиатуры. Для открытия списка всех доступных SHORTCUTS воспользуйтесь клавишей h на клавиатуре или одной из кнопок в правом нижнем углу экрана.
Пользователи
Для повышения безопасности разработчики не рекомендуют осуществлять управление сайтами из под пользователя admin, потому давайте создадим нового юзера. Переходим в меню USER и нажимаем зеленую круглую кнопку с плюсом (ДОБАВИТЬ АККАУНТ). Не забываем, что это также можно делать с помощью горячих клавиш, предыдущий скриншот должен подсказать, что в этом нам поможет клавиша — a.
Здесь Вы можете указать язык интерфейса для пользователя, а также его почтовый ящик, на который будут отправлены доступы. После заполнения необходимых полей, нажимаем кнопку «Добавить». Как следствие в меню USER у нас будет уже два пользователя и воспользовавшись клавишей ВОЙТИ КАК мы можем авторизироваться под нужным нам юзером. Стоит добавить, что разработчики позаботились о «большой миграции народов» и предоставили возможность переноса пользователей с одного сервера на другой.
Домены
Теперь можем добавлять свой сайт. Для этого переходим в меню WEB и с помощью клавиши a вызываем окно, в котором заполняем необходимые данные.
Сразу рекомендую раскрыть ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ и активировать дополнительный FTP-аккаунт, заполнив соответствующие поля. А для любителей статистики есть также возможность подключения Вашего ресурса к Webalizer или AWStats.
Базы данных
Пришла очередь создать базу данных (БД) для Вашего проекта. Все довольно просто — идем в меню DB и снова с помощью горящей клавиши a вызываем окно, где заполняем необходимые поля.
Не забываем все внесенные данные сохранить с помощью кнопки «Добавить». Далее можете спокойно заливать на хостинг нужную CMS или скрипт, на котором будет «крутиться» Ваш проект, и проводить дополнительную настройку для выпуска сайта в продакшн.
Администрирование СУБД MySQL осуществляется с помощью веб-приложения phpMyAdmin, кнопка запуска которого появится в меню DB сразу после создания хоть одной БД.
Также панель Vesta позволяет размещать БД на удаленном сервере, как вариант можно построить решение из нескольких веб-серверов и осуществлять их обслуживание с помощью одного более производительного сервера.
Почта
Вот на дополнительной настройке можно остановиться более подробно, и, пожалуй, начнем мы с почты, а точнее — с настройки почтового домена. Если мы перейдем в меню MAIL, то увидим, что у нас уже есть почтовый домен, который создался автоматически вместе с добавлением самого домена в панель.
При редактировании данных этого домена обратите, пожалуйста, внимание, что в поле «Ловушка почты» Вы по желанию можете указать почтовый аккаунт (не обязательно локальный) куда будет перенаправляться почта с несуществующих аккаунтов. По умолчанию там указан файл /dev/null, что означает лишь одно — вся поступающая почта должна удаляться.
Поехали дальше, настала очередь создать почтовый ящик. Выбираем необходимый почтовый домен и нажимаем кнопку ДОБАВИТЬ АККАУНТ.
Здесь можете раскрыть вкладку ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ и указать квоту по размеру почтового ящика в МБ, а также аккаунт для переадресации почты. Как обычно сохраняем указанные данные с помощью кнопки «Добавить».
Для работы с электронной почтой используется клиент Roundcube, кнопка которого (ОТКРЫТЬ ВЕБ-ПОЧТУ) становиться доступной в меню MAIL сразу после заведения в панель хотя бы одного почтового домена.
Наверное одним из самых сложных моментов работы с панелью управления хостингом для начинающих пользователей есть настройка DNS. Но и здесь команда разработчиков попыталась максимально упростить задачу, создав шаблон. После того, как мы произведем нужные настройки на стороне регистратора доменного имени, необходимо в меню DNS для конкретного домена нажать кнопку РЕДАКТИРОВАТЬ.
И в поле Шаблон выбрать child-ns, а затем сохранить изменения.
После чего из под пользователя admin зайти в меню Пакеты.
И редактировать пакет default, указав при этом серверы имен своего домена.
Также одной из возможностей панели есть создание DNS кластера, что позволит зонам автоматически копироваться на другие серверы.
В разделе меню CRON можно ознакомиться со всем списком заданий и в случае необходимости внести в него изменения (добавить/удалить/заблокировать задание).
Резервное копирование
Панель управления Vesta имеет удобный веб-интерфейс для настройки резервного копирования на удаленный FTP/ SFTP сервер. Для этого переходим в меню BACKUP и с помощью клавиши a запускаем создание нового архива, на экране выведется следующее сообщение:
После того, как Вы получите уведомление на свой почтовый ящик, вернитесь в данное меню и с помощью кнопки СКАЧАТЬ сохраните бэкап на локальном компьютере. Также данный функционал доступен из консоли.
Безопасность
Как Вы может уже заметили, панель имеет фаервол, а также поддержку Fail2ban, который автоматически будет пресекать подбор паролей по разным протоколам (FTP, SSH), и в том числе к самой панели Vesta. Для настройки фаервола необходимо из под пользователя admin выбрать соответствующий пункт меню.
Где, с помощью доступного функционала, есть возможность провести необходимую настройку, в том числе и для Fail2ban.
Отчеты
В панеле управления Vesta очень хорошо реализован сбор статистики и разных данных, которые могут помочь Вам в анализе работы Вашего сервера. Например в меню Сервер Вы можете посмотреть, какой объем оперативной памяти потребляет тот или иной процесс.
Также, если Вы захотите изучить показатели процессора(ов), памяти, сети, диска(ов) и т.п., то сможете получить более развернутые данные по разным параметрам: технические характеристики сервера, какие запросы отправляются на веб-сервер и в БД, есть возможность сделать отчет по отправленным письмам и многое другое.
Не стоит забывать о графиках нагрузки, которые также могут помочь Вам в анализе работы сервера.
А для тех, кому этого недостаточно, есть возможность просмотра логов доменов вживую — меню WEB, кнопка ПОСМОТРЕТЬ ЛОГИ.
В панели Vesta есть API, который можно использовать в качестве фреймворка для создания собственных интерфейсов. Например Вы можете создать площадку блогов или интернет магазинов. Как сообщили мне разработчики, несколько их крупных клиентов используют панель именно таким образом.
Обновления
Обновления панели управления Vesta могут проходить автоматически, но эта функция по умолчанию отключена. Все управление обновлениями осуществляется через соответствующее меню.
Когда выходит обновление, пакеты в данном разделе меню начинают подсвечиваться красным, а также появляется кнопка Обновить. При необходимости Вы делаете один клик и все готово.
Немного терпения и я вместе с Вами загляну в ближайшее будущее «богини». Вы ведь хотите увидеть какие «плюшки» готовят для Вас разработчики в ближайшем релизе панели Vesta?
Плюшки
Думаю, практически каждый программный продукт имеет свои особенности. О некоторых из них мы уже упомянули ранее, а вот есть те, которые я специально оставил на «десерт».
В свое время ребята выпустили несколько платных расширений, что б хоть как-то покрыть расходы по поддержке и разработке данной панели.
Первый из них — это волшебный, другим словом я просто не смогу передать удобство его UI, файловый менеджер. Как только Вы активируете плагин, появится пункт меню Файлы, при переходе на которое, откроется следующее окно:
Согласен, что первое впечатление может быть немножко преувеличено, но Вы ведь еще не видели набор доступных SHORTCUTS и даже не начали работать с самим менеджером файлов, правда?
Команда разработчиков и не скрывает, что горячие клавиши были заимствованы из великолепного файл менеджера GNU Midnight Commander. Ну правда, а почему не приметь то, что реально удобно? И поверьте мне, у Вас будет возможность убедится в этом самостоятельно.
Вторым платным расширением является SFTP Chroot. Этот плагин может быть более интересен тем из Вас, кто предоставляет услуги хостинга, а также делит свой сервер с другими пользователями. Далее мне бы хотелось привести цитату самого разработчика, касательно данной дополнительной «фичи» для повышения безопасности:
FTP протокол небезопасен, поскольку все пароли передаются в чистом виде без шифрования. Сидя в кафе на публичном Wi-Fi, есть риск, что данные кто-то перехватит. Чтобы включить SFTP, нужно выдать пользователю системный шелл, однако, это позволит юзеру просматривать не только его собственные каталоги, но и системные, вроде /etc, /sbin или /bin. Это не проблема, если сервер используется 2-3 разработчиками. А вот когда уже идет речь о том, чтобы выдать доступ людям, к которым нет полного доверия, появляется дилемма. Модуль SFTP Сhroot помогает ее решить. Если модуль активирован, то на всех аккаунтах без реального шелла (/sbin/nologin), включается особый режим SFTP соединения. Такие аккаунты могут увидеть файлы только в своей домашней директории и все.
После активации данного расширения необходимо для конкретно взятого пользователя в настройках аккаунта выбрать из выпадающего списка нужный параметр, как показано на скриншоте ниже:
Вы еще думаете над тем, какую панель выбрать? Тогда я продолжаю, и перехожу к самым «вкусным плюшкам» ближайшего релиза панели Vesta.
Появятся дополнительные горячие клавиши, которые позволят полностью управлять панелью с помощью клавиатуры — это ведь круто.
Также появится возможность получить бесплатный SSL сертификат от проекта Let’s Encrypt буквально в один клик. И как заверил меня сам skid это функционал уже на финальной стадии тестирования.
Не стану раскрывать всех деталей грядущего релиза, а лучше оставлю немного «пищи для размышлений» Вам, дорогие наши читатели. Все детали в конце публикации.
В качестве благодарности хочу перечислить по имени каждого из команды разработчиков этой поистине «богини»:
- Дмитрий Наумов — UI, тот самый интерфейс, который мы все любим: простота и удобство;
- Дмитрий Малышев — JS, то без чего взаимодействие с интерфейсом не было бы интерактивным;
- Антон Реутов — поддержка пользователей, тестирование, разбор и сортировка багов;
- Павел Галкин — поддержка пользователей, тестирование;
- Сергей Родин — человек, который поведал мне все «тайны» этого замечательного программного продукта.
А также сообщить, что в разработке данного продукта принимают участие люди из разных уголков мира, о чем свидетельствует количество языковых версий панели, а также статистика аккаунта на проекте GitHub. Да и сами разработчики признают, что приятно удивлены интересом и желанием некоторых пользователей поддержать их проект.
Источник