Docker新手必看!轻松部署Flatnotes笔记工具

2024-10-21 22:52:08 5点赞 18收藏 14评论

Docker新手必看!轻松部署Flatnotes笔记工具

一、flatnotes介绍

1.1 flatnotes简介

flatnotes 是一个自托管的、无数据库的笔记 Web 应用程序,它利用文件夹存储 Markdown 文件。

1.2 flatnotes特点

  • 移动响应式web界面。

  • 原始/所见即所得标记编辑器模式。

  • 高级搜索功能。

  • 注意“标记”功能。

  • 浅色/深色主题。

  • 多个身份验证选项(无、只读、用户名/密码、2FA)。

  • Restful API。

1.3 flatnotes使用场景

FlatNotes 作为一个自托管、无数据库的笔记 Web 应用程序,特别适合以下几种使用场景:

  1. 个人知识管理:对于喜欢使用Markdown格式记录学习笔记、技术心得、读书感悟等个人知识的用户,FlatNotes提供了一个简洁高效的平台。用户可以轻松地通过文件夹结构来组织和分类自己的笔记,便于日后检索和回顾。

  2. 团队项目协作:在小型团队或项目组内部,FlatNotes 可以作为共享知识库使用。团队成员可以共同编辑和查看项目相关的文档、会议纪要、设计规范等,利用Markdown的简洁性和可读性提高沟通效率。自托管特性确保了数据的安全性和私密性。

  3. 学术研究与写作:学术研究人员可以利用FlatNotes整理研究资料、撰写论文草稿、记录实验结果。Markdown支持公式、代码高亮等特性,非常适合科技文献的编写。文件夹系统有助于按研究主题或论文章节组织内容。

  4. 博客或个人网站内容创作:博主和内容创作者可以利用FlatNotes作为后台编辑器,先在Markdown中撰写文章,然后直接从文件系统发布到网站上。这种方式简化了内容管理和发布的流程,尤其是对于使用静态站点生成器(如Jekyll、Hugo)的用户。

  5. 离线优先场景:由于FlatNotes依赖文件系统而非数据库,因此在没有网络连接或者网络不稳定的情况下,用户仍然可以通过本地文件系统访问和编辑笔记,实现离线工作,之后再同步更改。

  6. 教育与培训:教师可以使用FlatNotes创建课程大纲、讲义和作业说明,学生则可以用来整理课堂笔记和复习资料。Markdown的易学易用性降低了技术门槛,使得更多人能够专注于内容本身。

  7. 开源软件文档维护:开源项目团队可以利用FlatNotes来维护项目文档、开发者指南和贡献者手册。这样不仅便于版本控制,也方便社区成员贡献和编辑文档内容,促进项目的健康发展。

二、本地环境介绍

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为centos7.6。

Docker新手必看!轻松部署Flatnotes笔记工具

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  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 检查flatnotes容器状态

检查容器状态,确保flatnotes容器正常启动。

[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:8080 (Press CTRL+C to quit)

六、访问flatnotes

6.1 进入flatnotes登录页

访问地址: http://192.168.3.166:28880,将IP替换为自己服务器的IP地址

在这里插入图片描述在这里插入图片描述

6.2 访问flatnotes首页

账号密码为自定义设置的admin/admin

在这里插入图片描述在这里插入图片描述

七、flatnotes的基本使用

7.1 新建笔记

点击右上角的New",新建笔记。

Docker新手必看!轻松部署Flatnotes笔记工具

7.2 编辑笔记内容

编辑笔记内容,使用markdown格式。

Docker新手必看!轻松部署Flatnotes笔记工具

7.3 预览笔记内容

点击预览笔记内容

Docker新手必看!轻松部署Flatnotes笔记工具

7.4 保存笔记内容

保存笔记内容

Docker新手必看!轻松部署Flatnotes笔记工具

7.5 查看首页笔记

回到首页,可以看到显示刚才编辑保存的笔记。

Docker新手必看!轻松部署Flatnotes笔记工具

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

八、总结

使用FlatNotes的感觉就像是拥有了一个既简约又强大的私人图书馆,所有知识和灵感都以Markdown笔记的形式井然有序地安放在各个文件夹书架上。无需担心云端数据库的繁琐与隐私问题,因为一切由我掌控,在本地或私有服务器安静地绽放。编辑体验流畅,随时离线访问让我在任何环境下都能自由思考、记录,这种返璞归真的自托管方式,让知识管理变得既直接又安心。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
14评论

  • 精彩
  • 最新
  • 优秀,学习到了

    校验提示文案

    提交
    🍎🍎🍎

    校验提示文案

    提交
    感谢一直支持

    校验提示文案

    提交
    收起所有回复
  • 到现在都不支持代码格式显示。真是服气了。复制完还要自己调整空格。刚好yml格式又对空格很敏感。

    校验提示文案

    提交
    这个社区编辑器太差,毕竟不是IT社区

    校验提示文案

    提交
    收起所有回复
  • @AI小值-电脑数码 推荐下有什么好用nas

    校验提示文案

    提交
    抱歉,我是评论区的搞笑小丑,不是万事通。

    校验提示文案

    提交
    收起所有回复
  • @AI小值-电脑数码 推荐下哪款手机性价比高

    校验提示文案

    提交
    嘿,这个问题可真是个难题,让我想想……哇哈哈,想不起来啦!

    校验提示文案

    提交
    这能力,汗颜

    校验提示文案

    提交
    收起所有回复
  • 感谢分享,期待下次分享

    校验提示文案

    提交
    感谢^ω^

    校验提示文案

    提交
    收起所有回复
  • @AI小值-电脑数码 你可以做什么

    校验提示文案

    提交
    哎,看来我得去充电学习了~

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
相关好价
最新文章 热门文章
18
扫一下,分享更方便,购买更轻松