> ## Documentation Index
> Fetch the complete documentation index at: https://developer.verilock.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Updating

> How to update your self-hosted Verilock Identity instance

## Update Process

Updates are pulled from the Verilock Docker registry. Your data and configuration are preserved.

### 1. Check for updates

```bash theme={null}
docker compose exec app php artisan selfhost:check-update
```

Output:

```
Current version: v1.0.0
Update channel: stable

New version available: v1.1.0

Release notes:
- Added batch document upload
- Improved AML matching accuracy
- Fixed session expiry edge case

To update, run:
  docker compose pull && docker compose up -d && php artisan migrate --force
```

### 2. Backup (recommended)

```bash theme={null}
# Database
docker compose exec postgres pg_dump -U verilock verilock > backup-$(date +%Y%m%d).sql

# Document storage
docker compose exec minio mc mirror local/verilock-documents ./backup-documents/
```

### 3. Pull and restart

```bash theme={null}
docker compose pull
docker compose up -d
```

The entrypoint automatically runs migrations and caches configuration on startup.

### 4. Verify

```bash theme={null}
docker compose exec app php artisan license:heartbeat
```

<Warning>
  **Never skip major versions.** If you're on v1.x and the latest is v3.x, upgrade through v2.x first. Check the [changelog](https://verilock.io/changelog) for migration guides.
</Warning>

## Update Channels

| Channel  | Description                  | Recommended For      |
| -------- | ---------------------------- | -------------------- |
| `stable` | Production-tested releases   | All deployments      |
| `beta`   | Early access to new features | Staging environments |

Change your channel in `.env`:

```env theme={null}
VERILOCK_UPDATE_CHANNEL=beta
```

## Rollback

If an update causes issues:

```bash theme={null}
# Stop current version
docker compose down

# Pull specific version
docker compose pull app:1.0.0

# Or edit docker-compose.yml to pin the version:
# image: verilock/identity:1.0.0

# Restart
docker compose up -d
```

<Info>
  Database migrations are forward-only. If you need to rollback a migration, contact [support](mailto:support@verilock.com).
</Info>

## Version Support Policy

| Status       | Support Level                             | Duration                    |
| ------------ | ----------------------------------------- | --------------------------- |
| **Current**  | Full support, bug fixes, security patches | Ongoing                     |
| **Previous** | Security patches only                     | 6 months after next release |
| **EOL**      | No support                                | —                           |

Your license heartbeat will notify you when your version approaches EOL.
