Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix NowHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
FREEDOM251

Freedom251 › Blog › AI agents

Proxmox Alternatives for Self-Hosting AI Agent Development Environments

By Freedom251 Team · · 13 min read

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Incus is the best Proxmox alternative for most developer-focused AI labs. It combines system containers and virtual machines, offers a REST API, and supports physical GPU passthrough, mediated devices (mdev), MIG, and SR-IOV according to the workload. Choose TrueNAS when storage and NAS services are the primary job, XCP-ng when you want a dedicated Xen appliance managed with Xen Orchestra, and OpenNebula when your lab is becoming a multi-host private cloud. Proxmox itself remains a sensible baseline when its integrated KVM/LXC, clustering, high availability, storage, networking, and support model match your requirements.

Which Proxmox alternative should you choose?

The right platform depends less on brand preference than on the shape of your AI-agent environment. A single developer host needs fast iteration, reproducible Linux environments, simple GPU attachment, and an API. A storage server needs data-integrity controls and predictable disk access. A virtualization appliance needs centralized lifecycle management. A private cloud needs multi-host scheduling, tenancy, federation, and orchestration.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Platform Best fit Container and VM model GPU approach Primary trade-off
Incus One developer host or a small cluster running Linux services and VMs Native system containers and virtual machines managed through one API Physical passthrough for containers and VMs; mdev for VMs; MIG for containers; SR-IOV for VMs Requires you to design your own surrounding storage, backup, and operations stack
TrueNAS NAS, storage pools, and data management with some virtualization VMs and containers on a storage-centric appliance Depends on the VM or container configuration and hardware passthrough design Virtualizing the storage appliance with virtual disks for production is unsupported
XCP-ng Dedicated bare-metal Xen virtualization managed centrally Virtual machines on Xen, administered through Xen Orchestra Whole-GPU passthrough for most NVIDIA and AMD cards NVIDIA vGPU is not supported
OpenNebula Multi-host, multi-tenant, federated, or Kubernetes-oriented private cloud Cloud management over vendor-neutral virtualization Defined by the selected host virtualization and device-allocation design More operational complexity than a small single-node lab needs
Proxmox VE Integrated KVM/LXC virtualization with clustering and support options KVM virtual machines and LXC containers in one web interface Use its VM or container device-passthrough capabilities with compatible hardware Paid subscriptions are priced per occupied CPU socket

What an AI-agent development environment actually needs

AI agents are not a single service. A practical lab may include a Linux development workspace, model-serving processes, vector databases, relational databases, message queues, browser or shell tools, evaluation runners, observability, and secret storage. Each component has a different isolation and persistence requirement.

  • Reproducible compute: Images or templates should let you recreate an agent worker with the same operating-system packages and runtime dependencies.
  • Persistent data: Model files, embeddings, vector indexes, source repositories, evaluation traces, and databases must live on storage designed for recovery rather than on an ephemeral root filesystem.
  • Network boundaries: Keep agent tools, databases, management interfaces, and the public internet in separate network segments or security groups where possible.
  • Secrets handling: API keys and credentials should be injected at runtime and kept out of images, snapshots, and source repositories.
  • Observability: Logs, traces, resource metrics, and model-call records need a destination that survives an individual VM or container failure.
  • Optional GPU access: Local inference and some embedding or evaluation workloads need a GPU, but passthrough mode, guest drivers, CUDA or ROCm support, and model-serving software must all agree.

Containers are efficient for repeatable, trusted Linux services because they share the host kernel. VMs consume more resources but provide a stronger boundary for untrusted tools, kernel-sensitive software, or mixed operating systems. Many labs use both: containers for ordinary services and VMs for experiments that deserve a separate kernel.

#1 Best Overall
Graphics Card GPU Brace Support, Video Card Sag Holder Bracket, GPU Stand (L, 74-120mm)
  • All-aluminum metal material - Provides strong and long-lasting support. This is made of all-aluminum metal instead of plastic, can avoid the aging of plastic materials and can be used as a long-term replacement.
  • Screw adjustment design - The graphics card bracket design can be compatible with various chassis configurations of traditional and long power supply bays to meet various user hosts.
  • Bottom hidden mag.net design - The mag.net hidden in the base is designed for easy installation and more stable standing in the chassis.
  • The workmanship of the detail process - The small graphics card support frame is made of three complex processes: polished anode, sandblasted anode and CNC high-speed edge-washing high-gloss process. The full anode process can maintain the durability.
  • Tool-free fixing module - The support module is equipped with a cushioning anti-scratch pad and a base high-gloss process.

Incus: the strongest general-purpose alternative

Why Incus fits a developer AI lab

Incus is an open-source system container and virtual-machine manager that scales from one machine to a cluster and exposes a REST API. Its containers run a full Linux distribution while sharing the host kernel; its VMs are native instances rather than containers disguised as VMs. That combination maps well to an agent lab where most services are Linux processes but a few workloads need stronger isolation.

A developer can keep a lightweight container for a vector database, a separate container for an API worker, and a VM for an agent that executes untrusted browser or shell tools. The same management model can be automated through the API, allowing a test runner to create an instance from an image, attach storage and networking, run an evaluation, and remove the instance without hand-operating a web console.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

GPU options in Incus

Incus documents several allocation modes:

  • Physical GPU passthrough: Assigns a complete device to a container or VM. This is the simplest mental model for one workload that needs exclusive access.
  • mdev for VMs: Uses mediated devices to divide a compatible physical device into virtual functions presented to virtual machines.
  • MIG for containers: Uses supported hardware partitioning to expose separate GPU instances to containers.
  • SR-IOV for VMs: Presents virtual functions to VMs when the GPU and platform support that mode.

These modes are not interchangeable. Confirm the card’s hardware features, motherboard IOMMU support, host and guest drivers, and the model server’s CUDA or ROCm requirements before choosing an allocation method. A card that can be passed through as a whole device may not support the partitioning mode you want.

When Incus is the right choice

  • You want one host or a small cluster rather than a full cloud control plane.
  • Your team prefers an API-first workflow and infrastructure-as-code.
  • You need both containers and VMs without maintaining separate products.
  • You want flexible GPU attachment and are prepared to validate drivers yourself.

What you must add around Incus

Incus supplies the instance manager, not an opinionated all-in-one storage and disaster-recovery service. Decide where model artifacts, databases, backups, metrics, and secrets live. Define image-update policy, snapshot retention, network segmentation, and recovery tests before putting valuable data into production. For a small lab, this explicit design is manageable; for a larger organization, it becomes an operations responsibility.

TrueNAS: choose it when storage is the primary job

Where TrueNAS excels

TrueNAS is the natural candidate when the central requirement is a storage appliance with NAS services, managed data sets, and virtualization alongside that storage. Its documentation distinguishes VMs from containers: VMs offer stronger isolation but consume more system resources. That makes a VM appropriate for an agent that needs its own kernel, while containers can conserve resources for trusted services.

The production-storage warning

The hardware guidance is explicit: virtualizing TrueNAS with virtual disks for production storage is unsupported and can cause data corruption. If a proof of concept requires a virtualized TrueNAS installation, pass through physical disks or the storage controller rather than presenting ordinary virtual disks. For a serious AI lab, install the storage appliance on hardware with direct access to the disks it is responsible for, then run agent VMs or containers on an arrangement that does not compromise that storage path.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

When TrueNAS is a better fit than Incus

  • Your primary deliverable is reliable shared storage for models, datasets, backups, and logs.
  • Several hosts or services need a central NAS rather than local instance disks.
  • You accept that VM density and container flexibility are secondary to storage administration.

Do not select TrueNAS solely because it can start a VM. If the main work is rapidly creating and destroying agent environments, an instance-focused platform is usually simpler. Select TrueNAS when the data layer is the part you need to operate first.

Rank #2
HEFIX Graphics Card Port Protectors, GPU Port Dust Plug Kit Hard ABS | HDMI/DP/DVI & PCIe gold finger covers, hard ABS black. Dust/moist/oxi proof, snap-fit, heat-resist.
  • UNIVERSAL COMPATIBILITY – Designed to fit all standard HDMI, DisplayPort (DP), and DVI ports. One kit covers your entire setup.
  • 13-PIECE SET – Includes 2×Gold Finger PCIe protectors, 3×HDMI caps, 6×DisplayPort plugs, and 2×DVI covers.
  • SECURE FIT – Snug-fitting design ensures plugs stay firmly in place, while the grip tip at the back allows easy insertion and removal when needed.
  • DURABLE HARD ABS – Heat-resistant rigid plastic won't deform or warp under GPU temperatures. Maintains tight seal and shape for years.
  • PREVENT OXIDATION – Blocks dust, moisture, and contaminants from gold pins. Keeps ports clean, preserves GPU performance and resale value.

XCP-ng: a focused Xen virtualization appliance

Management model

XCP-ng is an open-source Xen platform installed on bare metal and centrally managed with Xen Orchestra. It is designed as a dedicated virtualization layer rather than a combined NAS and container platform. This is attractive when you want a clear separation between the hypervisor and the guest operating systems that host your agent stack.

GPU passthrough requirements

Its compute documentation requires VT-d on Intel systems or AMD-Vi on AMD systems, collectively known as IOMMU, for PCI passthrough. XCP-ng supports whole-GPU passthrough for most NVIDIA and AMD cards. The documented limitation is important for AI labs: NVIDIA vGPU is not supported. Plan for exclusive device assignment instead of expecting to carve one supported NVIDIA card into multiple vGPU-backed guests.

When XCP-ng makes sense

  • You want a bare-metal Xen appliance with centralized management.
  • Your workloads fit whole-GPU passthrough and do not require NVIDIA vGPU.
  • Your team already operates Xen Orchestra or values a dedicated virtualization boundary.

Use a VM for the complete agent environment when you need kernel isolation, then expose the GPU to that VM. If you need many lightweight Linux services with frequent image-based lifecycle operations, XCP-ng may require more guest VMs and orchestration around them than Incus would.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

OpenNebula: for a lab that is becoming a private cloud

OpenNebula positions itself for sovereign-cloud, AI-factory, and Kubernetes-orchestration scenarios with vendor-neutral virtualization and cloud management. Its value appears when there are multiple hosts, multiple users or teams, federated sites, or a requirement to present infrastructure as a service rather than as a single administrator’s server.

Signals that you have outgrown a single-node manager

  • Agent workloads must be scheduled across several physical hosts.
  • Teams need separate projects, quotas, images, networks, and credentials.
  • You need federation between sites or a cloud-style self-service portal.
  • Kubernetes clusters are one of several orchestrated products you operate.

For a single developer workstation or a small homelab, OpenNebula’s broader control plane can add more moving parts than it removes. Choose it when the organizational and multi-host requirements are real, not merely because “cloud” sounds future-proof.

How Proxmox compares as the baseline

Proxmox VE combines KVM virtual machines and LXC containers in one web interface. Its published feature set includes clustering, high availability, software-defined storage, software-defined networking, and disaster-recovery tooling. That integrated scope is why it remains a strong baseline even when an alternative is a better match for a particular lab.

The current release shown on the official downloads page during the October 20, 2026 check is version 9.2. Published support subscriptions are charged per occupied CPU socket, not per core:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
acer GPU Support Bracket, GPU Stand with Magnet Non-Slip Base,(L, 70-120mm)
  • [Esports-grade Materials] Constructed from high-quality aluminum alloy, the acer GPU support bracket features an anodized finish that ensures durability and resistance to rust. It provides lasting support for your graphics card, stable and durable for long-lasting use.
  • [Ajustment Freely] The detachable design features precise 0.5mm increments for easy height adjustment, allowing for a perfect fit in various cases and simpler installation. With a large diameter of 14.7mm, it surpasses the thickness of other GPU supports. acer GPU sag bracket offers maximum load capacity, providing reliable support for your graphics car.
  • [Powerful Magnetic Design] The top and bottom are equipped with thoughtful silicone pads to prevent damage to the graphics card. The strong magnet at the bottom ensures that the support is firmly 'welded' to the chassis, serving as a double safety guard for the graphics card.
  • [Easy installation] Tool-free hand-tightening design allows for height calibration in just 30 seconds, making it easy to get started. The spiral support rod, combined with the fixing ring, helps you find the perfect height, allowing your graphics card to achieve the optimal angle.
  • [Confident Purchase] Your purchase is backed by an 18+18-month warranty. For a truly seamless experience, our support team is ready to assist and will answer any inquiry within 18 hours.
Subscription Annual price per CPU socket
Community €120
Basic €370
Standard €550
Premium €1,100

Those are the published 2026 prices checked on October 20, 2026. They matter when comparing total operating cost, especially in a multi-socket server. Incus and OpenNebula are open-source projects, but the available data does not establish equivalent subscription prices; budget the engineering time for storage, support, backups, and GPU troubleshooting instead of assuming software license cost is the whole calculation.

GPU passthrough: design it before buying hardware

“GPU passthrough” is not a universal feature with identical behavior on every platform. It can mean exclusive whole-device assignment, mediated virtual devices, MIG partitions, or SR-IOV virtual functions. Start with the workload, then select the hardware and hypervisor mode.

  1. Define concurrency. Decide whether one model server will own the card or whether several agents must share it. Exclusive assignment is simpler; partitioning requires compatible hardware and software.
  2. Verify IOMMU. Confirm VT-d or AMD-Vi in firmware and verify that the device is isolated in an IOMMU group suitable for passthrough.
  3. Match the guest stack. Check the guest operating system, NVIDIA or AMD driver branch, CUDA or ROCm version, and model-serving framework as a set.
  4. Select the allocation mode. Use whole-device passthrough for a single guest, or choose mdev, MIG, or SR-IOV only when the card, platform, and manager support it.
  5. Test recovery. Reboot the host, stop and restart the guest, and exercise a driver reset before committing model data or long-running jobs.

Incus documents all four allocation families listed above. XCP-ng documents whole-GPU passthrough for most NVIDIA and AMD cards but not NVIDIA vGPU. That difference alone can decide between the two platforms.

Storage and data safety for models, vectors, and traces

AI-agent environments create large, persistent data sets: model weights, tokenizer files, document corpora, vector indexes, chat histories, evaluation artifacts, and logs. Separate these from disposable instance roots so that rebuilding a container or VM does not erase the data that makes the environment useful.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Keep source and images reproducible: Rebuildable images should contain operating-system and application dependencies, not irreplaceable datasets.
  • Use deliberate persistence: Attach dedicated volumes or data sets for databases, model caches, and vector stores, with ownership and access controls documented.
  • Back up application state: A snapshot of a running database is not automatically a consistent backup. Coordinate database-aware dumps or quiescence with the platform’s snapshot process.
  • Test restoration: Restore a model, vector index, secret, and evaluation trace onto a clean instance. A backup that has never been restored is only an assumption.
  • Protect the storage plane: Keep management interfaces and storage protocols off the same unrestricted network used by experimental agent tools.

TrueNAS deserves special caution because its documentation warns that production storage on virtual disks is unsupported and may corrupt data. Give the storage controller or physical disks direct ownership when TrueNAS is responsible for production data.

Isolation, networking, and untrusted tools

Agent frameworks often execute code, browse websites, call APIs, or manipulate files. Treat tool execution as a separate trust zone even when the agent itself is written by your team.

  • Run high-risk tools in a VM with its own kernel rather than placing them beside databases in the host’s container namespace.
  • Use containers for trusted, tightly scoped services where their lower overhead improves density.
  • Allow outbound network access only where an experiment needs it; block access to hypervisor management endpoints and storage networks.
  • Keep secrets outside base images and snapshots, and rotate credentials after experiments that may have exposed them.
  • Record tool calls, shell commands, model responses, and resource usage so failures can be reproduced and investigated.

This mixed model is possible on Incus and Proxmox directly. XCP-ng supplies the VM boundary and expects guest-level tooling for containers. TrueNAS can host VMs and containers but should not let convenience virtualization compromise the storage appliance. OpenNebula adds policy and tenancy controls when several teams share the environment.

Rank #4
ARDIYES GT 740 4GB GDDR5 Low Profile GPU Graphics Card, 4X HDMI Ports for Quad Multi-Monitor Setup, PCI Express 3.0 x16, Silent Cooling, Ideal for Office and Home Theater
  • Robust 4GB Memory & Quad Display Ready: Equipped with 4GB of fast GDDR5 memory to smoothly handle daily graphics tasks. Features four built-in HDMI ports, enabling a seamless quad-monitor setup directly out of the box—perfect for multi-tasking offices, digital signage, or trading desks.
  • Plug-and-Play Installation & Wide Compatibility: Utilizes a standard PCI Express interface for broad compatibility with most desktop PCs. Offers straightforward plug-and-play installation and stable driver support for modern Windows and Linux operating systems, ensuring a hassle-free setup.
  • Quiet, Cool & Compact Design: Engineered with a silent fan and efficient cooling system for near-silent operation, making it ideal for noise-sensitive environments. Its low-profile design fits easily into small form factor cases, with both half-height and full-height brackets included for flexible installation.
  • Enhanced Multimedia & Everyday Performance: Delivers smooth 1080P video playback and supports hardware-accelerated decoding, offering an excellent experience for home theater PCs (HTPC). Provides capable performance for everyday applications, multimedia tasks.
  • Complete Package & Reliable Support: Includes the graphics card, both low-profile and standard brackets, a quick start guide, and screwdriver, which make it simple and quick setup process.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Automation and lifecycle workflow

Choose a platform whose lifecycle matches the way your team works. A useful AI-lab workflow has five stages:

  1. Publish a known image. Pin the Linux distribution, runtime, drivers, and agent dependencies.
  2. Create an isolated instance. Attach only the networks and data volumes required for the test.
  3. Inject configuration and secrets. Keep credentials out of the image and source control.
  4. Run and observe. Capture logs, traces, model metrics, and tool activity outside the instance.
  5. Destroy or promote. Remove disposable instances after evaluation; promote only the image and data definitions that passed review.

Incus’s REST API is a direct fit for this sequence. Proxmox provides an integrated web and cluster management experience. XCP-ng relies on its Xen Orchestra management layer. OpenNebula is strongest when this lifecycle must span hosts, projects, and cloud-style services. TrueNAS can support the workflow, but its center of gravity remains data management.

Cluster, migration, and recovery considerations

A single host can run a capable AI lab, but a second host changes the design. You need a way to place workloads, move them during maintenance, and recover after a host failure.

  • Incus: Its documentation describes scaling from one machine to a cluster. Plan instance placement, shared or replicated storage, and API access before adding nodes.
  • Proxmox: Clustering, high availability, software-defined storage and networking, and disaster-recovery tooling are part of its integrated feature set.
  • XCP-ng: Central management through Xen Orchestra provides the operational control plane for its Xen hosts and guests.
  • OpenNebula: Its private-cloud orientation is appropriate when scheduling, federation, and tenant boundaries are first-class requirements.
  • TrueNAS: Treat the storage appliance’s own recovery design as primary; do not assume that adding VM hosts automatically protects the underlying data.

GPU workloads complicate migration. A VM using an exclusive physical GPU may need to stop before moving, and a partitioned device may only be available on hosts with compatible hardware. Document these constraints in the recovery runbook instead of promising transparent live migration.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A practical selection process

Choose Incus if…

Your lab is developer-led, mostly Linux, and needs both containers and VMs with an API-first workflow. Incus offers the broadest documented GPU attachment choices among the alternatives in this comparison.

Choose TrueNAS if…

Your first requirement is a dependable NAS and data-management platform, and virtualization is a supporting capability. Keep production disks or the storage controller under direct physical ownership.

Choose XCP-ng if…

You want a bare-metal Xen appliance managed through Xen Orchestra and your GPU plan is whole-device passthrough. Reconsider it if NVIDIA vGPU is a hard requirement.

Best Value
GPU Support Bracket Graphics Card Brace Anti-Sag Holder Height Adjustable Video Card Stand White Large
  • ✅ Package Includes: 1 PCS White large GPU Support Bracket, securely packed in an ESD bag for long-term storage.
  • ✅Prevents GPU Sag and Damage – Provides strong support to prevent graphics card sagging, protecting your GPU and motherboard from long-term damage due to weight.
  • ✅Durable All-Aluminum Build – Made from high-quality aluminum alloy, ensuring superior strength, durability, and resistance to wear compared to plastic alternatives.
  • ✅Height Adjustable for Universal Fit – Easily adjustable to accommodate different GPU sizes and case configurations, making it compatible with most ATX, M-ATX, and ITX cases.
  • ✅Stable and Easy to Install – Features a secure base for stability, offering a simple tool-free setup to keep your graphics card supported without hassle.

Choose OpenNebula if…

You are operating multiple hosts, tenants, sites, or Kubernetes-oriented services and need a private-cloud control plane. It is usually excessive for one developer workstation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Stay with Proxmox if…

You value one interface for KVM and LXC, integrated clustering and high availability, and a defined subscription support model. Include the per-socket subscription in your budget and compare it with the engineering effort of assembling equivalent services elsewhere.

Common failure modes and how to avoid them

The guest sees no GPU

Check firmware IOMMU settings, device isolation, host binding, guest drivers, and whether the selected passthrough mode is supported by the card. A successful host boot does not prove that the guest can initialize the device.

Several agents contend for one card

Decide whether the workload truly needs simultaneous access. If it does, use a documented partitioning mode such as mdev, MIG, or SR-IOV where supported; otherwise schedule jobs and keep exclusive passthrough.

Storage disappears when an instance is rebuilt

Separate persistent volumes or data sets from the instance root, document mount points and permissions, and perform a clean restore test before relying on snapshots.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A “container” is not isolated enough

Move kernel-sensitive or untrusted workloads into VMs. Containers share the host kernel by design, while VMs provide the stronger isolation boundary described in TrueNAS documentation.

The platform becomes harder to operate than the lab

Revisit scope. A single host rarely needs a private-cloud control plane. Conversely, once several teams and hosts need quotas, federation, and self-service, a platform designed for those functions can reduce ad-hoc automation.

Bottom line

For most self-hosted AI-agent development environments, start with Incus: it gives developers native containers and VMs, a REST API, and multiple GPU attachment models without forcing a full private-cloud architecture. Put storage-first requirements on TrueNAS, whole-GPU Xen virtualization on XCP-ng, and multi-host or multi-tenant cloud operations on OpenNebula. Keep Proxmox in the shortlist when its integrated KVM/LXC platform, clustering, recovery features, and per-socket support subscriptions are worth the package. Whichever platform you select, validate IOMMU, drivers, GPU allocation, persistent storage, isolation, and restore procedures on the exact hardware before building your agent workloads around it.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

AI agentsGPU passthroughIncusOpenNebulaProxmox alternativesself-hosted AITrueNASVirtualizationXCP-ng

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.