Setting up Obsidian and Syncthing with external storage to document piano training, lessons, media, etc.
Obsidian Piano Learning System Documentation¶
Created: January 27, 2026
System: Obsidian with Sync thing for cross-device sync
Devices: Linux Mint laptop (lpt-hp), Ubuntu VM (obsidian-vm at 192.168.1.83), iOS (planned)

Table of Contents¶
- System Overview
- Why Syncthing vs Rsync
- Current Setup
- Vault Structure
- Templates
- Next Steps
- Troubleshooting
System Overview¶
This system provides a comprehensive documentation platform for piano learning that syncs across devices: - Linux Mint laptop: Primary note-taking and practice documentation - Ubuntu VM (obsidian-vm): Central sync hub running Syncthing in Docker - iOS devices: Mobile access for practice session notes (pending setup)
The vault contains structured folders for daily practice logs, music theory concepts, lesson notes, song analysis, and sheet music.
Why Syncthing vs Rsync¶
Rsync is designed for one-way backups - pushing data from source to destination on a schedule (like your Samsung T7 backups).
Syncthing provides two-way, real-time sync needed for this workflow: - Write practice notes on iPad/iPhone at the piano - Review and expand those notes on laptop - Reference notes on phone while at piano - All devices need to both read AND write, staying in sync automatically
Rsync cannot do this - it's unidirectional and requires manual execution. Syncthing watches for changes on all devices, syncs bidirectionally in real-time, and handles conflicts automatically.
Think of it as: - Rsync = scheduled backup truck (one direction, on schedule) - Syncthing = self-hosted Dropbox (bidirectional, real-time, on your infrastructure)
Current Setup¶
Network Configuration¶
Linux Mint Laptop (lpt-hp)
<--> Syncthing sync
Ubuntu VM (obsidian-vm)
- IP: 192.168.1.83
- Tailscale IP: 100.78.230.66
- Docker container running Syncthing
<--> Syncthing sync (planned)
iOS devices
- Will connect via Mobius Sync app
- Uses Tailscale IP for secure connection
Docker Configuration (obsidian-vm)¶
Location: /home/mark/syncthing/docker-compose.yml
services:
syncthing:
image: syncthing/syncthing:latest
container_name: syncthing
hostname: obsidian-vm
environment:
- PUID=1000
- PGID=1000
volumes:
- ./config:/var/syncthing/config
- ./vault:/var/syncthing
network_mode: host
restart: unless-stopped
Key points:
- network_mode: host enables proper local device discovery (recommended by Syncthing official docs)
- Volume mapping: ./vault:/var/syncthing means files in container's /var/syncthing are stored at /home/mark/syncthing/vault/ on VM
- restart: unless-stopped ensures Syncthing starts automatically after VM reboots
File Paths¶
Laptop:
- Vault location: /home/mark/Piano/
- Syncthing config: ~/.config/syncthing/
- Syncthing runs as systemd user service
VM (obsidian-vm):
- Container path: /var/syncthing/Piano/ (inside Docker container)
- Actual filesystem: /home/mark/syncthing/vault/Piano/ (on VM)
- Accessible via: sftp://192.168.1.83/home/mark/syncthing/vault/
Installation Steps¶
Part 1: Install Tailscale on VM¶
Why first: Tailscale provides the secure connection that iOS will use to reach the VM.
-
SSH into obsidian-vm (192.168.1.83)
-
Install Tailscale:
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.tailscale-list | sudo tee /etc/apt/sources.list.d/tailscale.list sudo apt update sudo apt install tailscale -
Start and authenticate Tailscale:
- This will give you a URL to authenticate in your browser
-
Complete authentication
-
Verify and get Tailscale IP:
-
Result: 100.78.230.66 (save this for iOS setup later)
-
Set hostname (optional but recommended):
-
Enable on boot:
Part 2: Install Syncthing on VM (Docker)¶
Why Docker: Keeps Syncthing isolated and easy to manage/update.
-
Still SSH'd into obsidian-vm, create directories:
-
Create docker-compose.yml:
-
Paste this content (based on official Syncthing Docker documentation):
- Save:
Ctrl+O,Enter,Ctrl+X -
Note:
network_mode: hostis recommended by Syncthing for proper device discovery -
Start Syncthing:
-
Verify it's running:
-
Should show syncthing container with status "Up"
-
Access web UI from your laptop browser:
-
Go to: http://192.168.1.83:8384
-
Set authentication (critical security step):
- Click "Actions" (top right) → "Settings"
- Click "GUI" tab
- Scroll down to "GUI Authentication User" and "GUI Authentication Password"
- Enter username and password
- Click "Save"
-
Sign in with credentials you just created
-
Note the Device ID:
- On main dashboard, look at "This Device" section
- Device ID: NFKAIYI-ON7FS3R-U2P7BK7-DKNM6QS-KFN5A2K-CJVQ7JV-XKSNDXI-HHZGIQB
- You'll need this to connect other devices
Part 3: Install Syncthing on Laptop¶
-
On Linux Mint laptop, open terminal:
-
Enable Syncthing to run as a user service:
-
Verify it's running:
-
Should show "active (running)"
-
Access laptop's Syncthing web UI:
- Open browser on laptop
-
Go to: http://localhost:8384
-
Set authentication:
- You may be prompted immediately, or:
- Click "Actions" → "Settings" → "GUI" tab
- Set username and password
- Save and sign in
Part 4: Connect Laptop to VM¶
- On laptop's Syncthing (localhost:8384):
- Click "+ Add Remote Device" (in Remote Devices section)
- In "Device ID" field, paste VM's device ID:
- In "Device Name" field, enter:
obsidian-vm -
Click "Save"
-
On VM's Syncthing (192.168.1.83:8384):
- You should see a notification popup: "New Device"
- Shows device ID starting with LPTHP
- Click "Add"
- In "Device Name" field, enter:
lpt-hp -
Click "Save"
-
Verify connection:
- On laptop: Remote Devices should show "obsidian-vm" as "Connected"
- On VM: Remote Devices should show "lpt-hp" as "Connected"
Part 5: Create and Share Piano Vault¶
-
On laptop, create Piano directory:
-
On laptop's Syncthing web UI:
- Click "+ Add Folder"
- Folder Label:
Piano - Folder Path:
~/Piano(or/home/mark/Piano) - Note the auto-generated Folder ID (example: zsczc-mtjtp)
- Click "Sharing" tab
- Check box next to "obsidian-vm"
-
Click "Save"
-
On VM's Syncthing web UI:
- You should see notification: "New folder shared from lpt-hp"
- Click "Add"
- Important: In "Folder Path" field, enter:
/var/syncthing/Piano- This is the path inside the Docker container
- Maps to
/home/mark/syncthing/vault/Pianoon the VM's actual filesystem
-
Click "Save"
-
Verify sync is working:
-
Both dashboards should show Piano folder as "Up to Date"
-
Test the sync:
- Check on VM via file browser or SSH:
- Path:
/home/mark/syncthing/vault/Piano/test.txt - Or via sftp:
sftp://192.168.1.83/home/mark/syncthing/vault/
- Path:
- File should appear within seconds
Part 6: Create Vault Structure¶
-
On laptop, create folder structure:
-
Create practice session template:
- Paste the template content (see Templates section below)
-
Save:
Ctrl+O,Enter,Ctrl+X -
Create song template:
- Paste the template content (see Templates section below)
-
Save:
Ctrl+O,Enter,Ctrl+X -
Verify sync:
- All folders and templates should sync to VM automatically
- Check both Syncthing dashboards show "Up to Date"
Installation complete! Laptop and VM are now syncing the Piano vault.
Current System Status¶
VM (obsidian-vm):
- IP: 192.168.1.83
- Tailscale IP: 100.78.230.66
- Syncthing Web UI: http://192.168.1.83:8384
- Device ID: NFKAIYI-ON7FS3R-U2P7BK7-DKNM6QS-KFN5A2K-CJVQ7JV-XKSNDXI-HHZGIQB
- Running: Docker container with Syncthing
- Vault location: /home/mark/syncthing/vault/Piano/
Linux Mint Laptop (lpt-hp):
- Syncthing Web UI: http://localhost:8384
- Running: systemd user service
- Vault location: /home/mark/Piano/
- Connected to: obsidian-vm
Sync Status: - Piano folder syncing successfully between laptop and VM - Folder ID: zsczc-mtjtp - Both devices show "Up to Date"
Shared Folders¶
Piano vault:
- Folder ID: zsczc-mtjtp
- Laptop path: /home/mark/Piano/
- VM path: /var/syncthing/Piano/
- Status: Syncing successfully between laptop and VM
Test verification:
# On laptop
echo "test" > ~/Piano/test.txt
# Check on VM via sftp
sftp://192.168.1.83/home/mark/syncthing/vault/Piano/test.txt
Vault Structure¶
Piano/
� � Daily-Practice/ # Daily practice session logs
� � Concepts/ # Music theory concepts, techniques
� � Music-Lessons/ # Lesson notes from piano teacher
� � Songs/ # Individual song analysis and notes
� � Sequences/ # Chord progressions, patterns
� � Sheet-Music/ # PDF storage for sheet music
� � templates/ # Note templates
� � practice-session.md
� � song.md
Folder Purposes¶
Daily-Practice/ - One note per practice session - Use practice-session.md template - Link to concepts and songs practiced - Track progress over time
Concepts/ - Music theory topics (inversions, voicings, progressions) - Technique notes - Referenced from daily practice notes
Music-Lessons/ - Notes from each lesson - Homework assignments - Teacher feedback
Songs/ - One note per song/piece - Use song.md template - Link to sheet music - Document chord progressions, voicings used
Sequences/ - Chord progression patterns (ii-V-I, etc.) - Practice sequences - Referenced from songs that use them
Sheet-Music/ - PDF storage - Linked from song notes
Templates¶
practice-session.md¶
Location: ~/Piano/templates/practice-session.md
---
date:
duration:
tempo:
---
## Warm-up
-
## Focus Areas
-
## New Concepts
-
## Chord Work
**Progressions practiced:**
-
**Voicings:**
-
**Inversions:**
-
## Songs/Pieces
-
## What I Learned
-
## Next Session
-
Usage:
- Create new daily note in Daily-Practice/
- Copy template content
- Fill in as you practice
- Link to concepts: [[Chord Inversions]]
- Tag progressions: #ii-V-I
song.md¶
Location: ~/Piano/templates/song.md
---
title:
composer:
key:
tempo:
difficulty:
---
## Sheet Music
- Location: [[Sheet-Music/]]
## Chord Progression
-
## Sections
### Intro
### Verse
### Chorus
## Practice Notes
-
## Voicings Used
-
## Related Concepts
-
Usage: - Create new note in Songs/ folder - Name it after the song - Link to sheet music PDF - Document chord progressions used - Link to related concept notes
Next Steps¶
Immediate (Next Session)¶
-
Install Obsidian on Linux Mint laptop
-
Open Obsidian and create vault
- Launch Obsidian
- Select "Open folder as vault"
- Navigate to
/home/mark/Piano -
Vault will open with existing folder structure
-
Configure Obsidian settings
-
Enable core plugins:
- Templates (set folder:
templates/) - Daily notes (set folder:
Daily-Practice/, template:templates/practice-session.md) - Graph view
- Backlinks
- Tags
- Templates (set folder:
-
Install community plugins:
- Templater (enhanced templates)
- Calendar (visual practice tracking)
- Dataview (query practice sessions)
- Excalidraw (draw chord diagrams)
-
Configure useful hotkeys
- Daily note: Default or customize
- Quick switcher:
Ctrl+O - Search all notes:
Ctrl+Shift+F -
Create link:
[[ -
Test workflow
- Create a daily practice note
- Use template
- Add some content
- Verify it syncs to VM
- Check VM at:
sftp://192.168.1.83/home/mark/syncthing/vault/Piano/
iOS Setup (Future Session)¶
- Configure Mobius Sync on iOS
- Open Mobius Sync app
- Add device using VM's Tailscale IP:
100.78.230.66 - Enter VM's Device ID when prompted
- Accept connection on VM's Syncthing dashboard
-
Share Piano folder with iOS device
-
Configure Obsidian on iOS
- Open Obsidian app
- Create/open vault pointing to Mobius Sync folder
- Piano folder should appear
- Test creating a note on iOS
-
Verify it syncs to laptop and VM
-
Workflow testing
- Create note on laptop → verify on iOS
- Create note on iOS → verify on laptop
- Edit same note on both → test conflict resolution
Optional Enhancements¶
- Backup strategy
- Piano vault already syncs to VM
-
Consider adding rsync backup from VM to Samsung T7
-
Access from other devices
- Syncthing can run on any device
- Could add Windows machines, other Linux systems
-
All would sync through obsidian-vm hub
-
Version control
- Could add git repository for vault
- Track changes over time
- Not necessary with Syncthing's file versioning, but adds extra safety
Troubleshooting¶
Syncthing Not Syncing¶
Check connection status:
# On laptop
systemctl --user status syncthing
# On VM
cd ~/syncthing
docker ps
docker logs syncthing
Verify devices are connected: - Open both Syncthing web UIs - Check "Remote Devices" section - Should show "Connected" not "Disconnected"
Check folder status: - Should show "Up to Date" or sync percentage - If "Stopped" or "Error" - check folder paths
Permission Issues on VM¶
If Syncthing can't write to vault:
Syncthing Not Starting After Reboot¶
Laptop:
VM:
Files Not Appearing in Obsidian¶
Possible causes: 1. Syncthing not running 2. Folder not shared with device 3. Path mismatch in Syncthing config
Verification:
# Check if files exist on filesystem
ls -la ~/Piano/
ls -la /home/mark/syncthing/vault/Piano/ # On VM via SSH
Conflict Resolution¶
When same file edited on multiple devices simultaneously:
- Syncthing creates .sync-conflict files
- Both versions preserved
- Manually merge changes
- Delete conflict file after merging
Web UI Not Accessible¶
Laptop (localhost:8384):
- Check if Syncthing running: systemctl --user status syncthing
- Check firewall (shouldn't affect localhost)
VM (192.168.1.83:8384):
- Check Docker container: docker ps
- Check network_mode: host in docker-compose.yml
- Verify authentication credentials
Maintenance¶
Regular Tasks¶
Weekly: - Check Syncthing dashboards for any errors - Verify all devices showing "Connected" - Check disk space on VM
Monthly: - Review and organize vault structure - Archive old practice sessions if desired - Update Syncthing (both laptop and VM container)
Updates¶
Laptop Syncthing:
VM Syncthing (Docker):
Obsidian: - Updates automatically on launch - Or download latest .deb and reinstall
Important Device Information¶
Syncthing Device IDs¶
obsidian-vm:
lpt-hp (laptop): - Device ID visible in laptop's Syncthing UI at localhost:8384 - Listed as "This Device"
Network Addresses¶
obsidian-vm: - Local IP: 192.168.1.83 - Tailscale IP: 100.78.230.66 (for iOS connection) - Syncthing Web UI: http://192.168.1.83:8384
lpt-hp: - Syncthing Web UI: http://localhost:8384
Additional Resources¶
Obsidian: - Official docs: https://help.obsidian.md/ - Forum: https://forum.obsidian.md/
Syncthing: - Official docs: https://docs.syncthing.net/ - Docker README: https://github.com/syncthing/syncthing/blob/main/README-Docker.md - Forum: https://forum.syncthing.net/
Markdown Reference: - Basic syntax: https://www.markdownguide.org/basic-syntax/ - Obsidian flavor: https://help.obsidian.md/Editing+and+formatting/Basic+formatting+syntax
Change Log¶
2026-01-27: - Initial setup completed - Syncthing deployed on obsidian-vm (Docker) - Syncthing configured on lpt-hp laptop - Devices connected and syncing - Piano vault structure created - Templates created - Documentation written
Next session planned: - Install and configure Obsidian on laptop - Test workflow - iOS setup if time permits
End of documentation