fkromer / awesome-ubuntu-core

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

License:Other