no similar
OrbitNova ยท LXD Virtualization

LXD Projects

Segment your LXD server into isolated workspaces โ€” each with its own instances, images, profiles, storage volumes and networks. Built for multi-team environments, enhanced security and clean resource governance.

Explore Projects โ†’
Unlimited
Projects per server
50 nodes
Max cluster size
1000s
Instances per cluster

What is an LXD Project?

A Project in LXD acts as a namespace โ€” a fully isolated workspace on your LXD server. Every resource you create (containers, VMs, images, profiles, storage volumes, networks) lives inside a project and is invisible to other projects by default. Think of it as having multiple independent LXD servers on a single machine.

๐Ÿ—‚๏ธ

Instances

Each project owns its own set of containers and virtual machines. Instances in project staging are completely separate from those in project production โ€” even if they share the same physical host. List, start, stop and delete without ever affecting another team's workloads.

Core
๐Ÿ–ผ๏ธ

Images

Projects can have their own private image store. You can publish a custom image inside a project and it remains scoped to that project. Alternatively, images from the global store are always accessible to any project without duplication.

Storage
โš™๏ธ

Profiles

Profiles define reusable configuration templates (CPU, memory, network interfaces, storage mounts). Each project maintains its own profile list โ€” so a default profile in project A can have completely different resource limits to the default profile in project B.

Config
๐Ÿ’พ

Storage Volumes

Custom storage volumes (block or filesystem) are project-scoped. Teams can create, snapshot and attach volumes without risk of naming conflicts or accidental access from another project on the same pool.

Storage
๐ŸŒ

Networks (optional)

Networks can optionally be scoped per project. When enabled, each project manages its own bridges, OVN networks and subnets โ€” giving you full network-level isolation between environments like dev, staging and production.

Networking

Why use Projects?

Projects solve three real-world problems: team isolation, environment separation and security segmentation.

01

Multi-team isolation

Give each team (frontend, backend, data) their own project. They operate independently โ€” no shared namespaces, no risk of accidentally deleting another team's instances.

02

Environment separation

Run dev, staging and production as separate projects on the same cluster. Each environment has its own resource limits, profiles and network config.

03

Fine-grained access control

LXD's access control integrates with Projects. Grant a user operator rights on one project while keeping them restricted from another โ€” all managed through a single LXD server.

04

Resource governance

Apply CPU, memory, storage and instance-count limits at the project level. Prevent one team's workloads from consuming the entire host's resources.

Project commands.

Everything you need to create, switch and manage LXD projects from the OrbitNova CLI.

Commands
$ orbitnova lxd project --help
Usage
orbitnova lxd project [command] [flags]

Commands
list List all projects on the server
create Create a new project
switch Switch the active project context
delete Delete an empty project
show Show full project configuration and resource usage
rename Rename an existing project

Flags
--features Comma-separated features to isolate: images, profiles, networks, storage.volumes
--json Output response as JSON
--quiet Suppress non-essential output

Up and running with Projects.

Create isolated environments for every team or stage โ€” in seconds. No extra configuration needed beyond a single CLI command.

dev staging production team-a team-b
~ orbitnova lxd project create staging
โœ“ Project "staging" created

~ orbitnova lxd project switch staging
โœ“ Switched to project "staging"

~ orbitnova lxd launch container --image ubuntu:24.04
# Launching inside "staging" project...
โœ“ Container ready in 0.9s

~ orbitnova lxd project list
NAME INSTANCES IMAGES STATUS
default 12 8 active
staging 1 0 active

~