Last Updated: 3/10/2026
Upgrading LinkAce
Keep your LinkAce installation up-to-date with the latest features, security patches, and bug fixes. This guide covers upgrade procedures for both Docker and non-Docker installations.
Before You Upgrade
Backup First!
⚠️ Always backup before upgrading. Even though upgrades are usually smooth, backups protect you from unexpected issues.
Quick backup:
# Docker
docker exec linkace-app-1 php artisan backup:run
# Non-Docker
php artisan backup:runFor complete backup setup, see Backup & Restore.
Check Requirements
Verify your system meets the requirements for the new version:
- PHP version - Check release notes for minimum version
- Database version - Ensure compatibility
- Docker version - For Docker installations
- Disk space - Ensure sufficient space for upgrade
Read Release Notes
Always review the release notes before upgrading:
- Breaking changes - Changes that require action
- New features - What’s new in this version
- Bug fixes - Issues resolved
- Upgrade notes - Version-specific instructions
Docker Upgrade
Recommended method for Docker installations.
Automated Upgrade Script
LinkAce provides an automated upgrade script that handles the entire process.
1. Download the script:
wget https://github.com/Kovah/LinkAce/raw/2.x/update-docker.sh
chmod +x update-docker.sh2. Run the script:
./update-docker.shThe script will:
- Stop containers
- Backup the database
- Pull the latest image
- Remove old app volume
- Start containers
- Run database migrations
- Clear caches
3. Verify the upgrade:
# Check container status
docker compose ps
# Check application logs
docker compose logs -f appManual Docker Upgrade
If you prefer manual control or have a custom setup:
1. Stop containers:
docker compose down2. Backup database (optional but recommended):
# Create backup directory
mkdir -p ./backups/pre-upgrade
# Backup database
docker compose up -d db
docker exec linkace-db-1 mysqldump -u linkace -p linkace > ./backups/pre-upgrade/database-$(date +%Y%m%d).sql
docker compose down3. Remove old app volume:
⚠️ Important: This step is required for the advanced setup method.
# Find your volume name
docker volume ls | grep linkace
# Remove app volume (e.g., linkace_linkace_app)
docker volume rm linkace_linkace_appNote: This doesn’t delete your data - database and backups are in separate volumes.
4. Pull latest image:
docker compose pull5. Start containers:
docker compose up -d6. Run migrations:
docker exec linkace-app-1 php artisan migrate --forceYou may see a warning about running migrations in production. Type yes to confirm.
7. Clear caches:
docker exec linkace-app-1 php artisan cache:clear
docker exec linkace-app-1 php artisan config:clear
docker exec linkace-app-1 php artisan settings:clear-cache8. Verify upgrade:
# Check version
docker exec linkace-app-1 php artisan --version
# Check application health
docker compose logs -f appOpen LinkAce in your browser and verify everything works.
Non-Docker Upgrade
For traditional PHP installations.
Upgrade Process
1. Backup everything:
cd /path/to/linkace
# Backup database
php artisan backup:run
# Backup .env file
cp .env .env.backup
# Backup files (optional)
tar -czf linkace-backup-$(date +%Y%m%d).tar.gz .2. Download latest release:
Visit the releases page and download the .zip package.
wget https://github.com/Kovah/LinkAce/releases/download/vX.X.X/linkace-vX.X.X.zip
unzip linkace-vX.X.X.zip -d linkace-new3. Replace files:
⚠️ Important: Keep your .env file and storage/ directory.
# Copy new files (excluding storage and .env)
rsync -av --exclude='.env' --exclude='storage/logs' linkace-new/ /path/to/linkace/
# Or manually:
# - Copy all files from linkace-new/ to your LinkAce directory
# - DO NOT overwrite .env
# - DO NOT overwrite storage/logs (optional: keep your logs)4. Run migrations:
cd /path/to/linkace
php artisan migrate --force5. Clear caches:
php artisan cache:clear
php artisan config:clear
php artisan view:clear
php artisan settings:clear-cache6. Update dependencies (if needed):
Some updates may require dependency updates:
composer install --no-dev --optimize-autoloader
npm install
npm run production7. Fix permissions:
# For nginx
sudo chown -R www-data:www-data storage/
sudo chown -R www-data:www-data bootstrap/cache/
# For Apache
sudo chown -R apache:apache storage/
sudo chown -R apache:apache bootstrap/cache/
chmod -R 0766 storage/
chmod -R 0766 bootstrap/cache/8. Restart web server:
# Nginx
sudo systemctl restart nginx
# Apache
sudo systemctl restart apache2
# PHP-FPM (if used)
sudo systemctl restart php8.2-fpm9. Verify upgrade:
php artisan --versionOpen LinkAce in your browser and test functionality.
Version-Specific Upgrades
Upgrading to LinkAce 2.x
If you’re upgrading from LinkAce 1.x, see the dedicated guide:
Key changes in v2:
- Multi-user support
- New user management system
- Updated API (v2 endpoints)
- Privacy controls (Public/Internal/Private)
- Guest mode
- Improved performance
Current Version-Specific Notes
At the moment, no specific steps are required to upgrade between LinkAce 2.x versions.
Always check the release notes for version-specific instructions.
Troubleshooting Upgrades
White Screen After Upgrade
Problem: Blank page or 500 error.
Solutions:
-
Clear all caches:
# Docker docker exec linkace-app-1 php artisan cache:clear docker exec linkace-app-1 php artisan config:clear docker exec linkace-app-1 php artisan view:clear # Non-Docker php artisan cache:clear php artisan config:clear php artisan view:clear -
Check logs:
# Docker docker compose logs app # Non-Docker tail -f storage/logs/laravel.log -
Run migrations:
php artisan migrate --force -
Check permissions:
# Non-Docker chmod -R 0766 storage/ chmod -R 0766 bootstrap/cache/
Database Migration Errors
Problem: Migration fails with SQL errors.
Solutions:
-
Check database version:
# Docker MySQL docker exec linkace-db-1 mysql --version # Non-Docker mysql --versionEnsure compatibility with LinkAce requirements.
-
Review migration error:
- Read the error message carefully
- Check if table already exists
- Check for column conflicts
-
Rollback and retry:
php artisan migrate:rollback php artisan migrate --force -
Force migration (last resort):
php artisan migrate:fresh --force⚠️ Warning: This drops all tables and recreates them. Only use with a backup!
Container Won’t Start
Problem: Docker container exits immediately.
Solutions:
-
Check logs:
docker compose logs app -
Verify image:
docker images | grep linkaceEnsure latest image is pulled.
-
Remove and recreate:
docker compose down docker compose up -d -
Check .env file:
docker exec linkace-app-1 cat .envVerify APP_KEY is set.
Missing Features After Upgrade
Problem: New features don’t appear.
Solutions:
-
Clear browser cache:
- Hard refresh: Ctrl+Shift+R (or Cmd+Shift+R on Mac)
- Clear cookies and cache
-
Clear application cache:
php artisan cache:clear php artisan view:clear -
Check version:
php artisan --versionVerify you’re running the expected version.
-
Check release notes:
- Feature may require configuration
- Feature may be admin-only
Downgrading
⚠️ Downgrading is not officially supported and may cause data loss.
If you must downgrade:
Docker Downgrade
1. Stop containers:
docker compose down2. Edit docker-compose.yml:
services:
app:
image: linkace/linkace:vX.X.X # Specify older version3. Restore database backup:
docker compose up -d db
docker exec -i linkace-db-1 mysql -u linkace -p linkace < backup.sql4. Start containers:
docker compose up -d5. Run migrations (may fail):
docker exec linkace-app-1 php artisan migrate --forceNon-Docker Downgrade
1. Restore files:
tar -xzf linkace-backup-YYYYMMDD.tar.gz -C /path/to/linkace/2. Restore database:
mysql -u linkace -p linkace < backup.sql3. Clear caches:
php artisan cache:clear
php artisan config:clearBest Practices
Before Every Upgrade
✅ Read release notes - Check for breaking changes
✅ Backup everything - Database, files, .env
✅ Test in staging - If possible, test upgrade on copy first
✅ Schedule downtime - For production systems
✅ Verify requirements - PHP, database versions
During Upgrade
✅ Follow instructions - Don’t skip steps
✅ Read error messages - They contain important info
✅ Check logs - Review application and container logs
✅ Be patient - Migrations can take time on large databases
After Upgrade
✅ Test functionality - Add a link, search, check settings
✅ Verify cron - Check System Settings → System Cron
✅ Check backups - Ensure automated backups still work
✅ Monitor logs - Watch for errors in first few days
✅ Update documentation - Note your version and upgrade date
Staying Up-to-Date
Release Notifications
Get notified about new releases:
-
Watch on GitHub:
- Visit LinkAce repository
- Click “Watch” → “Custom” → “Releases”
-
Follow on social media:
-
RSS feed:
- Subscribe to GitHub releases RSS
Update Frequency
Security updates: Apply immediately
Feature updates: Apply within 1-2 weeks
Minor updates: Apply within a month
Recommendation: Check for updates monthly.
Watchtower Warning
⚠️ Do NOT use Watchtower with LinkAce!
Several users reported broken installations after Watchtower ran automatic updates.
Why? Watchtower doesn’t:
- Run database migrations
- Clear caches
- Handle version-specific upgrade steps
Exclude LinkAce from Watchtower:
services:
app:
labels:
- "com.centurylinklabs.watchtower.enable=false"Always upgrade manually following this guide.
Version History
LinkAce follows Semantic Versioning :
- Major version (2.0.0) - Breaking changes, major features
- Minor version (2.1.0) - New features, backward compatible
- Patch version (2.0.1) - Bug fixes, backward compatible
Current Versions
- LinkAce 2.x - Current stable version (multi-user, modern features)
- LinkAce 1.x - Legacy version (deprecated, no longer maintained)
Support Policy
- Current major version - Full support
- Previous major version - Security updates for 6 months after new major release
- Older versions - No support
Recommendation: Always run the latest stable version.
Next Steps
After Upgrading
- Changelog - See what’s new
- Troubleshooting - Fix common issues
- Backup & Restore - Protect your data
Maintenance
- CLI Commands - Useful commands
- Environment Variables - Configuration reference
- Post-Installation Setup - Optimize your installation
Getting Help
- GitHub Discussions - Community support
- GitHub Issues - Bug reports
Keep LinkAce updated for the best experience! 🚀