igors
December 28, 2025, 10:03pm
1
With ClaudeAI’s help, I have built a custom HA addon repository with GitHub Actions that automatically checks for new Tailscale releases daily, updates the addon Dockerfile, bumps the version number, and commits everything - all without manual intervention. Now I get Tailscale updates within 24 hours of release instead of waiting weeks/months for maintainers. The workflow runs on a schedule, detects version changes via GitHub API, updates the necessary files, and pushes commits automatically. HA just shows an update notification and I click “Update” - zero maintenance required.
If anyone is interested, I can post the details on how to do this.
3 Likes
Would definitely be interested in this.
1 Like
igors
January 2, 2026, 1:37pm
3
1. Create Your Addon Repository
# Create a new repo on GitHub called "ha-addons", then:
git clone https://github.com/YOUR_USERNAME/ha-addons.git
cd ha-addons
# Create repository.json
cat > repository.json << 'EOF'
{
"name": "Your Home Assistant Add-ons",
"url": "https://github.com/YOUR_USERNAME/ha-addons",
"maintainer": "Your Name"
}
EOF
# Create README
cat > README.md << 'EOF'
# Home Assistant Add-ons
Custom Home Assistant add-ons with automated updates.
## Installation
Add this repository URL in Home Assistant:
https://github.com/YOUR_USERNAME/ha-addons
EOF
2. Copy the Addon Files
Find the official addon repository (example: hassio-addons/addon-tailscale )
# Clone the official addon
cd /tmp
git clone https://github.com/hassio-addons/addon-tailscale.git
cd addon-tailscale/tailscale
# Copy to your repo (adjust paths as needed)
cp -r . ~/ha-addons/tailscale/
cd ~/ha-addons
3. Fix the Config Version
# Check current format
grep '^version:' tailscale/config.yaml
# If it shows "dev", change to a real version
sed -i 's/version: dev/version: 0.26.2/' tailscale/config.yaml
# Or if you're on macOS:
sed -i '' 's/version: dev/version: 0.26.2/' tailscale/config.yaml
4. Create the Auto-Update Workflow
mkdir -p .github/workflows
cat > .github/workflows/update-tailscale.yml << 'EOF'
name: Update Tailscale
on:
schedule:
- cron: '0 0 * * *' # Daily at midnight UTC
workflow_dispatch: # Manual trigger
jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Get latest Tailscale version
id: tailscale
run: |
LATEST=$(curl -s https://api.github.com/repos/tailscale/tailscale/releases/latest | jq -r .tag_name | sed 's/v//')
CURRENT=$(grep 'ARG TAILSCALE_VERSION=' tailscale/Dockerfile | cut -d'"' -f2)
echo "latest=$LATEST" >> $GITHUB_OUTPUT
echo "current=$CURRENT" >> $GITHUB_OUTPUT
- name: Check if update needed
id: check
run: |
if [ "${{ steps.tailscale.outputs.latest }}" != "${{ steps.tailscale.outputs.current }}" ]; then
echo "needs_update=true" >> $GITHUB_OUTPUT
else
echo "needs_update=false" >> $GITHUB_OUTPUT
fi
- name: Update Dockerfile
if: steps.check.outputs.needs_update == 'true'
run: |
sed -i "s/ARG TAILSCALE_VERSION=\".*\"/ARG TAILSCALE_VERSION=\"${{ steps.tailscale.outputs.latest }}\"/" tailscale/Dockerfile
- name: Bump addon version
if: steps.check.outputs.needs_update == 'true'
run: |
CURRENT_VERSION=$(grep '^version:' tailscale/config.yaml | awk '{print $2}')
NEW_VERSION=$(echo $CURRENT_VERSION | awk -F. '{$NF = $NF + 1;} 1' | sed 's/ /./g')
sed -i "s/version: $CURRENT_VERSION/version: $NEW_VERSION/" tailscale/config.yaml
echo "Version bumped from $CURRENT_VERSION to $NEW_VERSION"
- name: Commit and push
if: steps.check.outputs.needs_update == 'true'
run: |
git config user.name "GitHub Actions"
git config user.email "[email protected] "
git add tailscale/Dockerfile tailscale/config.yaml
git commit -m "Update Tailscale to ${{ steps.tailscale.outputs.latest }}"
git push
EOF
5. Push and Enable
git add .
git commit -m "Initial setup with auto-updating Tailscale addon"
git push
Enable GitHub Actions permissions:
Go to https://github.com/YOUR_USERNAME/ha-addons/settings/actions
Under “Workflow permissions”, select “Read and write permissions”
Save
Test the workflow:
Go to https://github.com/YOUR_USERNAME/ha-addons/actions
Click “Update Tailscale” workflow
Click “Run workflow”
Watch it update your addon automatically
6. Add to Home Assistant
Settings → Add-ons → Add-on Store
Three dots (top right) → Repositories
Add: https://github.com/YOUR_USERNAME/ha-addons
Install Tailscale from your repository
How It Works
Workflow runs daily at midnight UTC
Checks GitHub API for latest Tailscale release
Compares with current version in Dockerfile
If newer version exists:
Updates Dockerfile with new version
Bumps addon version number
Commits and pushes changes
HA shows update notification
You click “Update” - done!
Notes
Your addon will appear as separate from the official one in HA
GitHub Actions needs write permissions enabled
Example Repository
My working setup: GitHub - igorsrdanovic/ha-addons
Feel free to use as reference or fork and modify for your needs.
1 Like