229 lines
4.8 KiB
Markdown
229 lines
4.8 KiB
Markdown
# Atlantis Runbook
|
|
|
|
*Synology DS1821+ - Primary NAS and Media Server*
|
|
|
|
**Endpoint ID:** 2
|
|
**Status:** 🟢 Online
|
|
**Hardware:** AMD Ryzen V1500B, 32GB RAM, 8 bays
|
|
**Access:** `atlantis.vish.local`
|
|
|
|
---
|
|
|
|
## Overview
|
|
|
|
Atlantis is the primary Synology NAS serving as the homelab's central storage and media infrastructure.
|
|
|
|
## Hardware Specs
|
|
|
|
| Component | Specification |
|
|
|----------|---------------|
|
|
| Model | Synology DS1821+ |
|
|
| CPU | AMD Ryzen V1500B (4-core) |
|
|
| RAM | 32GB |
|
|
| Storage | 8-bay RAID6 + SSD cache |
|
|
| Network | 4x 1GbE (Link aggregated) |
|
|
|
|
## Services
|
|
|
|
### Critical Services
|
|
|
|
| Service | Port | Purpose | Docker Image |
|
|
|---------|------|---------|--------------|
|
|
| **Vaultwarden** | 8080 | Password manager | vaultwarden/server |
|
|
| **Immich** | 2283 | Photo backup | immich-app/immich |
|
|
| **Plex** | 32400 | Media server | plexinc/pms-docker |
|
|
| **Ollama** | 11434 | AI/ML | ollama/ollama |
|
|
|
|
### Media Stack
|
|
|
|
| Service | Port | Purpose |
|
|
|---------|------|---------|
|
|
| arr-suite | Various | Sonarr, Radarr, Lidarr, Prowlarr |
|
|
| qBittorrent | 8080 | Download client |
|
|
| Jellyseerr | 5055 | Media requests |
|
|
|
|
### Infrastructure
|
|
|
|
| Service | Port | Purpose |
|
|
|---------|------|---------|
|
|
| Portainer | 9000 | Container management |
|
|
| Watchtower | 9001 | Auto-updates |
|
|
| Dozzle | 8081 | Log viewer |
|
|
| Nginx Proxy Manager | 81/444 | Legacy proxy |
|
|
|
|
### Additional Services
|
|
|
|
- Jitsi (Video conferencing)
|
|
- Matrix/Synapse (Chat)
|
|
- Mastodon (Social)
|
|
- Paperless-NGX (Documents)
|
|
- Syncthing (File sync)
|
|
- Grafana + Prometheus (Monitoring)
|
|
|
|
---
|
|
|
|
## Storage Layout
|
|
|
|
```
|
|
/volume1/
|
|
├── docker/ # Docker volumes
|
|
├── docker/compose/ # Service configurations
|
|
├── media/ # Media files
|
|
│ ├── movies/
|
|
│ ├── tv/
|
|
│ ├── music/
|
|
│ └── books/
|
|
├── photos/ # Immich storage
|
|
├── backups/ # Backup destination
|
|
└── shared/ # Shared folders
|
|
```
|
|
|
|
---
|
|
|
|
## Daily Operations
|
|
|
|
### Check Service Health
|
|
```bash
|
|
# Via Portainer
|
|
open http://atlantis.vish.local:9000
|
|
|
|
# Via SSH
|
|
ssh admin@atlantis.vish.local
|
|
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
|
|
```
|
|
|
|
### Check Disk Usage
|
|
```bash
|
|
# SSH to Atlantis
|
|
ssh admin@atlantis.vish.local
|
|
|
|
# Synology storage manager
|
|
sudo syno-storage-usage -a
|
|
|
|
# Or via Docker
|
|
docker system df
|
|
```
|
|
|
|
### View Logs
|
|
```bash
|
|
# Specific service
|
|
docker logs vaultwarden
|
|
|
|
# Follow logs
|
|
docker logs -f vaultwarden
|
|
```
|
|
|
|
---
|
|
|
|
## Common Issues
|
|
|
|
### Service Won't Start
|
|
1. Check if port is already in use: `netstat -tulpn | grep <port>`
|
|
2. Check logs: `docker logs <container>`
|
|
3. Verify volume paths exist
|
|
4. Restart Docker: `sudo systemctl restart docker`
|
|
|
|
### Storage Full
|
|
1. Identify large files: `docker system df -v`
|
|
2. Clean Docker: `docker system prune -a`
|
|
3. Check Synology Storage Analyzer
|
|
4. Archive old media files
|
|
|
|
### Performance Issues
|
|
1. Check resource usage: `docker stats`
|
|
2. Review Plex transcode logs
|
|
3. Check RAID health: `sudo mdadm --detail /dev/md0`
|
|
|
|
---
|
|
|
|
## Maintenance
|
|
|
|
### Weekly
|
|
- [ ] Verify backup completion
|
|
- [ ] Check disk health (S.M.A.R.T.)
|
|
- [ ] Review Watchtower updates
|
|
- [ ] Check Plex library integrity
|
|
|
|
### Monthly
|
|
- [ ] Run Docker cleanup
|
|
- [ ] Update Docker Compose files
|
|
- [ ] Review storage usage trends
|
|
- [ ] Check security updates
|
|
|
|
### Quarterly
|
|
- [ ] Deep clean unused images/containers
|
|
- [ ] Review service dependencies
|
|
- [ ] Test disaster recovery
|
|
- [ ] Update documentation
|
|
|
|
---
|
|
|
|
## Backup Procedures
|
|
|
|
### Configuration Backup
|
|
```bash
|
|
# Via Ansible
|
|
ansible-playbook ansible/automation/playbooks/backup_configs.yml --tags atlantis
|
|
```
|
|
|
|
### Data Backup
|
|
- Synology Hyper Backup to external drive
|
|
- Cloud sync to Backblaze B2
|
|
- Critical configs to Git repository
|
|
|
|
### Verification
|
|
```bash
|
|
ansible-playbook ansible/automation/playbooks/backup_verification.yml
|
|
```
|
|
|
|
---
|
|
|
|
## Emergency Procedures
|
|
|
|
### Complete Outage
|
|
1. Verify Synology is powered on
|
|
2. Check network connectivity
|
|
3. Access via DSM: `https://atlantis.vish.local:5001`
|
|
4. Check Storage Manager for RAID status
|
|
5. Contact via serial if no network
|
|
|
|
### RAID Degraded
|
|
1. Identify failed drive via Storage Manager
|
|
2. Power down and replace drive
|
|
3. Rebuild will start automatically
|
|
4. Monitor rebuild progress
|
|
|
|
### Data Recovery
|
|
See [Disaster Recovery Guide](../troubleshooting/disaster-recovery.md)
|
|
|
|
---
|
|
|
|
## Useful Commands
|
|
|
|
```bash
|
|
# SSH access
|
|
ssh admin@atlantis.vish.local
|
|
|
|
# Container management
|
|
cd /volume1/docker/compose/<service>
|
|
docker-compose restart <service>
|
|
|
|
# View all containers
|
|
docker ps -a --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
|
|
|
|
# Logs for critical services
|
|
docker logs vaultwarden
|
|
docker logs plex
|
|
docker logs immich
|
|
```
|
|
|
|
---
|
|
|
|
## Links
|
|
|
|
- [Synology DSM](https://atlantis.vish.local:5001)
|
|
- [Portainer](http://atlantis.vish.local:9000)
|
|
- [Vaultwarden](http://atlantis.vish.local:8080)
|
|
- [Plex](http://atlantis.vish.local:32400)
|
|
- [Immich](http://atlantis.vish.local:2283)
|