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