soundwave/SETUP_INSTRUCTIONS.md
2025-12-23 23:46:11 +00:00

3.2 KiB

🚀 Quick Setup - Publishing Docker Image

The Problem

The docker-compose.yml was trying to pull aiulian25/soundwave:latest from Docker Hub, but this image was never published. New machines couldn't install SoundWave.

The Solution

I've set up automated publishing to GitHub Container Registry (free and integrated with GitHub).

📋 Steps to Enable (One-Time Setup)

1. Push This Code to GitHub

git add .
git commit -m "Add GitHub Actions workflow for Docker image publishing"
git push origin main

2. Enable GitHub Actions Permissions

  1. Go to your repository on GitHub
  2. Click SettingsActionsGeneral
  3. Scroll to "Workflow permissions"
  4. Select "Read and write permissions"
  5. Check "Allow GitHub Actions to create and approve pull requests"
  6. Click Save

3. Trigger First Build

The workflow will automatically run when you push. To manually trigger:

  1. Go to Actions tab on GitHub
  2. Click "Build and Publish Docker Image"
  3. Click "Run workflow""Run workflow"

Wait 5-10 minutes for the build to complete.

By default, the image is private (only you can pull it).

  1. Go to your GitHub profile
  2. Click "Packages" tab
  3. Click on "soundwave" package
  4. Click "Package settings" (right side)
  5. Scroll to "Danger Zone"
  6. Click "Change visibility""Public"
  7. Confirm

Now anyone can pull the image!

Verification

After the workflow completes, verify it worked:

# Pull the published image
docker pull ghcr.io/aiulian25/soundwave:latest

# Check it works
docker run --rm ghcr.io/aiulian25/soundwave:latest python --version

🎯 Now Users Can Install With:

# Download docker-compose.yml
wget https://raw.githubusercontent.com/aiulian25/soundwave/main/docker-compose.yml

# Start (it will pull the pre-built image automatically)
docker compose up -d

🔄 Future Updates

Every time you push to main/master:

  1. GitHub Actions automatically builds new image
  2. Publishes to ghcr.io/aiulian25/soundwave:latest
  3. Users can update with: docker compose pull && docker compose up -d

🛠️ Alternative: Build Locally

If you don't want to wait for GitHub Actions or the image isn't published yet, users can still build locally:

# Clone repo
git clone https://github.com/aiulian25/soundwave.git
cd soundwave

# Build frontend
cd frontend && npm install && npm run build && cd ..

# Build and start
docker compose up -d --build

📝 What I Changed

  1. Created .github/workflows/docker-publish.yml - Automated CI/CD
  2. Updated docker-compose.yml - Changed image from aiulian25/soundwave to ghcr.io/aiulian25/soundwave
  3. Created docs/DOCKER_IMAGE_FIX.md - Detailed troubleshooting guide
  4. Updated DEPLOYMENT.md - Fixed deployment instructions

🎉 Summary

Before: Image didn't exist → Pull failed → Installation broken

After:

  • GitHub Actions builds image on every push
  • Published to GitHub Container Registry
  • Users can pull and run immediately
  • Fallback to local build if needed

Your next git push will trigger the first build! 🚀