让owncloud hosting static web site

通过AWS CloudFront Functions解决S3静态站点/路径打开的问题 通过AWS CloudFront映射到S3来搭建静态站点时,连接S3一般有两种途径,一种在S3直接启动静态站点(Static website hosting),这样CloudFront只能把S3无差别的作为一个静态站点来连接,在安全保护上只能通过HTTP Headers来进行验证;这种方式虽然安全,但是也存在一个问题,就是CloudFront只是默认通过s3:GetObject来拿S3中的item,在静态站点直接访问/PATH/这样的路径时,并不能去取对应S3目录下的index.html,只能直接404。 阅读详情

本文关键字:在owncloud存储中做站,owncloud static website hosting, hosting website in owncloud,owncloud www service,mailinabox static website hosting强化,netdisk netstorage based blog system,netdisk based static website hosting and syncing

在发布《mineportal》时我们谈到不使用静态网站的理由:它们不具有动态性。不能交互。不可编程扩展。它们只是一个从线下生成然后将结果同步/发布到线上的工具。所以静态网站,并不能真正代表现代意义上的“通用网站程序需求”,它们仅能负责展示,其它交互上的功能或扩展,需要靠那些传统网站意义上的东西外挂进来。

所以那篇文章中mineportal方案1中我们用到了oc+wp。因为我们终究需要的是“网站程序”,可是话说回来,虽然static web site不具备动态性,可是如果一个网站需要交互和动态场景的地方,比如评论,后台编辑,网页生成等处,如果这些都可以被动态程序解决,那么这时这些动态程序(后端如oc)+前端静态网站展示—–由它们组成的整体其实也满足可交互被扩展,也可以被称为“网站程序”成为我们的典型需求。而它的好处:网站可以打包打走,天然静态化是显然易见的,在以上提到的二篇文章中都不断被提到过。

在《发布mineportal2》中我们谈到可在mailinabox的oc中hosting static website,甚至谈到利用比如ownnote就可以作为编辑工具。那么不防更进一步,我们下面我们来谈在maininabox中一步一步实现它:

记得事先在oc中开启ownnote(此ownnote非qownnote,也不是qownnote对应的官方原notes app),并做好“同时保存到sql和文件夹”设置,并做好与nginx的指向配置。

第一步:设置nginx

我们首先要解决的问题是,owncloud ownnote默认生成htm,我们只能以http://xxx.com/*.htm的方式访问静态网站,以下设置能让nginx像wordpress一像把.htm的静态地址重写为/post/的形式:

add_header Content-Type: ‘text/html; charset=utf-8’;
location / { try_files $uri $uri/ @htmext; }
location ~ \.htm$ { try_files $uri =404; }
location @htmext { rewrite ^(.*)/$ $1.htm last; }

上面的add_header content-type不能省,因为oc ownnote默认保存的htm是gb2313,即使在网页中添加meta charset=gb2313也不能让浏览器认中文会显示乱码。

第二步:为owncloud ownnote建立static website template支持

第二个问题:ownnote保存贴子内容直接为htm,是没有模板化效果的。我们需要集成外来模板。

我们选择了jekyll的simple jekyll主题。我们通过修改/usr/local/lib/owncloud/apps/ownnote/lib中backend.php来进行,先找到savenote()函数:

以下http://xxx.com是你nginx指向的root目录里面存有jekyll-simple的css,这里先定义了一个pre:

$precontentpart='<html><head><link rel=”stylesheet” href=”http://xxx.com/jekyll-simple/main.css”></head><body>
<div class=”page-content”>
<div class=”container”>
<div class=”three columns”>
<header class=”site-header”><h2 class=”logo”><a href=”/”>site title</a></h2><div class=”nav”><div class=”site-nav”><nav><ul class=”page-link”><li><a href=””>Home</a></li><li><a href=”/archive”>Posts</a></li><li><a href=”/about”>About</a></li><li><a href=”/feed.xml”>RSS</a></li></ul></nav></div></div></header>
</div><!– end three columns –>
<div class=”nine columns” style=”z-index:100;”>
<div class=”wrapper”>
<article class=”post” itemscope=”” itemtype=”http://schema.org/BlogPosting”>
<header class=”artilce_header”><h1 class=”artilce_title” itemprop=”name headline”>post title</h1><p class=”artilce_meta”><time datetime=”2016-07-03T00:00:00+00:00″ itemprop=”datePublished”>Jul 3, 2016</time></p></header>
<div class=”article-content” itemprop=”articleBody”><!–内容开始–>’;

再定义post(after)部分:

$postcontentpart='<!–内容结束–></div>
<footer class=”article-footer”><section class=”share”><a class=”share-link” href=”” onclick=”window.open(this.href, &#39;twitter-share&#39;, &#39;width=550,height=235&#39;);return false;”>Twitter</a><a class=”share-link” href=”” onclick=”window.open(this.href, &#39;facebook-share&#39;,&#39;width=580,height=296&#39;);return false;”>Facebook</a><a class=”share-link” href=”” onclick=”window.open(this.href, &#39;google-plus-share&#39;, &#39;width=490,height=530&#39;); return false;”>Google+</a></section><hr><section class=”author”><div class=”authorimage box” style=”background: url(/jekyll-simple/assets/img/Taffy.jpg)”></div><div class=”authorinfo box”><p>Author | David Lin</p><p class=”bio”>Currently a Ph.D. student in Singapore University of Technology and Design in the area of Human-Computer Interaction(HCI).</p></div></section></footer>
</article><!– end article –>
</div><!– end wrapper –>
</div><!– end nine columns –>
</div><!– end container –>
<footer class=”site-footer”><div class=”container”><div class=”footer left column one-half”><section class=”small-font”>Theme <a href=”https://github.com/wild-flame/jekyll-simple”> Simple </a> by <a href=”http://wildflame.me/”>wildflame</a>? 2016 Powered by <a href=”https://github.com/jekyll/jekyll”>jekyll</a></section></div><div class=”footer right column one-half”><section class=”small-font”><a href=”https://github.com/wild-flame”><span class=”icon icon–github”></span></a><a href=”https://twitter.com/Taffyer”><span class=”icon icon–twitter”></span></a></section></div></div></footer>
</div><!– end page-content –>
</body></html>’;

一起写入,上面的内容开始内容结束中的内容是指的ownnote借助编辑器中插入到生成最终htm的文章内容:

\OC\Files\Filesystem::file_put_contents($tmpfile, p r e c o n t e n t p a r t . precontentpart. precontentpart.content.$postcontentpart);
这样新写的ownnote贴子会自动插入这些,具备模板化后的css效果。其它主题可类推定制。以上基本是一个文章页的通用html前端技术之essential in a nut了。

最后。虽然我们在这里的方案有很多hacking的痕迹,可是如果考虑进一步把上面所有这些做成oc的插件,还比如更进一步完善ownnote编辑器,使之输出直接支持模板化的效果。它就会成为高可用的产品。至于图片附件什么的,你可以参照站内文章中的《将owncloud作为wordpress的图床》之类。

网上还有一些利用oc做静态网站的方案,不过它们基本上只是纯粹把oc当同步工具用。本质上借助的还是jekyll,jade,gitpage这样的方案,只不过存储由github repo换成了owncloud空间而已。并没有使用到本文提到的ownnote等后台编辑增强方案。后者更自然,更强大。

————–

接下来我们会为mailinabox建立一个利用colinux封装的mailinabox box,称为mineportal2 box,其实不得不说把一切封装在黑盒中是好的方案,运维的一个基本素质就是不要去动黑盒中的东西,这对用户是好的而运维人员也可以避免少动黑盒内部对系统产生问题。



(此处不设回复,扫码到微信留言,或直接点击到原文)

ownnote:ownCloud的Notes应用 自己的笔记 官方发布信息和下载可在以下位置找到: : 安装 将此应用放置在owncloud / apps / ownnote中(将提取的ZIP重命名为“ ownnote”,否则您将收到错误消息) 注意:不再需要custom_csp_policy更改 Nextcloud用户 该应用已被派生,可以在这里找到Nextcloud的开发: : 行动应用程式 Google Play商店中适用于Android的ownNote: : 适用于iOS的ownNote:开发中 从Evernote或其他html笔记导入 导入过程将获取本地硬盘驱动器上HTML文件,并将图像作为Base64导入到注释中。 导入笔记: 使用默认设置将Evernote的笔记导出为单独的html文件如果要导入不是从Evernote导入的笔记,请确保它们使用的是html扩展名,而不是htm扩展名。 将html文件和包含图 立即下载

相关推荐

staticwebsitehosting:静态网站托管是Jamstack网站的顶级静态网站托管提供商的排行榜

静态网站托管 ,是Jamstack网站顶级静态网站托管提供商的排行榜。 贡献 在这里缺少静态网站托管服务提供商? 只需分叉index.md ,并在content/sites/<name>/文件夹中添加带有index.md文件的提供程序。 确保遵循以下规则: 静态网站托管:没有服务器端网站托管选项。 这意味着它需要直接提供静态内容,而无需涉及PHP,Ruby,Node.js,Java等。托管提供者必须选择启用CDN以优化全局静态资产分配,这是Jamstack方法的优势之一。 。 坚持格式:在content/sites填写与其他静态网站托管服务提供商相同的所有字段。 简短说明:保留正文的所有详细信息,使概述页面的说明简短明了。 用法 确保您已安装了最新的节点和npm,然后克隆此存储库并运行: npm install npm start 然后访问 -发生更改时,Gatsby将自动重新

发现ownNote:在ownCloud中释放你的笔记潜能

发现ownNote:在ownCloud中释放你的笔记潜能 项目介绍 ownNote,一款专为ownCloud设计的笔记应用,让你的数据存储更加自由与安全。现在,随着官方版本的发布与不断优化,它已成为整合个人知识库的理想选择。用户可以通过简单的步骤安装并开始在自己的云服务上记录生活点滴、工作思考,享受全平台的笔记同步体验。此外,对于Nextcloud用户,亦有专门分支支持,确保了更广泛的兼容性。 ...

gitblog_00007的博客 403

实战指南:如何用DCCRN模型提升语音增强效果(附代码示例)

本文提供了基于DCCRN模型进行语音增强的实战指南。通过深入解析复数网络如何协同处理语音的幅度与相位信息,并附有完整的PyTorch代码实现,帮助开发者从数据准备、模型搭建到训练调优,构建高效的实时语音增强系统,有效提升嘈杂环境下的语音清晰度。

weixin_29054245的博客 479

让owncloud成为微博式记事本

本文关键字:利用owncloud做网上记事本 相信不少人有把QQ空间之类的社交类,微博类程序当网上记事本用的经历,谈到记事本程序,有微博这种(加密或不公开),有mail based note俗称电子邮件便笈,也有利用emlog之类的自建碎语的,当然wordpress+插件或p2p wordpress theme也可以,还有人用wordpress页面+评论打造,当然,直接txt文档或excel表格也可以,单个mediawiki页面也可以(它支持页面内多条记事的归档,即一个页面一个归档),所以说,网上记事这种需

minlearn's techrepos 557

树莓派4B+DroneKit实战:手把手教你用Python控制无人机飞行(附避坑指南)

本文提供了一份详尽的树莓派4B与DroneKit配置实战指南,涵盖从硬件选型、软件环境搭建到Python编程控制无人机的完整流程。文章重点解决了ARM架构下的兼容性问题、MAVLink通信配置及端口管理等常见难题,并附带了实用的避坑指南和代码示例,帮助开发者构建稳定可靠的无人机控制系统。

weixin_29056781的博客 410

从ADS到SystemVue:当简单链路预算不够用时,我的射频系统级仿真方案升级实录

本文详细介绍了从ADS到SystemVue的射频系统级仿真升级路径,重点分析了基础链路预算在多端口元件和复杂场景下的局限性,并提供了SystemVue在非线性系统验证和跨域协同分析中的优势。通过实际案例展示了如何平滑迁移工具链,提升仿真精度和效率,适用于5G、毫米波雷达等现代射频系统设计。

weixin_34233974的博客 343

NextNote:基于Nextcloud/ownCloud的全功能笔记编辑器

NextNote:基于Nextcloud/ownCloud的全功能笔记编辑器 项目介绍 NextNote 是一个为Nextcloud和ownCloud设计的笔记应用程序,它模仿了Evernote和OneNote的风格,提供了一个所见即所得(WYSIWYG)的编辑体验。该应用是ownNote的重写版,已更新以修复安全漏洞并引入新特性,如文件嵌入、内链以及更现代的内容编辑工具。NextNote采用AG...

gitblog_01197的博客 796

java调用第三方api接口获取数据

弊端,但是并不是每个接口都适用于这套模板,之前写的接口不适用,都是在这个模板里做了定制处理(if 特殊表 -》处理),需要考虑兼容之前的代码,这种兼容代码,有风险会改掉之前的逻辑个人喜欢,有一个接口,写一段代码灵活自由些。2.还有一部分是对post请求的返回数据,做处理,因为json返回的格式如果双方没有约定好,里面数据是多层json嵌套,需要做处理。江同事交接的就是这个代码模板,可以看下源码调试一下,之前交接的视频,也可以看下,主要还是看代码理解快些,将 写好的代码达成jar包,上传到linux上去,

随风不随水的博客 2036

AWS 配置S3托管静态网站

4、要为 4XX 类错误提供您自己的自定义错误文档,请在。列表中,请选择要为其启用静态网站托管的桶的名称。可选)如果要指定高级重定向规则,请在。1、打开 Amazon S3 控制台。中,输入索引文档的文件名,通常为。中,输入 JSON 来描述规则。中输入自定义错误文档文件名。

SINGWIN01的博客 1282

mysql8.0安装及配置超详细教程_mysql-8.0.15-winx64

MySQL8.0配置教程, 全网最详,同时有本地mysql和小皮系统见另一篇

小诺言的博客 2万+

20 Embedding 与向量检索:语义为什么能变成距离

Embedding 是 RAG 语义检索的数学基础。本文用工程视角讲清文本如何变成向量,为什么语义相近会表现为距离相近,Top-K 检索如何工作,以及在模型选择、同模型约束、精确匹配和召回评估上的常见坑。

老于的笔记的专栏 6204

使用 Amazon S3 托管静态网站

AWS的S3对象存储服务除了具备存储功能,还具备服务器功能。我们可以使用它托管静态网站,而不需要另外启动一台Web服务器。下图1和2就是传统Web服务器场景,最后一个是S3的静态托管场景。具体的操作也很简单。只有在权限配置时,需要灵活的调整下。

wujiesunlirong的博客 1447

ZYNQ PS-PL数据交互方式总结

一,中断 二,IO方式:MIO EMIO GPIO 三,BRAM或FIFO或EMIF (1)通过BRAM实现PL/PS之间交互 PS 的配置如下图所示。使能 M_AXI_GP0 口,将 FCLK_CLK0 设为 100MHz,使能 PL 至 PS 的中断。 AXI BRAM Controller IP 核连接 PS 的 M_AXI_GP0 口和 BRAM,完成 AXI 接口至 BRAM 接口的转换。 添加BRAM,将BRAM设置为双口RAM,将PORTA与AXI B...

wangjie36的博客 1万+

owncloud + qownnotes = markdown笔记仓库 还带同步同能

owncloud 插件安装 下载插件 https://apps.owncloud.com/content/show.php?content=173817 插件放到owncloud的apps目录 重启,我是重启了,web页面调整enable 插件 qownnotes安装 从官网下载,安装 配置的时候要把目录放到owncloud根目录下,这样才会所有都ok 另外,关于qownnotes,这该死的名字真

vbaspdelphi的专栏 3161

Hermes接入IMA知识库全攻略:将知识库装进你的Hermes智能体

本文详细介绍了如何将IMA知识库功能接入Hermes Agent平台,实现一站式笔记管理和知识库操作。主要内容包括:获取IMA访问凭证、下载技能包、配置凭据(支持文件和环境变量两种方式)、验证配置有效性,以及实际应用演示(查询知识库列表、创建笔记并添加到知识库)。文章还提供了常见问题解决方案,如认证失败处理、版本更新等。通过该集成,用户可在Hermes中直接调用IMA的笔记创建、知识库管理等强大功能,提升工作效率。

小石头的专栏 641

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

带你认识QOwnNotes

导读 QOwnNotes 是一款自由而开源的笔记记录和待办事项的应用,可以运行在 Linux、Windows 和 mac 上。这款程序将你的笔记保存为纯文本文件,它支持 Markdown 支持,并与 ownCloud 云服务紧密集成。 QOwnNotes 的亮点就是它集成了 ownCloud 云服务(当然是可选的)。在 ownCloud 上用这款 APP,你就可以在网路上记录和搜索

郑帅的博客 685

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

windos桌面笔记_4个桌面笔记应用程序,用于完成工作

windos桌面笔记 在上一篇文章中 ,我介绍了Evernote的四种基于Web的替代方案。 但是,我意识到,并不是每个人都希望或需要在网络上提供他们的笔记。 许多人只想在计算机上本地完成所有操作。 这不是问题,因为您的桌面上有多个开源笔记记录应用程序。 在本文中,我将介绍其中的四个应用程序。 图尔特 Turtl被称为“安全的加密Evernote替代方案”。 虽然我不能保证Turt...

cumo7370的博客 1623

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

amazon s3_在Amazon S3上托管静态网站

amazon s3Static website hosting on Amazon S3 is one of the very popular use cases of Amazon S3. It allows you to host an entire static website and on very low cost. Amazon S3 is a highly available and...

从零开始的教程世界 2856

利用citrix xenapp and xendesktop建立你的云桌面

本文关键字:云办公。真正可用的个人云桌面,云下载云播放。GPO dns,xendeskop storeweb无法完成您的请求 其实云电脑桌面,虚拟桌面vdi,瘦客户端这样的东西出现很久了,只是它们从来没有像今天的疫情时代一样让人对他们更为关注。一般来说谈到云电脑人们都会想到最初的vps,正如谈到云桌面这个人们会想到远程桌面这个工具层面的东西一样,但其实云桌面与办公,可以是内涵和外延很广的东西,比如虚拟化这些东西结合起来,造就了一些专门做vdi的公司,如vmware,pd,citrix,(citrix很早就提

minlearn's techrepos 1289

mineportal2:基于mailinbox,一个基本功能完备的整合个人件

本文关键字:mailserver backed new mineportal,邮箱附件外链,owncloud backend static web hosting,阿里云省事建站,如何借助mineportal低成本把虚拟空间+email玩成个人portal,one place webapps for personal use 在《发布erpcmsone》一文中我曾谈到我缺少一种能发现我需求的网站程序 — 能把我日常要用的东西整合到one place且生态统一易扩展的东西,我以为odoo是这样的产品,但现在看

minlearn's techrepos 965

玩nas和虚拟化,怎能少得了zfs和整机热备

我们知道,玩家庭nas和云虚拟机,是最考验方案的数据防丢能力的。事实上就是做个站,我们也经常碰到导入导出/备份/迁移,这种运维问题。个人通常都做不到很经济实用的备份方案,更不用说整那种类似云计算iaas的异地备份了。大凡涉及到此类技术的,除了工具级别的同步器这种东西,就是那种内置在os的文件系统支持了。事实上,搞几块硬盘弄个raid体验非常糟糕,费电买盘提成本不说,lvm,mdadm,btrfs,的软raid可靠性几乎是儿戏。

minlearn's techrepos 904

捉虫与寻龙:从0打造wordpress插件wp2oc fileshare (1) – 将wp存储后端做进owncloud

关键字:wp2oc fileshare,wordpress媒体存进网盘,网盘作为wordpress图床,owncloud wordpress backend storage 其实用网盘做wordpress网站的图床一直是一个很流行的想法,业界存在oss,七牛网盘,百度盘wp2pcs,wp2pcs_sy方案,不过oss,七牛,百度盘pcs这三者始终是面向外接第三方服务,这些都不能得到服务保障,其中免费且最好用的百度盘pcs api需要申请权限,实用性大打拆扣。 这里我们选择的用owncloud作为wordpr

minlearn's techrepos 666

在群晖docker上装elmlang可视调试编码器ellie

本文关键字:elmlang live editor,docker要注意的地方。 在前面发布《elmlang时》我们谈到elmlang的函数FRP和可视调试特征,使得为其装配一个live ide变得可能,elmlang提供的插件,已经使其它能很轻松地接入市面上几大IDE,如本地我们有atom,vscode这样的东西,在业界是推崇用vim的,他命令区和编辑区合一的ui方案使之成为通用ide,那么在远程呢,越来越流行的还有很多web IDE,elmlang for webapp的特性使得其天然就与web ide相

minlearn's techrepos 606

在云主机上安装vscodeonline

在前面《云主机上部署pai》,《云主机上部署openfaas》中,我们用同样风格的脚本写出了在云主机上部署的二个paas面板,pai类似虚拟主机管理器,而openfaas是paas->faas,综合这二者都是部署和devops面板,它们在透出的界面5523,8080处用web操作。然后我们在《戒掉PC,免pc开发,cloud ide and debug设想》又遇到了vscodeonline,这三者都是云主机构造paas APP以“在线开发和部署”的OS扩展,体验良好度又都十分接近,因此,我们这次

minlearn's techrepos 568

在tinycolinux上编译jupyter和rootcling组建混合cpp,python学习环境

本文关键字:升级/枚举tinycorelinux上的gcc,在tinycorelinux上安装python jupyter 在前面《tinycolinux上编译odoo》中我们谈到python在流行的“one host one guest”学习语言选型组合中是对应于cpp的,还谈到一些混合语言工具,如terralang,rootcling等,见《发布qtcling》和《发布terracling》,技术界二二相对的事物总有惊人的对应:cpp,py组合的cling就相当于lua,c组合的terralang: 事

minlearn's techrepos 545
上一篇: 让owncloud成为微博式记事本
下一篇: 利用citrix xenapp and xendesktop建立你的云桌面
Minlearn
博客等级 码龄18年 20粉丝 146原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值