Commit Graph
45 Commits
Author SHA1 Message Date
outis1one db0b9993a5 Merge pull request #17 from outis1one/claude/docker-selfhosted-apps-QFDqX
Claude/docker selfhosted apps qf dq x
2026-01-08 10:51:45 -05:00
Claude d84a1be5d5 Add container auto-start, UFW ports, Magic Mirror config/modules
- Add interactive "Start now?" prompts to all Docker containers
- Add UFW firewall port opening for Docker services when enabled
- Add Magic Mirror config copy option with custom.css support
- Add automatic detection and download of third-party MMM-* modules
- Add npm install for Magic Mirror module dependencies
2026-01-08 13:08:11 +00:00
Claude 47f3e9c0a6 Major improvements: drive setup, Immich config, container start
Drive Setup (runs at script start):
- New setup_drives() function runs before other installations
- Auto-detects unpartitioned drives, offers to format
- Creates ~/drives/ mount points
- Adds to fstab and runs mount -a
- Partitioning/formatting for new drives without partition tables

Immich Improvements:
- Separate UPLOAD_LOCATION from EXTERNAL_LIBRARY (different paths)
- Upload: ~/drives/primary/photos/immich-uploads (new photos)
- External: ~/drives/primary/photos (existing photos, read-only)
- Warns if both paths are the same
- Added immich-cli instructions for uploading old photos with correct EXIF dates
- Container auto-start option after install

Container Management:
- Added "Start now?" prompt for Immich after install
2026-01-08 12:51:22 +00:00
outis1one 1778dd58f2 Merge pull request #16 from outis1one/claude/docker-selfhosted-apps-QFDqX
Claude/docker selfhosted apps qf dq x
2026-01-06 18:34:32 -05:00
Claude b6dc3e6d18 Add interactive volume path updates during migration
Step 6 now scans docker-compose files for volume mounts:
- Detects absolute paths that don't exist on new system
- Shows old path and suggests ~/drives/primary/{folder}
- User can: accept suggestion, skip, or enter custom path
- Updates compose file with new path
- Creates directory if needed

Example:
  Container: immich
  Old path:  /home/user1/media/driveb
  Suggested: ~/drives/primary/driveb
  [Enter] Accept | [S] Skip | [path] Custom
2026-01-06 23:32:57 +00:00
Claude ef245a6ee4 Add migration options: copy, symlink, or use in-place
When source is on mounted drive (/mnt/*, ~/drives/*, /media/*):
- [C] Copy - Copy to ~/docker (for old OS drive migration)
- [S] Symlink - Create ~/docker → source (for data drive)
- [U] Use in-place - Use source directly, no copy

This handles both scenarios:
- Old OS drive mounted temporarily → Copy
- Data drive you'll keep using → Symlink or use in-place
2026-01-06 23:29:00 +00:00
outis1one b2f606f67e Merge pull request #15 from outis1one/claude/docker-selfhosted-apps-QFDqX
Claude/docker selfhosted apps qf dq x
2026-01-06 18:20:34 -05:00
Claude 7f03addd9c Improve migration to detect Docker on mounted drives
- Auto-detect ~/drives/*/docker, /mnt/*/docker, /media/*/docker
- Show numbered list for easy selection (type "1" to select first)
- Still accepts any custom path
- Shows common locations as examples if nothing auto-detected
2026-01-06 22:56:45 +00:00
Claude fef7bac6aa Add migration mode for importing existing Docker containers
- New [M] Migration option at script start
- Auto-detects Docker directories (/var/docker, /opt/docker, ~/docker)
- Scans for docker-compose.yml files and lists containers with sizes
- Whiptail checklist for selecting containers to migrate
- Option to stop containers before copy (clean database state)
- Preserves versions - no unwanted upgrades during migration
- After migration, offers to install additional services
- Three modes now: Normal install, Migration, Disaster Recovery
2026-01-06 22:49:36 +00:00
outis1one 2db9b9a115 Merge pull request #14 from outis1one/claude/docker-selfhosted-apps-QFDqX
Add Kopia to disaster recovery for ongoing backups
2026-01-01 22:56:04 -05:00
Claude fb6dbdfbcb Add Kopia to disaster recovery for ongoing backups
- Install Kopia in Step 1 (core utilities)
- Add Step 9: Reconnect Kopia repository after restore
- Backups now work immediately after disaster recovery
- Update README with 9-step recovery process
2026-01-02 03:41:04 +00:00
outis1one d61c48a9bb Merge pull request #13 from outis1one/claude/docker-selfhosted-apps-QFDqX
Add Immich photo library config, Watchtower, and backup docs
2026-01-01 22:28:35 -05:00
Claude 0038a9a938 Add Immich photo library config, Watchtower, and backup docs
- Immich: Ask for photo storage location (default ~/drives/primary/photos)
- Immich: External library support for existing photos (read-only)
- Immich: Storage template guidance for yyyy/mm organization
- Add Watchtower container with notify-only mode (safe for apps with DB migrations)
- Document what Docker data lives where and what gets backed up
- Update README with v2.9 changelog
2026-01-02 03:07:31 +00:00
outis1one 3e5dd7f927 Merge pull request #12 from outis1one/claude/docker-selfhosted-apps-QFDqX
Add MeshCentral Server and improve disaster recovery
2026-01-01 19:25:32 -05:00
Claude d7caddb64f Add MeshCentral Server and improve disaster recovery
- Add MeshCentral Server as Docker app (ports 4430, 4433)
- Recovery mode now installs core utilities first (openssh-server, git, etc.)
- Add whiptail checklist for selecting which services to restore
- Users can now choose some/none/all services instead of all-or-nothing
- Update README with v2.8 changelog and MeshCentral port
2026-01-01 23:50:05 +00:00
outis1one 617a9ca0c5 Update LICENSE 2026-01-01 18:37:38 -05:00
outis1one 313d3d1783 Merge pull request #11 from outis1one/claude/docker-selfhosted-apps-QFDqX
Claude/docker selfhosted apps qf dq x
2026-01-01 18:36:33 -05:00
Claude c9d3276d36 Add disaster recovery mode for one-click restore from backup
New features:
- --restore flag for disaster recovery mode
- Interactive mode selector at script start (N=Normal, R=Recovery)
- Full disaster recovery flow:
  1. Show available drives, auto-mount if device path given
  2. Auto-detect Kopia repository
  3. Try to find password in backed-up .env, or prompt
  4. Install Docker if needed
  5. List available snapshots, let user choose or use 'latest'
  6. Restore snapshot to temp location
  7. Detect all docker-compose.yml files = services to restore
  8. Copy services to ~/docker/
  9. Optionally start all containers
  10. Cleanup temp files

Removed old buried import section that only showed manual instructions.

Documentation:
- Added Disaster Recovery section to README
- Added --restore to command-line options
- Documented what gets restored and requirements
- Added v2.7 changelog entry
2026-01-01 22:24:44 +00:00
Claude 1f92245faf Make Docker installs resilient: install first, config later
Changes the installation pattern for Docker apps to be more robust:
- Install docker-compose.yml FIRST (always succeeds)
- THEN try configuration with prompts
- Use sensible defaults if prompts fail
- Continue to next app even if current config fails
- Added || true and 2>/dev/null to prevent script stops

Updated apps: Frigate, Frigate-Notify, Caddy, ddclient

Config templates now include clear warnings:
- "YOU MUST EDIT THIS FILE" for required configs
- "YOU MAY NEED TO EDIT THIS FILE" for optional configs
- Links to documentation

This ensures the script completes even with complex interdependent
services that may need manual configuration after install.
2026-01-01 22:07:48 +00:00
outis1one 85cd375180 Merge pull request #10 from outis1one/claude/docker-selfhosted-apps-QFDqX
Claude/docker selfhosted apps qf dq x
2026-01-01 17:07:31 -05:00
Claude 4273809f26 Add FindMyDevice, Frigate-Notify, and improve Caddy setup
New Docker applications:
- FindMyDevice (FMD) server for self-hosted Android device tracking
- Frigate-Notify for push notifications on Frigate AI detections

Caddy improvements:
- Interactive domain configuration during setup
- Comprehensive Caddyfile template with all services (commented)
- Clear instructions for caddy_net Docker network usage
- .env file with MY_DOMAIN variable

Frigate-Notify features:
- Auto-detects if Frigate and ntfy are installed
- Interactive setup for Frigate URL and ntfy topic
- WebAPI mode by default (polls Frigate every 30s)
- Config template with labels, zones, quiet hours
- Warns about public ntfy.sh privacy implications
2026-01-01 21:24:59 +00:00
Claude 4d04de25b3 Add additional Docker apps and Kopia container backup
New Docker applications:
- Jellyfin (free media server with hardware acceleration)
- Frigate NVR (AI-powered object detection)
- Caddy (reverse proxy with automatic HTTPS)
- ddclient (dynamic DNS updater)
- ntfy (self-hosted push notifications)
- Uptime Kuma (service uptime monitoring)
- wg-easy (WireGuard VPN with web UI)
- Traccar (GPS tracking server)
- Portainer (Docker management UI)

Container backup system:
- Kopia backup for all Docker container data
- Backup script for configs, databases, app state
- Restore script for disaster recovery
- Backs up Immich memories, Emby metadata, Minecraft worlds, etc.

All apps use docker-compose in ~/docker/{appname}/ with storage on
primary drive where appropriate.
2026-01-01 21:09:09 +00:00
outis1one 334f672d70 Merge pull request #9 from outis1one/claude/docker-selfhosted-apps-QFDqX
Add self-hosted Docker applications section
2026-01-01 08:25:47 -05:00
Claude edd870703b Add self-hosted Docker applications section
New applications (all docker-compose based in ~/docker/{appname}/):
- Immich: Photo & video backup (port 2283)
- Audiobookshelf: Audiobook & podcast server (port 13378)
- Emby: Media server (port 8096)
- A.R.M.: Automatic DVD/Blu-ray/CD ripping (port 8080)
- Filebrowser: Web file manager (port 8085)
- Magic Mirror: Smart dashboard, up to 3 instances (ports 8081-8083)
- Lyrion Music Server: Music streaming (port 9000)
- Mealie: Recipe manager (port 9925)
- Minecraft: Fabric server with RAM limits (port 25565)
- linux-to-sync: Private repo with SSH/token auth

Features:
- Each app prompts individually (y/n)
- Configurable paths for media/audiobooks/music
- Auto-generates .env files and docker-compose.yml
- Random passwords for databases (Immich)
- Magic Mirror supports multiple instances with separate configs
2026-01-01 12:52:59 +00:00
outis1one ad05338459 Merge pull request #8 from outis1one/claude/review-repo-docs-QFDqX
Add instructions for additional Samba shares after setup
2025-12-30 08:44:28 -05:00
Claude 2200fa1483 Add instructions for additional Samba shares after setup
After configuring the Primary share, the script now displays:
- How to edit /etc/samba/smb.conf with nano
- Example share configuration block
- How to restart smbd/nmbd services
- How to verify with testparm
2025-12-30 13:42:08 +00:00
outis1one 85d964bc1c Merge pull request #7 from outis1one/claude/review-repo-docs-QFDqX
Add WireGuard, Tailscale, TeamViewer, and MeshCentral options
2025-12-28 19:53:59 -05:00
Claude eef004abf4 Add WireGuard, Tailscale, TeamViewer, and MeshCentral options
VPN additions:
- WireGuard VPN with key generation and config setup
- Tailscale mesh VPN with Tailscale SSH documentation

Remote desktop additions:
- TeamViewer installation and setup
- MeshCentral agent with server URL prompt

Other changes:
- Enhanced NetBird documentation on SSH key management
- Detection functions and status display for all new tools
- Updated README with VPN Setup and Remote Desktop Setup sections
2025-12-29 00:48:55 +00:00
outis1one f23089242e Update README.md 2025-12-28 11:25:05 -05:00
outis1one fe804384a7 Merge pull request #6 from outis1one/claude/review-repo-docs-QFDqX
Overhaul backup system: rsync for local, rclone for encrypted cloud
2025-12-28 10:47:31 -05:00
Claude bc357d2efd Overhaul backup system: rsync for local, rclone for encrypted cloud
Major changes:
- Local backup uses rsync exclusively with support for 1-4 drives
- Drive names are now customizable (default: primary, backup1, etc.)
- Added separate cloud backup option with rclone + encryption
- Guided setup for Google Drive and OneDrive with encryption
- rclone.conf auto-backed up to all local drives
- Added off-site backup guidance (Signal, Box.com, password managers)
- Removed old rsync/rclone choice and full/split modes

Documentation updates:
- Explain why fail2ban provides no benefit with key-only SSH
- Explain why rsync instead of RAID
- Document rclone.conf decryption and restore process
- Update all backup-related sections for new structure
2025-12-28 13:17:59 +00:00
outis1one 44b6774af8 Update README.md 2025-12-28 00:31:40 -05:00
outis1one 46b0b36c56 Merge pull request #5 from outis1one/claude/review-repo-docs-QFDqX
Add QoL improvements: dry-run, unattended, logging, fail2ban, UFW
2025-12-28 00:31:00 -05:00
Claude 44fda519f0 Add QoL improvements: dry-run, unattended, logging, fail2ban, UFW
- Add --dry-run flag to preview installations without changes
- Add --unattended flag for automated/scripted installs with defaults
- Add logging to /var/log/post-install.log
- Add fail2ban protection when SSH password auth is enabled
- Add UFW firewall configuration option
- Update all prompts for unattended mode support
- Update README with new features and troubleshooting
2025-12-28 05:23:49 +00:00
outis1one 5fba1d4bea Merge pull request #4 from outis1one/claude/review-repo-docs-QFDqX
Remove vim from installed utilities
2025-12-27 22:08:08 -05:00
Claude 1226bff8c8 Remove vim from installed utilities 2025-12-28 03:06:06 +00:00
outis1one a570a37d60 Merge pull request #3 from outis1one/claude/review-repo-docs-QFDqX
Make script rerunnable with rsync/rclone and full/split backup options
2025-12-27 22:03:42 -05:00
Claude 61ca1aa69f Make script rerunnable with rsync/rclone and full/split backup options
- Add software detection for Docker, Samba, NetBird, RustDesk, rclone, rsync
- Script shows current system status and offers to reinstall/reconfigure
- All components now optional with y/n prompts
- Add backup tool selection: rsync (recommended for local) vs rclone (cloud)
- Add backup mode selection: full (one drive) vs split (two drives)
- Generate appropriate backup script based on tool + mode selection
- Update summary section to only show installed components
- Update README with new features, rsync vs rclone comparison, backup modes
2025-12-28 02:37:44 +00:00
outis1one 2c6e2973e4 Merge pull request #2 from outis1one/claude/review-repo-docs-QFDqX
Update README to reflect optional Samba and rclone backup
2025-12-27 19:42:00 -05:00
Claude c3f9569940 Update README to reflect optional Samba and rclone backup
- Mark Samba File Sharing section as optional
- Mark Backup System section as optional
- Update interactive prompts section with new Samba/backup prompts
- Add note to Backup Configuration section about optional nature
- Update Samba section to indicate conditional installation
- Reorganize "Files Created" section by optional/required
- Update Security Notes to indicate optional features
2025-12-28 00:33:33 +00:00
outis1one 85ff8130d0 Merge pull request #1 from outis1one/claude/review-repo-docs-QFDqX
Claude/review repo docs qf dq x
2025-12-27 19:29:44 -05:00
Claude 0a88f8ae1f Make Samba and rclone backup system optional
- Add interactive prompt before Samba installation
- Add interactive prompt before rclone backup system setup
- Update summary section to conditionally display installed components
- Fix indentation in backup script section
2025-12-28 00:18:18 +00:00
Claude 893d13af53 Add Samba installation and rename readme to README.md
- Add Samba file sharing installation and configuration to match
  README documentation (was documented but not implemented)
- Rename ubuntu-readme.md to README.md for standard GitHub display
- Update download instructions with actual GitHub repository URLs
2025-12-28 00:11:29 +00:00
outis1one 8b531909d8 Add files via upload 2025-12-27 19:05:54 -05:00
outis1one 511fab264e Create LICENSE 2025-12-27 19:04:05 -05:00