GitHub 又一高颜值备忘录 Memos 诞生,6.3k Star

887 阅读2分钟

本公众号分享的软件服务以及语言均源于网络,只做针对这些软件服务或者语言的使用实践进行分享和整理。本公众号不对任何人进行推荐,在使用这些软件或编程代码时有可能会引发一些问题,甚至导致数据丢失,请您自行承担相应的后果!本公众号概不负责! 若您觉得公众号发布的内容若侵犯到您的权益,请联系即时管理员沟通!


这是一款完全开源的基于 B/S 的备忘录系统,目前从GitHub[1]上6.3k可看出其是一款非常受喜爱的开源软件:

目前 memsos 主要具有以下功能:

  1. 永远免费且开源

  2. 支持自托管以及 Docker 等便捷式部署

  3. 支持一些 markdown 格式

  4. 可以将备忘录设置为私有或者公开

  5. 支持 RESTful API

  6. 支持使用 iframe 嵌入到其他网站

  7. 支持标签化分组

  8. 支持交互式日历视图

  9. 便捷的数据迁移以及备份

memos 的部署很简单,以下是使用 docker 部署

docker run -d --name memos -p 5230:5230 -v ~/.memos/:/var/opt/memos neosmemo/memos:latest

当然,部署在 k8s 中,也是相当简单

apiVersion: v1
kind: PersistentVolume
metadata:
  name: memos-pv
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/data/memos"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: memos-pvc
  namespace: blogs
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: memos
  labels:
    app: memos
  namespace: blogs
spec:
  replicas: 1
  template:
    metadata:
      name: memos
      labels:
        app: memos
    spec:
      containers:
        - name: memos
          image: neosmemo/memos:latest
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 5230
              name: http
          volumeMounts:
            - mountPath: /var/opt/memos
              name: memosdata
            - mountPath: /etc/localtime
              name: timezone
              readOnly: true
      restartPolicy: Always
      volumes:
        - name: memosdata
          persistentVolumeClaim:
            claimName: memos-pvc
        - name: timezone
          hostPath:
            path: /usr/share/zoneinfo/Asia/Shanghai
  selector:
    matchLabels:
      app: memos
---
apiVersion: v1
kind: Service
metadata:
  name: memos-svc
  namespace: blogs
spec:
  selector:
    app: memos
  ports:
    - port: 5230
      targetPort: http
  type: ClusterIP
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: memos-ingress
  namespace: blogs
  labels:
    exposed_by: ingress
  annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: "25M"
    nginx.ingress.kubernetes.io/affinity: "cookie"
    nginx.ingress.kubernetes.io/session-cookie-name: "route"
spec:
  ingressClassName: nginx
  rules:
    - host: memos.devopsman.cn
      http:
        paths:
          - pathType: Prefix
            path: "/"
            backend:
              service:
                name: memos-svc
                port:
                  number: 5230

部署完成后,直接访问memos.devopsman.cn即可访问了。

memos 基本满足备忘录的基本功能,可以上传图片,配置 Tag 的方式过滤分组,同时可以设置访问权限为私有还是公有的。有兴趣的可以试试。

资料参考

[1] memos GitHub: "github.com/usememos/me…"

云原生生态圈之玩转容器系列文章

云原生生态圈之运维架构专辑文章

云原生生态圈之DevOps理论与实践系列文章

云原生生态圈之Kubernetes理论与实践系列文章

云原生生态圈之Go语言系列文章   技术源于生活系列视频