Systemd Deployment
Run Mnemosyne as a systemd service on Linux.
Service File
Create /etc/systemd/system/mnemosyne.service:
[Unit]
Description=Mnemosyne Memory Server
After=network.target
[Service]
Type=simple
User=mnemosyne
Group=mnemosyne
WorkingDirectory=/opt/mnemosyne
Environment="MNEMOSYNE_DATA_DIR=/opt/mnemosyne/data"
ExecStart=/opt/mnemosyne/venv/bin/python -m mnemosyne --host 0.0.0.0 --port 8090 --db-path /opt/mnemosyne/data/mnemosyne.db
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Setup
# Create user
sudo useradd -r -s /bin/false mnemosyne
# Create directories
sudo mkdir -p /opt/mnemosyne/data
sudo chown -R mnemosyne:mnemosyne /opt/mnemosyne
# Install in virtualenv
sudo -u mnemosyne bash -c '
cd /opt/mnemosyne
python3 -m venv venv
venv/bin/pip install mnemosyne-memory
'
# Copy service file
sudo cp mnemosyne.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable mnemosyne
sudo systemctl start mnemosyne
Management
# Status
sudo systemctl status mnemosyne
# Logs
sudo journalctl -u mnemosyne -f
# Restart
sudo systemctl restart mnemosyne
# Stop
sudo systemctl stop mnemosyne
Log Rotation
Create /etc/logrotate.d/mnemosyne:
/var/log/mnemosyne/*.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 0640 mnemosyne mnemosyne
}
Security
Run as a dedicated non-root user. Use firewall rules to restrict access. Consider Unix socket binding instead of TCP for local-only deployments.
Related Pages
Deployment Overview
Overview of Mnemosyne deployment options: Docker, Fly.io, systemd services, and cron jobs. Choose th...
Cron Jobs
Configure cron jobs for Mnemosyne: scheduled memory consolidation, cleanup tasks, backup routines, a...
Monitoring
Set up monitoring for Mnemosyne: health endpoints, Prometheus metrics, memory usage stats, query lat...
Mnemosyne