蚂蚁笔记私有部署

2023-11-19

说明

其实官方的教程中已经写得很清楚了,我写这个主要是为了记录一下我自己当时安装的过程,方便后续查询

官方文档请查阅:https://github.com/leanote/leanote/wiki

环境要求

  • CentOS6.5+Nginx+MongoDB
  • 最小配置:16G内存+4CPU+500G硬盘
  • 推荐配置:32G内存+4CPU+1T硬盘

安装过程

  • 安装 CentOS 6.5

最小化安装,分区如下,推荐基于LVM,后面维护比较方便:

  /boot    500M
  swap     8G
  /        20G
  /data    剩下所有
  • 系统优化

关闭SELinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/'/etc/s

精简启动项

LANG=en
for root in `chkconfig --list|grep 3:on|awk '{print 1}'`;do chkconfig --level 3 root off;done
for root in crond network rsyslog sshd iptables;do chkconfig --level 3 $root on;done   
chkconfig --list|grep 3:on
  • 安装软件

    安装Nginx

安装Nginx的YUM源
rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
yum -y install nginx

安装其他软件

yum -y install vim wget curl lsof net-tools openssl
  • 安装Mongodb

编辑mongodb的YUM源

#vim /etc/yum.repos.d/mongodb-org-3.4.repo
#添加入一下内容
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.as

安装mongodb

yum -y install mongodb-org
  • 自定义Mondodb数据库

修改数据库存储路径,将dbpath自定义成自己的data分区,首先需要创建目录并赋予权限

mkdir -p /data/db
chown -Rf mongod:mongod /data/db
chmod -Rf 755 /data/db

更改MongoDB数据库存储路径,修改dbPath

# vim /etc/mongod.conf
...
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log
  # Where and how to store data.
     storage:
     dbPath: /data/db/        //我们需要指定库文件的存放目录
     journal:
     enabled: true
  # how the process runs
     processManagement:
     fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
  # network interfaces
     net:
     port: 27017
     bindIp: 127.0.0.1
...
  • 启动Mongodb并加入开机自启
service mongod start
chkconfig mongod on
  • 部署蚂蚁笔记

下载蚂蚁笔记

cd /data
wget https://sourceforge.net/projects/leanote-bin/files/2.5/leanote-linux-amd64-v2.5.bin.tar.gz

解压文件

tar -zxvf leanote-linux-amd64-v2.5.bin.tar.gz

导入初始化数据库

mongorestore -h localhost -d leanote --dir /data/leanote/mongodb_backup/leanote_install_data/

给mongodb添加数据库用户

mongo
首先切换到leanote数据库下
> use leanote;
添加一个用户root, 密码是abc123,这个密码是可以自定义的
> db.createUser({
     user: 'root',
     pwd: 'abc123',
     roles: [{role: 'dbOwner', db: 'leanote'}]
 });
测试下是否正确
> db.auth("root", "abc123");
 1    
返回1表示正确

修改app.conf

# vim /data/leanote/conf/app.conf
...
 db.host=localhost
 db.port=27017
 db.dbname=leanote
 db.username=root
 db.password=abc123
...

重启数据库服务

 service mongod restart

尝试运行

bash /data/leanote/bin/run.sh

如果终端提示如下就说明配置是正确的

...
TRACE 2013/06/06 15:01:27 watcher.go:72: Watching: /home/life/leanote/bin/src/github.com/leanote/leanote/conf/routes
Go to /@tests to run the tests.
Listening on :9000
...
  • 尝试访问,记得先关闭下防火墙

恭喜你, 打开浏览器输入: http://localhost:9000体验leanote吧!

  • 配置支持https

创建证书

首先,创建证书和私钥的目录
# mkdir -p /etc/nginx/cert
# cd /etc/nginx/cert
创建服务器私钥,命令会让你输入一个口令:
# openssl genrsa -des3 -out nginx.key 2048
创建签名请求的证书(CSR):
# openssl req -new -key nginx.key -out nginx.csr
在加载SSL支持的Nginx并使用上述私钥时除去必须的口令:
# cp nginx.key nginx.key.org
# openssl rsa -in nginx.key.org -out nginx.key
最后标记证书使用上述私钥和CSR:
# openssl x509 -req -days 365 -in nginx.csr -signkey nginx.key -out nginx.crt

配置Nginx

配置nginx.conf

# vim /etc/nginx/nginx.conf  添加入一下内容
#本配置只有http部分, 不全, 详细配置请百度Nginx相关知识
http {
     include       /etc/nginx/mime.types;
     default_type  application/octet-stream;

     upstream  note.cloud.top  {
         server   localhost:9000;
     }

     # http
     server
     {
         listen  80;
         server_name  note.cloud.top;

         # 强制https
         # 如果不需要, 请注释这一行rewrite
         rewrite ^/(.*) https://note.cloud.top/$1 permanent;

         location / {
             proxy_pass        http://note.cloud.top;
             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  note.cloud.top;
         ssl_certificate     /etc/nginx/cert/nginx.crt; # 修改路径, 到nginx.crt, 下同
         ssl_certificate_key /etc/nginx/cert/nginx.key;
         location / {
             proxy_pass        http://note.cloud.top;
             proxy_set_header   Host             $host;
             proxy_set_header   X-Real-IP        $remote_addr;
             proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
         }
     }
 }

启动Nginx

service nginx start
chkconfig nginx on
  • 笔记系统开机自启

注意

官方文档并没有给出这项设置,其实最简单的办法就是向rc.local文件中添加一条命令,开机自动执行,但是这里推荐使用supervisor服务进行管理,supervisor的详细介绍见:http://www.supervisord.org/**

方法1:

# vim /etc/rc.d/rc.local  
添加下面的内容,这样的化开机后就不会有影响
nohup bash /data/leanote/bin/run.sh &

方法2-推荐使用
使用supervisor服务进行管理的优点是服务异常后自动重启,可靠性较高

  • 安装supervisor服务
yum install epel-release -y && yum install supervisor -y
  • 配置supervisor
vim /etc/supervisord.conf   在文件末尾加入以下内容
 ···
[program:webvirtmgr]
command=bash /data/leanote/bin/run.sh
autostart=true
autorestart=true
logfile=/dev/null
log_stderr=true
user=root
 ···

logfile我们定义到磁盘黑洞中,就不用占用磁盘的空间,同时减少部分磁盘IO开销

  • 启动supervisor服务并添加到开机自启中
# chkconfig supervisord on && service supervisord start
  • 防火墙配置
#清空配置
iptables -F
iptables -X
#如果是远程ssh连接配置务必先执行这条命令,否则会断开ssh连接,无法进行后续工作
iptables -A INPUT -p tcp --dport 22 -j ACCEPT     
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
#允许80、443、9000、53(DNS)端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT      
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 9000 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT
#允许ping
iptables -A INPUT -p icmp -j ACCEPT
#允许loopback!(不然会导致DNS无法正常关闭等问题)               
iptables -A INPUT -i lo -p all -j ACCEPT
#丢弃坏的TCP包
iptables -A FORWARD -p TCP ! --syn -m state --state NEW -j DROP
#处理IP碎片数量,防止攻击,允许每秒100个
iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
#设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包   
iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
service iptables save
service iptables restart
  • 其它配置

修改leanote运行端口

比如想以8080端口启动.修改conf/app.conf:

http.port=8080
site.url=http://note.cloud.top:8080

请重启Leanote, 使用http://note.cloud.top:8080

绑定域名

提示

site.url其实是自己可以自定义的,因为在浏览器中我们登录注销后url会自动变成这个语句设置的值,所以务必设置正确。

site.url=http://note.cloud.top
或
site.url=https://note.cloud.top
请重启Leanote, 使用http://note.cloud.top 或者 https:note.cloud.top 进行访问

转载于:https://www.cnblogs.com/tchroot/p/7732754.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蚂蚁笔记私有部署 的相关文章

  • 猫头虎博主的MySQL救援指南:轻松解决初始化问题(nysqld: Can create directort :mysgl mysg! 9-winx64 data errno such file o)

    博主猫头虎的技术世界 欢迎来到 猫头虎的博客 探索技术的无限可能 专栏链接 精选专栏 面试题大全 面试准备的宝典 IDEA开发秘籍 提升你的IDEA技能 100天精通Golang Go语言学习之旅 领域矩阵 猫头虎技术领域矩阵 深入探索各技
  • 【计算机开题报告】 网上茶叶销售平台设计与开发

    一 选题依据 简述国内外研究现状 生产需求状况 说明选题目的 意义 列出主要参考文献 1 研究背景 随着社会经济的迅速发展和科学技术的全面进步 以计算机与网络技术为基础的信息系统正处于蓬勃发展的时期 随着经济文化水平的提高 近年来 随着科学
  • 【计算机开题报告】智能社区管理系统

    一 设计目的及意义 随着经济的发展 人们生活水平的提高 工作和日常事务繁忙 人们对服务就有了更深入 更精细的要求 而计算机技术的迅猛发展 使得这种需求变为可能 传统的社区服务业也与互联网技术结合更加密切 这是社会发展的必然趋势 为解决社区中
  • 【计算机开题报告】 医药信息管理系统

    一 选题依据 简述国内外研究现状 生产需求状况 说明选题目的 意义 列出主要参考文献 1 研究背景 随着医药事业的不断壮大 相关单位对于医药信息的管理变得越来越重要 传统的手工管理效率低 易出错 费时费力 不能及时精确的收集 传递 存储 加
  • 【计算机开题报告】图书管理系统

    一 选题依据 简述国内外研究现状 生产需求状况 说明选题目的 意义 列出主要参考文献 国内外研究现状 国外研究现状 在很多发达国家 图书管理系统的应用和技术发展已经相对完善 并且还建立了数字图书馆 各方面的情况也非常成熟 而图书管理的应用价
  • 内网穿透的应用-使用Net2FTP轻松部署本地Web网站并公网访问管理内网资源

    文章目录 1 前言 2 Net2FTP网站搭建 2 1 Net2FTP下载和安装 2 2 Net2FTP网页测试 3 cpolar内网穿透 3 1 Cpolar云端设置 3 2 Cpolar本地设置
  • 软件开发和网络安全哪个更好找工作?

    为什么今年应届毕业生找工作这么难 有时间去看看张雪峰今年为什么这么火就明白了 这么多年人才供给和需求错配的问题 在经济下行的今年 集中爆发 供给端 大学生越来越多 需求端 低端工作大家不愿去 高端岗位又太少 很多基础行业 比如机械 土木 所
  • 亚信安慧AntDB引领数字化转型:浙江移动成功实现CRM系统全域改造

    数字时代 通信运营商在不断迭代的背景下 需要不断探索数字化转型的路径 以适应快速发展的市场和技术环境 在这一浪潮中 浙江移动站在前沿 率先完成了其CRM系统的全域改造 采用了亚信安慧公司研发的AntDB数据库 为整个行业树立了数字化转型的标
  • Navicat 16 for MySQL:打造高效数据库开发管理工具

    随着数据的快速增长和复杂性的提升 数据库成为了现代应用开发中不可或缺的一部分 而在MySQL数据库领域 Navicat 16 for MySQL作为一款强大的数据库开发管理工具 正受到越来越多开发者的青睐 Navicat 16 for My
  • 【计算机毕业设计】个人日常事务管理系统

    进入21世纪网络和计算机得到了飞速发展 并和生活进行了紧密的结合 目前 网络的运行速度以达到了千兆 覆盖范围更是深入到生活中的角角落落 这就促使 管理系统的发展 管理系统可以实现远程处理事务 远程工作信息和随时追踪工作的状态 网上管理系统给
  • 【计算机毕业设计】出租车管理系统

    现代经济快节奏发展以及不断完善升级的信息化技术 让传统数据信息的管理升级为软件存储 归纳 集中处理数据信息的管理方式 本出租车管理系统就是在这样的大环境下诞生 其可以帮助管理者在短时间内处理完毕庞大的数据信息 使用这种软件工具可以帮助管理人
  • 【计算机毕业设计】北关村基本办公管理系统

    在如今社会上 关于信息上面的处理 没有任何一个企业或者个人会忽视 如何让信息急速传递 并且归档储存查询 采用之前的纸张记录模式已经不符合当前使用要求了 所以 对北关村基本办公信息管理的提升 也为了对北关村基本办公信息进行更好的维护 北关村基
  • APP端网络测试与弱网模拟

    当前APP网络环境比较复杂 网络制式有2G 3G 4G网络 还有越来越多的公共Wi Fi 不同的网络环境和网络制式的差异 都会对用户使用app造成一定影响 另外 当前app使用场景多变 如进地铁 上公交 进电梯等 使得弱网测试显得尤为重要
  • 通俗易懂,十分钟读懂DES,详解DES加密算法原理,DES攻击手段以及3DES原理

    文章目录 1 什么是DES 2 DES的基本概念 3 DES的加密流程 4 DES算法步骤详解 4 1 初始置换 Initial Permutation IP置换 4 2 加密轮次 4 3 F轮函数 4 3 1 拓展R到48位 4 3 2
  • 电商数据api接口商品评论接口接入代码演示案例

    电商数据API接口商品评论 接口接入入口 提高用户体验 通过获取用户对商品的评论 商家可以了解用户对商品的满意度和需求 从而优化商品和服务 提高用户体验 提升销售业绩 用户在购买商品前通常会查看其他用户的评论 以了解商品的实际效果和质量 商
  • 【计算机毕业设计】springbootstone音乐播放器的设计与实现

    随着我国经济的高速发展与人们生活水平的日益提高 人们对生活质量的追求也多种多样 尤其在人们生活节奏不断加快的当下 人们更趋向于足不出户解决生活上的问题 stone音乐播放器展现了其蓬勃生命力和广阔的前景 与此同时 为解决用户需求 stone
  • 【ES6】解构语句中的冒号(:)

    在解构赋值语法中 冒号 的作用是为提取的字段指定一个新的变量名 让我们以示例 const billCode code version route query 来说明 billCode code version 表示从 route query
  • 温室气体排放更敏感的模型(即更高的平衡气候敏感性(ECS))在数年到数十年时间尺度上也具有更高的温度变化(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据
  • SAP ERP系统是什么?SAP好用吗?

    A公司是一家传统制造企业 公司曾先后使用过数个管理软件系统 但各部门使用的软件都是单独功能 导致企业日常管理中数据流与信息流相对独立 形成了 信息孤岛 随着公司近年业务规模的快速发展以及客户数量的迅速增加 企业原有的信息系统在销售预测及生产
  • 光波导结构

    摘要 增强现实和混合现实 AR MR 领域的新应用引起了人们对带有光栅区域的光波导系统的越来越多的关注 这些光波导系统用于输入和输出耦合以及扩瞳目的 VirtualLab Fusion为这类系统的仿真和设计提供了几个强大的工具 其中一个是具

随机推荐

  • 多线程(1):互斥锁

    leetcode 1114题 按序打印 给你一个类 public class Foo public void first print first public void second print second public void thi
  • 【Unity Shader】Shadow Caster、RenderType和_CameraDepthTexture

    当我们制作某些屏幕特效时 需要取到屏幕的深度图或法线图 比如ssao 景深等 另外像是制作软粒子shader 体积雾等也需要取到深度图 以计算深度差等 unity提供了两个内置的纹理 CameraDepthTexture和 CameraDe
  • fabric 环境快速搭建--Ubuntu20.04系统下使用fabric官方脚本搭建

    由于是初识hyper ledger fabric在安装的时候遇到了很多的问题 最后在师兄的帮助下终于删了从头到尾安装了一遍 因此想记录一下 并且给和我遇到相同问题的小伙伴提供一些帮助 如果你是萌新 找我就对啦 一 下载虚拟机VMware 直
  • 纯css画三角形及气泡样式的简单画法

    在做项目的过程中 遇到了要写一个气泡的样式 先布局了矩形部分 但小三角形的旗气泡遇到一点困难 后来梳理了一下 以此记录 首先是三角形的画法 三角形的原理就是矩形 然后分成四个三角形 一般使用border来画一个三角形 如下图所示 我们给一个
  • 云服务器木马文件该如何应对,云服务器木马入侵怎么办?服务器中木马怎么排查?...

    由于云服务器的扩展方便 并且能够减少硬件方面的维护成本 因此使用云服务器的用户数量越来越多 但是云服务器也同样存在安全方面的隐患 被入侵的案列也是时有发生 那么云服务器木马入侵怎么办 服务器中木马怎么排查 我们来了解下吧 云服务器木马入侵怎
  • java中抽象工厂模式_Java设计模式之抽象工厂模式

    转自http blog csdn net jason0539 article details 44976775 本文继续介绍23种设计模式系列之抽象工厂模式 前面已经介绍过简单工厂模式和工厂方法模式 这里继续介绍第三种工厂模式 抽象工厂模式
  • js倒计时

    html部分代码 div class time span 60 span span s span div js部分代码 var second document getElementById second var m 60 var time
  • 计算机产业能否迅速发展,工控机产业迅速发展:未来体系结构将更具交互性与可操作性...

    工控机 Industrial Personal Computer IPC 即工业控制计算机 是一种采用总线结构 对生产过程及机电设备 工艺装备进行检测与控制的工具总称 工控机具有重要的计算机属性和特征 如具有计算机CPU 硬盘 内存 外设及
  • 50行Python代码实现代理服务器的详细教程

    代理服务器是一种位于客户端与目标服务器之间的中间服务器 它可以代表客户端发送请求 并将响应返回给客户端 通过搭建自己的代理服务器 我们可以实现请求的拦截 修改和转发等功能 本文将为大家介绍如何使用50行Python代码实现代理服务器 一 准
  • [QT编程系列-37]:数据存储 - 日志文件、日志等级的支持:qDebug、Log4Qt

    目录 1 概述 2 qDebug 2 1 概述 2 2 qDebug对调试等级的支持 通过不同的宏来实现 2 3 qt日志等级的设置 1 概述 在 Qt 中 日志文件的支持通常是通过日志库 日志框架或自定义代码实现的 Qt 本身没有提供内置
  • vue3中实现音频播放器APlayer

    前言 vue2的时候 分享了一个很好用的插件是vue aplayer 但是他是不支持vue3的 这里分享vue3使用APlayer来实现一个播放器的方法 实现效果 官方 git地址 点我 api地址 点我 实现步骤 1 安装 npm npm
  • Spring Boot 过滤器、监听器和拦截器使用

    1 过滤器和监听器 Spring Boot中对于过滤器和监听器的使用跟一般web工程中使用方式没什么不同 使用注解方式就可以快速创建 只是要使用注解方式需要在Application类加上 ServletComponentScan 注解表明开
  • LIO-SAM运行自己数据包遇到的问题解决--SLAM不学无数术小问题

    LIO SAM 成功适配自己数据集 注意本文测试环境 Ubuntu18 04 ROS melodic版本 笔者用到的硬件以简单参数 激光雷达 速腾聚创16线激光雷达 RS Lidar 16 IMU 超核电子CH110型 9轴惯导 使用频率1
  • Ionic3开发教程 - 开发(2)

    Ionic3开发系列教程Ionic3开发教程 环境准备 1 Ionic3开发教程 开发 2 Ionic3开发教程 发布Android版本 3 Ionic3开发教程 发布IOS版本 4 Ionic3开发教程 更新 5 本文中介绍的Ionic3
  • mybatis在xml文件中处理大于号小于号的方法

    第一种方法 用了转义字符把 gt 和 lt 替换掉 然后就没有问题了 SELECT FROM test WHERE 1 1 AND start date lt CURRENT DATE AND end date gt CURRENT DAT
  • JAVA依赖冲突解决

    一 问题 启动时报错 二 原因 导入的包中存在依赖冲突 应该是打印日志的 三 解决办法 1 mvn dependency tree 打印项目的依赖树 2 安装MAVEN HELPER 2 1 查看依赖图 2 2 直接查看 四 解决 1 比如
  • SpriteKit框架详细解析(四) —— 创建一个简单的2D游戏(二)

    转自 https www jianshu com p 33f28911db17 版本记录 版本号 时间 V1 0 2017 08 12 前言 SpriteKit框架使用优化的动画系统 物理模拟和事件处理支持创建基于2D精灵的游戏 接下来这几
  • element级联懒加载多选不能回显问题

    1 定位原因 懒加载的级联下拉框无法回显是因为 只绑定了model的值 没有options的数据支撑的话 获取不到节点的内容导致 2 方案 拿到选中的项的时候 用这些值去递归循环获取相应的节点的一些属性 赋值给options 然后注意最后一
  • yolo v3 fatal : Memory allocation failure

    torch版的 yolov3报错 fatal Memory allocation failure parser add argument n cpu type int default 8 help number of cpu threads
  • 蚂蚁笔记私有部署

    说明 其实官方的教程中已经写得很清楚了 我写这个主要是为了记录一下我自己当时安装的过程 方便后续查询 官方文档请查阅 https github com leanote leanote wiki 环境要求 CentOS6 5 Nginx Mo