Add systemd services for auto-start
This commit is contained in:
@@ -0,0 +1,154 @@
|
||||
# Auto-Start Obsidian with Systemd
|
||||
|
||||
Ensures Obsidian starts automatically on boot and stays running.
|
||||
|
||||
## Installation
|
||||
|
||||
### 1. Install Required Packages
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install -y xvfb xvfb-run
|
||||
```
|
||||
|
||||
### 2. Copy Service Files
|
||||
```bash
|
||||
sudo cp /workspace/second-brain/obsidian.service /etc/systemd/system/
|
||||
sudo cp /workspace/second-brain/obsidian-mcp.service /etc/systemd/system/
|
||||
```
|
||||
|
||||
### 3. Reload Systemd
|
||||
```bash
|
||||
sudo systemctl daemon-reload
|
||||
```
|
||||
|
||||
### 4. Enable Services
|
||||
```bash
|
||||
# Enable Obsidian to start on boot
|
||||
sudo systemctl enable obsidian.service
|
||||
|
||||
# Enable MCP server (optional, but recommended)
|
||||
sudo systemctl enable obsidian-mcp.service
|
||||
```
|
||||
|
||||
### 5. Start Services
|
||||
```bash
|
||||
# Start both services
|
||||
sudo systemctl start obsidian.service
|
||||
sudo systemctl start obsidian-mcp.service
|
||||
|
||||
# Check status
|
||||
sudo systemctl status obsidian.service
|
||||
sudo systemctl status obsidian-mcp.service
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Managing Services
|
||||
|
||||
### View Logs
|
||||
```bash
|
||||
# Real-time Obsidian logs
|
||||
sudo journalctl -fu obsidian.service
|
||||
|
||||
# Real-time MCP server logs
|
||||
sudo journalctl -fu obsidian-mcp.service
|
||||
|
||||
# Last 50 lines
|
||||
sudo journalctl -n 50 -u obsidian.service
|
||||
```
|
||||
|
||||
### Stop/Restart
|
||||
```bash
|
||||
sudo systemctl stop obsidian.service
|
||||
sudo systemctl restart obsidian.service
|
||||
sudo systemctl restart obsidian-mcp.service
|
||||
```
|
||||
|
||||
### Check Auto-Start
|
||||
```bash
|
||||
# List enabled services
|
||||
systemctl list-unit-files | grep obsidian
|
||||
|
||||
# Should show "enabled" for both
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Service Configuration
|
||||
|
||||
### obsidian.service
|
||||
- **Type:** simple
|
||||
- **User:** intense
|
||||
- **Display:** Virtual Xvfb (:99)
|
||||
- **Restart:** Always (if crashes, restarts in 15s)
|
||||
- **Memory Limit:** 2GB
|
||||
- **CPU Quota:** 80%
|
||||
|
||||
### obsidian-mcp.service
|
||||
- **Depends on:** obsidian.service
|
||||
- **Type:** simple
|
||||
- **Restart:** Always
|
||||
- **Memory Limit:** 512MB
|
||||
- **Health Check:** Verifies API is reachable on startup
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Obsidian won't start
|
||||
```bash
|
||||
sudo journalctl -u obsidian.service -n 50 --no-pager
|
||||
```
|
||||
|
||||
### MCP server failing
|
||||
```bash
|
||||
# Make sure .env has valid API key
|
||||
cat /workspace/second-brain/.env | grep OBSIDIAN_API_KEY
|
||||
```
|
||||
|
||||
### Can't connect to Obsidian
|
||||
```bash
|
||||
# Check if Obsidian is running
|
||||
ps aux | grep obsidian
|
||||
|
||||
# Check virtual display
|
||||
ps aux | grep Xvfb
|
||||
|
||||
# Manual test
|
||||
DISPLAY=:99 xdpyinfo
|
||||
```
|
||||
|
||||
### Port already in use
|
||||
```bash
|
||||
# Check who's using port 27123
|
||||
sudo lsof -i :27123
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Alternative: Supervisor
|
||||
|
||||
If systemd doesn't work, use supervisord:
|
||||
|
||||
```bash
|
||||
sudo apt install supervisor
|
||||
|
||||
cat > /etc/supervisor/conf.d/obsidian.conf << 'EOF'
|
||||
[program:obsidian]
|
||||
command=/home/intense/.local/bin/obsidian --no-sandbox
|
||||
user=intense
|
||||
autostart=true
|
||||
autorestart=true
|
||||
redirect_stderr=true
|
||||
stdout_logfile=/var/log/obsidian.log
|
||||
environment=DISPLAY=:99
|
||||
EOF
|
||||
|
||||
sudo supervisorctl reread
|
||||
sudo supervisorctl update
|
||||
sudo supervisorctl start obsidian
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Created: 2026-04-26
|
||||
Reference in New Issue
Block a user