## 1. Project Overview & Quickstart (canonical/snap) # snap Open-source repository canonical/snap ### Repository Details - **Repository:** [canonical/snap](https://github.com/canonical/snap) - **Primary Language:** Code *Note: High-volume repository documentation is actively indexed and synchronized by YakaAI.* ## 2. Official Technical Reference & Guides (canonical/snap-docs) ## File: README.rst Snap documentation ========================= This repository contains the source files to build the Snap documentation available at https://snapcraft.io/docs/. The documentation is written in Markdown, built with `Sphinx `_, and published via `ReadtheDocs `_. This documentation was previously hosted and published in the `Snapcraft forum `_, and was migrated in early 2026. Build the documentation ----------------------- Install prerequisite software ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To install the prerequisites: .. code-block:: none make install This will create a virtual environment (``.sphinx/venv``) and install dependency software (``.sphinx/requirements.txt``) within it. View the documentation ~~~~~~~~~~~~~~~~~~~~~~ To view the documentation: .. code-block:: none make run This will do several things: * activate the virtual environment * build the documentation * serve the documentation on **127.0.0.1:8000** * rebuild the documentation each time a file is saved * send a reload page signal to the browser when the documentation is rebuilt The ``run`` target is therefore very convenient when preparing to submit a change to the documentation. .. LINKS .. _`Documentation starter pack`: https://github.com/canonical/sphinx-docs-starter-pack/tree/main --- ## File: docs/index.md --- myst: html_meta: google-site-verification: "ptZ-UgCb6UjBHQ60paTDvhjC36oELGPKMvOxpEJJv4g" --- (ref-index_snap-documentation)= # Snap documentation **Snaps** are self-contained application packages that work across different Linux distributions on many different platforms, from embedded devices and desktops, to servers and the cloud. The snap daemon, *snapd*, handles installation, confinement, and updates, allowing developers to focus on their applications while users get a consistent experience across platforms. Snap packages and snapd solve the problem of inconsistent application packaging and deployment by providing a unified system that works the same way regardless of the underlying Linux distribution or hardware. Snaps are useful for application developers seeking a universal packaging solution, system administrators managing diverse Linux environments, IoT and embedded device makers, and organizations where security and consistent deployments are priorities. For guidance on building snaps, see the [Snapcraft build-tool documentation](https://documentation.ubuntu.com/snapcraft/stable/). ## In this documentation ### First steps Get snap running and take a tour of its core features before diving deeper. * **Install snapd**: {ref}`Install the snap daemon ` • {ref}`Distribution support ` * **Explore snap**: {ref}`Get started ` with snap's main features on a single page ### Managing snaps Install, configure, and maintain snaps day-to-day. Control updates, interfaces, services, and data. * **Configuration**: {ref}`Configure snaps ` • {ref}`Apps and aliases ` • {ref}`Set system options ` • {ref}`Configure snaps with confdb ` * **Updates**: {ref}`Manage updates ` • {ref}`Manage validation sets ` * **Services and resources**: {ref}`Control services ` • {ref}`Use quota resources ` • {ref}`Create data snapshots ` • {ref}`Disk space awareness ` • {ref}`Data locations ` • {ref}`Work with components ` * **Troubleshooting**: {ref}`Fix common issues ` ### Security and confinement Understand how snaps use Linux security technologies to isolate applications and protect your system. * **Confinement**: {ref}`Snap confinement ` • {ref}`Classic confinement ` • {ref}`Security policies ` * **Interfaces**: {ref}`All about interfaces ` • {ref}`Interface auto-connection ` • {ref}`Interface hooks ` • {ref}`Super-privileged interfaces ` • {ref}`Connect interfaces ` • {ref}`Interface reference ` * **Verification**: {ref}`Assertions ` • {ref}`Snapd release process ` ### Snap development For guidance on building snaps, see the [Snapcraft build-tool documentation](https://documentation.ubuntu.com/snapcraft/stable/). Extend snap functionality using the REST API, internal tooling, and in-development features. * **APIs and tools**: {ref}`REST API ` • {ref}`Use snapctl ` • {ref}`Environment variables ` • {ref}`Supported snap hooks ` • {ref}`API authentication and authorization ` * **Publishing**: {ref}`Public, private and unlisted snaps ` * **Desktop integration**: {ref}`XDG desktop portals ` * **Testing**: {ref}`Using snap try ` • {ref}`Install modes ` • {ref}`Debug snaps ` • {ref}`Test snapd fixes ` • {ref}`In-development features ` * **YAML schemas**: {ref}`The snap.yaml ` • {ref}`Gadget snap ` • {ref}`Kernel snap ` ### System internals Understand how the snap system works: updates, channels, confinement, storage, and performance. * **Updates and versions**: {ref}`Refresh awareness ` • {ref}`Channels and tracks ` • {ref}`Revisions ` • {ref}`Transactional updates ` • {ref}`Snap deltas ` * **Components and configuration**: {ref}`Snap components ` • {ref}`Confdb configuration mechanism ` • {ref}`Parallel installs ` • {ref}`Network requirements ` • {ref}`Timer string format ` * **Performance**: {ref}`Snap performance ` • {ref}`System architecture ` ## How this documentation is organised This documentation uses the [Diátaxis documentation structure](https://diataxis.fr/). * {ref}`Tutorials ` take you step-by-step through building and deploying your first Ubuntu Core image. * {ref}`How-to guides ` provide instructions for specific tasks like customizing snaps, deploying to platforms, and managing devices. * {ref}`Reference ` provides technical specifications, formats, and details you need while working. * {ref}`Explanation ` provides conceptual context about architecture, security, storage, and update mechanisms. ## Project and community Snap and Snapcraft are members of the Ubuntu family. They're both open source projects that welcome community involvement, contributions, suggestions, fixes and constructive feedback. * [Our Code of Conduct](https://ubuntu.com/community/code-of-conduct) * [Get support](https://forum.snapcraft.io/c/snap/14) * [Join the Discourse forum](https://forum.snapcraft.io/) * [Interactive chat on Matrix.org](https://matrix.to/#/#snapd:ubuntu.com) * {ref}`Contribute to our documentation ` * [Project roadmap](https://forum.snapcraft.io/t/the-snapd-roadmap/1973) Thinking about using snap for your next project? [Get in touch!](https://forum.snapcraft.io/) ```{toctree} :hidden: :titlesonly: :maxdepth: 2 :glob: Tutorials How-to guides Reference Explanation ``` ```{toctree} :hidden: :maxdepth: 2 Contributing ```