Installation
This page describes installation and first run for the modern MOAS V2 server (moas-server-cli).
Download packages
Section titled “Download packages”Download release packages from the Releases page.
Current package formats:
| Platform | Packages |
|---|---|
| Windows | moas-win-*.zip |
| Linux | moas-linux-x64-*.tar.gzmoas-linux-arm64-*.tar.gzmoas-server_<version>_amd64.debmoas-server_<version>_arm64.debmoas-server-<version>-1.*.x86_64.rpmmoas-server-<version>-1.*.aarch64.rpm |
| FreeBSD | moas-freebsd-x64-*.tar.gzmoas-freebsd-arm64-*.tar.gzmoas-server-freebsd-x64-v<version>.pkgmoas-server-freebsd-arm64-v<version>.pkg |
| macOS | moas-macos-x64-*.tar.gzmoas-macos-arm64-*.tar.gz |
Configuration file
Section titled “Configuration file”Each package includes sample-config.moas.
For real hardware, edit this file for your station before running.
For a safe first test, run with --sim.
Windows
Section titled “ Windows”- Download
moas-win-x64-...zip(orwin-x86if needed). - Extract it to a folder, for example
C:\MOAS. - Open PowerShell in that folder.
- Run:
.\moas-server-cli.exe --version.\moas-server-cli.exe run .\sample-config.moas info --simTo validate a config without starting the server:
.\moas-server-cli.exe validate .\sample-config.moas infoLinux (x64 / ARM64)
Section titled “ Linux (x64 / ARM64)”- Download the matching archive for your CPU.
- Extract and enter the folder.
- Make the binary executable.
- Run:
tar -xzf moas-linux-*.tar.gzcd moas-linux-*chmod +x ./moas-server-cli./moas-server-cli --version./moas-server-cli run ./sample-config.moas info --simTo validate only:
./moas-server-cli validate ./sample-config.moas infoLinux package manager installs
Section titled “Linux package manager installs”You can also install the native Linux package directly.
Debian / Ubuntu (.deb)
Section titled “Debian / Ubuntu (.deb)”- Download the package matching your CPU:
- x64:
moas-server_<version>_amd64.deb - ARM64:
moas-server_<version>_arm64.deb
- x64:
- Install the package:
sudo apt install ./moas-server_<version>_<arch>.deb- Verify and run:
moas-server-cli --versionmoas-server-cli run /usr/share/moas-server/examples/sample-config.moas info --simLinux repository installs
Section titled “Linux repository installs”MOAS also publishes static package repositories on the docs site.
- APT base URL:
https://moas.m1dst.co.uk/server/repos/apt - RPM base URL:
https://moas.m1dst.co.uk/server/repos/rpm - Public key:
https://moas.m1dst.co.uk/server/repos/KEY.gpg
Debian / Ubuntu repository
Section titled “Debian / Ubuntu repository”Use the repository key and signed-by:
curl -fsSL https://moas.m1dst.co.uk/server/repos/KEY.gpg | \ sudo gpg --dearmor -o /usr/share/keyrings/moas-archive-keyring.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/moas-archive-keyring.gpg] https://moas.m1dst.co.uk/server/repos/apt stable main" | \ sudo tee /etc/apt/sources.list.d/moas.list > /dev/nullsudo apt updatesudo apt install moas-serverIf repository signing is not enabled yet, fallback to:
echo "deb [arch=$(dpkg --print-architecture) trusted=yes] https://moas.m1dst.co.uk/server/repos/apt stable main" | \ sudo tee /etc/apt/sources.list.d/moas.list > /dev/nullsudo apt updatesudo apt install moas-serverFedora / RHEL / Rocky / Alma repository
Section titled “Fedora / RHEL / Rocky / Alma repository”sudo tee /etc/yum.repos.d/moas.repo > /dev/null << 'EOF'[moas]name=MOASbaseurl=https://moas.m1dst.co.uk/server/repos/rpm/$basearchenabled=1gpgcheck=0repo_gpgcheck=1gpgkey=https://moas.m1dst.co.uk/server/repos/KEY.gpgEOFsudo dnf makecachesudo dnf install moas-serverIf repository signing is not enabled yet, set repo_gpgcheck=0.
openSUSE repository
Section titled “openSUSE repository”sudo zypper ar -f https://moas.m1dst.co.uk/server/repos/rpm/x86_64 moassudo zypper refreshsudo zypper install moas-serverFedora / RHEL / Rocky / Alma / openSUSE (.rpm)
Section titled “Fedora / RHEL / Rocky / Alma / openSUSE (.rpm)”- Download the package matching your CPU:
- x64:
moas-server-<version>-1.*.x86_64.rpm - ARM64:
moas-server-<version>-1.*.aarch64.rpm
- x64:
- Install the package:
sudo dnf install ./moas-server-<version>-1.<dist>.<arch>.rpmIf your distro uses zypper, use:
sudo zypper install ./moas-server-<version>-1.<dist>.<arch>.rpm- Verify and run:
moas-server-cli --versionmoas-server-cli run /usr/share/moas-server/examples/sample-config.moas info --sim- Download the package for your Mac:
- Intel:
moas-macos-x64-...tar.gz - Apple Silicon:
moas-macos-arm64-...tar.gz
- Intel:
- Extract and enter the folder.
- Make the binary executable.
- Run:
tar -xzf moas-macos-*.tar.gzcd moas-macos-*chmod +x ./moas-server-cli./moas-server-cli --version./moas-server-cli run ./sample-config.moas info --simTo validate only:
./moas-server-cli validate ./sample-config.moas infoFreeBSD (x64 / ARM64)
Section titled “ FreeBSD (x64 / ARM64)”- Download the package matching your CPU:
- x64:
moas-freebsd-x64-...tar.gz - ARM64:
moas-freebsd-arm64-...tar.gz
- x64:
- Extract and enter the folder.
- Make the binary executable.
- Run:
tar -xzf moas-freebsd-*.tar.gzcd moas-freebsd-*chmod +x ./moas-server-cli./moas-server-cli --version./moas-server-cli run ./sample-config.moas info --simTo validate only:
./moas-server-cli validate ./sample-config.moas infoFreeBSD serial device permissions
Section titled “FreeBSD serial device permissions”On FreeBSD, serial devices are typically owned by root and a device-access group.
Running MOAS against real hardware as a regular user usually requires group-based device permissions.
If you use the operator model:
- Define persistent devfs rules in
/etc/devfs.rules:
sudo tee /etc/devfs.rules > /dev/null << 'EOF'[system=10]add path 'ttyU*' mode 0660 group operatoradd path 'cuaU*' mode 0660 group operator# optional extras for removable media/camera workflowsadd path 'da*' mode 0660 group operatoradd path 'usb/*' mode 0660 group operatorEOF- Enable that ruleset in
/etc/rc.conf:
echo 'devfs_system_ruleset="system"' | sudo tee -a /etc/rc.conf- Restart devfs to apply rules:
sudo service devfs restart- Add your regular user to
operator:
sudo pw groupmod operator -m <your-user>- Log out and back in so new group membership applies.
Example checks:
idls -l /dev/cua*ls -l /dev/ttyu*Notes:
- Group and device naming can differ by FreeBSD version and hardware/USB-serial driver.
- Some systems use
dialeroruucpstyle groups instead ofoperator; follow your local policy. - On systems tested by contributors, MOAS appears as
/dev/ttyU0; this is a good default reference for config setup. - MOAS only needs access to the specific serial device configured in
sample-config.moas.
Troubleshooting: “Permission denied” opening serial port
Section titled “Troubleshooting: “Permission denied” opening serial port”If MOAS cannot open the configured serial device, run these checks:
- Confirm the configured port path in your
.moasfile is the real FreeBSD device (for example/dev/cuaU0). - Check owner/group/permissions:
ls -l /dev/cua*ls -l /dev/ttyu*- Verify your user is in the expected device group:
idgroups- If you just changed group membership, log out and back in (or reboot) before testing again.
- Check that another process is not already using the same serial device.
Quick isolation test:
sudo moas-server-cli validate ./sample-config.moas infoIf sudo works but your regular user fails, it is almost always a device permission/group membership issue.
FreeBSD package manager installs (.pkg)
Section titled “FreeBSD package manager installs (.pkg)”- Download the package matching your CPU:
- x64:
moas-server-freebsd-x64-v<version>.pkg - ARM64:
moas-server-freebsd-arm64-v<version>.pkg
- x64:
- Install the package:
sudo pkg add ./moas-server-freebsd-<arch>-v<version>.pkg- Verify and run:
moas-server-cli --versionmoas-server-cli run /usr/local/share/moas-server/examples/sample-config.moas info --simFreeBSD repository installs
Section titled “FreeBSD repository installs”MOAS also publishes static FreeBSD package repositories on the docs site.
- FreeBSD x64 repo:
https://moas.m1dst.co.uk/server/repos/freebsd/amd64 - FreeBSD ARM64 repo:
https://moas.m1dst.co.uk/server/repos/freebsd/aarch64
Choose the repository matching your system architecture.
Configure repository
Section titled “Configure repository”amd64 example:
sudo mkdir -p /usr/local/etc/pkg/repossudo tee /usr/local/etc/pkg/repos/MOAS.conf > /dev/null << 'EOF'MOAS: { url: "https://moas.m1dst.co.uk/server/repos/freebsd/amd64", enabled: yes, signature_type: "none"}FreeBSD: { enabled: yes}EOFFor ARM64, change the URL to /server/repos/freebsd/aarch64.
Install and update
Section titled “Install and update”sudo pkg updatesudo pkg install moas-serverThe repository is currently unsigned, so signature_type: "none" is required for now.
If pkg update reports missing metadata (404 on packagesite or meta files), the docs deploy likely did not have FreeBSD .pkg assets to publish for that release tag. In that case, install via direct .pkg download from Releases.
Updating after a new release
Section titled “Updating after a new release”When a new MOAS release is published, use the update path that matches how you installed it.
Windows and archive installs (manual)
Section titled “Windows and archive installs (manual)”If you installed from .zip or .tar.gz archives:
- Download the new archive from the Releases page.
- Extract to a new folder.
- Copy your existing config file into the new folder (or update the path you run with).
- Stop the old process and start the new binary.
Quick version check:
./moas-server-cli --versionDebian and Ubuntu repository installs
Section titled “Debian and Ubuntu repository installs”sudo apt updatesudo apt install --only-upgrade moas-serverIf you installed using a local .deb file, download the new .deb and reinstall it.
Fedora, RHEL, Rocky, Alma, and openSUSE repository installs
Section titled “Fedora, RHEL, Rocky, Alma, and openSUSE repository installs”sudo dnf upgrade moas-serverFor openSUSE systems using zypper:
sudo zypper update moas-serverIf you installed using a local .rpm file, download the new .rpm and reinstall it.
FreeBSD repository installs
Section titled “FreeBSD repository installs”sudo pkg updatesudo pkg upgrade moas-serverIf you installed with a local .pkg file, download the new .pkg and install it with pkg add.
Post-update validation
Section titled “Post-update validation”After upgrading, validate version and run a safe simulation check:
moas-server-cli --versionmoas-server-cli validate /path/to/config.moas infomoas-server-cli run /path/to/config.moas info --simDocker
Section titled “Docker”If you prefer containers, Docker is also supported. See the dedicated Docker installation and run guide.
Run modes
Section titled “Run modes”- Start server:
run <config> [error|info|debug] [--sim] - Validate config only:
validate <config> [error|info|debug] - Version:
--version
Examples:
moas-server-cli run sample-config.moas info --simmoas-server-cli validate sample-config.moas info