wordpress多站点模式插件,成都微信小程序定制开发公司,十大房地产公司排行榜,建站网站软件8提示#xff1a;授权声明#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权#xff0c;包括不限于在 Developer Centre, 知乎#xff0c;自媒体平台#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 文章目录 前言实践知识储备Lightsail介绍Leanote介绍实践… 提示授权声明本篇文章授权活动官方亚马逊云科技文章转发、改写权包括不限于在 Developer Centre, 知乎自媒体平台第三方开发者媒体等亚马逊云科技官方渠道 文章目录 前言实践知识储备Lightsail介绍Leanote介绍实践流程一、启动Lightsail实例二、开放Lightsail安全组三、下载 leanote 二进制版四、安装 mongodb4.1 测试mongodb安装 五、导入初始数据六、配置leanote七、运行leanote 总结部署常见问题1. no reachable server2. 修改Leanote运行端口3. 配置Nginx 前言
作为一个程序员编写文档成为日常生活中必不可少的一件事情有些是公司内部的文档资料还有是希望写一些自己的学习笔记我在撰写笔记的时候就发现那些笔记平台都渐渐走向付费模式了图片上传要付费同步也要付费新增的功能更不必说其实我只是想写个笔记而已我一直在想能不能做一个自己的笔记平台。然后最近在开源社区发现了 Leanote这是包含富文本编辑器和Markdown编辑器开源笔记系统只要我们有自己的服务器就能搭建可以把笔记和图片都放到自己的服务器同时保障了隐私也避免了被笔记平台限制。刚好最近也注册了AWS免费领取了12个月的EC2和3个月Lightsail使用时间于是我就把系统搭建在了 AWS 的 Lightsail 实例上大家感兴趣的可以跟着我一起搭建 提示以下是本篇文章正文内容下面案例可供参考
实践知识储备
在我们进行实践的时候我们需要对AWS的Lightsail有一定了解需要了解一些Linux的基本操作如包管理、SSH连接等因为笔记需要存储到数据库系统所以你还需要了解一些关于MongoDB的基本操作
Lightsail介绍
AWS Lightsail是一项非常棒的云计算服务可以帮助个人和小型企业快速启动和管理他们的应用程序和网站。
它提供了一种简单而强大的方式来启动虚拟服务器并且我们可以选择多种不同的应用程序模板比如WordPress、Ghost等在几分钟内就能搭建起一个完整的网站。而且AWS Lightsail还提供了一个直观的用户界面让我们可以轻松管理服务器和网络设置。可以根据自己的需求选择不同的实例规格和存储选项以及自动扩展功能来应对流量增长。
AWS Lightsail还具备出色的可靠性和安全性。它使用AWS云基础设施作为后盾这意味着我们可以放心地将数据存储在高度安全的环境中并且直接获得到可靠的性能和稳定性。
对于那些对成本敏感的朋友来说AWS Lightsail也是一个不错的选择。它提供了灵活的计费模型我们只需支付实际使用的资源没有任何隐藏费用。而且AWS Lightsail与其他AWS服务集成得非常方便快捷。
大家可以通过官网了解https://aws.amazon.com/cn/lightsail/?nc2h_ql_prod_fs_ls Leanote介绍 介绍引用自官方开源文档 Leanote 是一个高效笔记开源系统Leanote 有易操作的界面, 包含一款富文本编辑器和Markdown编辑器让我们的笔记记录更轻松和高效。对高阶用户还提供Vim 和Emacs 编辑模式助推写作速度更上层楼。
知识管理: Leanote 灵活而强大的“笔记本-笔记-标签”系统让它成为你个人知识管理的利器。分享: 你可以通过Leanote同好友分享知识、想法和经历, 邀请好友加入你的笔记簿通过云端交流信息。协作: Leanote协助你与同事之间相互协作激荡新思路随时随地头脑风暴。博客: Leanote也可以作为你的个人博客, 把你的知识传播的更远! 其它特性 支持Markdown编辑写作模式Vim 及 Emacs 编辑模式支持PDF导出支持批量操作博客自定义主题, 实现高度定制化
一套完整的、全平台覆盖的软件套装包括了web、桌面、安卓、IOS设备而且全部开源支持团队协同企业级私有云部署。
官方文档https://leanote.com/
实践流程
启动Lightsail实例开放Lightsail安全组下载 leanote 二进制版。安装 mongodb。导入初始数据。配置 leanote。运行 leanote。
一、启动Lightsail实例
从首页进入控制台后在搜索框输入Lightsail进入Lightsail控制台 进入到 instance 列表页后我们会看到右上角有一个 Create instance点击进入开始创建实例 根据我们擅长的系统进行选择这里我们的环境是
平台Linux系统Ubuntu20.04LTS 选择套餐32GB 2CPU
滑到最下点击 Create instance 就可以开始创建实例创建完成后返回列表页就可以看到我们的实例了 二、开放Lightsail安全组
为了保证笔记搭建起来能被公网访问我们需要对防火墙进行开放默认 Lightsail 是只开放了 80 和 22 端口的
点击实例然后点击 Networking 我们会看到有一个 IPv4 Firewall是用来配置流量进出的这里我们添加一个规则 Add rule选择 All TCP 点击 Create 即可这样就把我们所有的流量开放了但是在生产环境不建议咱们这么做还是需要对每个服务需要开放的端口进行控制而不是全部放开。
三、下载 leanote 二进制版
配置好Lightsail后我们就可以对 leanote 进行部署了我们需要先下载我们需要部署的应用代码可以从这里下载 leanote 最新二进制版。
这里我们安装一个 v2.6.1 的最新版
wget http://sourceforge.net/projects/leanote-bin/files/2.6.1/leanote-linux-amd64-v2.6.1.bin.tar.gz
tar -xzvf leanote-linux-amd64-v2.6.1.bin.tar.gz 代码下载好后因为运行起来还需要环境依赖所以我们先接着往下进行配置
四、安装 mongodb
到 mongodb 官网 下载相应系统的最新版安装包或者从以下链接下载旧版本
64位 linux mongodb 5.0.22 下载链接: https://repo.mongodb.org/apt/ubuntu/dists/focal/mongodb-org/5.0/multiverse/binary-amd64/mongodb-org-server_5.0.22_amd64.deb
下载下来是一个 deb:
wget https://repo.mongodb.org/apt/ubuntu/dists/focal/mongodb-org/5.0/multiverse/binary-amd64/mongodb-org-server_5.0.22_amd64.deb通过 dpkg安装
dpkg -i mongodb-org-server_5.0.22_amd64.deb4.1 测试mongodb安装
先在/home/root下新建一个目录data存放mongodb数据:
mkdir /root/data用以下命令安装客户端启动mongod 测试:
# 需要先安装客户端
apt update
apt install mongodb-clients
mongod --dbpath /root/data这时mongod已经启动重新打开一个终端, 键入mongo进入交互程序
mongoshow dbs
...数据库列表mongodb安装到此为止, 下面为mongodb导入leanote初始数据。 五、导入初始数据
leanote 初始数据存放在 /root/leanote/mongodb_backup/leanote_install_data中。
打开终端 输入以下命令导入数据。
mongorestore -h localhost -d leanote --dir /root/leanote/mongodb_backup/leanote_install_data/这里大家可能会出现 Command mongorestore not found, but can be installed with 我们需要先安装一下 mongo-tools然后再重新运行导入数据
apt update
apt install mongo-tools
#重新导入数据
mongorestore -h localhost -d leanote --dir /root/leanote/mongodb_backup/leanote_install_data/看到 done 即表示完成了现在在mongodb中已经新建了leanote数据库, 可用命令查看下leanote有多少张表:
# 通过client连接
mongo# 查看数据库
show dbs admin 0.000GB
config 0.000GB
leanote 0.002GB
local 0.000GB# 切换到leanote数据库
use leanote# 查看表
show collections
album
sattachs
blog_comments
blog_likes
blog_singles
configs
email_logs
....初始数据的users表中已有2个用户:
账号:admin, 密码: abc123 (管理员, 只有该用户才有权管理后台, 请及时修改密码)账号:demoleanote.com, 密码: demoleanote.com (仅供体验使用)
六、配置leanote
leanote的配置存储在文件 conf/app.conf 中。我们需要修改配置中的app.secret,这是一个密钥不能用默认的, 否则会有安全隐患!我这里随便把他改成了一个字符 其他配置可以暂时不修改 七、运行leanote
注意: 在此之前请确保mongodb已在运行!
执行以下命令:
cd /root/leanote/bin
bash run.sh最后出现以下信息证明运行成功:
...
DEBUG 06:04:21 revel controller.go:523: RegisterController:Registered controller sectioncontroller controllerApp\\memberuser
DEBUG 06:04:21 revel server.go:106: InitServerEngine: Found server engine and invoking sectionserver namego
Listening on.. 0.0.0.0:9000恭喜你, 打开浏览器输入: http://localhost:9000 体验leanote吧效果如下 我们使用管理员账号登录一下
账号:admin, 密码: abc123 总结
实践到这里就已经是成功基于AWS Lightsail部署Leanote并且实现了笔记的私有化。通过利用AWS Lightsail提供了简单而强大的云计算服务让我们在几分钟内轻松搭建起Leanote实例。而且Leanote是一个开源的笔记应用程序我可以完全控制我的笔记数据数据存储也在高度安全的AWS云环境中我再也不用担心隐私问题了。
AWS Lightsail 特别适合个人开发者进行快速测试和验证想法可以让我们在几分钟内启动一个完整的应用程序。这大大加快了开发周期能够迅速构建原型、测试功能和验证概念。AWS Lightsail 还提供了直观的用户界面和简化的管理工具我们可以轻松管理他们的应用程序和服务器设置。通过几个简单的步骤启动、监控和扩展应用程序而无需深入了解复杂的云基础设施。
部署常见问题
1. no reachable server
请确保数据库是否启动, 如果确定已启动 可以 尝试将 conf/app.conf db.hostlocalhost 改为 db.host127.0.0.1
修改后请重新启动Leanote.
2. 修改Leanote运行端口
比如想以8080端口启动.
修改conf/app.conf:
http.port8080
site.urlhttp://localhost:8080请重启Leanote, 使用http://localhost:8080访问.
3. 配置Nginx
假设Leanote运行的端口是9000, 域名为a.com, 那么nginx.conf可以配置如下:
# 本配置只有http部分, 不全
http {include /etc/nginx/mime.types;default_type application/octet-stream;upstream a.com {server localhost:9000;}# httpserver{listen 80;server_name a.com;# 强制https# 如果不需要, 请注释这一行rewriterewrite ^/(.*) https://jp_linode2.com/$1 permanent;location / {proxy_pass http://a.com;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}# httpsserver{listen 443 ssl;server_name a.com;ssl_certificate /root/a.com.crt; # 修改路径, 到a.com.crt, 下同ssl_certificate_key /root/a.com.key;location / {proxy_pass http://a.com;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}
}