Skip to content

Commit 6e2327d

Browse files
committed
Document Tailscale integration and improve VM setup documentation
## Changes ### Documentation (SETUP_MULTIPASS.md) - Add comprehensive Tailscale Integration section with setup instructions - Document requirement for Tailscale auth key in .env file - Add step-by-step guide for generating and configuring auth keys - Include troubleshooting section for common Tailscale issues - Update health check section to include Tailscale connectivity - Add manual Tailscale configuration instructions for existing VMs - Document how to disable Tailscale if not needed - Update Node.js version from v18+ to v20+ to match current setup ### Key Features Documented 1. **Tailscale Auth Key Setup** - Generate ephemeral keys from Tailscale admin - Configure in .env file (TAILSCALE_AUTH_KEY) - Automatic loading by multipass.sh 2. **VM Access via Tailscale** - SSH access from any device on tailnet - Use Tailscale IPs or hostnames - Remote access without port forwarding 3. **Troubleshooting Guide** - Auth key expiration/invalid key errors - VM not appearing in Tailscale admin - Manual configuration commands 4. **Health Checks** - Added Tailscale connectivity verification - Updated to reflect Docker running (not just installed) - Manual health check commands ## Testing - Successfully tested with 3 VMs (main, develop, feature branch) - All VMs connected to Tailscale network - Verified remote access via Tailscale IPs - Confirmed health checks pass on all VMs ## Related - Tailscale integration already implemented in tools/multipass.sh - .env file updated with new auth key (not committed for security) - VM launcher fully integrated with ./start command
1 parent 8a71757 commit 6e2327d

2 files changed

Lines changed: 108 additions & 4 deletions

File tree

.graphdone-cloud-init.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ runcmd:
5959
# Clone GraphDone repository
6060
- echo "=== Cloning GraphDone repository ==="
6161
- chown -R ubuntu:ubuntu /home/ubuntu
62-
- su ubuntu -c "git clone -b develop https://github.com/GraphDone/GraphDone-Core.git /home/ubuntu/graphdone"
62+
- su ubuntu -c "git clone -b feature/quick-start-graph-creation https://github.com/GraphDone/GraphDone-Core.git /home/ubuntu/graphdone"
6363
# Setup GraphDone
6464
- echo '=== Setting up GraphDone ==='
6565
- su ubuntu -c 'export HOME=/home/ubuntu && cd /home/ubuntu/graphdone && ./start setup'
@@ -76,7 +76,7 @@ runcmd:
7676
# Final setup
7777
- echo "=== GraphDone VM Setup Complete ==="
7878
- echo "GraphDone is installed at /home/ubuntu/graphdone"
79-
- echo "To access - multipass shell graphdone-vm-vibrant-phoenix-8602"
79+
- echo "To access - multipass shell graphdone-quick-start"
8080
- echo "Web UI will be available at http://localhost:3127"
8181
- echo "GraphQL API at http://localhost:4127/graphql"
8282
- echo "Neo4j Browser at http://localhost:7474"

SETUP_MULTIPASS.md

Lines changed: 106 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,24 @@ This will:
4747
The VM launcher automatically runs health checks after provisioning to verify:
4848

4949
- ✅ GraphDone code cloned successfully
50-
- ✅ Node.js installed (v18+)
50+
- ✅ Node.js installed (v20+)
5151
- ✅ npm dependencies installed
5252
- ✅ Playwright browsers installed
53-
- ✅ Docker installed (optional)
53+
- ✅ Docker installed and running
54+
- ✅ Tailscale connected (if enabled)
5455

5556
The health check output is displayed automatically after launch.
5657

58+
You can also run health checks manually on existing VMs:
59+
60+
```bash
61+
# Run comprehensive health check
62+
multipass exec <vm-name> -- bash -c 'cd ~/graphdone && npm run test'
63+
64+
# Check Tailscale status
65+
multipass exec <vm-name> -- tailscale status
66+
```
67+
5768
---
5869

5970
## Complete Usage Guide
@@ -124,6 +135,99 @@ GraphQL API: http://<vm-ip>:4127/graphql
124135
Neo4j Browser: http://<vm-ip>:7474
125136
```
126137
138+
---
139+
140+
## Tailscale Integration
141+
142+
VMs are automatically connected to your Tailscale network for remote access from any device.
143+
144+
### Setup Tailscale Auth Key
145+
146+
**Required:** You must configure a Tailscale auth key before launching VMs.
147+
148+
1. **Generate an auth key** at https://login.tailscale.com/admin/settings/keys
149+
- ✅ Check "Ephemeral" (VMs are temporary)
150+
- ✅ Set expiration (90 days recommended)
151+
- ✅ Copy the key (starts with `tskey-auth-...`)
152+
153+
2. **Add the key to .env file:**
154+
```bash
155+
# Edit .env and add:
156+
TAILSCALE_AUTH_KEY=tskey-auth-YOUR_KEY_HERE
157+
```
158+
159+
3. **Verify it's loaded:**
160+
```bash
161+
source .env
162+
echo $TAILSCALE_AUTH_KEY
163+
```
164+
165+
### Accessing VMs via Tailscale
166+
167+
Once a VM is launched with Tailscale configured:
168+
169+
```bash
170+
# Get Tailscale IP
171+
multipass exec <vm-name> -- tailscale ip -4
172+
173+
# SSH via Tailscale (from any device on your tailnet)
174+
ssh ubuntu@<tailscale-ip>
175+
176+
# Or use the hostname
177+
ssh ubuntu@<vm-name>.your-tailnet.ts.net
178+
```
179+
180+
### Tailscale Status Check
181+
182+
```bash
183+
# Check if Tailscale is connected
184+
multipass exec <vm-name> -- tailscale status
185+
186+
# Get Tailscale IP
187+
multipass exec <vm-name> -- tailscale ip -4
188+
189+
# View all devices on your tailnet
190+
multipass exec <vm-name> -- tailscale status
191+
```
192+
193+
### Manually Configure Tailscale on Existing VM
194+
195+
If a VM was launched before Tailscale was configured:
196+
197+
```bash
198+
# Source the .env with your auth key
199+
source .env
200+
201+
# Configure Tailscale on the VM
202+
multipass exec <vm-name> -- sudo tailscale up \
203+
--authkey="$TAILSCALE_AUTH_KEY" \
204+
--accept-routes \
205+
--accept-dns=false \
206+
--shields-up=false
207+
```
208+
209+
### Disabling Tailscale
210+
211+
If you don't need Tailscale, disable it in `vm.config.yml`:
212+
213+
```yaml
214+
tailscale:
215+
enabled: false # Change from true to false
216+
```
217+
218+
### Troubleshooting Tailscale
219+
220+
**Error: "invalid key: API key ... not valid"**
221+
- Your Tailscale auth key has expired
222+
- Generate a new key at https://login.tailscale.com/admin/settings/keys
223+
- Update `.env` with the new key
224+
- Relaunch VMs or manually reconfigure existing ones
225+
226+
**VM not showing in Tailscale admin:**
227+
- Check if Tailscale is running: `multipass exec <vm-name> -- systemctl status tailscaled`
228+
- Check logs: `multipass exec <vm-name> -- journalctl -u tailscaled -n 50`
229+
- Verify auth key is set: `source .env && echo $TAILSCALE_AUTH_KEY`
230+
127231
### Troubleshooting
128232

129233
**VM stuck in "Starting" state:**

0 commit comments

Comments
 (0)