Self-host Memos: Полное руководство по установке и настройке заметок с контролем данных

Установите Memos — самохостинг альтернативы заметкам. Пошаговое руководство: Docker, настройка, безопасность и интеграции. Полный контроль над данными без подписок и трекинга.

Не указано

Подготовка окружения

Создайте директорию для Memos и поддиректорию для хранения данных. Это обеспечит изолированность и сохранность данных при обновлении контейнера.

mkdir -p ~/memos/data
cd ~/memos

Создание docker-compose.yml

Создайте файл конфигурации Docker Compose. Он определяет, какой образ использовать, куда монтировать данные и какие порты открывать.

version: "3.0"

services:
  memos:
    image: neosmemo/memos:latest
    container_name: memos
    restart: unless-stopped
    ports:
      - "5230:5230"
    volumes:
      - ./data:/app/memos/data
    environment:
      - TZ=Europe/Moscow

Запуск контейнера

Запустите контейнер в фоновом режиме. Docker автоматически скачает необходимый образ, если он отсутствует локально.

docker compose up -d

Проверка работы

Убедитесь, что контейнер запущен и работает без ошибок, проверив список запущенных контейнеров и логи.

docker compose ps
docker compose logs -f

Первоначальная настройка

Откройте браузер и перейдите по адресу http://<IP_сервера>:5230. Создайте учетную запись администратора (первый зарегистрированный пользователь автоматически получает права администратора).

http://<IP_сервера>:5230

Настройка обратного прокси (Nginx)

Для безопасного доступа через HTTPS и скрытия порта 5230 настройте Nginx. Создайте конфигурационный файл и перенаправьте трафик на контейнер Memos.

sudo nano /etc/nginx/sites-available/memos.conf

# Содержимое файла:
server {
    server_name your-domain.com;
    location / {
        proxy_pass http://localhost:5230;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

# Активация конфига:
sudo ln -s /etc/nginx/sites-available/memos.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

Установка SSL сертификата

Используйте Certbot для получения бесплатного SSL сертификата Let's Encrypt и автоматического обновления конфигурации Nginx.

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your-domain.com

Настройка резервного копирования

Создайте скрипт для автоматического бэкапа данных и добавьте его в cron для регулярного выполнения. Это защитит от потери данных.

# Скрипт backup_memos.sh:
#!/bin/bash
DATE=$(date +%F)
BACKUP_DIR="/path/to/backups"
cd ~/memos
docker compose stop
tar -czf $BACKUP_DIR/memos_data_$DATE.tar.gz ./data
docker compose start
find $BACKUP_DIR -name "memos_data_*.tar.gz" -mtime +7 -delete

# Добавление в cron (еженедельный запуск):
crontab -e
# Добавить: 0 2 * * 0 /home/user/memos/backup_memos.sh