Upgrading Slite
Upgrading Slite is straightforward when using Docker Compose. Because SQLite and DuckDB are local single-process databases, proper backup before upgrading is essential.
1. Before you upgrade
- Take a full stopped-instance backup: Always stop the container before copying the data directory:shCopy or archive the entire
docker compose stop/datadirectory (includingslite.sqlite,analytics.duckdb,files/images, andbackups). Live filesystem copies while the database is active can produce corrupted snapshots. - Save your
.envconfiguration and record the current image or commit version. - Review upstream release notes for any breaking changes or configuration adjustments.
2. Standard upgrade
Pull the latest official image or update your local repository checkout:
# If using the official image:
docker compose pull
docker compose up -d
# If building from source:
git pull origin master
docker compose up -d --buildNever delete volumes
Never run docker compose down -v during an upgrade. The -v flag deletes named Docker volumes, including your authoritative database and analytics history.
Only one process may open the data directory at any time. Do not run old and new containers against the same directory simultaneously.
3. Moving an existing instance
If you are migrating from another shortener or an older Slite instance across servers:
- Use the Import and Export API or dashboard to export your links as JSON.
- Import the JSON file into the new Slite instance.
- Copy uploaded preview images from
files/imagesto the new host. - Keep the old instance online until you have verified routing and redirects on the new deployment.
Note: Link exports do not include DuckDB visit analytics. To retain historical analytics when moving servers, copy the entire /data directory in a stopped state.
4. After upgrade — quick check
After restarting the container, complete this checklist:
- Check application logs:sh
docker compose logs -f - Sign in to
/dashboardwith yourNUXT_SITE_TOKEN. - Create, resolve, edit, and delete a test link.
- Verify that existing short links redirect as expected.
- Check that visit analytics and the realtime 3D globe display correctly.