Ubuntu Core documentation

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 a Raspberry Pi hidden for media streaming, or a Qualcomm DragonBoard 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 warmly 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 tutorials Tutorials
1 getting-started Quick start
1 uc20/install Install Ubuntu Core 20
2 uc20/install-raspberry-pi Raspberry Pi
2 uc20/install-nuc Intel NUC
1 using-ubuntu-core First steps with Core
1 custom-images Create a custom image
0 how-to How-to guides
1 testing-with-qemu Test on QEMU
1 image-building Build an image
1 gadget-building Build a gadget snap
1 kernel-building Build a kernel snap
1 use-recovery-mode Use a recovery mode
1 system-user Add a system user
1 kernel-options Modify kernel boot options
1 reference/troubleshooting Troubleshooting
0 reference Reference
1 system-requirements System requirements
1 supported-platforms Supported platforms
1 ubuntu-core-configuration Ubuntu Core configuration
1 gadget-snaps Gadget snap format
1 Snapd REST API
1 reference/assertions assertions:
2 reference/assertions/account account
2 reference/assertions/account-key account-key
2 reference/assertions/model model
2 reference/assertions/serial serial
2 reference/assertions/snap-declaration snap-declaration
2 reference/assertions/snap-build snap-build
2 reference/assertions/snap-revision snap-revision
2 reference/assertions/store store
2 reference/assertions/system-user system-user
2 reference/assertions/validation validation
2 reference/assertions/validation-set validation-set
0 explanation Explanation
1 uc20/inside Inside Ubuntu Core 20
1 recovery-modes Recovery modes
1 snaps-in-ubuntu-core Snaps in Ubuntu Core
1 security-and-sandboxing Security and sandboxing
1 uc20/full-disk-encryption Full disk encryption
1 configuration-and-hooks Configuration and hooks
1 /uc20/storage-layout Storage layout
1 /uc20/installation-process Installation process
1 board-enablement Board enablement
1 reference/assertions Assertion definitions
1 store-overview Store overview
1 refresh-control Refresh control
1 networkmanager Network Manager
1 bluez Bluetooth management
1 reference/docs-guidelines Documentation guidelines
uc20 Ubuntu Core 20


Mapping table
Path Location
/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 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 - Brand store
/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
/core/docs/reference/core-interfaces Core interfaces reference
/core/docs/modem-manager Install Modem Manager