Skip to content
This repository has been archived by the owner on Aug 18, 2023. It is now read-only.

fkromer/awesome-ubuntu-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

awesome-ubuntu-core

Awesome Ubuntu Core

Build secure IoT devices with Ubuntu Core.

Everything you love about Ubuntu, locked down for security. Helping you make safer things – because we’re all connected.

Officail Prebuilt Boards and Images

Packaging

Testing

Development Environment

5G tracer

  • oai-tracer - OpenAirInterface RAN tracer and visualizer.

Build server

  • fabrica - Build snaps by simply pointing a web form to a git tree.

Containerization

  • distrobuilder - Image builder for LXC and LXD.
  • kubectl - Command line client for controlling a Kubernetes cluster.

Databases

  • Beekeeper Studio - An open source SQL editor and database management app.
  • DataGrip - IntelliJ-based IDE for databases and SQL.

Drivers

  • hw-probe - Check operability of computer hardware and find drivers.

GraphQL

Snaps for development of GraphQL-based communication. For other tools refer to e.g. awesome-graphql#tools.

gRPC

Snaps for development of gRPC-based communication. For other tools refer to e.g. awesome-grpc#tools.

JSON

  • fx - Command-line tool and terminal JSON viewer.

Key value stores

Machine learning

Snaps for development of machine learning models. For other tools refer to e.g. awesome-machine-learning or awesome-production-machine-learning.

  • Netron - Visualizer for neural network, deep learning and machine learning models.

MQTT clients

Snaps for development of MQTT-based communication. For other tools refer to e.g. awesome-mqtt#tools.

ROS2

Monitoring

  • influxdb - Scalable datastore for metrics, events, and real-time analytics.
  • grafana - Metrics dashboard and graph editor.
  • prometheus - Monitoring system and time series database.

Virtualization

  • Multipass - Recommended method to create Ubuntu VMs on Ubuntu, Mac or Windows workstations.

Performance optimization

  • cpustat - periodic cpu utilization statistics.
  • fast - Test your internet download speed from terminal.
  • stress-ng - A tool to load, stress test and benchmark a computer system.

Prototyping

  • arduino - Write code and upload it to your Arduino-compatible board.
  • node-red - Low-code programming for event-driven applications.
  • LibrePBC - EDA software to develop printed circuit boards.

Runtime

  • snapcore/snapd - The snapd and snap tools enable systems to work with .snap files.

Security hardening

  • nmap - Utility for network discovery and security auditing.
  • ssh-audit - SSH server and client security configuration auditor.

Base Snaps

  • snapcore/core18 - This is a base snap for snapd that is based on Ubuntu 18.04.
  • snapcore/core20 - This is a base snap for snapd that is based on Ubuntu 20.04.
  • snapcore/bare-base - An empty base snap that contains nothing except the directories required as mount points.

Gadget snaps (board support)

Reference models

  • snapcore/models - Reference Models for customized, device specific Ubuntu Core image builds.

Util libraries

  • snapcore/snapd-glib - Library to allow GLib based applications access to snapd, the daemon that controls Snaps.
  • snapcore/snapcraft-preloads - Individual libraries that can be preloaded in snaps to ensure behavior is consistent with confinement rules.

Snaps (for production)

  • Application frameworks
    • Kura - Eclipse Kura™, An OSGi-based Application Framework for M2M Service Gateways.
  • Bluetooth
    • bluez - Official Linux Bluetooth protocol stack.
  • Cloud integration
    • AWS IoT Greengrass - Bring local compute, messaging, data caching, sync and ML inference capabilities to edge devices.
  • Containerization
    • docker - Docker container runtime.
    • kata-containers - Lightweight virtual machines that seamlessly plug into the containers ecosystem.
    • kubernetes-worker - A complete Kubernetes worker.
    • lxd - System container manager and API.
  • Deployment
  • Firewall
    • ufw - Uncomplicated Firewall.
  • Key value stores
    • etcd - Resilient key-value store by CoreOS.
  • Private Cloud
  • UI toolkits
    • mir-kiosk - A minimal Mir based shell for kiosk type applications.
    • Electron - Build cross-platform desktop apps with JavaScript, HTML, and CSS (needs to be integrated with mir-kiosk via XWayland and Snapd Wayland interface). Use any JavaScript/TypeScript frontend framework you like.
    • Qt - Create beautiful user interfaces (on Ubuntu Core).
  • Wayland compositors
    • SWAY - 3-compatible Wayland compositor.

Common snap dependencies

  • i3-wm - Improved dynamic tiling window manager.
  • libegl1-mesa - Free implementation of the EGL API -- runtime.
  • libgl1-mesa-glx - Free implementation of the OpenGL API -- GLX runtime.
  • xwayland - X Clients under Wayland.

Documentation

  • Ubuntu Core
    • Ubuntu Core vs. Ubuntu Server comparison table - More lightweight, faster and more secure by design.
    • Booting
      • secboot - Lightweight secure boot mechanism.
    • NetworkManager - System network service that manages your network devices and connections and attempts to keep network connectivity active when available.
      • networkd - System service that manages networks.
      • netplan - YAML network configuration abstraction for various backends (NetworkManager, networkd).
  • Snapcraft
    • Tools
      • snapctl - provide both specific environmental feedback and limited control from within the context of a snap’s execution environment to snapd (typically run from a script within a snap).
      • snapd REST API - Access to snapd’s state and many of its key functions.
    • Snapcraft.yaml reference - Single page reference for the snapcraft format.
    • hooks - A hook is an executable file that runs within a snap’s confined environment when a certain action occurs.
    • environment variables - consume, set, and pass-through specific environment variables to support building and running snaps.
    • Interfaces (not for Ubuntu Core only, for Ubuntu Desktop as well)
    • Plugins
      • Local plugin - Own plugins for adjusting build system support, adding build system support and/or custom stage-packages deb repos.
      • Plugins (Programming lanugages)
        • npm plugin- create parts that use Node.js and/or the JavaScript package manager, npm (core/20)
        • nodejs plugin - create parts that use Node.js and/or the JavaScript package manager, npm (core/18)
        • conda plugin - used for parts incorporating the Conda open source package manager system (core/18)
        • flutter plugin - easily build and deploy parts for the expressive Flutter UI toolkit (core/18)
        • python plugin - used for parts incorporating projects written with Python 2 or Python 3 (core/18, core20)
        • rust plugin - build parts from projects written in Rust and using Cargo for dependency management (core/18, core20)
      • Platforms (Platforms)
        • Linux kernel
          • kbuild plugin - build parts that use the Linux kernel build system (kBuild)
          • kernel plugin - derived from the kbuild plugin and used to build your own kernel
        • Robot Operating System:
          • colcon plugin - build colcon-based parts, typically used with version 2 of the Robot Operating System (ROS 2)
      • Platforms (Tools)
        • dump simply dumps the contents from the specified source
        • nil useful for parts with no source to import
        • plainbox-provider create parts containing a Plainbox test collection known as a provider
    • Security
      • AppArmor - AppArmor is a Mandatory Access Control (MAC) system which is a kernel (LSM) enhancement to confine programs to a limited set of resources.
      • cgroups - Control Groups provide a mechanism for aggregating/partitioning sets of tasks, and all their future children, into hierarchical groups with specialized behaviour.
      • seccomp
  • Snapstore

Whitepapers

Blog

Forums

Supported distributions

Snap builtin support

Compatible distribution build systems

IoT and Device Services

  • Canonical Ubuntu IoT and device services
    • START SMART: Canonical will validate your hardware, package your apps and prepare your device image (30,000 USD).
    • Full Disk Encryption: Enable full disk encryption with hardware key management and optional key escrow (30,000 USD).
    • Secure Boot: Enable secure boot, ensuring that the device will only run its certified workload (30,000 USD).
    • Device Enablement: If Canonical’s certified hardware list doesn’t include what you need, we may be willing to enable your preferred board (30,000 USD).
    • FIPS Certification: Meet Federal information processing requirements with a FIPS-certified kernel and cryptographic libraries (45,000 USD).
    • Kernel Livepatch: Reduce the number of reboots significantly by live patching your running kernel (60,000 USD).
    • High Availability Kubernetes: With Canonical MicroK8s you gain a fully CNCF conformant cloud-native Kubernetes for device application operations (15,000 USD).

Companies using Ubuntu Core

Books

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published