update-server

module
v0.9.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 23, 2026 License: BSD-3-Clause-Clear

README

Foundries Update Server

The update server is an open source system for managing Foundries.io update agents. There are two primary use cases for this project:

  • Offline (air-gapped) environments where devices can't reach the Foundries.io backend
  • Users who want to manage their own device management solution

This project handles both use cases by implementing all the APIs used by Foundries.io update agents. The project also includes a user-facing REST API and Web UI for managing devices and updates.

Features

  • mTLS "device gateway" that supports Foundries.io update agents aktualizr-lite and fioup
  • Device registration API compatible with fio-device-register and fioup.
  • Configuration management and remote actions compatible with fioconfig
  • Updates managed and signed using The Update Framework (TUF)
  • Pluggable authentication framework supporting:
    • Github SSO
    • Google SSO
    • Locally managed users
  • REST API
  • Web UI and command line tooling

The whole project runs in a single Golang process and uses SQLite to ensure admininstration and operation of the service is as easy as possible while still scaling to the needs of non-hyperscalers.

Quick start

Follow the Quick Start guide to get a server running in development mode.

The server runs a complete web interface as well as command line tool, fiocli.

Migrating from FoundriesFactory

If you have an existing Factory with provisioned devices, the migration guide covers signing with your Factory PKI, importing your fleet's TUF root, and repointing devices at this server.

Adding updates

The update server uses a content format compatible with Offline Updates to serve devices their TUF, OSTree, and Container data. Before uploading, see How to build an Update for producing that content in the first place. Then follow the updates guide for setting this up.

The Update Framework (TUF)

The update server uses TUF to secure the delivery of update manifests. See How TUF Works for details.

API access

Follow the API to learn how to access and use the REST API.

Configuring authentication options

Follow the configuring authentication guide for chosing the method that meets your requirements.

Branding and white-labeling

Follow the branding guide to replace the server's default look with your own logo, favicon, and color scheme — no rebuild required.

Running in production

The production guide covers considerations when deploying the update server for production use.

Advanced topics

The advanced topics guide covers custom listen addresses, certificate lifetimes, and manual device registration.

Developing

The project is a single Golang binary that can be built with:

 go build -o fioserver github.com/foundriesio/update-server/cmd/server

A "devshell" is also included that can be used for local development:

 ./contrib/dev-shell

NOTE: This repository uses Git-LFS. You'll need this installed to use the web UI.

License

update-server is under the BSD 3-Clause Clear license.

Directories

Path Synopsis
cli
api
cmd
cli command
seed command
server command
contrib
perf-test/gen-certs command
gen-certs generates a CA, a server TLS cert, and N device leaf certs for the fioserver perf test.
gen-certs generates a CA, a server TLS cert, and N device leaf certs for the fioserver perf test.
ui
ui/pagectx
Package pagectx holds the shared "base" page context types used to render HTML pages that extend base.html.
Package pagectx holds the shared "base" page context types used to render HTML pages that extend base.html.
api
tuf

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL