当前位置:

首页 > 系统应用 > Flatnotes开源轻量笔记:基于Ubuntu系统Docker容器化部署实战记录

Flatnotes开源轻量笔记:基于Ubuntu系统Docker容器化部署实战记录

一、flatnotes介绍1.1 flatnotes简介flatnotes 是一个自托管的、无数据库的笔记 Web 应用程序,它利用文件夹存储 Markdown 文件。1.2 flatnotes特点移动响应式web界面。原始/所见即所得标记编辑器模式。高级搜索功能。注意“标记”功能。浅色/深色主题。

本文目录

    一、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。hostnameIP地址操作系统版本Docker版本jeven192.168.3.166centos 7.620.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 检查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",新建笔记。

    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

    八、总结

    使用FlatNotes的感觉就像是拥有了一个既简约又强大的私人图书馆,所有知识和灵感都以Markdown笔记的形式井然有序地安放在各个文件夹书架上。无需担心云端数据库的繁琐与隐私问题,因为一切由我掌控,在本地或私有服务器安静地绽放。编辑体验流畅,随时离线访问让我在任何环境下都能自由思考、记录,这种返璞归真的自托管方式,让知识管理变得既直接又安心。
    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    系统应用 Ubuntu
    相关文章 更多
    Ubuntu命令行入门:打开终端并验证文件目录操作
    Ubuntu命令行入门:打开终端并验证文件目录操作

    本教程指导Ubuntu新手打开终端,通过pwd、ls、cd、mkdir和touch命令完成基础文件目录操作。适用于桌面版、虚拟机及WSL环境,提供从查看路径到创建测试文件的完整验证步骤,帮助读者建立命令行操作的安全意识与正确习惯。

    在VMware中安装Ubuntu并验证启动的完整步骤
    在VMware中安装Ubuntu并验证启动的完整步骤

    本文提供在VMware中安装Ubuntu并验证启动的完整流程。适用于首次练习Linux或搭建开发环境的用户。按步骤完成虚拟机创建、ISO挂载、硬件分配与安装后,可通过终端命令确认版本、内核与网络状态,确保系统可正常使用。

    Ubuntu 26.04 将显著提升英伟达图形显卡在 Wayland 环境下的性能
    Ubuntu 26.04 将显著提升英伟达图形显卡在 Wayland 环境下的性能

    Ubuntu26.04LTS针对英伟达显卡在Wayland+GNOME环境进行性能调优,通过修改gbm_surface_lock_front_buffer函数,将帧渲染等待时间从毫秒级降至微秒级,显著提升UI响应和画面流畅度。该补丁已作为发行版专属补丁集成,确保LTS用户无需等待上游整合即可获得优化体验。

    Ubuntu Touch 24.04-2.0 Beta 发布:适配索尼 Xperia X 等手机 提升上网体验
    Ubuntu Touch 24.04-2.0 Beta 发布:适配索尼 Xperia X 等手机 提升上网体验

    UbuntuTouch24.04-2.0Beta发布,底层升级至Ubuntu24.04,浏览器引擎从Chromium87跃升至134,网页兼容性显著提升;新增屏幕刘海区域自动适配、截图编辑器、网络指示器改进、移动数据可靠性增强、数据加密稳定,并新增NothingPhone(1)等设备支持。

    Ubuntu如何查看系统防火墙规则
    Ubuntu如何查看系统防火墙规则

    ufw status仅显示高层策略和显式添加的规则(如“80 ALLOW Anywhere”),不反映默认策略绕过、IPv6独立规则、Docker等直写nftables的bypass规则,也无法体现本地回环流量不受管控等底层细节。Ubuntu 默认用 ufw 管理防火墙,但规则实际由 nftable

    Ubuntu如何更换锁屏背景图片
    Ubuntu如何更换锁屏背景图片

    锁屏背景和桌面壁纸之所以不同,是因为GNOME默认会复制桌面壁纸,然后强制叠加高斯模糊和亮度调整效果,这个效果是由lockDialogGroup的CSS来控制的。要是想去除模糊,建议使用Control Blur Effect On Lock Screen扩展,把Adjust Sigma设置为0就行。

    UbuntuSwapper在服务器上应用效果如何
    UbuntuSwapper在服务器上应用效果如何

    Ubuntu Swapper(一般就是指Ubuntu的交换分区或者交换文件)在服务器上的应用成效,是由多个因素共同决定的,像服务器的硬件配置情况、工作负载的类型以及交换空间的大小和具体配置等。下面为大家带来一些有关Ubuntu Swapper在服务器上应用效果的一般性评价:正面效果内存管理:交换空间

    Ubuntu如何配置命令行模式下的中文支持
    Ubuntu如何配置命令行模式下的中文支持

    根本原因是纯命令行tty默认不支持UTF-8及中文字体渲染,locale设置仅影响字符解析逻辑,不解决字体绘制问题;图形终端自带UTF-8渲染,而tty需借助fbterm等工具实现中文显示。为什么终端里中文显示为问号或方块 纯命令行(tty,例如通过Ctrl+Alt+F3进入的界面)默认不会加载UT

    如何通过Tomcat日志提升Ubuntu服务器性能
    如何通过Tomcat日志提升Ubuntu服务器性能

    通过分析Tomcat日志来提升Ubuntu服务器性能是一个很好的方法。以下是一些步骤和建议,帮助你通过Tomcat日志来优化服务器性能:1. 收集日志首先,得保证你的Tomcat服务器有详细的日志记录配置。在conf/logging.properties文件里,你可以对日志级别和输出格式进行调整。o

    Ubuntu如何设置具体的命令行配色
    Ubuntu如何设置具体的命令行配色

    直接修改PS1是最为可控且轻量的方法。因为GNOME Terminal主题难以区分提示符、命令输入与输出,而PS1搭配ANSI转义码能够精准地为各个字段上色,并且需要用[ ]进行包裹,以防止光标出现错位的情况。直接改 PS1 是最可控、最轻量的方式,不需要装框架或改终端全局配色。 为什么不用改 GN

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。