docker+nginx搭建私有云笔记leanote
前提条件,部署docker;部署docker-compose先看docker-compose.yml文件version: '2'services:leanote:image: foolishflyfox/leanote:latestrestart: alwaysuser: rootmem_limit: 1gnetwork_mode: "host"container_name: leanotepor
前提条件,部署docker;部署docker-compose
下载leanote源码
国内访问不到github的,可以下载我上传的文件,在资源库中,还有相关的主题
开始部署
解压源文件unzip leanote-master.zip
部署mongo服务,我还是倾向于使用docker管理,不知道怎么使用docker部署mongo的可以参看我其他的博客,有专门的介绍。这里也可以使用官方的部署mongo的方法
不管于倾向于哪种方式,能有一个可以访问的mongoDB数据库可以使用就好了
部署MongoDB
方式一:使用官网方法部署
到 mongodb 官网 下载相应系统的最新版安装包,或者从以下链接下载旧版本:
- 64位 linux mongodb 3.0.1 下载链接: 64位 linux mongodb 3.0.1 下载链接: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.1.tgz
下载到 /home/user1下, 直接解压即可:
$> cd /home/user1
$> tar -xzvf mongodb-linux-x86_64-3.0.1.tgz/
为了快速使用mongodb命令
, 可以配置环境变量。编辑~/.profile
或/etc/profile 文件
, 将mongodb/bin
路径加入即可:
$> sudo vim /etc/profile
在/etc/profile
中添加以下行,注意把用户名(user1
)和相应的文件目录名(mongodb-linux-x86_64-3.0.1
)替换成自己系统中的名称
export PATH=$PATH:/home/user1/mongodb-linux-x86_64-3.0.1/bin
保存修改后,在终端运行以下命令使环境变量生效:
$> source /etc/profile
测试mongoDb的安装
先在/home/user1
下新建一个目录data
存放mongodb
数据:
mkdir /home/user1/data
用以下命令启动mongod
:
mongod --dbpath /home/user1/data
这时mongod
已经启动,重新打开一个终端, 键入mongo
进入交互程序:
$> mongo
> show dbs
...数据库列表
mongodb
安装到此为止, 下面为mongod
b导入leanote
初始数据。
导入初始数据
导入之前 如果存在leanote数据库,先将其删除
leanote
初始数据存放在解压出来的源码leanote/mongodb_backup/leanote_install_data
中。
打开终端, 输入以下命令导入数据。
mongorestore -h localhost -d leanote --dir /home/user1/leanote/mongodb_backup/leanote_install_data/
现在在mongodb中已经新建了leanote数据库, 可用命令查看下leanote有多少张"表":
$> mongo
> show dbs # 查看数据库
leanote 0.203125GB
local 0.078125GB
> use leanote # 切换到leanote
switched to db leanote
> show collections # 查看表
files
has_share_notes
note_content_histories
note_contents
....
初始数据的users表中已有2个用户:
user1 username: admin, password: abc123 (管理员, 只有该用户才有权管理后台, 请及时修改密码)
user2 username: demo@leanote.com, password: demo@leanote.com (仅供体验使用)
方式二:使用docker一键部署mongo
docker-compost.yml文件
version: "2"
services:
mongo:
image: mongo:3.2.4
container_name: mongo
# command: mongod --auth
mem_limit: 1g
restart: always
ports:
- "7017:27017/tcp"
volumes:
- /etc/localtime:/etc/localtime
- $PWD/data/db:/data/db
执行命令docker-compose up -d
docker ps
正常有mongo的容器,就表示Mongo创建成功
将源码的 mongodb_backup/leanote_install_data
文件压包
tar -zcvf leanote_install_data.tar.gz ./leanote_install_data
复制到容器
docker cp leanote_install_data.tar.gz mongo:/
将mongo文件复制到mongo容器的根目录
进入容器
docker exec -it mongo bash
tar -zxvf leanote_install_data.tar.gz
还原leanote数据库
mongorestore -h localhost -d leanote --dir ./leanote_install_data/
可以查看到数据库中默认给我们创建了两个用户,一个访客,一个admin
admin的邮箱这里初始化时,时默认的邮箱,且在UI上修改不了,这里顺便把admin的邮箱修改一下,后面方便进行邮箱验证,邮箱密码找回
db.users.update({"Username" : "admin"},{$set: { "Email" : "3xxx@qq.com"}})
部署leanote
创建leanote文件夹
- 将leanote compose文件复制到leanote下面
- 将leanote源码包的 conf 文件夹 拷贝到leanote下面
- 修改 app.conf,配置mongodb的链接地址,site.url的地址(注意这里必须要是外网可访问的地址,是用来给系统上传文件,图片等使用的,用户头像,每次访问的是该地址)
- 把app.secret=后面的代码修改其中一部分,官方提示,不修改,可能会有安全隐患
- 将leanote源码包的public 拷贝到leanote/data/下面并在data目录下创建files文件夹,用来存放pdf文件
leanote 的 docker-compose文件
version: '2'
services:
leanote:
image: foolishflyfox/leanote:latest
restart: always
user: root
mem_limit: 1g
network_mode: "host"
container_name: leanote
ports:
- "5001:9000"
volumes:
- ./data/public:/leanote/public
- ./data:/leanote/data
- ./conf/app.conf:/leanote/conf/app.conf
- /etc/localtime:/etc/localtime
目录结构如下:
执行docker-compose up -d
docker ps
看到leanote容器创建,表示启动成功
docker logs -f leanote
查看日志
出现监听端口即表示启动成功
DEBUG 12:41:28 revel server.go:106: InitServerEngine: Found server engine and invoking section=server name=go
Listening on.. 0.0.0.0:9000
访问云笔记系统,发现没有样式,查看docker里的public目录,发现没有把宿主机的静态文件挂载到容器里,是我之前的挂载配置有问题,修改docker-compose文件的挂载路径,即可。
浏览器直接访问ip:端口
默认admin
账号的密码abc123
登录后尽快修改密码
这里已经可以访问系统了,如果端口用nginx反向代理一下也是可以的,那么就使用nginx的监听端口进行访问
nginx配置<如有需要可以进行配置>
nginx.conf文件样例
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 10240;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
log_format json '{"time_iso8601":"$time_iso8601",'
'"host":"$host",'
'"uri":"$uri",'
'"connection":$connection,'
'"connection_requests":$connection_requests,'
'"server_addr":"$server_addr",'
'"server_port":$server_port,'
'"remote_addr":"$remote_addr",'
'"remote_user":"$remote_user",'
'"http_x_user":"$http_x_user",'
'"http_x_forwarded_for":"$http_x_forwarded_for",'
'"http_user_agent":"$http_user_agent",'
'"http_referer":"$http_referer",'
'"body_bytes_sent":$body_bytes_sent,'
'"request":"$request",'
'"request_uri":"$request_uri",'
'"request_length":$request_length,'
'"request_time":$request_time,'
'"request_method":"$request_method",'
'"upstream_connect_time":"$upstream_connect_time",'
'"upstream_header_time":"$upstream_header_time",'
'"upstream_response_time":"$upstream_response_time",'
'"upstream_addr":"$upstream_addr",'
'"status":$status}';
access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream leanote9000{
server 127.0.0.1:5001;
}
server {
listen 9001;
server_name localhost;
client_max_body_size 10M;
root /root/app/compose/leanote/data/public;
location / {
proxy_read_timeout 600;
proxy_pass http://leanote9000;
#root html;
#index index.html index.htm;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "";
}
location ~ (/index.html|/html/loginPage.html|/css/wms/|/js/wms/|/images/packing/|/asset/media/audio/|/images/prod-logo.png|/images/prod-logo.svg|/images/wms/widgets/|/assets/media/audio/|/images/wms/returnReceipt/|/css/font-awesome-5.15.4/) {
root /root/app/compose/leanote/data/public/;
}
}
}
leanot系统的相关设置
配置发件箱
点击用户头像进入后台管理
修改admin密码
修改头像,这时候,就会用到 app.conf 里 site.url 的参数
验证邮箱,用到之前修改mongoDB中admin的邮箱,和上面配置的发件箱信息
修改admin密码,切记一定要把默认密码修改掉
还有一些到处路径什么的,大家就看着设置就好,不设置,就是默认路径了。
好了这就是今天的分享,整理博客花了3小时,珍惜,珍惜
更多推荐
所有评论(0)