Upgrading
Keeping solyto up to date ensures you have the latest features, bug fixes, and security patches.
Before upgrading
Section titled “Before upgrading”- Check release notes — review the releases page for breaking changes or manual migration steps
- Back up your data — see below
- Note your current version — check
SOLYTO_VERSIONin your.env
Back up your data
Section titled “Back up your data”Before any upgrade, create backups of your databases and storage. The selfhosted repo’s README includes a full restic-based backup script; the essentials are:
# Back up MariaDB (database: api)docker exec -e MYSQL_PWD="$(cat secrets/mariadb_root_password)" <project>-mariadb \ mariadb-dump -u root --databases api > backup_mariadb.sql
# Back up PostgreSQL (database: dav)docker exec -e PGPASSWORD="$(cat secrets/postgres_root_password)" <project>-postgres \ pg_dump -U postgres --clean --create dav > backup_postgres.sql
# Back up storagetar -czf backup_storage.tar.gz storage/Replace <project> with your PROJECT_NAME (default solyto). Store these backups outside the server or in a separate location.
Upgrade process
Section titled “Upgrade process”1. Pull the latest images
Section titled “1. Pull the latest images”docker compose pullThis fetches the latest versions of all three solyto images (solyto/app, solyto/api-php, solyto/api-nginx) as well as any updated base images.
2. Restart services
Section titled “2. Restart services”docker compose up -dDocker Compose detects the new images and recreates the containers.
3. Database migrations
Section titled “3. Database migrations”The api container runs startup.sh on every start, which automatically applies pending database migrations. No manual action is needed.
4. Verify
Section titled “4. Verify”Check that all services are running:
docker compose psTest the API health endpoint:
curl -s https://api.example.com/api/v1/healthOpen the frontend and confirm everything works as expected.
Pinning a version
Section titled “Pinning a version”To stay on a specific version, set SOLYTO_VERSION in your .env:
SOLYTO_VERSION=1.2.0Then docker compose pull will fetch that specific tag. Remove or set it to latest to get new versions again.
Rolling back
Section titled “Rolling back”If an upgrade causes issues:
- Stop the services:
docker compose down - Set
SOLYTO_VERSIONto the previous version in.env - Restore your database backups if needed
- Start the services:
docker compose up -d
Note that a verifiable downgrade strategy is not yet available — rollbacks rely on reversing the Laravel migrations released with each image, so backups are essential.