Ubuntu Core documentation

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

Ubuntu Core updates itself and its applications automatically. Snap packages are used exclusively to create a confined and transaction-based system. Security and robustness are its 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 an Intel NUC hidden for media streaming, or a Raspberry Pi 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 tutorials Tutorials
1 getting-started Get started
2 build-an-image Build an image
3 create-ubuntu-one Access Ubuntu One
3 create-model-assertion Create a model
3 sign-model-assertion Sign the assertion
3 build-write-image Build the image
3 boot-an-image Boot the image
2 testing-with-multipass Try with a VM
0 how-to How-to guides
1 install Install Ubuntu Core
2 install-raspberry-pi Raspberry Pi
2 install-nuc NUC and PCs
2 using-ubuntu-core First steps with Core
1 image-building Image creation
2 custom-images Add custom snaps
2 splash-screen Add a splash screen
2 preseeding Pre-seed an image
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 system-time Set system time
2 troubleshooting Troubleshooting
0 reference Reference
1 system-requirements System requirements
1 supported-platforms Testing platforms
1 ubuntu-core-configuration Configuration options
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 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
test-topic test-topic
using-ubuntu-image Using ubuntu-image
uc20/install-raspberry-pi Raspberry Pi
uc20/install-nuc Intel NUC
uc22 Ubuntu Core 22


Mapping table
Path Location
/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
/uc20/remodelling /core/docs/remodelling
/core/docs/uc20/inside /core/docs/components
/tutorials/how-to-ubuntu-core-recovery-mode /core/docs/use-recovery-mode
/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 Supported interfaces | Snapcraft documentation
/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 20 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