Obsidian - Web-based Note Taking
📋 Overview
Obsidian is a powerful knowledge management and note-taking application. This deployment provides web-based access to Obsidian through a containerized environment, allowing remote access to your notes and knowledge base.
🔧 Service Details
| Property | Value |
|---|---|
| Container Name | obsidian |
| Image | lscr.io/linuxserver/obsidian:latest |
| Web Port | 127.0.0.1:3000 |
| Secondary Port | 127.0.0.1:3001 |
| Domain | obs.vish.gg |
| User | admin |
| Timezone | America/Los_Angeles |
🌐 Network Access
- Public URL:
https://obs.vish.gg - Local Access:
http://127.0.0.1:3000 - Secondary Port:
http://127.0.0.1:3001 - Reverse Proxy: Nginx configuration in
/etc/nginx/sites-enabled/obsidian
📁 Directory Structure
/opt/obsidian/
├── docker-compose.yml # Service configuration
└── config/ # Application configuration
├── data/ # Obsidian vaults and notes
├── Desktop/ # Desktop environment files
└── .config/ # Application settings
🚀 Management Commands
Docker Operations
# Navigate to service directory
cd /opt/obsidian/
# Start service
docker-compose up -d
# Stop service
docker-compose down
# Restart service
docker-compose restart
# View logs
docker-compose logs -f
# Update service
docker-compose pull
docker-compose up -d
Container Management
# Check container status
docker ps | grep obsidian
# Execute commands in container
docker exec -it obsidian bash
# View container logs
docker logs obsidian -f
# Check resource usage
docker stats obsidian
⚙️ Configuration
Environment Variables
- PUID/PGID: 1000 (user permissions)
- Timezone: America/Los_Angeles
- Custom User: admin
- Password: REDACTED_PASSWORD (change in production!)
Security Options
- seccomp: unconfined (required for GUI applications)
- Shared Memory: 1GB (for browser rendering)
Volume Mounts
- Config:
/opt/obsidian/config→/config
🔒 Security Considerations
- Local Binding: Only accessible via localhost (127.0.0.1)
- Nginx Proxy: SSL termination and authentication
- Default Credentials: Change default password immediately
- Container Isolation: Runs in isolated Docker environment
- File Permissions: Proper user/group mapping
💻 Usage
Web Interface
- Access via
https://obs.vish.gg - Log in with configured credentials
- Use Obsidian's full interface through the browser
- Create and manage vaults
- Install community plugins and themes
Features Available
- Full Obsidian Interface: Complete desktop experience in browser
- Vault Management: Create and switch between vaults
- Plugin Support: Install community plugins
- Theme Support: Customize appearance
- File Management: Upload and organize files
- Graph View: Visualize note connections
🔧 Maintenance
Backup
# Backup entire configuration
tar -czf obsidian-backup-$(date +%Y%m%d).tar.gz /opt/obsidian/config/
# Backup specific vault
tar -czf vault-backup-$(date +%Y%m%d).tar.gz /opt/obsidian/config/data/YourVaultName/
Updates
cd /opt/obsidian/
docker-compose pull
docker-compose up -d
Performance Tuning
# Increase shared memory if needed
# Edit docker-compose.yml and increase shm_size
# Monitor resource usage
docker stats obsidian
🐛 Troubleshooting
Common Issues
# Container won't start
docker-compose logs obsidian
# GUI not loading
# Check shared memory allocation
# Verify seccomp:unconfined is set
# Permission issues
sudo chown -R 1000:1000 /opt/obsidian/config/
# Performance issues
# Increase shm_size in docker-compose.yml
# Check available system resources
Connection Issues
# Test local endpoint
curl -I http://127.0.0.1:3000
# Test public endpoint
curl -I https://obs.vish.gg
# Check nginx configuration
sudo nginx -t
sudo systemctl reload nginx
File Access Issues
# Check file permissions
ls -la /opt/obsidian/config/
# Fix ownership
sudo chown -R 1000:1000 /opt/obsidian/config/
# Check disk space
df -h /opt/obsidian/
🔗 Related Services
- Nginx: Reverse proxy with SSL termination
- Let's Encrypt: SSL certificate management
- Docker: Container runtime