YunoHost:用于自托管的基于Debian的多合一服务器

时间:2020-03-21 11:48:49  来源:igfitidea点击:

YunoHost是基于Debian的多合一服务器操作系统。
它的主要目的是使每个人都可以访问自我托管。
使用YunoHost,我们只需单击几下鼠标,即可轻松托管自己的邮件服务器,Web服务器,LDAP服务器,DNS服务器,备份服务器,CMS平台(如wordpress)或者任何其他东西。
我们可以将其托管在家庭服务器或者任何VPS上。
它是完全免费和开源的。
源代码在GitHub中可用。

YunoHost是一个最小的Linux发行版,随附以下应用程序集:

  • Nginx:Web服务器
  • Postfix:SMTP电子邮件服务器
  • Dovecot:IMAP和POP3电子邮件服务器
  • Rspamd:电子邮件垃圾邮件过滤
  • 节拍器:XMPP服务器
  • OpenLDAP:LDAP服务器
  • Dnsmasq:DNS服务器
  • SSOwat:单点登录(SSO)Web认证系统
  • Let’s Encrypt :一个证书管理器

可以通过Web界面安装和配置上述所有软件。
另外,YunoHost带有一个应用程序系统。
该应用程序系统不过是经过验证的帮助程序脚本的社区存储库,用于安装其他服务或者Web应用程序,例如WordPress,Roundcube,phpMyAdmin,TinyTInyRSS等。
我们可以在此处查看正式的YunoHost应用程序的完整列表。

YunoHost的功能

关于YunoHost的功能,我们可以列出以下内容:

  • LDAP集成的多用户支持,
  • 多域支持,
  • 电子邮件系统,
  • 即时通讯服务器,
  • 单一登录(SSO),
  • 一个应用系统,
  • 备用系统
  • 再生配置服务系统,
  • 还有很多。

安装YunoHost

YunoHost可以作为独立版本使用,也可以将其安装在现有Debian操作系统之上。
另外,我们可以下载YunoHost Vagrant盒子和Raspberry Pi图像。
可以从下面的链接下载所有安装镜像。

出于本教程的目的,我将使用YunoHost ISO镜像。
下载ISO镜像后,按照以下链接中的说明制作可启动的U盘或者SD卡。

  • Etcher –创建启动SD卡或者U盘的漂亮应用程序

使用可引导驱动器引导系统。
以下引导消息将为我们打招呼。
选择“图形安装”,然后按Enter。

选择用于安装过程的语言,然后按Enter。

选择位置,然后按Enter。
所选位置将用于设置时区。

选择要使用的键盘映射。

现在,将开始YunoHost基本安装。
如果启用了DHCP,则将自动配置所有网络设置。
如果没有,我们将必须手动配置它们。

接下来,选择要其中安装引导加载程序的硬盘。
如果我们有多个硬盘,则需要选择正确的硬盘(当然,如果我们有多个硬盘)。

安装引导加载程序后,系统将自动重新引导。

以“ root”用户身份登录。
root用户的默认密码是“ yunohost”。

YunoHost帖子安装

安装任何发行版之后,我们应该做的第一件事就是对其进行更新。
由于YunoHost基于Debian,因此与Debian兼容的命令将在YunoHost中起作用。

要更新YunoHost,只需运行:

# apt-get update
# apt-get upgrade

现在,在任何远程系统中打开Web浏览器,然后导航到http://yunohost_ip /。
我们将看到安全证书警告。
只需将yunohost服务器的IP地址添加到例外列表中即可忽略。
然后,将显示一个欢迎页面。
单击开始以继续。

如果选择基于Web的安装后配置,则将要求我们选择域名。
这是链接到YunoHost服务器的第一个域名,也是服务器用户用来访问身份验证门户的域名。
因此,每个人都可以看到它,因此请谨慎选择。

  • 如果我们已经注册了域名,请选择第一个选项,例如:我已经有一个域名并输入。例如,theitroad.com。
  • 如果我们不拥有域名,并且不希望使用.nohost.me或者.noho.st,则可以使用本地域。例如,我们可以使用诸如theitroad.local之类的东西。然后,将路由器配置为将本地域名重定向到服务器。
  • 如果我们还没有注册域,或者要使用YunoHost的DynDNS服务,请选择.nohost.me或者.noho.st的子域(即testtheitroad.nohost.me)。为此,请选择第二个选项,然后输入我们选择的域名。该域将自动配置,并且我们不需要任何其他配置步骤。

由于这只是测试环境,因此我选择theitroad.local作为我的域名。

接下来,为YunoHost的Web仪表板设置管理员密码,然后单击GO继续。

YunoHost将开始配置所有必要的服务。
这将需要几秒钟才能完成。

最后,输入我们在上一步中刚刚创建的管理密码,然后单击“登录”。

这就是YunoHost的Web仪表板的样子。

其中我们可以创建,删除和管理用户,域,安装应用程序,配置服务等。
此外,我们还可以检查服务是否正在运行,监视系统,磁盘和网络活动,备份用户数据,邮件,配置文件等等。

或者,我们可以运行以下命令来完成安装后的步骤:

# yunohost tools postinstall

输入主域并设置新的管理密码,然后按Enter以完成配置。

Main domain: theitroad.local
New administration password: 
Confirm new administration password: 
Success! LDAP has been initialized
yunohost.org
Success! The configuration has been updated for service 'ssl'
Generating a 2048 bit RSA private key
.........................................................+++
..........................................+++
writing new private key to '/usr/share/yunohost/yunohost-config/ssl/yunoCA/ca/cakey.pem'
----
Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....done.
Success! Successfully installed a self-signed certificate for domain theitroad.local!
Success! The domain has been created
Success! The main domain has been changed
--2016-03-15 14:13:08-- https://app.yunohost.org/official.json
Resolving app.yunohost.org (app.yunohost.org)... 37.187.18.36
Connecting to app.yunohost.org (app.yunohost.org)|37.187.18.36|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 28122 (27K) [application/json]
Saving to: ‘/var/cache/yunohost/repo/yunohost.json.tmp’
/var/cache/yunohost 100%[=====================>] 27.46K 48.2KB/s in 0.6s
2016-03-15 14:13:16 (48.2 KB/s) - ‘/var/cache/yunohost/repo/yunohost.json.tmp’ saved [28122/28122]
Success! The app list has been fetched
Success! The SSOwat configuration has been generated
Success! The administration password has been changed
Success! The firewall has been reloaded
update-rc.d: error: no runlevel symlinks to modify, aborting!
Success! The configuration has been updated for service 'glances'
Success! The configuration has been updated for service 'nslcd'
Success! The configuration has been updated for service 'metronome'
Success! The configuration has been updated for service 'postfix'
Success! The configuration has been updated for service 'rspamd'
Success! The configuration has been updated for service 'nginx'
Success! The configuration has been updated for service 'rmilter'
Success! The configuration has been updated for service 'dnsmasq'
Success! The configuration has been updated for service 'fail2ban'
Success! The configuration has been updated for service 'mysql'
Success! The configuration has been updated for service 'avahi-daemon'
Success! The configuration has been updated for service 'dovecot'
Success! The configuration has been updated for service 'nsswitch'
Success! The configuration has been updated for service 'slapd'
Success! The configuration has been updated for service 'ssh'
Success! YunoHost has been configured

从命令行管理YunoHost

YunoHost也可以从命令行进行管理。

首先,我们需要通过SSH与YunoHost服务器连接。
默认情况下,禁止SSH根访问。
创建常规用途,通过SSH连接,然后切换到root用户。

$ssh Hyman@theitroad

Yunohost的典型用法是:

# yunohost -h -v

管理域的命令:

# yunohost domain [-h] {info,add,list,remove}

管理监视的命令:

yunohost monitor [-h] {enable,network,show-stats,update-stats,disk,system,disable}

管理服务的命令:

# yunohost service [-h] {status,start,enable,log,stop,disable}

管理防火墙的命令:

# yunohost firewall [-h]{installupnp,checkupnp,list,stop,disallow,reload,allow,removeupnp}

管理备份的命令:

# yunohost backup [-h] {init} ...

管理应用程序的命令:

# yunohost app [-h] {map,ssowatconf,install,checkport,listlists,removelist,info,upgrade,service,fetchlist,checkurl,list,remove,removeaccess,setting,initdb,addaccess}

管理用户的命令:

# yunohost user [-h] {info,create,list,update,delete} ...

有关更多详细信息,请参阅本教程末尾提供的文档页面。

建议阅读:

  • M23 – Linux的开源软件部署和管理系统

YunoHost确实是一种多合一服务器解决方案,可简化服务器和Web应用程序的部署。
这适用于测试和开发环境以及希望立即部署服务器的懒惰Linux管理员。