Skip to content
Switch branches/tags
Go to file


Failed to load latest commit information.
Latest commit message
Commit time
Mar 17, 2021
Apr 7, 2021
Jan 26, 2018
Apr 7, 2021
Mar 21, 2018

Repository Mirroring Tool

Build Status Code Climate Coverage Status

This tool allows you to mirror RPM repositories in your own private network. Organization (mirroring) credentials are required to mirror SUSE repositories.

The SLE RMT Book contains the end-user documentation for RMT. man pages for rmt-cli are located in the file

If you would like to contribute to RMT, please see our contribution guide.

If you would like to compare RMT to its predecessor SMT, please see our writeup.

Installation of RMT

Please view our guide to assist you in the RMT installation process.

Development Setup

  1. Install the system dependencies:
    sudo zypper in libxml2-devel libxslt-devel libmariadb-devel gcc
  2. Install the ruby version specified in the .ruby-version file.
  3. Install and start either the MariaDB or MySQL server:
    sudo zypper in mariadb
    sudo systemctl enable mariadb
    sudo systemctl start mariadb
  4. Log into the MariaDB or MySQL server as root and create the RMT database user:
    mysql -u root -p <<EOFF
    GRANT ALL PRIVILEGES ON \`rmt%\`.* TO rmt@localhost IDENTIFIED BY 'rmt';
  5. Clone the RMT repository:
    git clone
  6. Install the ruby dependencies:
    cd rmt
    bundle install
  7. Copy the file config/rmt.yml to config/rmt.local.yml. With this file, override the following default settings:
    • Add your organization credentials to scc section.
    • Ensure that the database section is correct.
  8. Create the directory /var/lib/rmt and ensure that your current user owns it.
    sudo mkdir /var/lib/rmt
    sudo chown -R $(id -u):$(id -g) /var/lib/rmt
  9. Create the development database:
    bin/rails db:create db:migrate
  10. Verify that RMT works:
    • Run the command bin/rails server -b to start the web server.
    • Run the command bin/rmt-cli sync to sync RMT with SCC.

Development Setup - docker-compose

In order to run the application locally using docker-compose:

  1. Copy the .env.example file to .env.
  2. Add your organization credentials to .env file. Mirroring credentials can be obtained from the SUSE Customer Center.
  3. Start docker-compose and build the containers:
    docker-compose up --build
  4. The web server is accessible at http://localhost:8080/. This URL can be used for registering clients.
  5. To start a shell inside the RMT docker container, run the following command:
    docker-compose exec rmt bash

API documentation

RMT partially implements the SUSE Customer Center API. You can read the details of each endpoint to find out whether they are supported by RMT.


Do you have suggestions for improvement? Let us know!

Go to Issues, create a new issue and describe what you think could be improved.

Feedback is always welcome!

Security Policy

Please see our security policy for more information.