Sign inSign up

bbriggs/ngircd

By bbriggs

•Updated about 11 years ago

Image
0

1.1K

bbriggs/ngircd repository overview

⁠docker-ngircd

⁠A docker build for ngircd on centos.
⁠Note: This does not supply a config file for ngIRCd for you. You must provide your own and it must work or else the container will stay up but fail to provide any services.

⁠Summary

Inspired by rbjarnason/docker-ngircd. Thanks.

What the others do that this one does not:

  • Automatically expose ports
  • Supply a default config file for ngircd

What this one does different:

  • I use CentOS instead of Ubuntu

Why I reinvented the wheel:

  • I wanted to make it easer supply a config file via puppet and set up a notify on docker easier. There was probably an easier way to do that, but the dockerfile is written now.

In short, I have partially reinvented the wheel by writing yet another NGIRCD docker implementation. Even worse, it does even less than the others. You should probably use theirs. I built this for my own purposes: To do less by default and work better with puppet. I wanted to ship my own config file easier and I wanted to expose my own ports since I use non-standard ones.

What I will be doing (H/T girish, densuke, rbjarnason) is using supervisord to manage the IRCd.

⁠Usage

Here is how I'm deploying it:

Prerequisites for this deployment:

Here is the class/profile I am using to set up a docker image, a /ngircd directory for storing data, and create/stash self-signed certificates. To apply it, you can include the class in the manifest or using the hiera_include('classes') method.

class profiles::irc {
    include docker
    $irc_image = 'bbriggs/ngircd'
    $certdir = '/ngircd'
    docker::image { $irc_image: }

    file {'/var/log/ngircd.log':
        ensure => 'present',
    }
    ->
    file {'/ngircd':
        ensure => 'directory',
    }
    ->
    exec {'create_self_signed_sslcert':
        command => "openssl req -newkey rsa:2048 -nodes -keyout ${::fqdn}.key  -x509 -days 365 -out ${::fqdn}.crt -subj '/CN=${::fqdn}'",
        cwd     => $certdir,
        creates => [ "${certdir}/${::fqdn}.key", "${certdir}/${::fqdn}.crt", ],
        path    => ["/usr/bin", "/usr/sbin"],
    }
    ->
    file {'/ngircd/ngircd.conf':
        ensure => 'present',
        content => template('profiles/ngircd.conf.erb')
    }
    ~>
    docker::run {'ngircd':
        image           => $irc_image,
        ports           => ['6697:6697'],
        use_name        => true,
        restart_service => true,
        volumes         => ['/ngircd/ngircd.conf:/etc/ngircd/ngircd.conf','/var/log/ngircd.log:/var/log/supervisord/ngircd.log',"${certdir}:/ngircd"],
    }
}

Tag summary

Content type

Image

Digest

sha256:cac41cd06…

Size

96.6 MB

Last updated

about 11 years ago

docker pull bbriggs/ngircd