Skip to main content
  1. Posts/
  2. Self-Hosting/

Memos — setting up self-hosted notes for quick thoughts

··548 words·3 mins· loading · loading · ·
Stilicho2011
Author
Stilicho2011
Writing about homelab, self-hosting, automation and open-source solutions
Table of Contents
Self-Hosting - This article is part of a series.
Part : This Article

Memos - a lightweight self-hosted note-taking app. Feature overview and homelab use cases
#

If you’re looking for a minimalist self-hosted note-taking app that can be deployed in Docker or an LXC container in Proxmox, Memos deserves your attention. It’s an open-source solution for keeping personal notes, a technical journal, and a knowledge base, without a bloated interface or unnecessary features.

What Memos is and how it differs from other note-taking systems
#

Memos is a lightweight open-source note-taking app built around a timeline format. Unlike bloated services such as Notion or Obsidian, there’s no complex page hierarchy, databases, or block structures here.

The main idea is quickly capturing thoughts:

  • short text entries

  • Markdown support

  • automatic timestamping

  • tags right in the text

  • fast search

Philosophically, it’s closer to a “technical microblog” than a classic wiki.

Why Memos is a good fit for self-hosting and homelabs
#

Three things matter for a homelab:

  • Control over your data

  • Ease of deployment

  • Minimal resource requirements

Memos checks all three boxes.

Key features of Memos
#

1. Timeline format
#

All notes are shown as a chronological feed. This is convenient for jotting down ideas for projects.

2. Tags and filtering
#

Hashtags are supported:

#docker
#proxmox
#traefik
#auth

You can filter by tags and quickly find entries. This is handy when maintaining notes.

3. Multi-user support
#

Memos lets you:

  • create users;
  • isolate data;
  • use roles.

You can run a single instance for a family or a team.

4. Minimal system requirements
#

Memos does not require:

  • a separate PostgreSQL instance;
  • complex configuration;
  • an external cache;
  • heavy dependencies.

This makes it an ideal candidate for:

  • mini PCs;
  • single-board computers;
  • VPS.

5. A lightweight knowledge base
#

If you don’t need the complex hierarchy of Trilium Notes or a heavy PKM approach, Memos is a great fit for atomic notes.

Advantages of Memos:
#

  • Open-source

  • Self-hosted

  • Minimalism

  • Fast deployment

  • Low resource consumption

  • Docker support

Possible limitations
#

Memos won’t be a good fit if you need:

  • complex nested structures

  • databases inside notes

  • kanban boards

  • an advanced wiki system

It’s deliberately a minimalist tool.

Conclusion
#

Memos is an ideal self-hosted digital notebook for a homelab infrastructure.

If you need to:

  • quickly jot down thoughts;
  • store your data locally,

it’s one of the simplest and most convenient solutions.

Sample docker compose file from the video
#

services:
  memos:
    image: neosmemo/memos:stable
    container_name: memos
    #ports:
    #  - "5230:5230"
    volumes:
      - /home/user/docker/memos:/var/opt/memos
    environment:
      - MEMOS_MODE=prod
      - MEMOS_PORT=5230
    restart: unless-stopped
    networks:
      proxy:                              # Подключаем контейнер к внешней сети "proxy" (используется Traefik)
    labels:                               # Метки для интеграции с Traefik (обратный прокси)
      - "traefik.enable=true"                                      # Включаем обработку контейнера Traefik
      - "traefik.http.routers.memos.entrypoints=web"             # Определяем HTTP-вход (порт 80)
      - "traefik.http.routers.memos.rule=Host(`memos.domain.ru`)"  # Трафик на этот домен будет направляться в данный контейнер   
      - "traefik.http.middlewares.memos-https-redirect.redirectscheme.scheme=https"         # Middleware для редиректа с HTTP на HTTPS
      - "traefik.http.routers.memos.middlewares=memos-https-redirect"          # Применяем middleware редиректа к HTTP-маршруту
      - "traefik.http.routers.memos-secure.entrypoints=websecure"          # Определяем HTTPS-вход (порт 443)
      - "traefik.http.routers.memos-secure.rule=Host(`memos.domain.ru`)"         # HTTPS-маршрут для того же домена 
      - "traefik.http.routers.memos-secure.tls=true"          # Включаем TLS (HTTPS)
      - "traefik.http.routers.memos-secure.service=memos"     # Привязываем HTTPS-маршрут к сервису memos     
      - "traefik.http.services.memos.loadbalancer.server.port=5230"          # Указываем внутренний порт, на котором memos слушает в контейнере
      - "traefik.docker.network=proxy"          # Указываем, что Traefik должен искать контейнер в сети "proxy"                          
   
networks:
  proxy:                                  # Определение внешней сети для взаимодействия с Traefik
    external: true                        # Сеть уже создана ранее (не создавать заново)        
Self-Hosting - This article is part of a series.
Part : This Article

Related