Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Alternative Installation Methods

While Docker Compose is the recommended approach for most users, mooR provides several other installation methods for different use cases and environments.

Debian Packages

For Debian-based systems (including Ubuntu), mooR provides native .deb packages that integrate cleanly with your system's package management and systemd service management.

About Debian Packages

mooR packages include:

  • moor-daemon: Core MOO server with systemd service
  • moor-telnet-host: Telnet server with systemd service
  • moor-web-host: Web API server with systemd service
  • moor-curl-worker: HTTP request worker with systemd service
  • moor-web-client: Static web client files (architecture-independent)

All packages integrate with systemd, create necessary users and directories, and include the LambdaMOO-based lambda-moor core database by default.

Installation Options

Option 1: Build Locally

Build packages yourself using the provided scripts in deploy/debian-packages/:

cd deploy/debian-packages
./build-all-packages.sh
sudo dpkg -i ../../target/debian/moor-*.deb

Option 2: Download from Releases

Download pre-built packages from the mooR Codeberg releases page:

sudo dpkg -i moor-*.deb
sudo apt-get install -f  # Install any missing dependencies

Comprehensive Documentation

For detailed installation, configuration, service management, testing, and troubleshooting:

→ See deploy/debian-packages/README.md

This includes:

  • Complete installation and post-installation configuration
  • Service management with systemd
  • nginx setup for the web client
  • Backup and restore procedures
  • Automated testing
  • Troubleshooting guide

When to Use Debian Packages

Debian packages are ideal when:

  • You're running a Debian-based Linux distribution
  • You want system-level integration (systemd services, standard file locations)
  • You prefer traditional package management over containers
  • You're setting up a production server on bare metal or VPS
  • You want to deploy on multiple separate machines

Building from Source

For developers, custom deployments, or platforms without pre-built packages, you can compile mooR from source code.

Prerequisites

You'll need the Rust toolchain installed. The recommended way is using rustup:

# Install rustup (if not already installed)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Follow the installation prompts, then restart your shell or run:
source ~/.cargo/env

Building Process

  1. Clone the repository:

    git clone https://codeberg.org/timbran/moor.git
    cd moor
    
  2. Build all components:

    cargo build --release --all-targets
    

    This will take some time as Rust compiles all dependencies and mooR components.

  3. Find your binaries: After building, you'll find the executables in target/release/:

    • moor-daemon
    • moor-telnet-host
    • moor-web-host
    • curl-worker

Manual Configuration

When building from source, you'll need to manually set up:

  • PASETO authentication keys: The daemon auto-generates these keys with the --generate-keypair flag (creates moor-signing-key.pem and moor-verifying-key.pem)
  • Configuration files: Create appropriate configuration for each component
  • Core database: Install and configure your chosen MOO core
  • Service coordination: Ensure all components can communicate properly (see Server Architecture)
    • Default: IPC (Unix domain sockets) - simplest, no encryption needed
    • Clustered: TCP with CURVE encryption requires enrollment tokens (see --rotate-enrollment-token flag)

The docker-compose.yml and process-compose.yaml files provide excellent examples of how to configure each component.

When to Build from Source

Source builds are best for:

  • Development and testing
  • Platforms without Debian package support
  • Custom configurations requiring code modifications
  • Learning how mooR works internally
  • Contributing to the project

Configuration Reference

Regardless of your installation method, you'll need to configure mooR's components. The arguments and options for the server executables are documented in the Server Configuration chapter.

Choosing Your Method

MethodBest ForProsCons
Docker ComposeMost users, quick setupEasy, complete environment, works everywhereRequires Docker knowledge
Debian PackagesProduction Linux serversSystem integration, familiar package managementLimited to Debian-based systems
Source BuildDevelopers, custom needsFull control, latest code, all platformsComplex setup, manual configuration

Getting Help

For installation issues:

  • Check the mooR Codeberg repository for the latest installation instructions
  • Review the docker-compose.yml file for configuration examples
  • Consult the community forums or Discord for platform-specific guidance

Remember that regardless of your installation method, you'll also need to choose and install a MOO core database - see Understanding MOO Cores for guidance on that crucial next step.