(
+<>
+To upgrade to the latest version ({release.name}):
+
+{`# Stop the current container
+questdb01$ docker stop questdb
+
+# Remove the container (data persists in mounted volume)
+questdb01$ docker rm questdb
+
+# Pull the latest image
+questdb01$ docker pull questdb/questdb:${release.name}
+
+# Start with the new version (include memory configuration)
+questdb01$ docker run -d --name questdb \\
+ --restart unless-stopped \\
+ -p 9000:9000 -p 9009:9009 -p 8812:8812 -p 9003:9003 \\
+ -v "/questdb/qdbroot:/var/lib/questdb" \\
+ -e JVM_PREPEND="-Xmx12g" \\
+ questdb/questdb:${release.name}`}
+
+>
+)}
+/>
+
+### Verification
+
+After upgrading, verify the deployment:
+
+```bash
+# Check container status
+questdb01$ docker ps
+
+# View startup logs
+questdb01$ docker logs questdb
+
+# Test connectivity
+questdb01$ curl -f http://localhost:9000/status
+```
+
+:::warning Data Safety
+Your data remains safe during upgrades as it's stored on the persistent Block Storage Volume. However, always maintain regular backups as described in the backup section below.
+:::
+
+## Backup Strategy
+
+Since Hetzner Block Storage Volumes can only be attached to a single server, backups must be performed directly from the QuestDB server. This section demonstrates automated backup using [Borg Backup](https://www.borgbackup.org/) with [Hetzner Storage Box](https://www.hetzner.com/storage/storage-box/).
+
+### Storage Box Setup
+
+Hetzner Storage Boxes provide cost-effective remote storage with native Borg Backup support for efficient incremental backups.
+
+:::note Storage Box Creation
+Storage Box creation via `hcloud` CLI is not yet supported ([tracking issue](https://github.com/hetznercloud/hcloud-go/issues/675)). Create through the [Hetzner Cloud Console](https://console.hetzner.cloud/) instead.
+:::
+
+**Storage Box configuration:**
+- **Type**: BX11 or higher based on data size requirements
+- **SSH support**: Enable for Borg Backup access
+- **Location**: Choose a different geographic region than your server for disaster recovery
+- **Additional settings**: Enable SSH support and mark the storage box as external reachable
+
+After creation, your Storage Box will have a hostname like `uXXXXX.your-storagebox.de` and is accessible via SSH on port 23:
+
+```bash
+ssh -p 23 uXXXXX@uXXXXX.your-storagebox.de
+```
+
+For detailed QuestDB backup concepts, see the [Backup Operations](/docs/operations/backup/) documentation.
+
+### SSH Key Configuration
+
+Set up secure authentication between your QuestDB server and Storage Box following [Hetzner's SSH key documentation](https://docs.hetzner.com/storage/storage-box/backup-space-ssh-keys/).
+
+#### Step 1: Generate SSH Key Pair
+
+Create a dedicated SSH key pair for backup operations (no passphrase required for automation):
+
+```bash
+# Generate key pair on your local machine
+ssh-keygen -f questdb-backup -N ""
+```
+
+#### Step 2: Deploy Private Key
+
+Copy the private key to your QuestDB server with secure permissions:
+
+```bash
+# Copy private key to server
+scp questdb-backup root@:/root/.ssh/
+
+# Set secure permissions via SSH
+hcloud server ssh questdb01 -- chmod 400 /root/.ssh/questdb-backup
+```
+
+#### Step 3: Install Public Key
+
+Add the public key to your Storage Box:
+
+```bash
+# Install public key on Storage Box
+cat questdb-backup.pub | ssh -p 23 uXXXXX@uXXXXX.your-storagebox.de install-ssh-key
+```
+
+#### Step 4: Test Connection
+
+Verify SSH connectivity from your QuestDB server:
+
+```bash
+# SSH to QuestDB server
+hcloud server ssh questdb01
+
+# Test Storage Box connection
+questdb01$ ssh -p 23 -i ~/.ssh/questdb-backup uXXXXX@uXXXXX.your-storagebox.de
+```
+
+The connection should succeed without prompting for a password.
+
+### Borg Backup Repository Setup
+
+Configure Borg Backup following [Hetzner's Borg documentation](https://docs.hetzner.com/storage/storage-box/access/access-ssh-rsync-borg#borgbackup).
+
+#### Install Backup Tools
+
+```bash
+# Install Borg Backup and Borgmatic
+questdb01$ apt update && apt install -y borgbackup borgmatic
+```
+
+#### Initialize Backup Repository
+
+```bash
+# Set SSH configuration for Borg
+questdb01$ export BORG_RSH="ssh -p 23 -i ~/.ssh/questdb-backup"
+
+# Initialize encrypted repository
+questdb01$ borg init --encryption=repokey --remote-path=borg-1.4 \
+ ssh://uXXXXX@uXXXXX.your-storagebox.de:23/./questdb01
+```
+
+:::warning Passphrase Security
+You'll be prompted for an encryption passphrase. **Store this securely** - it's required for backup restoration. Consider using a password manager or secure vault.
+:::
+
+#### Create Borgmatic Configuration
+
+Create `/etc/borgmatic/config.yaml` with retention policies and source directories:
+
+```yaml title="/etc/borgmatic/config.yaml"
+# Source directories to backup
+source_directories:
+ - /questdb/qdbroot
+
+# Backup repository location
+repositories:
+ - path: ssh://uXXXXX@uXXXXX.your-storagebox.de:23/./questdb01
+
+# Retention policy
+retention:
+ keep_daily: 30
+ keep_monthly: 12
+ keep_yearly: 10
+
+# Consistency checks
+checks:
+ - repository
+ - archives
+
+# Borg-specific options
+borg_ssh_command: ssh -p 23 -i /root/.ssh/questdb-backup
+```
+
+### PostgreSQL Client Setup
+
+QuestDB requires [checkpoint management during backup operations](/docs/operations/backup/) to ensure data consistency. Install the PostgreSQL client for checkpoint commands:
+
+```bash
+# Install PostgreSQL client
+questdb01$ apt update && apt install -y postgresql-client
+```
+
+#### Configure Database Credentials
+
+Create secure credential storage for automated backup operations:
+
+```bash
+# Create credentials file
+questdb01$ cat > /root/.psql.env << EOF
+PGUSER="admin"
+PGPASSWORD=""
+PGHOST="localhost"
+PGPORT="8812"
+PGDATABASE="qdb"
+EOF
+
+# Secure the credentials file
+questdb01$ chmod 600 /root/.psql.env
+```
+
+#### Test Database Connection
+
+Verify PostgreSQL connectivity:
+
+```bash
+# Load environment variables
+questdb01$ set -a && source /root/.psql.env && set +a
+
+# Test connection
+questdb01$ psql -c "SELECT version();"
+```
+
+Expected output should show QuestDB version information, confirming successful database connectivity.
+
+For more details on QuestDB's PostgreSQL compatibility, see the [PostgreSQL wire protocol](/docs/reference/api/postgres/) documentation.
+
+### Manual Backup Test
+
+Perform a test backup to verify the complete backup pipeline. The backup process follows QuestDB's [recommended backup sequence](/docs/operations/backup/):
+
+1. **Create checkpoint** - Ensures consistent state
+2. **Run backup** - Copy data to remote storage
+3. **Release checkpoint** - Resume normal operations
+
+```bash
+# Load database credentials
+questdb01$ set -a && source /root/.psql.env && set +a
+
+# Step 1: Create checkpoint for consistent backup
+questdb01$ psql -c "CHECKPOINT CREATE"
+
+# Step 2: Execute backup with progress monitoring
+questdb01$ borgmatic --progress --stats -v 2
+
+# Step 3: Release checkpoint
+questdb01$ psql -c "CHECKPOINT RELEASE"
+```
+
+#### Verify Backup Success
+
+Check backup completion and repository status:
+
+```bash
+# List backup archives
+questdb01$ borg list ssh://uXXXXX@uXXXXX.your-storagebox.de:23/./questdb01
+
+# Check repository info
+questdb01$ borg info ssh://uXXXXX@uXXXXX.your-storagebox.de:23/./questdb01
+```
+
+If the backup reports success, proceed to automated backup configuration.
+
+### Automated Backup Configuration
+
+Set up automated nightly backups using cron scheduling.
+
+#### Create Borg Environment Configuration
+
+Store Borg-specific environment variables securely:
+
+```bash
+# Create Borg environment file
+questdb01$ cat > /root/.borg.env << EOF
+BORG_RSH="ssh -p 23 -i ~/.ssh/questdb-backup"
+BORG_PASSPHRASE=""
+EOF
+
+# Secure the environment file
+questdb01$ chmod 600 /root/.borg.env
+```
+
+#### Create Backup Script
+
+Create an automated backup script that implements [QuestDB's checkpoint-based backup](/docs/operations/backup/):
+
+```bash
+questdb01$ cat > /root/borg-run.sh << 'EOF'
+#!/bin/bash
+
+# Exit on any error
+set -e
+
+# Logging function
+log() {
+ echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
+}
+
+# Cleanup function - always release checkpoint
+function cleanup {
+ log "Releasing checkpoint"
+ psql -c "CHECKPOINT RELEASE" || log "WARNING: Failed to release checkpoint"
+}
+
+# Load environment variables
+set -a
+source /root/.psql.env
+source /root/.borg.env
+set +a
+
+# Ensure checkpoint is released on script exit
+trap cleanup EXIT
+
+log "Starting QuestDB backup process"
+
+# Create consistent checkpoint before backup
+log "Creating database checkpoint"
+psql -c "CHECKPOINT CREATE"
+
+# Execute backup with minimal logging for cron
+log "Running Borgmatic backup"
+borgmatic --progress --stats -v 0 2>&1
+
+log "Backup completed successfully"
+EOF
+
+# Make script executable
+questdb01$ chmod +x /root/borg-run.sh
+```
+
+#### Schedule Automated Backups
+
+Configure nightly backups at 4:00 AM:
+
+```bash
+# Add to crontab
+questdb01$ (crontab -l 2>/dev/null; echo "0 4 * * * /root/borg-run.sh >> /var/log/questdb-backup.log 2>&1") | crontab -
+
+# Verify crontab entry
+questdb01$ crontab -l
+```
+
+#### Monitor Backup Operations
+
+Track backup execution through logs:
+
+```bash
+# View recent backup logs
+questdb01$ tail -f /var/log/questdb-backup.log
+
+# Check backup history
+questdb01$ borg list ssh://uXXXXX@uXXXXX.your-storagebox.de:23/./questdb01 | tail -10
+```
+
+:::tip Monitoring Best Practices
+- Monitor backup logs regularly for failures
+- Test backup restoration procedures periodically
+- Consider setting up alerting for failed backups
+- Verify backup integrity with `borg check` monthly
+:::
+
+Your QuestDB instance on Hetzner Cloud is now fully configured with automated backups. For additional operational guidance, see the [Operations](/docs/operations/) documentation.
\ No newline at end of file