Skip to main content

Installing Milou

The Milou CLI provides an interactive approach to installing, configuring, and managing your Milou instance. This method is recommended for deployments as it automatically handles dependencies, system configuration, and service management.

Quick Install

You can run the one-line installer directly:

curl -fsSL https://raw.githubusercontent.com/milou-sh/milou-cli-installer/master/install.sh | sudo bash

Prerequisites

Before starting, ensure your system meets the following requirements:

  • OS: 64-bit Linux (Ubuntu 20.04+ recommended) with bash 4+ and systemd.
  • Hardware: Minimum 2 vCPUs, 4 GB RAM, and 120+ GB of SSD/NVMe storage (4 vCPUs / 8 GB RAM recommended for production).
  • Docker: Docker Engine 24+ and Docker Compose plugin (the installer can auto-install these on Debian/Ubuntu).
  • Network: Outbound HTTPS access to github.com and ghcr.io.
  • Credentials: A GitHub Personal Access Token (PAT) with read:packages scope is required to pull the proprietary Milou images from the GitHub Container Registry.

Installation

You can install the Milou CLI using the one-line installer:

curl -fsSL https://raw.githubusercontent.com/milou-sh/milou-cli-installer/master/install.sh | sudo bash

The installer performs the following actions:

  1. Installs the CLI tool into /opt/milou.
  2. Creates a service user milou.
  3. Creates a wrapper at /usr/local/bin/milou for easy access.
  4. Ensures Docker Engine and the Compose plugin are installed.

Initial Setup

Once the CLI is installed, you need to configure your instance. Run the interactive setup wizard:

milou setup

The wizard will guide you through the following configuration steps:

1. Domain Configuration

You will be prompted to enter the Domain Name or IP address where your Milou instance will be accessible (e.g., milou.example.com or 192.168.1.50).

2. Administrator Email

Enter an email address for the system administrator. This email will allow you to log in as administrator

3. SSL Configuration

The setup wizard helps you configure secure access to your instance using one of two methods:

  • Import Existing Certificates: If you have valid SSL certificates (e.g., from a commercial CA or your organization's PKI), you can import them. You will be prompted to provide the paths to your:

    • Certificate File (.crt or .pem)
    • Private Key File (.key or .pem)
    • CA Certificate (Optional, for chain validation)

    The CLI will validate that the certificate and key match before importing them to the ssl/ directory.

  • Generate Self-Signed Certificate: If no existing certificates are provided, the CLI can generate a self-signed certificate for your configured domain.

4. GitHub Authentication (GHCR)

The wizard will ask for your GitHub Personal Access Token (PAT). This token is stored in the .env file and is used to authenticate with the GitHub Container Registry (GHCR) to pull the private Milou Docker images. This token will be provided by the Milou team.

important

Without a valid PAT, the system will not be able to download the application images.

5. Database & Secrets

The CLI automatically generates secure random passwords for the database, message queue, and other internal services. All these are stored in /opt/milou/.env with permissions 600, owned by milou:milou.

Starting Milou

After the setup is complete, you can start the application services:

milou start

This command will pull the latest images and start the containers.

You can verify the status of the services with:

milou status

Next Steps