• 『亚马逊云科技产品测评』活动征文|通过Lightsail搭建个人笔记


    提示:授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道

    在这里插入图片描述


    前言

    作为一个程序员,编写文档成为日常生活中必不可少的一件事情,有些是公司内部的文档资料,还有是希望写一些自己的学习笔记,我在撰写笔记的时候就发现那些笔记平台都渐渐走向付费模式了,图片上传要付费,同步也要付费,新增的功能更不必说,其实我只是想写个笔记而已,我一直在想能不能做一个自己的笔记平台。然后最近在开源社区发现了 Leanote,这是包含富文本编辑器和Markdown编辑器开源笔记系统,只要我们有自己的服务器就能搭建,可以把笔记和图片都放到自己的服务器,同时保障了隐私也避免了被笔记平台限制。刚好最近也注册了AWS,免费领取了12个月EC2和3个月Lightsail使用时间,于是我就把系统搭建在了 AWSLightsail 实例上,大家感兴趣的可以跟着我一起搭建!


    提示:以下是本篇文章正文内容,下面案例可供参考

    实践知识储备

    在我们进行实践的时候,我们需要对AWSLightsail有一定了解,需要了解一些Linux的基本操作,如包管理、SSH连接等,因为笔记需要存储到数据库系统,所以你还需要了解一些关于MongoDB的基本操作

    Lightsail介绍

    AWS Lightsail是一项非常棒的云计算服务,可以帮助个人和小型企业快速启动和管理他们的应用程序和网站。

    它提供了一种简单而强大的方式来启动虚拟服务器,并且我们可以选择多种不同的应用程序模板,比如WordPressGhost等,在几分钟内就能搭建起一个完整的网站。而且,AWS Lightsail还提供了一个直观的用户界面,让我们可以轻松管理服务器和网络设置。可以根据自己的需求选择不同的实例规格和存储选项,以及自动扩展功能来应对流量增长。

    AWS Lightsail还具备出色的可靠性和安全性。它使用AWS云基础设施作为后盾,这意味着我们可以放心地将数据存储在高度安全的环境中,并且直接获得到可靠的性能和稳定性。

    对于那些对成本敏感的朋友来说,AWS Lightsail也是一个不错的选择。它提供了灵活的计费模型,我们只需支付实际使用的资源,没有任何隐藏费用。而且,AWS Lightsail与其他AWS服务集成得非常方便快捷。

    大家可以通过官网了解:https://aws.amazon.com/cn/lightsail/?nc2=h_ql_prod_fs_ls

    在这里插入图片描述

    Leanote介绍

    介绍引用自官方开源文档

    Leanote 是一个高效笔记开源系统,Leanote 有易操作的界面, 包含一款富文本编辑器和Markdown编辑器,让我们的笔记记录更轻松和高效。对高阶用户,还提供VimEmacs 编辑模式,助推写作速度更上层楼。

    • 知识管理: Leanote 灵活而强大的“笔记本-笔记-标签”系统,让它成为你个人知识管理的利器。
    • 分享: 你可以通过Leanote同好友分享知识、想法和经历, 邀请好友加入你的笔记簿,通过云端交流信息。
    • 协作: Leanote协助你与同事之间相互协作,激荡新思路,随时随地头脑风暴。
    • 博客: Leanote也可以作为你的个人博客, 把你的知识传播的更远!

    其它特性

    • 支持Markdown编辑
    • 写作模式
    • VimEmacs 编辑模式
    • 支持PDF导出
    • 支持批量操作
    • 博客自定义主题, 实现高度定制化

    一套完整的、全平台覆盖的软件套装,包括了web、桌面、安卓、IOS设备,而且全部开源!支持团队协同,企业级私有云部署。

    • 官方文档:https://leanote.com/

    实践流程

    1. 启动Lightsail实例
    2. 开放Lightsail安全组
    3. 下载 leanote 二进制版。
    4. 安装 mongodb
    5. 导入初始数据。
    6. 配置 leanote
    7. 运行 leanote

    一、启动Lightsail实例

    从首页进入控制台后,在搜索框输入:Lightsail,进入Lightsail控制台

    在这里插入图片描述
    进入到 instance 列表页后,我们会看到右上角有一个 Create instance,点击进入开始创建实例

    在这里插入图片描述

    根据我们擅长的系统进行选择,这里我们的环境是:

    • 平台:Linux
    • 系统:Ubuntu20.04LTS

    在这里插入图片描述
    选择套餐3,2GB 2CPU

    滑到最下点击 Create instance 就可以开始创建实例,创建完成后返回列表页就可以看到我们的实例了

    在这里插入图片描述

    二、开放Lightsail安全组

    为了保证笔记搭建起来能被公网访问,我们需要对防火墙进行开放,默认 Lightsail 是只开放了 8022 端口的

    点击实例,然后点击 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 
    
    • 1
    • 2

    在这里插入图片描述

    代码下载好后,因为运行起来还需要环境依赖,所以我们先接着往下进行配置

    四、安装 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
    
    • 1
    • 通过 dpkg安装
    dpkg -i mongodb-org-server_5.0.22_amd64.deb
    
    • 1

    4.1 测试mongodb安装

    • 先在/home/root下新建一个目录data存放mongodb数据:
    mkdir /root/data
    
    • 1
    • 用以下命令安装客户端启动mongod 测试:
    # 需要先安装客户端
    apt update
    apt install mongodb-clients
    mongod --dbpath /root/data
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    这时mongod已经启动,重新打开一个终端, 键入mongo进入交互程序:

    mongo
    > show dbs
    ...数据库列表
    
    • 1
    • 2
    • 3

    mongodb安装到此为止, 下面为mongodb导入leanote初始数据。


    五、导入初始数据

    leanote 初始数据存放在 /root/leanote/mongodb_backup/leanote_install_data中。

    • 打开终端, 输入以下命令导入数据。
    mongorestore -h localhost -d leanote --dir /root/leanote/mongodb_backup/leanote_install_data/
    
    • 1

    这里大家可能会出现: 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/
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    看到 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
    ....
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    在这里插入图片描述

    初始数据的users表中已有2个用户:

    • 账号:admin, 密码: abc123 (管理员, 只有该用户才有权管理后台, 请及时修改密码)
    • 账号:demo@leanote.com, 密码: demo@leanote.com (仅供体验使用)

    六、配置leanote

    leanote的配置存储在文件 conf/app.conf 中。我们需要修改配置中的app.secret,这是一个密钥,不能用默认的, 否则会有安全隐患!我这里随便把他改成了一个字符

    在这里插入图片描述

    其他配置可以暂时不修改


    七、运行leanote

    注意: 在此之前请确保mongodb已在运行!

    • 执行以下命令:
    cd /root/leanote/bin
    bash run.sh
    
    • 1
    • 2

    最后出现以下信息证明运行成功:

    ...
    DEBUG 06:04:21  revel controller.go:523: RegisterController:Registered controller  section=controller controller=App\\memberuser
    DEBUG 06:04:21  revel server.go:106: InitServerEngine: Found server engine and invoking  section=server name=go 
    Listening on.. 0.0.0.0:9000
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    恭喜你, 打开浏览器输入: 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.host=localhost 改为 db.host=127.0.0.1

    修改后请重新启动Leanote.

    2. 修改Leanote运行端口

    比如想以8080端口启动.

    修改conf/app.conf:

    http.port=8080
    site.url=http://localhost:8080
    
    • 1
    • 2

    请重启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;
        }
    
        # http
        server
        {
            listen  80;
            server_name  a.com;
            
            # 强制https
            # 如果不需要, 请注释这一行rewrite
            rewrite ^/(.*) 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;
            }
        }
        
        # https
        server
        {
            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;
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
  • 相关阅读:
    R3LIVE源码解析(10) — R3LIVE中r3live_vio.cpp文件
    解决VSCode下载速度很慢
    Promise知识点拾遗
    postman在ubuntu下报gpu-disable
    iTOP-STM32MP157开发板Ubuntu镜像的烧写
    2023-2024 年适用于 Windows 电脑的顶级视频录制软件
    计算机毕业设计springboot+vue基本微信小程序的学习资料共享小程序
    2022年仙桃中级工程师职称评审条件有变化吗?甘建二
    Android Fragment 要你何用?2.0版本
    Java 下数据业务逻辑开发技术 JOOQ 和 SPL
  • 原文地址:https://blog.csdn.net/qq_24694139/article/details/134548179