Skip to content

Latest commit

 

History

64 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MistServer Image Factory

Infrastructure-as-code repository for building MistServer reference images. It combines mkosi for cloud-ready disk images and Debian live-build for ISO/USB media, plus shared configuration, validation scripts, and marketplace onboarding docs.

Supported distributions: Debian 12 (bookworm), Ubuntu 22.04 LTS (jammy), Ubuntu 24.04 LTS (noble)

Target cloud providers: AWS, DigitalOcean, GCP, Hetzner, Linode, Vultr

Default Credentials

Image Type User Authentication
Cloud (AWS, DO, etc.) mist SSH key (injected by cloud provider)
Live ISO mist Auto-login on console, no password
Installed from ISO mist Set password during install

First Steps After Login

  1. Set a password: sudo passwd mist
  2. Or configure SSH key access: ssh-copy-id mist@<ip>
  3. Access MistServer web UI at http://<ip>:4242

Repository Layout

mkosi/           mkosi manifests, overlays, and profiles for raw/qcow2/vhd outputs
live-build/      Debian/Ubuntu live-build configs for installer/ISO artifacts
common/          Shared first-boot scripts, configs, and assets for all images
docs/            Guides for provisioning, building, testing, releasing, and marketplace
scripts/         Build, convert, validate, and import scripts
artifacts/       Local build outputs (gitignored)

Quick Start

# 1. Prepare host (see docs/1-provisioning.md for full setup)
# 2. Sync shared assets
./scripts/build.sh --all

# 3. Build an image (mkosi)
./scripts/build.sh --execute --distro debian-bookworm --mkosi-only

# 4. Convert for cloud provider
./scripts/convert-image.sh artifacts/mistserver-*.raw --provider do

# 5. Import to provider
./scripts/import-digitalocean.sh --url https://bucket.nyc3.digitaloceanspaces.com/image.qcow2.gz

# 6. Validate deployed instance
./scripts/mist-validate.sh <instance-ip>

Local Testing

Test images locally with QEMU before deploying to cloud:

# Boot test only (verifies image boots and SSH works)
./scripts/test-boot-qemu.sh artifacts/mistserver-debian-bookworm-*.raw

# Full validation (runs 10-point test suite)
./scripts/test-boot-qemu.sh artifacts/mistserver-debian-bookworm-*.raw --validate

If your SSH key has a passphrase, start ssh-agent first:

eval $(ssh-agent) && ssh-add
./scripts/test-boot-qemu.sh artifacts/mistserver-debian-bookworm-*.raw --validate

Scripts

Script Purpose
build.sh Sync assets and execute mkosi/live-build
convert-image.sh Convert raw images to provider-specific formats
generate-manifest.sh Create SHA256 checksums and build metadata
mist-validate.sh SSH-based smoke tests for deployed instances
test-boot-qemu.sh Local QEMU boot testing (uses cloud-init for SSH key injection)
import-aws.sh Import AMI to AWS
import-digitalocean.sh Import custom image to DigitalOcean
import-gcp.sh Import Compute image to GCP
import-hetzner.sh Create Hetzner snapshot
import-linode.sh Upload image to Linode
import-vultr.sh Create Vultr snapshot

Documentation

Doc Description
1-provisioning.md Build host setup (Arch + Debian nspawn)
2-building.md Build cloud images and live ISOs
3-testing.md Local QEMU validation
4-deploying.md Convert images, configure credentials, import to providers
5-releasing.md Marketplace submission and git releases
marketplace/ Provider-specific marketplace guides

License

See individual component licenses. MistServer has its own license terms.

About

MistServer appliance factory: mkosi + live-build configs, first-boot tuning scripts, and marketplace metadata for producing MistServer cloud and ISO images.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages