Skip to content
This repository has been archived by the owner on Apr 24, 2020. It is now read-only.

Wharenn/puppet-unrealirc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UnrealIRC puppet module

Current version : 0.0.1

This puppet module allows you to easily install an UnrealIRC IRC server.

It will install a basic IRC server and let you config it with puppet. There is a puppet type for each section of the unrealircd.conf. This way, you can easily manage opers, vhosts, server links...

You may be interested by the following modules :

How to use

Quickly set an IRC server

class { '::unrealirc':
}

Custom IRC server

class { '::unrealirc':
    install_path 	=> '/var/lib/unreal',
    user 			=> 'irc',
    group 			=> 'irc',
    log_path 		=> '/var/log/ircd.log',
    servername 		=> 'irc.myserver.org',
    serverdesc 		=> 'Description of irc server',
    maxusers 		=> 100,
    maxservers 		=> 10,
    admins 			=> ['admin <admin@myserver.org>'],
    pidfile 		=> '/var/lib/unreal/ircd.pid',
    url 			=> 'http://www.unrealircd.com/downloads/Unreal3.2.10.2.tar.gz'
}

Available options :

install_path

Directory where UnrealIRCd will be installed

user

Unix user that should own the UnrealIRC directory and run the service

group

Group of the user that should own the UnrealIRC directory and run the service

log_path

Path of the log file. Beware that this path may be defined later in the server advanced config

servername

Name of your IRC server

serverdesc

Description of your IRC server

maxusers

Max number of users that can simultaneously be connected on the server

maxservers

Max number of servers that can be linked to the server

admins

Array containing the names of server admins.

pidfile

Path of the service pid file

url

Url to the UnrealIRC download archive

Required configuration

Some values must be defined for your IRC network to work. You can set them by using the unrealirc::config::set type.

unrealirc::config::set { 'network':
    network_name => 		    "Public Name of My Server",
    default_server =>		    "irc.myserver.org",
    services_server => 	        "services.myserver.org",
    kline_address =>            "contact@myserver.org",
}

Advanced configuration (optionnal)

You can built step by step your unrealircd.conf by using unrealirc::config puppet types. Examples provided below only show required options. Each type have several other options to precisely suits to your needs. For further informations about how to use theses options, please read the UnrealIRC doc at http://www.unrealircd.com/files/docs/unreal32docs.html

Your unrealircd.conf will be built by including wildcard *.conf files generated by the use of unrealirc::config puppet types. Each type will create a {TYPE}_{TYPE_NAME}.conf file in the config directory located in the install path.

Server configuration

Please refer to the UnrealIRC documentation to know how to configure your server.

unrealirc::config::set { 'server':
    modes_on_connect =>                 "+ix",
    modes_on_oper =>	                "+xwgs",
    auto_join =>                        "#welcome",
    oper_auto_join =>                   "#opers",
}

Listening ports

unrealirc::config::listen { 'default_6667': port => 6667, }

Allow connections

unrealirc::config::allow { 'clients':
    maxperip =>     5,
}

Logging

unrealirc::config::log { 'default':
    flags =>  ['oper','kline','connects','server-connects','kills','errors','sadmin-commands','chg-commands','oper-override','spamfilter'],
}

Adding Opers

unrealirc::config::oper { 'me':
    username => 'The-Master',
    password => 'mypassword',
}

NOTE: This config will be stored in /var/lib/unreal/config/oper_me.conf file

Adding Vhosts

unrealirc::config::vhost { 'me':
    vhost => 'the.creator',
    login => 'The-Master',
    password => 'mypassword',
    swhois => 'This is the creator!',
}

NOTE: This config will be stored in /var/lib/unreal/config/vhost_me.conf file

Adding Links

unrealirc::config::link { 'services':
    servername => 'services.myserver.org',
    hostname => '127.0.0.1',
    port => '6667',
    password_connect => 'myserverpassword',
    password_receive => 'myserverpassword2',
}

Adding Ulines

unrealirc::config::ulines { 'servers':
    servers => ['services.myserver.org'],
}

Adding Bans

unrealirc::config::ban { 'notallowed':
    type => 'NicknameNotAllowed',
    mask => '*',
    reason => 'This nickname is not allowed',
}

Adding Exceptions

unrealirc::config::except { 'dontbanme':
    type => 'ban',
    mask => '*@me',
}

Adding Denies

unrealirc::config::deny { 'denydcc':
    type => 'dcc',
    filename => 'virus.exe',
    reason => 'This file is a virus!',
    soft => 'yes',
}

Other configuration

Take a look at other unrealirc::config types to learn how you can configure your server. These types are only wrappers around unrealircd.conf configuration options and parameters can be easily matched with those present in the official UnrealIRC documentation.

Compatibility

This modules currently supports UnrealIRCd 3.2.10 but should also be compatible with newer releases.

It was tested on debian like systems but should also work on other linux distributions (except for the services part restricted to debian, contributions for other distribs would be welcomed!).

Issues

Since the unrealircd.conf is built by including wildcard *.conf files generated by the module and located in the irc server "config" directory, you should be careful to clean this directory when you update the server config in puppet (especially if you change the name of the config type you used).

For IRC related questions, please have a look to UnrealIRC documentation :

http://www.unrealircd.com/files/docs/unreal32docs.html

Please report any module issue to project bug tracker on github :

https://github.com/Wharenn/puppet-unrealirc/issues

Contributions in form of pull requests are also welcomed! :-)

Licence

This module is distributed under the MIT licence. Please check the full licence included at the root of the project tree.

About

Puppet module for installing unrealirc IRC server

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published