一、flatnotes介绍
1.1 flatnotes简介
flatnotes 是一个自托管的、无数据库的笔记 Web 应用程序,它利用文件夹存储 Markdown 文件。
1.2 flatnotes特点
- 移动响应式web界面。
- 原始/所见即所得标记编辑器模式。
- 高级搜索功能。
- 注意“标记”功能。
- 浅色/深色主题。
- 多个身份验证选项(无、只读、用户名/密码、2FA)。
- Restful API。
二、本地环境介绍
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为centos7.6。
hostname | IP地址 | 操作系统版本 | Docker版本 |
---|---|---|---|
jeven | 192.168.3.166 | centos 7.6 | 20.10.17 |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎使用;
2.在Docker环境下成功部署flatnotes笔记工具。
三、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。
[root@jeven ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2023-08-23 23:41:16 CST; 1 weeks 1 days ago
Docs: https://docs.docker.com
Main PID: 9562 (dockerd)
Tasks: 50
Memory: 1.4G
CGroup: /system.slice/docker.service
3.2 检查Docker版本
检查Docker版本
[root@jeven ~]# docker version Client: Docker Engine - Community Version: 20.10.17 API version: 1.41 Go version: go1.17.11 Git commit: 100c701 Built: Mon Jun 6 23:05:12 2022 OS/Arch: linux/amd64 Context: default Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.17
API version: 1.41 (minimum version 1.12)
Go version: go1.17.11
Git commit: a89b842
Built: Mon Jun 6 23:03:33 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.6
GitCommit: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
runc:
Version: 1.1.2
GitCommit: v1.1.2-0-ga916309
docker-init:
Version: 0.19.0
GitCommit: de40ad0
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
[[root@jeven ~]# docker compose version
Docker Compose version v2.19.1
四、下载flatnotes镜像
从docker hub下载flatnotes镜像
[root@jeven ~]# docker pull dullage/flatnotes
Using default tag: latest
latest: Pulling from dullage/flatnotes
1d5252f66ea9: Pull complete
eefb43356e06: Pull complete
c26db0eb1f01: Pull complete
300843d99304: Pull complete
daddf7df59b6: Pull complete
fd5b7d323a9e: Pull complete
956d12ab1aba: Pull complete
3a27da5a148e: Pull complete
9bc9c825c797: Pull complete
4f4fb700ef54: Pull complete
2dff9aeca767: Pull complete
745990a309e1: Pull complete
cf33157fe535: Pull complete
1f4f074b255f: Pull complete
042bd107273a: Pull complete
Digest: sha256:666b237abff5a16d781ee7f06ccdadef9e42951de3ec320a071407a9e85666ef
Status: Downloaded newer image for dullage/flatnotes:latest
docker.io/dullage/flatnotes:latest
五、部署flatnotes笔记工具
5.1 创建目录
新建挂载目录
mkdir -p /data/flatnotes/data && cd /data/flatnotes/
- 目录授权
chmod -R 777 /data/flatnotes/
5.2 使用docker-cli部署
使用docker-cli命令部署flatnotes笔记工具
- 生成随机KEY
[root@jeven flatnotes]# cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 24 | head -n 1
Nl1rQmfg4gsnJfBfsmkXOo7G
docker run -d
--restart unless-stopped
--name flatnotes
-p "28880:8080"
-v "/data/flatnotes/data:/data"
-e "FLATNOTES_AUTH_TYPE=password"
-e "FLATNOTES_USERNAME=admin"
-e "FLATNOTES_PASSWORD=admin"
-e "FLATNOTES_SECRET_KEY=Nl1rQmfg4gsnJfBfsmkXOo7G"
-e "PORT=8080"
dullage/flatnotes:latest
5.3 编辑docker-compose.yaml文件
编辑docker-compose.yaml文件
version: '3'
services:
flatnotes:
image: dullage/flatnotes:latest
container_name: flatnotes
restart: always
ports:
- 28880:8080
volumes:
- /data/flatnotes/data:/data
environment:
- FLATNOTES_AUTH_TYPE=password
- FLATNOTES_USERNAME=admin
- FLATNOTES_PASSWORD=admin
- FLATNOTES_SECRET_KEY=Nl1rQmfg4gsnJfBfsmkXOo7G
- PORT=8080
5.4 部署flatnotes
使用docker compose快速部署flatnotes
[root@jeven flatnotes]# docker compose up -d
[+] Running 2/2
⠿ Network flatnotes_default Created 0.1s
⠿ Container flatnotes Started 0.4s
5.5 检查容器状态
检查容器状态
[root@jeven flatnotes]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
23eebd85b174 dullage/flatnotes:latest "/entrypoint.sh" 13 seconds ago Up 13 seconds 0.0.0.0:28880->8080/tcp, :::28880->8080/tcp flatnotes
5.6 检查flatnotes容器日志
检查flatnotes容器日志,确保服务正常运行。
[root@jeven flatnotes]# docker logs flatnotes
Setting up user and group...
Adding group flatnotes' (GID 1000) ... Done. Adding user
flatnotes' ...
Adding new user flatnotes' (1000) with group
flatnotes' ...
Creating home directory /home/flatnotes' ... Copying files from
/etc/skel' ...
Setting file permissions...
WARNING: Breaking changes introduced in version 3.x:
- The port flatnotes uses inside the Docker container has been changed to 8080 (previously 80).
- To accompany the above change, support for the PORT environment variable has been removed.
The note directory inside the Docker container has moved from /app/data to simply /data.
Starting flatnotes...
2023-09-01 10:22:51 [INFO]: Creating new index
INFO: Started server process [1]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0 (Press CTRL+C to quit)
六、访问flatnotes
6.1 进入flatnotes登录页
访问地址:http://192.168.3.166
将IP地址替换为自己服务器的IP地址
6.2 访问flatnotes首页
账号密码为自定义设置的admin/admin
七、flatnotes的基本使用
7.1 新建笔记
- 点击右上角的new,新建笔记。
7.2 编辑笔记内容
编辑笔记内容,使用markdown格式。
7.3 预览笔记内容
点击预览笔记内容
7.4 保存笔记内容
保存笔记内容
7.5 查看首页笔记
回到首页,可以看到显示刚才编辑保存的笔记。
7.6 查看文件存储
在挂载目录/data/flatnotes/data上,可以看到刚才编辑保存的笔记文件。
[root@jeven data]# pwd
/data/flatnotes/data
[root@jeven data]# ls -l
total 8
-rw-r--r--. 1 admin admin 5680 Sep 1 18:52 Linux系统之普通用户sudo提权配置.md
我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!