像装应用一样轻松自建服务:YunoHost使用指南|少数派会员π+Prime

双十一期间,少数派会员正在限时特惠中,你可以通过下方二维码以「交个朋友」的优惠价订阅少数派Prime会员。

我们在近期完成了少数派会员第二季实体周边的制作,现在加入年付会员,即可获得专属福利礼包。

针对这个问题,很多教程会推荐使用Docker来绕过繁琐的部署流程。这固然不失为一种捷径,但也有一些不可忽视的缺陷,例如占用资源和空间较多、自主修改配置较麻烦等。从学习的角度来说,尽管表面上省事了,但也因此错过了实践软件包管理、服务器维护等基础知识的机会;一旦日后出现问题,「欠下的课总是要补回来的」。

本质上,YunoHost是基于Debian的发行版,但专门面向自托管开源服务的场景设计,不仅提供了美观、易用的网页端前后台界面,而且有一个社区维护的「应用商店」,把繁琐多变的服务部署流程简化为几次鼠标点击。

接下来,本文就将结合使用经验,依次介绍YunoHost的安装和配置,并就服务安装、日常使用等方面提出建议。

YunoHost主要有两种安装方式:既可以下载完整的ISO镜像,直接在一台x86或ARM架构的裸机(包括树莓派等开发板)上全新安装;也可以先准备一个干净的Debian11系统,然后运行安装脚本当作补丁安装。

考虑到公网访问的便利,本文重点演示第二种方式,在一台新创建的VPS(云主机)实例上通过安装脚本安装。其实,对于局域网环境、实体硬件上安装的情况,大多数步骤和描述也可以套用,只是需要额外考虑公网转发的问题。

首先,前往VPS服务提供商的面板,新建一个VPS实例。实例的配置参考如下:

安装过程中,会询问是否允许安装程序覆盖现有的一些配置文件,使用方向键和回车选择Yes或Installthepackagemaintainer’sversion等选项,即接受YunoHost安装程序的更改。

安装完成后,打开浏览器,直接访问VPS实例的IP地址(如果在局域网环境安装,可以使用保留域名yunohost.local)。

此时,大多浏览器会提示证书错误,这是因为目前尚未安装SSL证书,YunoHost临时安装了一个自签名的证书,点击「继续访问」或类似按钮,忽略错误继续访问即可。

接下来需要为YunoHost配置域名(下称「默认域名」)。这里,你既可以注册一个YunoHost免费分配的子域名,也可以使用自己持有的域名,下面分别介绍。

如果你没有(或者不想占用)自己的域名,YunoHost也非常贴心地提供了三种简洁好记的免费子域名:yourname.noho.st、yourname.ynh.fr或yourname.nohost.me,其中yourname是可以自主选择的部分。

如果你想自托管多种服务,或许会顾虑一个子域名不够用。其实,只要你申请了一个免费子域名,它的所有下级子域名也都是属于你的,并且可以在YunoHost中直接使用。例如,你申请了yourname.noho.st,就可以用blog.yourname.noho.st来做博客,用forum.yourname.noho.st来做论坛。

如果你已经有一个域名,并且希望将其用于YunoHost,则选择Ialreadyhaveadomainname,填写要分配给YunoHost的域名即可。

这里,你可以把整个域名都作为默认域名(如yourname.tld),也可以把它的一个子域名作为默认域名(如ynh.yourname.tld)。

显然,如果用自有域名作为默认域名,需要为其配置DNS解析。具体界面和步骤取决于你的DNS服务提供商,这里只介绍通用原则。注意,DNS解析设置不一定要在添加域名之前就完成,也可以先添加域名再设置解析,只是在设置完成前无法用该域名访问YunoHost。

为安装YunoHost目的,主要涉及的DNS记录包括:

此外需要注意:

下图演示的是用Cloudflare的DNS服务添加一条默认域名的A记录:

添加完默认域名后,安装向导会提示设置一个管理员密码,完成后,会自动跳转到后台页面。到这里,安装后的初始配置就告一段落了。

目前,我们还有一个遗留的域名问题没解决——默认域名的证书目前仍然是自行签署的,浏览器并不承认。为了解决这个问题,我们需要安装一个免费的Let’sEncrypt证书。

首先,在后台页面依次点击Domains>[默认域名]>Certificate。

注意到此时InstallaLet’sEncryptcertificate按钮是灰色无法点击的状态。这其实是YunoHost的一个流程设定:新添加的域名必须先诊断DNS配置是否完整,然后才能申请证书。

为此,点击按钮上方提示语中的diagnosispage链接(实际上就是跳转到后台页面首页的Diagnosis功能模块),耐心等待诊断完成。

对此,根据提示信息补全相应的记录即可。当然,如果你确认用不上依赖这些缺失记录的服务,那么也可以直接忽略。

现在再回到Certificate页面,就会发现安装证书按钮可以点击了。安装完证书以后,再用浏览器访问默认域名就不会报错。(Let’sEncrypt证书的有效期为90天,但YunoHost会在届满前自动续期,一般不用人工干预。)

为此,在后台首页点击Users>NewUser,然后输入用户名、密码等完成创建。

至此,我们就完成了全部的准备工作,可以正式开始安装软件了。这里,我们以自托管最常见的需求——搭建博客为例,演示如何安装WordPress。

首先,你需要考虑用什么地址来托管服务。大多数软件都同时支持安装在(a)子域名(例如blog.yourname.tld)、(b)子路径(例如yourname.tld/blog)或(c)子域名与子路径的组合(例如www.yourname.tld/blog)上,如何选择主要是一个偏好问题;但也有部分软件只支持用单独的子域名安装。

这里,我们假设你准备用子域名blog.yourname.tld来安装WordPress。为此,需要将这个子域名添加到YunoHost中(使用子路径则没有这个步骤)。

方法是,在后台页面点击Domains>Adddomain,然后输入准备使用的完整子域名,点击Add即可。

接着,在Domains页面点击刚刚添加的子域名,按之前配置默认域名时相同的流程,完成诊断和添加证书。

准备好了子域名,现在就可以安装WordPress了。在后台页面点击Applications>Install,进入YunoHost的软件目录。

这里,我们直接通过搜索找到WordPress,然后点击Install按钮进入安装设置。

不同软件的设置内容大同小异,比较重要的几项是:

(这些设置之后都可以在后台的Applications模块再次调整。)

完成设置后,点击下方的Install按钮,等待安装完成,就可以通过blog.yourname.tld来访问自己的WordPress博客了。

另外,如果你想安装的软件未被官方收录,仍然可以通过目录中两个特殊的软件,借用YunoHost的框架来统一管理:

自托管过程中,经常遇到的两大难题就是怎样更新软件包以及备份或还原服务器配置。这两项任务能否及时、高效地完成,很大程度上决定了自托管的体验和数据的安全性。

对此,YunoHost都提供了较为完善的解决方案:

系统和软件更新在后台首页点击Systemupdate,即可同时检查系统软件包(即通过apt软件仓库安装的各项依赖和库)和应用程序(即通过YunoHost安装的各项服务)的更新,如果有更新可安装,点击相应位置的Update按钮即可。

备份和恢复在后台首页点击Backup,即可浏览或者创建服务器备份。其中,YunoHost会在系统或软件升级时自动备份对应的文件;你也可以点击Newbackup按钮,选择特定的配置或软件创建手动备份。

点击某一个备份记录后,可以选择下载、恢复等操作。这些备份位于服务器上的/home/yunohost.backup/archives/路径下;如果需要跨服务器进行迁移和恢复操作,将备份文件上传到待恢复服务器的这个路径即可。

admin用户的权限足以运行YunoHost体系下的各项管理和维护功能,但不能直接修改系统文件,例如/etc下的各项配置文件、/var/www下各已安装应用的源文件。如果需要修改这些文件,可以临时使用sudosu命令切换到root身份(但此时需要留意所创建和修改文件的权限)。

前台用户和访客的权限都可以通过Users>Managegroupsandpermissions页面进行细粒度的调节。例如:

尽管YunoHost的主要卖点就在于用简明的网页前端代替了手工操作,但那毕竟不是万能的。出于配置和维护等目的,我们仍然需要不时通过SSH连接到服务器,直接在命令行环境下进行操作。

#安装WordPressyunohostappinstallwordpress#允许用户jonedoe访问SSHyunohostuserpermissionaddsshjohndoe#为your.domain.tld域名安装证书yunohostdomaincert-installyour.domain.tld更具体的用法可以用manyunohost或在特定子命令之后附加--help参数查阅。

尽管优点鲜明,YunoHost也不是没有缺点。

首先,作为一个自托管服务的框架,YunoHost的友好和易用是有边界的——仅限于它自成一体的「方法论」之内。尽管并没有明确不兼容的软件,但由于YunoHost会对系统的权限管理和配置方式作大量「自行其是」的调整(其中有些调整是否合理还是可以商榷的),想要跳脱出它的框架安装别的软件,往往就要费一番周折。

此外,YunoHost底层的Debian是一个以稳定为第一要务的系统,软件的更新往往大幅滞后于上游,这决定了它不太适合处理服务器功能以外的日常桌面工作。

由于上述因素,如果使用YunoHost,就要做好将一台机器完全「奉献」给它的准备;这也是YunoHost相比于Docker这类容器方案的劣势所在。

最后,尽管自托管和开源总体而言是值得提倡的,但也不应该一股脑地把惯用的工具都换成自托管版本。

THE END
1.轻松签app下载合集轻松签app下载大全轻松签app下载合集是一个提供了各种轻松签相关应用程序的下载资源集合。在这个大全中,你可以找到各种不同类型的轻松签应用程序,以满足你的需求。app提供了简单易用的界面和功能,让你能够轻松地创建、编辑和签署文档。app通常适用于个人用户和小型企业,能够满足日常的签署需求。? http://www.manmankan.com/app/qsqappxzhj/
2.A60腾讯文档下载首派A60腾讯文档3.8.12免费下载多种Word/Excel模板,随时随地满足办公需求,轻松提升效率。支持自主设置文档权限,更有云端存储加密技术不会下载和安装?来看Android教程吧 首派A60 腾讯文档用户评分:很好 发表点评: 表情 验证码: 用户https://sj.zol.com.cn/apanda/a60/detail_179032.shtml
3.不定期更新免费签在线安装全能签轻松签万能签GBOX魔力签喵喵签4.选择你要安装的签名安装工具,进行安装。这里可以改应用名和标识。 5.重点:下载证书导入工具,进入全能签/轻松签/等其他工具,点设置-导入文件。最终证书里显示有效即可使用。 签名时,选择刚导入等证书 安装上签名工具后,之后就是具体应用签名,参考以下: https://www.jianshu.com/p/c73139f67818
4.炸裂!轻松签+终于支持TrollStore巨魔2用户安装了!小声哔哔轻松签官网(使用Safari浏览器打开网址) https://esign.yyyue.xyz/ 轻松签是一款免费的手机 IPA 签名工具,能够帮助我们非常方便对 IPA 文件进行签名,完全免费使用,且使用简单、功能丰富,是非常值得推荐的 IPA 签名安装工具。 购买个人证书(复制到浏览器打开) https://www.shangyexinzhi.com/article/17276286.html
5.轻松签免费源ios在线一键生成苹果书签桌面应用图标一门APP开发平台提供IOS免签封装,IOS免签打包,苹果免签打包,网站免签打包,轻松签免费源ios,不显示网址,一次生成永久有效,IOS桌面快捷方式图标,在线一键制作苹果桌面快捷方式,生成配置文件,IOS免签快捷封装,安装描述文件可挂载到自己服务器,自有域名安装。http://iosmianqian.yimenapp.com/webclip-225.html
6.轻松签APP下载轻松签最新安卓版v4.8.2ios「轻松签+」A12+和「轻松签+」iOS15+两个版本都可以安装。 知道自己的手机应该安装哪个版本后,直接点击对应的版本按钮。 可能大家很奇怪,为什么安装完了,安装的是叫「JetSign」的?它就是轻松签的安装器,实际上不要签名的轻松签并不能直接安装。 打开它,点击「轻松签+」,安装「轻松签+」 几秒种后返回桌面就https://www.shangfenbao.com/app/19092.html
7.谷歌市场(GooglePlayStore)v5.12.10破解版+安装器·新增选项,轻松添加NFC功能的信用卡 谷歌市场(Google Play Store)安装说明: 破解版商店安装步骤: 1、安装最新版本的幸运破解器 2、运行幸运破解器,按出菜单,然后选择“Patch to Android”中文版为“Android核心修正” 3、选择后弹出的菜单 打勾“签名验证始终应用”和“禁用邮编签名验证”英文版为“Signature Verifyhttps://bbs.oneplus.com/thread/985207
8.电脑签名软件「轻松签+」的使用体验比「TrollStore」好挺多几秒钟后,返回桌面,您将看到已安装的“Easy Sign+”。 接下来你可以用它来安装IPA。 3.安装IPA 下面我以“爱月书香”的安装为例进行演示。 首先,将IPA下载到您的手机上。 操作:将下载链接复制到Safari浏览器打开并下载。 然后打开“易签+”-“设置”-“导入文件”,在这里可以找到刚刚下载的IPA文件(如果需要https://www.rjtj.cn/news/show-3943.html
9.轻松安装踏频器,科学骑行安装踏频器其实超简单!先把胶圈套上,然后贴上橡胶垫,接下来把踏频器放在非传动侧曲柄处,最后把胶圈绑回去就OK啦!绑定手机或码表也是小case,用蓝牙就能轻松连接。我选择了行者app,速度和踏频两种模式任你选,哪个更适合你一目了然。使用体验超赞!整个安装流程不到3分钟,连接稳定不断联。数据准确https://mbd.baidu.com/newspage/data/dtlandingsuper?nid=dt_3614078842798999578
10.OxygenxmlEditor26.0x64Enterprise破解版注册码+图文教程高级WSDL编辑器可帮助您编辑提供内容完成功能的WSDL文档,专门的Outline视图以及对生成文档的支持。您可以使用XML编辑器的WSDL SOAP Analyzer集成工具轻松验证远程Web服务服务器是否接受定义的SOAP消息。 软件功能 1、智能XML编辑 上下文相关的内容完成助手会更改您编辑文档的方式,并帮助您始终保持内容的有效性。 2、在主http://www.sd173.com/soft/7821.html
11.巨魔安装轻松签+,轻松签加巨魔的综合体。可以改图标加插件,值得一巨魔安装轻松签+,轻松签加巨魔的综合体。可以改图标加插件,值得一试!#trollstore #trollstore2 #ios #巨魔 #教程来了 - TrollStore2.0于20240422发布在抖音,已经收获了54个喜欢,来抖音,记录美好生活!https://m.douyin.com/share/video/7360585139497209142
12.windows2003服务器IIS设置方法在“Internet服务管理器”中,右击网站目录,选择“属性”,在网站目录属性对话框的“主目录”页面中,点击[配置]按钮,弹出“应用程序配置”对话框,在“应用程序映射”页面,删除无用的程序映射。如果需要这一类文件时,必须安装最新的系统修补补丁,并且选中相应的程序映射,再点击[编辑] 按钮,在“添加/编辑应用程序扩展名https://www.jy135.com/diannao/334892.html
13.樱花内网穿透docker安装樱花穿透进行域名解析部分笔记本电脑安装Docker后出现蓝屏,重启,wifi不可用等BUG 基础配置 先决条件 Windows版本 快捷键Win+i——系统——系统信息(下拉到最后) 查看Windows版本 Windows 10 版本 22H2 及以上 或 Windows 11 才能使用以下命令 启用虚拟化 快捷键Ctrl+Alt+Del——任务管理器——性能 https://blog.51cto.com/u_16099212/11529946
14.超强视频编辑软件HitFilmPro集成AE+PR+Mocha+800个滤镜轻松修改,平衡和混合曲目 – 或通过静音和独奏功能精确控制单个元素。转场:使用HitFilm Pro的溶解,推送,幻灯片,分割,广角,缩放,淡入淡出或虹膜过渡特征之一,在镜头之间进行平滑过渡或令人大跌眼镜的过渡。您甚至可以在合成镜头或编辑器时间轴内构建自己的过渡类型。 专用修剪器:使用HitFilm Pro的专用编辑修剪器使您的https://xycost.com/archives/84933
15.360安全浏览器(手机/Pad版)-- 覆盖安装后,自动全屏的问题 -- 娟娟壁纸网图片下载失败的问题 [2016-03-08] 360安全浏览器(内核版) 发布V7.0.0.7版 1、网页文本选择时增加全选选项 2、解决用户反馈问题 [2016-03-02] 360安全浏览器(内核版) 发布V7.0.0.6版 1、优化亮度调节功能 2、优化360账号注册及登录功能 3、优化首屏与宫格https://mse.360.cn/update.html
16.Pro14Enterprise(全能pdf编辑器)v14.34.1.064位中文安装新的OneDrive for Business连接器使您可以将PDF直接保存到OneDrive,从而轻松创建和与同事共享访问链接。通过CAD获得创意Nitro Pro与高质量CAD(计算机辅助设计)图形的兼容性使您能够处理PDF中从蓝图到3D模型的所有内容,以及从Revit,AutoCAD和Microstation导出为PDF。https://m.jb51.net/softs/618870.html
17.莆田第一中学理化生实验室仪器货物类采购项目附件9.2投标人应在投标截止时间前按照福建省政府采购网上公开信息系统设定的操作流程将电子投标文件上传至福建省政府采购网上公开信息系统,同时将投标人的CA证书连同密封的纸质投标文件送达招标文件第一章第10条载明的地点,否则投标将被拒绝。 10、开标时间及地点:详见招标公告或更正公告(若有),若不一致,以更正公告(若有)http://www.ptzfcg.gov.cn/upload/document/20210830/63772a11696b44ee840d6c06d8dd7963.html