Ubuntu Core documentation

Ubuntu Core is a version of the Ubuntu operating system designed and engineered for deploying IoT and embedded systems.

In Ubuntu Core, every element of the system runs within a confined sandbox using Snap packages, which used exclusively to create a transaction-based system. Security and robustness are the key features, alongside being easy to install, easy to maintain, and easy to upgrade.

Ubuntu Core is ideal for embedded devices because it manages itself. Whether it’s running on a PC-style system hidden for media streaming, or an embedded ARM device handling garage door automation, Ubuntu Core remains transparent, trustworthy and autonomous.

From Linux and maker space tinkerers, to the robotics, automotive and signage industries; from a single device, to a deployment of thousands: Ubuntu Core can handle it.

In this documentation

Get started - a hands-on introduction to Ubuntu Core for new users
How-to guides
Step-by-step guides covering key operations and common tasks
Technical information - specifications, APIs, architecture
Concepts - discussion and clarification of key topics

Project and community

Ubuntu Core is a member of the Ubuntu family. It’s an open source project that welcomes community projects, contributions, suggestions, fixes and constructive feedback.

Thinking about using Ubuntu Core for your next project? Get in touch!


Level Path Navlink
0 docs Ubuntu Core documentation
0 uc24 New: Ubuntu Core 24
0 tutorials Tutorials
1 get-started Get started
2 build-an-image Build your first image
3 create-ubuntu-one Access Ubuntu One
3 create-model-assertion Create a model
3 sign-model-assertion Sign the model
3 build-write-image Build the image
3 boot-an-image Boot the image
2 try-pre-built-images Try pre-built images
3 install-on-a-vm Install on a VM
3 install-on-a-device Install on a device
4 install-with-imager Use Raspberry Pi imager
4 install-with-dd Use the dd command
0 how-to How-to guides
1 first-steps Using Ubuntu Core
1 image-building Image creation
2 use-ubuntu-image Use ubuntu-image
2 custom-images Add custom snaps
2 splash-screen Add a splash screen
2 console-conf Add console-conf
2 preseeding Optimise boot speed
2 partition-sizes Calculate partition sizes
2 gadget-building Build a gadget snap
2 kernel-building Build a kernel snap
2 board-enablement Board enablement
1 managing Manage Ubuntu Core
2 connect-with-ssh Use Ubuntu One SSH
2 testing-with-qemu Test on QEMU
2 upgrade Upgrade Ubuntu Core
2 configure Set system options
2 use-recovery-mode Use a recovery mode
2 system-user Add a system user
2 modify-kernel-options Modify kernel options
2 recovery-system-api Create a recovery system from the API
2 system-time Set system time
2 troubleshooting Troubleshooting
1 containers Container deployment
2 docker-run Run a Docker container
2 docker-deploy Deploy Docker from a snap
0 reference Reference
1 system-requirements System requirements
1 supported-platforms Testing platforms
1 gadget-snaps Gadget snap format
1 reference/assertions Assertions
2 reference/assertions/account account
2 reference/assertions/account-key account-key
2 reference/assertions/model model
2 reference/assertions/repair repair
2 reference/assertions/serial serial
2 reference/assertions/snap-build snap-build
2 reference/assertions/snap-declaration snap-declaration
2 reference/assertions/snap-revision snap-revision
2 reference/assertions/system-user system-user
2 reference/assertions/store store
2 reference/assertions/validation validation
2 reference/assertions/validation-set validation-set
0 explanation Explanation
1 community Community engagement
1 remodelling Remodelling
1 refresh-control Refresh control
1 recovery-modes Recovery modes
1 kernel-boot-parameters Kernel boot parameters
1 full-disk-encryption Full disk encryption
1 security-and-sandboxing Security and sandboxing
1 installation-process Installation process
1 components Core components
2 snaps-in-ubuntu-core Snaps in Ubuntu Core
2 storage-layout Storage layout
1 Stores
2 brand-accounts Brand accounts
2 dedicated-snap-stores Dedicated Snap Stores
2 store-scoping Store scoping
2 store-overview Store overview
1 System snaps
2 bluez Bluetooth management
2 networkmanager Network Manager
3 networkmanager/install Install NetworkManager
3 How-to guides
4 networkmanager/exploring-network-status Explore Network Status
4 networkmanager/configure-wifi-connections Configure WiFi Connections
4 networkmanager/configure-wifi-access-points Configure WiFi Access Points
4 networkmanager/configure-cellular-connections Configure Cellular Connections
4 networkmanager/configure-shared-connections Configure shared connections
4 networkmanager/configure-vpn Configure VPN connections
4 networkmanager/networkmanager-and-netplan NetworkManager and netplan
4 networkmanager/edit-connections Edit Connections
4 networkmanager/logging-messages Message logging
3 Reference
4 networkmanager/routing-tables Routing Tables
4 Snap Configuration
5 networkmanager/snap-configuration/default-renderer Default renderer
5 networkmanager/snap-configuration/debug Debug
5 networkmanager/snap-configuration/connectivity-check Connectivity check
5 networkmanager/snap-configuration/wake-on-wlan Wake on WLAN
5 networkmanager/snap-configuration/wifi-powersave WIFi Powersave
5 networkmanager/networkmanager-available-commands Available Commands
5 networkmanager/networkmanager-dbus-api DBUS API
4 networkmanager/release-notes Release Notes
4 networkmanager/report-a-bug Report a Bug
0 reference/docs-guidelines Contribute to our docs
0 External links
1 snapcraft.io/docs
test-on-hardware Test Ubuntu Core on hardware
test-topic test-topic
uc20/install-raspberry-pi Raspberry Pi
uc20/install-nuc Intel NUC
uc22 Ubuntu Core 22


Mapping table
Path Location
/core/docs/install-nuc /core/docs/install-with-dd
/core/docs/install-on-a-raspberry-pi /core/docs/install-with-imager
/core/docs/using-ubuntu-image /core/docs/use-ubuntu-image
/core/docs/using-ubuntu-core /core/docs/first-steps
/core/docs/getting-started /core/docs/get-started
/core/docs/install /core/docs/try-pre-built-images
/core/docs/install-raspberry-pi /core/docs/install-on-a-raspberry-pi
/core/docs/ubuntu-core-configuration System options | Snapcraft documentation
/core/docs/uc20/system-time /core/docs/system-time
/core/docs/uc20/installation-process /core/docs/installation-process
/core/docs/uc20/full-disk-encryption /core/docs/full-disk-encryption
/core/docs/uc20/remodelling /core/docs/remodelling
/core/docs/uc20/inside /core/docs/components
/core/uc22/upgrade-to-uc22 /core/docs/upgrade
/core/docs/kernel-options /core/docs/modify-kernel-options
/core/docs/brand-stores /core/docs/dedicated-snap-stores
/core/docs/quick-start /core/docs/build-an-image
/core/docs/about-network-manager /core/docs/networkmanager
/core/docs/uc20/storage-layout /core/docs/storage-layout
/core/docs/bluetooth-management /core/docs/bluez
/core/docs/network-management-services /core/docs/networkmanager
/core/docs/build-store /core/docs/store-overview
/core/docs/validations-and-refresh-control /core/docs/refresh-control
/core/docs/reference/interfaces https://snapcraft.io/docs/supported-interfaces
/core/docs/guides/intro/get-started /core/docs/getting-started
/core/docs/guides/build-device/board-enablement /core/docs/board-enablement
/core/docs/guides/manage-devices/ /core/docs/system-user
/core/docs/stacks/network/network-manager/docs /core/docs/networkmanager
/core/docs/stacks/bluetooth/bluez/docs /core/docs/bluez
/core/docs/guides/go-to-production/simple /core/docs/production/simple
/core/docs/guides/go-to-production/advanced /core/docs/production/advanced
/core/docs/guides/go-to-production/intro /core/docs/production/intro
/core/docs/guides/manage-devices /core/docs/system-user
/core/docs/image/custom-images /core/docs/custom-images
/core/docs/build-store/refresh-control /core/docs/refresh-control
/core/docs/reference/gadget /core/docs/gadget-snap
/core/docs/guides/intro/security /core/docs/security-and-sandboxing
/core/docs/releases/uc20 /core/docs/uc20/release-notes
/core/docs/uc20 Ubuntu Core 20
/core/docs/uc20/installing Installing Ubuntu Core on a Raspberry Pi
/core/docs/uc20/release-notes Ubuntu Core 20 release notes
/core/docs/network-manager-release-notes Network Manager release notes
/core/docs/networkmanager Network Manager
/core/docs/uc20 Ubuntu Core 20
/core/docs/ubuntu-core-20 https://discourse.ubuntu.com/t/ubuntu-core-20/20421
/core/docs/stores-and-developer-accounts Stores and developer accounts
/core/docs/system-user System user
/core/docs/audio-management/access-from-other-snaps https://discourse.ubuntu.com/t/access-from-other-snaps/19900
/core/docs/audio-management Audio management
/core/docs/network-services Network management & services
/core/docs/production/intro Introduction to production
/core/docs/production/simple Simple production model - Ubuntu store
/core/docs/production/advance Advanced production model
/core/docs/reference/assertions/serial Serial assertion
/core/docs/reference/assertions/snap-declaration Snap-declaration assertion
/core/docs/reference/assertions/validation Validation assertion
/core/docs/reference/gadget-snap-forma https://discourse.ubuntu.com/t/gadget-snap-format/19753
/core/docs/reference/automatic-refreshe Automatic refreshes
/core/docs/reference/core-configuration Ubuntu Core configuration options
/core/docs/reference/core-interfaces Core interfaces reference
/core/docs/modem-manager Install Modem Manager

The list of assertions on this page seems incomplete.

Why not list Intel NUC among supported platforms? That would seem to be a better example than Dragonboard, which I believe is supported only under UC18 (if I am not mistaken).

I might drop the reference to DragonBoard (unsupported since UC18), and add reference to Intel NUC.

1 Like

The entry for “Assertions” under “Reference” should be an anchor so one can link to it as a catch-all link for all assertions.

Thanks for the suggestion. I’ve just done this:

1 Like

“Ubuntu Core is a version of the Ubuntu operating system designed and engineered for IoT and embedded systems.”

With the imminence of Ubuntu Core Desktop, you might need to expand this definition beyond IoT and embedded systems. https://github.com/canonical/ubuntu-core-desktop

Intel NUC now taken over by ASUS. https://www.intel.com/content/www/us/en/newsroom/news/intel-nuc-systems-agreement.html#gs.61bymc