repositor.io - Linux Repository Management

repositor.io is a tool to create and manage linux repositories. You can mirror online repositories so that you don't need to download the package every time you set up a new server. You can also secure your servers behind a firewall and disable outgoing http traffic.

With repositor.io it is easy to create custom repositories for your own packages. With the integration of a configuration management tool you can create consistant installations of your server.

GETTING HELP

COMMAND LINE

--mirror mirror a configured repository (needs --repo)
--tag=tagname tag a repository (needs --repo)
--repo=reponame the name of the repository to use
--update-metadata update the metadata of a repository
--update-files download files even if they are already downloaded
--init initialize an empty repository
--add-file=file add a file to a repository (needs --repo)
--remove-file=file remove a file from a repository (needs --repo)
--list list known repositories
--help display this help message

CONFIGURATION

To configure repositor.io create a configuration file /etc/rex/repositorio.conf. RepositoryRoot = /srv/html/repo/

# log4perl configuration file
<Log4perl>
  config = /etc/rex/io/log4perl.conf
</Log4perl>

# create a mirror of the nightly rex repository
# the files will be stored in
# /srv/html/repo/head/rex-centos-6-x86-64/CentOS/6/rex/x86_64/
<Repository rex-centos-6-x86-64>
  url   = http://nightly.rex.linux-files.org/CentOS/6/rex/x86_64/
  local = rex-centos-6-x86-64/CentOS/6/rex/x86_64/
  type  = Yum
</Repository>

# create a mirror of centos 6
# and download the pxe boot files, too.
<Repository centos-6-x86-64>
  url    = http://ftp.hosteurope.de/mirror/centos.org/6/os/x86_64/
  local  = centos-6-x86-64/CentOS/6/os/x86_64/
  type   = Yum
  images = true
</Repository>

# create a custom repository
<Repository centos-6-x86-64-mixed>
  local = centos-6-x86-64-mixed/mixed/6/x86_64/
  type  = Yum
</Repository>

An example log4perl.conf file:

log4perl.rootLogger                    = DEBUG, FileAppndr1

log4perl.appender.FileAppndr1          = Log::Log4perl::Appender::File
log4perl.appender.FileAppndr1.filename = /var/log/repositorio.log
log4perl.appender.FileAppndr1.layout   = Log::Log4perl::Layout::SimpleLayout