Markdown笔记应用程序Note Mark

在这里插入图片描述

什么是 Note Mark

Note Mark 是一种轻量、快速、简约,基于网络的 Markdown 笔记应用程序。具有时尚且响应迅速的网络用户界面。

安装

在群晖上以 Docker 方式安装。

ghcr.io 镜像下载

官方的镜像没有发布在 docker hub,而是在 ghcr.io,所以直接用命令行来安装

镜像分为前端

和后端两个镜像

SSH 客户端中依次执行下面的命令

# 下载前端镜像  
docker pull ghcr.io/enchant97/note-mark-frontend:0.6.0-alpha

# 下载后端镜像
docker pull ghcr.io/enchant97/note-mark-backend:0.6.0-alpha

如果没有科学上网,很可能会拉不动,可以试试 docker 代理网站:https://dockerproxy.com/,但是会多几个步骤

# ----下载前端镜像----
## 如果拉不动的话加个代理  
docker pull ghcr.dockerproxy.com/enchant97/note-mark-frontend:0.6.0-alpha
  
## 重命名镜像(如果是通过代理下载的)  
docker tag ghcr.dockerproxy.com/enchant97/note-mark-frontend:0.6.0-alpha ghcr.io/enchant97/note-mark-frontend:0.6.0-alpha 
  
## 删除代理镜像(如果是通过代理下载的)  
docker rmi ghcr.dockerproxy.com/enchant97/note-mark-frontend:0.6.0-alpha

# ----下载后端镜像----
## 如果拉不动的话加个代理  
docker pull ghcr.dockerproxy.com/enchant97/note-mark-backend:0.6.0-alpha
  
## 重命名镜像(如果是通过代理下载的)  
docker tag ghcr.dockerproxy.com/enchant97/note-mark-backend:0.6.0-alpha ghcr.io/enchant97/note-mark-backend:0.6.0-alpha
  
## 删除代理镜像(如果是通过代理下载的)  
docker rmi ghcr.dockerproxy.com/enchant97/note-mark-backend:0.6.0-alpha

下载完成后,可以在 映象 中看到

在这里插入图片描述

nginx.conf

将下面的内容保存为 nginx.conf 文件

upstream backend {
    server backend:8000;
}

upstream frontend {
    server frontend:8080;
}

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://frontend;
    }

    location /api {
        proxy_pass http://backend/api;
    }
}

docker-compose 安装

将下面的内容保存为 docker-compose.yml 文件

version: "3"

services:
  backend:
    image: ghcr.io/enchant97/note-mark-backend:0.6.0-alpha
    container_name:note-mark-backend
    restart: unless-stopped
    volumes:
      - ./data:/data
    environment:
      JWT_SECRET: "mRLxVp/4k8QNLNt2WNuuKBHY5HiYrOtIMqvpM0Wg0wM="

  frontend:
    image: ghcr.io/enchant97/note-mark-frontend:0.6.0-alpha
    container_name:note-mark-frontend
    restart: unless-stopped

  proxy:
    image: nginx:alpine
    container_name:note-mark-web
    restart: unless-stopped
    ports:
      - 8381:80
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
  • JWT_SECRET :可以用命令 openssl rand -base64 32 来生成

在这里插入图片描述

更多的环境变量,可以看官方文档:https://github.com/enchant97/note-mark/blob/main/docs/deploy.md#configuration

然后依次执行下面的命令

# 新建文件夹 note-mark 和 子目录
mkdir -p /volume2/docker/note-mark/data

# 进入 note-mark 目录
cd /volume2/docker/note-mark

# 将 nginx.conf 和 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8381 就能看到主界面

login --> need an account? --> create user 来创建账号

登录后的主界面

在这里插入图片描述

先创建笔记本(notebook

然后创建笔记( note

可通过右上角的 Edit 开关进入编辑状态

在这里插入图片描述

或者预览状态

参考文档

enchant97/note-mark: Note Mark is a lighting fast and minimal; web-based Markdown notes app.
地址:https://github.com/enchant97/note-mark

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/25877.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

iptables和防火墙

文章目录 1.防火墙2.Iptables基本介绍2.1 什么是iptables2.2 什么是包过滤防火墙2.3 包过滤防火墙如何实现 1.防火墙 Linux防火墙主要工作在网络层,针对 TCP/IP 数据包实施过滤和限制,典型的包过滤防火墙,基于内核编码实现,具有非…

什么是低代码开发?低代码开发可以解决哪些问题?

一、什么是低代码开发? 低代码可以理解为是一种全新的应用开发理念。主要以可视化、参数化的系统配置方式来进行程序应用的开发,因此可以大幅度减少代码编写的工作,从而提高开发效率。 低代码平台则是通过对于业务场景进行高度抽象、提炼&…

unittest单元测试框架

背景 unittest也称为PyUnit,是借鉴Java中JUnit框架产生。 unittest使我们具备创建测试用例、测试套件、测试夹具的能力。 组成 Test Fixture(测试夹具):可以定义在单个或多个测试执行之前的准备工作和测试执行之后的清理工作。…

【P42】JMeter 运行时间控制器(Runtime Controller)

文章目录 一、运行时间控制器(Runtime Controller)参数说明二、测试计划设计 一、运行时间控制器(Runtime Controller)参数说明 可以通过时间来确定其后代元素运行多长时间,在时间范围内,后代元素会一直运…

八、(重点)视图集ModelViewSet自定义action路由routers

上一章: 七、Django DRF框架GenericAPIView--搜索&排序&分页&返回值_做测试的喵酱的博客-CSDN博客 下一章: 九、DRF生成API文档_做测试的喵酱的博客-CSDN博客 1、View 最基础的视图类View 2、views.APIView class APIView(View): …

kafka 的内部结构和 kafka 的工作原理

基本设置 让我们开始安装kafka。下载最新的 Kafka 版本并解压缩。打开终端并启动 kafka 和 zookeeper。 $ cd $HOME $ tar -xzf kafka_<version>.tgz $ cd kafka_<version> $ bin/zookeeper-server-start.sh config/zookeeper.properties # open another termina…

Canvas画布基本功能及实现网页签名功能

canvas 简介 <canvas> 是 HTML5 新增的&#xff0c;一个可以使用脚本(通常为 JavaScript) 在其中绘制图像的 HTML 元素。它可以用来制作照片集或者制作简单(也不是那么简单)的动画&#xff0c;甚至可以进行实时视频处理和渲染。和所有 DOM 元素一样&#xff0c;拥有自己…

Elasticsearch:数据是如何被写入的?

在我之前的文章 “Elasticsearch&#xff1a;索引数据是如何完成的”&#xff0c;我详述了如何索引 Elasticsearch 的数据的。在今天的文章中&#xff0c;我将从另外一个视角来诠释如何写入数据到 Elasticsearch。更多关于 Elasticsearch 数据操作&#xff0c;请阅读文章 “Ela…

实体店引流获客系统模式开发详解

随着互联网的日益发展&#xff0c;实体店的处境变得越来越艰难&#xff0c;获客难和销量差成为了实体店最头疼的两大问题。面对这种情况&#xff0c;一味固步自封是不行的&#xff0c;最好还是顺应潮流&#xff0c;结合一款合适的商业模式&#xff0c;来帮助自己快速引流获客和…

深入理解设计原则之接口隔离原则(ISP)【软件架构设计】

系列文章目录 C高性能优化编程系列 深入理解软件架构设计系列 深入理解设计模式系列 高级C并发线程编程 LSP&#xff1a;接口隔离原则 系列文章目录1、接口隔离原则的定义和解读2、案例解读3、如何判断一个接口是否符合接口隔离原则&#xff1f;小结 1、接口隔离原则的定义和…

canal server 标准化集群搭建(完结)

4.2. 创建 server 所属集群&#xff1a;选择刚才添加的 “集群名称” server 名称&#xff1a; server_1、server_2、server_3 依次类推 server ip&#xff1a;server 的 ip 地址 admin 端口&#xff1a;canal server 与 canal admin 的通信端口&#xff0c;非生产环境从 2…

云南LED、LCD显示屏系统建设,户外、室内广告大屏建设方案

LED大屏幕显示系统是LED高清晰数字显示技术、显示单元无缝拼接技术、多屏图像处理技术、信号切换技术、网络技术等科技手段的应用综合为一体&#xff0c;形成一个拥有高亮度、高清晰度、技术先进、功能强大、使用方便的大屏幕投影显示系统。通过大屏幕显示系统&#xff0c;可以…

3.1 矩阵连乘问题

博主简介&#xff1a;一个爱打游戏的计算机专业学生博主主页&#xff1a; 夏驰和徐策所属专栏&#xff1a;算法设计与分析 学习目标&#xff1a; 如果我要学习动态规划中的矩阵连乘问题&#xff0c;我会采取以下学习方法&#xff1a; 1. **理解问题的背景和目标&#xff1a;首…

【MySQL】如何速通MySQL(2)

&#x1f4cc;前言&#xff1a;本篇博客介绍如何速通MySQL的第二篇&#xff0c;主要介绍Mysql中主要的基础的入门&#xff0c;学习MySQL之前要先安装好MySQL&#xff0c;如果还没有安装的小伙伴可以看看博主前面的博客&#xff0c;里面有详细的安装教程。或者看一下下面这个链接…

SpringMVC第七阶段:SpringMVC的增删改查(01)

SpringMVC的增删改查 1、准备单表的数据库 drop database if exists springmvc;create database springmvc;use springmvc; ##创建图书表 create table t_book(id int(11) primary key auto_increment, ## 主键name varchar(50) not null, ## 书名 author varchar(50) no…

解决高并发

目录 1.4 对比单体系统、分布式系统和微服务系统 1.4.1 单体系统之痛 1、什么是单体系统 2、单体系统面临的问题 1.4.2 高并发系统之分布式架构 1.4.3 高并发系统之微服务架构 1.4 对比单体系统、分布式系统和微服务系统 接下来从企业真实场景出发&#xff0c;对比单体系统…

JavaEE进阶(5/29)SpringMVC

目录 1.复习 2.URL传参PathVariable 3.上传文件RequestPart 4.获取Cookie/Session/header 5.传统/维新获取cookies 6.传统/维信获得Header 7.获取Session&#xff08;非常重要&#xff09; 8.不加ResponseBody 9.如何获取Json数据&#xff0c;RequestBody 10.想…

python:容器:字符串——常用操作

字符串[下标]根据下标索引取出特定位置字符字符串.index(字符串)查找给定字符的第一个匹配项的下标字符串.replace(字符串1,字符串2) 将字符串内的全部字符串1&#xff0c;替换为字符串2 不会修改原字符串&#xff0c;而是得到一个新的 字符串.split(字符串) 按照给定字符串&am…

数据偏度介绍和处理方法

偏度&#xff08;skewness&#xff09;是用来衡量概率分布或数据集中不对称程度的统计量。它描述了数据分布的尾部&#xff08;tail&#xff09;在平均值的哪一侧更重或更长。偏度可以帮助我们了解数据的偏斜性质&#xff0c;即数据相对于平均值的分布情况。 有时&#xff0c;正…

Linux :: 【基础指令篇 :: 文件及目录操作:(2)】::Linux操作系统的文件“框架”、绝对路径与相对路径及路径定位文件对象的解释

前言&#xff1a;本篇是 Linux 基本操作篇章的内容&#xff01; 笔者使用的环境是基于腾讯云服务器&#xff1a;CentOS 7.6 64bit。 学习集&#xff1a; C 入门到入土&#xff01;&#xff01;&#xff01;学习合集Linux 从命令到网络再到内核&#xff01;学习合集 本篇内容&am…