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
bash4+ andsystemd. - 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.comandghcr.io. - Credentials: A GitHub Personal Access Token (PAT) with
read:packagesscope 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:
- Installs the CLI tool into
/opt/milou. - Creates a service user
milou. - Creates a wrapper at
/usr/local/bin/miloufor easy access. - 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 (
.crtor.pem) - Private Key File (
.keyor.pem) - CA Certificate (Optional, for chain validation)
The CLI will validate that the certificate and key match before importing them to the
ssl/directory. - Certificate File (
-
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.
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
- Proceed to Initial Admin Login to access your instance.
- Configure your instance by following the guides in the Instance Configuration section.