Updating Shadow Status
Keep your status page up-to-date with the latest features and fixes.
If You Forked the Repository
Syncing your fork with the upstream repository is the easiest way to get updates.
Via GitHub Web Interface
- Go to your forked repository on GitHub
- Make a save of your
data/history.json,data/notification-state.json,static/data/status.json,config.json, andmonitors.jsonas they may get overridden. - Click Sync fork near the top of the page
- Click Update branch if there are new commits
- Pull the changes locally if needed:
git pull origin main - Push your saved data/config files to ensure your content is being used!
Via Command Line
# Add the upstream remote (only needed once)
git remote add upstream https://github.com/Shadow-Develops/ShadowStatus.git
# Fetch upstream changes
git fetch upstream
# Merge upstream changes into your main branch
git checkout main
git merge upstream/main
# Push to your fork
git push origin main
If you've modified core files (not just config.json and monitors.json), you may encounter merge conflicts. Resolve them carefully, keeping your custom changes where needed.
If You Used "Use as Template"
You'll need to manually apply updates since there's no direct link to the original repository.
Option 1: Cherry-Pick Specific Changes
-
Add the original repository as a remote:
git remote add upstream https://github.com/Shadow-Develops/ShadowStatus.git
git fetch upstream -
View the commit history to find relevant updates:
git log upstream/main --oneline -
Cherry-pick specific commits:
git cherry-pick <commit-hash>
Option 2: Manual File Updates
- Check the Shadow Status releases for change notes
- Compare your files with the latest version
- Manually update changed files, preserving your configuration
What to Preserve During Updates
Always keep your customizations in:
config.json— Your site settingsmonitors.json— Your monitor definitionsstatic/CNAME— Your custom domain (if set)static/img/— Your custom images/logodata/— Your history and state files
Files that may need updating:
scripts/check-monitors.js— Monitor checking logicsrc/— Frontend componentspackage.json— Dependencies.github/workflows/— GitHub Actions workflows
Post-Update Steps
-
Check for new dependencies:
npm install -
Review release notes for any configuration changes needed in
config.json -
Test locally before deploying:
npm run dev
npm run check-monitors -
Commit and push your changes to trigger a new deployment
Breaking Changes
Major version updates may include breaking changes. Always check the release notes before updating. Common breaking changes might include:
- New required fields in
config.json - Changed monitor configuration format
- Updated GitHub Actions workflow syntax
- New environment variable requirements
The release notes will include migration instructions for any breaking changes.