docker+nginx搭建私有云笔记leanote
前提條件,部署docker;部署docker-compose
下載leanote源碼
從github下載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進入交互程序:
mongodb安裝到此為止, 下面為mongodb導入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有多少張"表":
初始數據的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.4container_name: mongo# command: mongod --authmem_limit: 1grestart: alwaysports:- "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:latestrestart: alwaysuser: rootmem_limit: 1gnetwork_mode: "host"container_name: leanoteports:- "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 查看日志
出現監聽端口即表示啟動成功
訪問云筆記系統,發現沒有樣式,查看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小時,珍惜,珍惜
總結
以上是生活随笔為你收集整理的docker+nginx搭建私有云笔记leanote的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab中如何处理复数,matlab
- 下一篇: ubuntu 环境变量