├── manifests ├── log.pp ├── default │ ├── alis.pp │ ├── botserv.pp │ ├── chanfix.pp │ ├── general.pp │ ├── global.pp │ ├── httpd.pp │ ├── ldap.pp │ ├── rpgserv.pp │ ├── uplink.pp │ ├── chanserv.pp │ ├── gameserv.pp │ ├── groupserv.pp │ ├── helpserv.pp │ ├── hostserv.pp │ ├── infoserv.pp │ ├── memoserv.pp │ ├── nickserv.pp │ ├── operator.pp │ ├── operclass.pp │ ├── operserv.pp │ ├── saslserv.pp │ ├── serverinfo.pp │ ├── statserv.pp │ └── loadmodule.pp ├── default.pp ├── params.pp ├── init.pp └── simple.pp ├── .gitignore ├── README.md ├── .gemfile ├── Rakefile ├── spec └── spec_helper.rb ├── Modulefile ├── tests └── init.pp ├── .travis.yml ├── LICENSE └── templates └── atheme.conf.erb /manifests/log.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/alis.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/botserv.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/chanfix.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/general.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/global.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/httpd.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/ldap.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/rpgserv.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/uplink.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | spec/fixtures 2 | 3 | -------------------------------------------------------------------------------- /manifests/default/chanserv.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/gameserv.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/groupserv.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/helpserv.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/hostserv.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/infoserv.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/memoserv.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/nickserv.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/operator.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/operclass.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/operserv.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/saslserv.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/serverinfo.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifests/default/statserv.pp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | puppet-atheme 2 | ============= 3 | -------------------------------------------------------------------------------- /manifests/default.pp: -------------------------------------------------------------------------------- 1 | # == Class: atheme::default 2 | # 3 | class atheme::default inherits atheme { 4 | include atheme::default::loadmodule 5 | } 6 | -------------------------------------------------------------------------------- /.gemfile: -------------------------------------------------------------------------------- 1 | source :rubygems 2 | 3 | puppetversion = ENV['PUPPET_VERSION'] 4 | gem 'puppet', puppetversion, :require => false 5 | gem 'puppet-lint' 6 | gem 'rspec-puppet' 7 | gem 'puppetlabs_spec_helper', '>= 0.1.0' 8 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | require 'rubygems' 2 | require 'puppetlabs_spec_helper/rake_tasks' 3 | require 'puppet-lint' 4 | PuppetLint.configuration.send("disable_80chars") 5 | PuppetLint.configuration.send("disable_class_inherits_from_params_class") 6 | -------------------------------------------------------------------------------- /manifests/params.pp: -------------------------------------------------------------------------------- 1 | # == Class: atheme::params 2 | # 3 | class atheme::params { 4 | case $::osfamily { 5 | 'Debian': { 6 | $conffile = '/etc/atheme/atheme.conf' 7 | } 8 | default: { 9 | fail("\$osfamily ${::osfamily} is not supported by the charybdis module") 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /spec/spec_helper.rb: -------------------------------------------------------------------------------- 1 | dir = File.expand_path(File.dirname(__FILE__)) 2 | $LOAD_PATH.unshift File.join(dir, 'lib') 3 | 4 | require 'mocha' 5 | require 'puppet' 6 | require 'rspec' 7 | require 'spec/autorun' 8 | 9 | Spec::Runner.configure do |config| 10 | config.mock_with :mocha 11 | end 12 | 13 | # We need this because the RAL uses 'should' as a method. This 14 | # allows us the same behaviour but with a different method name. 15 | class Object 16 | alias :must :should 17 | end 18 | -------------------------------------------------------------------------------- /Modulefile: -------------------------------------------------------------------------------- 1 | name 'puppet-atheme' 2 | version '0.1.0' 3 | source 'https://github.com/zen/puppet-atheme' 4 | author 'Tomasz "Zen" Napierala' 5 | license 'Apache License, Version 2.0' 6 | summary 'Module for managing and configuring Atheme Services (IRC)' 7 | description 'Module for managing and configuring Atheme Services (IRC)' 8 | project_page 'https://github.com/zen/puppet-atheme' 9 | dependency 'puppetlabs/stdlib', '>= 3.0.0' 10 | dependency 'ripienaar/concat', '>= 0.1.0' 11 | dependency 'hunner/cahrybdis', '>= 0.2.0' -------------------------------------------------------------------------------- /tests/init.pp: -------------------------------------------------------------------------------- 1 | # The baseline for module testing used by Puppet Labs is that each manifest 2 | # should have a corresponding test manifest that declares that class or defined 3 | # type. 4 | # 5 | # Tests are then run by using puppet apply --noop (to check for compilation 6 | # errors and view a log of events) or by fully applying the test in a virtual 7 | # environment (to compare the resulting system state to the desired state). 8 | # 9 | # Learn more about module testing here: 10 | # http://docs.puppetlabs.com/guides/tests_smoke.html 11 | # 12 | include atheme 13 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: ruby 2 | rvm: 3 | - 1.9.3 4 | - 2.0.0 5 | script: 6 | - "rake lint" 7 | - "rake spec SPEC_OPTS='--format documentation'" 8 | env: 9 | - PUPPET_VERSION="~> 2.7.0" 10 | - PUPPET_VERSION="~> 3.0.0" 11 | - PUPPET_VERSION="~> 3.1.0" 12 | - PUPPET_VERSION="~> 3.2.0" 13 | matrix: 14 | allow_failures: 15 | - rvm: ruby-head 16 | exclude: 17 | - rvm: 1.9.3 18 | env: PUPPET_GEM_VERSION="~> 2.7.0" 19 | - rvm: ruby-head 20 | env: PUPPET_GEM_VERSION="~> 2.7.0" 21 | gemfile: .gemfile 22 | notifications: 23 | email: 24 | - tomasz@napierala.org 25 | -------------------------------------------------------------------------------- /manifests/init.pp: -------------------------------------------------------------------------------- 1 | # == Class: atheme 2 | # 3 | # === Parameters 4 | # 5 | # === Variables 6 | # 7 | # === Authors 8 | # 9 | # Tomasz 'Zen' Napierala 10 | # 11 | # === Copyright 12 | # 13 | # Copyright 2013 Tomasz 'Zen' Napierala 14 | # 15 | class atheme ( 16 | $conffile = $atheme::params::conffile 17 | ) { 18 | include atheme::params 19 | # probably should be moved to more neutral place, e.g. role 20 | class { 'apt': } 21 | apt::ppa { 'ppa:jkyle/atheme': } 22 | 23 | package { 'atheme-services': 24 | ensure => present, 25 | } 26 | service { 'atheme-services': 27 | ensure => running, 28 | enable => true, 29 | } 30 | include concat::setup 31 | concat { $conffile: 32 | owner => 'root', 33 | group => 'irc', 34 | mode => '440', 35 | require => Package['atheme-services'], 36 | notify => Service['atheme-services'], 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /manifests/simple.pp: -------------------------------------------------------------------------------- 1 | # == Class: atheme 2 | # 3 | # === Parameters 4 | # 5 | # === Variables 6 | # 7 | # === Authors 8 | # 9 | # Tomasz 'Zen' Napierala 10 | # 11 | # === Copyright 12 | # 13 | # Copyright 2013 Tomasz 'Zen' Napierala 14 | # 15 | class atheme::simple ( 16 | $uplink_servername = undef, 17 | $uplink_host = undef, 18 | $uplink_port = undef, 19 | $uplink_password = undef, 20 | ) { 21 | 22 | if ! $uplink_servername or ! $uplink_host or ! $uplink_port or ! $uplink_password { 23 | fail("Atheme::Simple[${name}]: uplink_hostname and uplink_host and uplink_port and uplink_password parameters required.") 24 | } 25 | 26 | package { 'atheme-services': 27 | ensure => present, 28 | } 29 | service { 'atheme-services': 30 | ensure => running, 31 | enable => true, 32 | } 33 | file {'/etc/atheme-services/atheme.conf': 34 | path => '/etc/atheme-service/atheme.conf', 35 | owner => 'irc', 36 | group => 'irc', 37 | mode => '0440', 38 | content => template('atheme/atheme.conf.erb'), 39 | require => Package['atheme-services'], 40 | notify => Service['atheme-services'], 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, and 10 | distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by the copyright 13 | owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all other entities 16 | that control, are controlled by, or are under common control with that entity. 17 | For the purposes of this definition, "control" means (i) the power, direct or 18 | indirect, to cause the direction or management of such entity, whether by 19 | contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the 20 | outstanding shares, or (iii) beneficial ownership of such entity. 21 | 22 | "You" (or "Your") shall mean an individual or Legal Entity exercising 23 | permissions granted by this License. 24 | 25 | "Source" form shall mean the preferred form for making modifications, including 26 | but not limited to software source code, documentation source, and configuration 27 | files. 28 | 29 | "Object" form shall mean any form resulting from mechanical transformation or 30 | translation of a Source form, including but not limited to compiled object code, 31 | generated documentation, and conversions to other media types. 32 | 33 | "Work" shall mean the work of authorship, whether in Source or Object form, made 34 | available under the License, as indicated by a copyright notice that is included 35 | in or attached to the work (an example is provided in the Appendix below). 36 | 37 | "Derivative Works" shall mean any work, whether in Source or Object form, that 38 | is based on (or derived from) the Work and for which the editorial revisions, 39 | annotations, elaborations, or other modifications represent, as a whole, an 40 | original work of authorship. For the purposes of this License, Derivative Works 41 | shall not include works that remain separable from, or merely link (or bind by 42 | name) to the interfaces of, the Work and Derivative Works thereof. 43 | 44 | "Contribution" shall mean any work of authorship, including the original version 45 | of the Work and any modifications or additions to that Work or Derivative Works 46 | thereof, that is intentionally submitted to Licensor for inclusion in the Work 47 | by the copyright owner or by an individual or Legal Entity authorized to submit 48 | on behalf of the copyright owner. For the purposes of this definition, 49 | "submitted" means any form of electronic, verbal, or written communication sent 50 | to the Licensor or its representatives, including but not limited to 51 | communication on electronic mailing lists, source code control systems, and 52 | issue tracking systems that are managed by, or on behalf of, the Licensor for 53 | the purpose of discussing and improving the Work, but excluding communication 54 | that is conspicuously marked or otherwise designated in writing by the copyright 55 | owner as "Not a Contribution." 56 | 57 | "Contributor" shall mean Licensor and any individual or Legal Entity on behalf 58 | of whom a Contribution has been received by Licensor and subsequently 59 | incorporated within the Work. 60 | 61 | 2. Grant of Copyright License. 62 | 63 | Subject to the terms and conditions of this License, each Contributor hereby 64 | grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, 65 | irrevocable copyright license to reproduce, prepare Derivative Works of, 66 | publicly display, publicly perform, sublicense, and distribute the Work and such 67 | Derivative Works in Source or Object form. 68 | 69 | 3. Grant of Patent License. 70 | 71 | Subject to the terms and conditions of this License, each Contributor hereby 72 | grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, 73 | irrevocable (except as stated in this section) patent license to make, have 74 | made, use, offer to sell, sell, import, and otherwise transfer the Work, where 75 | such license applies only to those patent claims licensable by such Contributor 76 | that are necessarily infringed by their Contribution(s) alone or by combination 77 | of their Contribution(s) with the Work to which such Contribution(s) was 78 | submitted. If You institute patent litigation against any entity (including a 79 | cross-claim or counterclaim in a lawsuit) alleging that the Work or a 80 | Contribution incorporated within the Work constitutes direct or contributory 81 | patent infringement, then any patent licenses granted to You under this License 82 | for that Work shall terminate as of the date such litigation is filed. 83 | 84 | 4. Redistribution. 85 | 86 | You may reproduce and distribute copies of the Work or Derivative Works thereof 87 | in any medium, with or without modifications, and in Source or Object form, 88 | provided that You meet the following conditions: 89 | 90 | You must give any other recipients of the Work or Derivative Works a copy of 91 | this License; and 92 | You must cause any modified files to carry prominent notices stating that You 93 | changed the files; and 94 | You must retain, in the Source form of any Derivative Works that You distribute, 95 | all copyright, patent, trademark, and attribution notices from the Source form 96 | of the Work, excluding those notices that do not pertain to any part of the 97 | Derivative Works; and 98 | If the Work includes a "NOTICE" text file as part of its distribution, then any 99 | Derivative Works that You distribute must include a readable copy of the 100 | attribution notices contained within such NOTICE file, excluding those notices 101 | that do not pertain to any part of the Derivative Works, in at least one of the 102 | following places: within a NOTICE text file distributed as part of the 103 | Derivative Works; within the Source form or documentation, if provided along 104 | with the Derivative Works; or, within a display generated by the Derivative 105 | Works, if and wherever such third-party notices normally appear. The contents of 106 | the NOTICE file are for informational purposes only and do not modify the 107 | License. You may add Your own attribution notices within Derivative Works that 108 | You distribute, alongside or as an addendum to the NOTICE text from the Work, 109 | provided that such additional attribution notices cannot be construed as 110 | modifying the License. 111 | You may add Your own copyright statement to Your modifications and may provide 112 | additional or different license terms and conditions for use, reproduction, or 113 | distribution of Your modifications, or for any such Derivative Works as a whole, 114 | provided Your use, reproduction, and distribution of the Work otherwise complies 115 | with the conditions stated in this License. 116 | 117 | 5. Submission of Contributions. 118 | 119 | Unless You explicitly state otherwise, any Contribution intentionally submitted 120 | for inclusion in the Work by You to the Licensor shall be under the terms and 121 | conditions of this License, without any additional terms or conditions. 122 | Notwithstanding the above, nothing herein shall supersede or modify the terms of 123 | any separate license agreement you may have executed with Licensor regarding 124 | such Contributions. 125 | 126 | 6. Trademarks. 127 | 128 | This License does not grant permission to use the trade names, trademarks, 129 | service marks, or product names of the Licensor, except as required for 130 | reasonable and customary use in describing the origin of the Work and 131 | reproducing the content of the NOTICE file. 132 | 133 | 7. Disclaimer of Warranty. 134 | 135 | Unless required by applicable law or agreed to in writing, Licensor provides the 136 | Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, 137 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, 138 | including, without limitation, any warranties or conditions of TITLE, 139 | NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are 140 | solely responsible for determining the appropriateness of using or 141 | redistributing the Work and assume any risks associated with Your exercise of 142 | permissions under this License. 143 | 144 | 8. Limitation of Liability. 145 | 146 | In no event and under no legal theory, whether in tort (including negligence), 147 | contract, or otherwise, unless required by applicable law (such as deliberate 148 | and grossly negligent acts) or agreed to in writing, shall any Contributor be 149 | liable to You for damages, including any direct, indirect, special, incidental, 150 | or consequential damages of any character arising as a result of this License or 151 | out of the use or inability to use the Work (including but not limited to 152 | damages for loss of goodwill, work stoppage, computer failure or malfunction, or 153 | any and all other commercial damages or losses), even if such Contributor has 154 | been advised of the possibility of such damages. 155 | 156 | 9. Accepting Warranty or Additional Liability. 157 | 158 | While redistributing the Work or Derivative Works thereof, You may choose to 159 | offer, and charge a fee for, acceptance of support, warranty, indemnity, or 160 | other liability obligations and/or rights consistent with this License. However, 161 | in accepting such obligations, You may act only on Your own behalf and on Your 162 | sole responsibility, not on behalf of any other Contributor, and only if You 163 | agree to indemnify, defend, and hold each Contributor harmless for any liability 164 | incurred by, or claims asserted against, such Contributor by reason of your 165 | accepting any such warranty or additional liability. 166 | 167 | END OF TERMS AND CONDITIONS 168 | 169 | APPENDIX: How to apply the Apache License to your work 170 | 171 | To apply the Apache License to your work, attach the following boilerplate 172 | notice, with the fields enclosed by brackets "[]" replaced with your own 173 | identifying information. (Don't include the brackets!) The text should be 174 | enclosed in the appropriate comment syntax for the file format. We also 175 | recommend that a file or class name and description of purpose be included on 176 | the same "printed page" as the copyright notice for easier identification within 177 | third-party archives. 178 | 179 | Copyright [yyyy] [name of copyright owner] 180 | 181 | Licensed under the Apache License, Version 2.0 (the "License"); 182 | you may not use this file except in compliance with the License. 183 | You may obtain a copy of the License at 184 | 185 | http://www.apache.org/licenses/LICENSE-2.0 186 | 187 | Unless required by applicable law or agreed to in writing, software 188 | distributed under the License is distributed on an "AS IS" BASIS, 189 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 190 | See the License for the specific language governing permissions and 191 | limitations under the License. 192 | -------------------------------------------------------------------------------- /manifests/default/loadmodule.pp: -------------------------------------------------------------------------------- 1 | # == Class: atheme::default::loadmodule 2 | # 3 | class atheme::default::loadmodule { 4 | # Protocol modules 5 | atheme::loadmodule { 'modules/protocol/charybdis': } 6 | # Protocol mixins 7 | #atheme::loadmodule { 'modules/protocol/mixin_nohalfops': } 8 | #atheme::loadmodule { 'modules/protocol/mixin_noholdnick': } 9 | #atheme::loadmodule { 'modules/protocol/mixin_noprotect': } 10 | #atheme::loadmodule { 'modules/protocol/mixin_noowner': } 11 | # Database backend module. 12 | atheme::loadmodule { 'modules/backend/opensex': } 13 | # Crypto module 14 | atheme::loadmodule { 'modules/crypto/posix': } 15 | # Authentication module 16 | #atheme::loadmodule { 'modules/auth/ldap': } 17 | 18 | # NickServ modules 19 | atheme::loadmodule { 'modules/nickserv/main': } 20 | #atheme::loadmodule { 'modules/nickserv/access': } 21 | atheme::loadmodule { 'modules/nickserv/badmail': } 22 | #atheme::loadmodule { 'modules/nickserv/cert': } 23 | #atheme::loadmodule { 'modules/nickserv/cracklib': } 24 | atheme::loadmodule { 'modules/nickserv/drop': } 25 | #atheme::loadmodule { 'modules/nickserv/enforce': } 26 | atheme::loadmodule { 'modules/nickserv/ghost': } 27 | atheme::loadmodule { 'modules/nickserv/group': } 28 | atheme::loadmodule { 'modules/nickserv/help': } 29 | atheme::loadmodule { 'modules/nickserv/hold': } 30 | atheme::loadmodule { 'modules/nickserv/identify': } 31 | atheme::loadmodule { 'modules/nickserv/info': } 32 | atheme::loadmodule { 'modules/nickserv/list': } 33 | atheme::loadmodule { 'modules/nickserv/listmail': } 34 | #atheme::loadmodule { 'modules/nickserv/listownmail': } 35 | #atheme::loadmodule { 'modules/nickserv/login': } 36 | atheme::loadmodule { 'modules/nickserv/logout': } 37 | atheme::loadmodule { 'modules/nickserv/mark': } 38 | atheme::loadmodule { 'modules/nickserv/freeze': } 39 | atheme::loadmodule { 'modules/nickserv/listchans': } 40 | atheme::loadmodule { 'modules/nickserv/listgroups': } 41 | atheme::loadmodule { 'modules/nickserv/register': } 42 | atheme::loadmodule { 'modules/nickserv/regnolimit': } 43 | atheme::loadmodule { 'modules/nickserv/resetpass': } 44 | atheme::loadmodule { 'modules/nickserv/restrict': } 45 | atheme::loadmodule { 'modules/nickserv/return': } 46 | atheme::loadmodule { 'modules/nickserv/setpass': } 47 | #atheme::loadmodule { 'modules/nickserv/sendpass': } 48 | atheme::loadmodule { 'modules/nickserv/sendpass_user': } 49 | atheme::loadmodule { 'modules/nickserv/set_core': } 50 | atheme::loadmodule { 'modules/nickserv/set_accountname': } 51 | atheme::loadmodule { 'modules/nickserv/set_email': } 52 | atheme::loadmodule { 'modules/nickserv/set_emailmemos': } 53 | #atheme::loadmodule { 'modules/nickserv/set_enforcetime': } 54 | atheme::loadmodule { 'modules/nickserv/set_hidemail': } 55 | atheme::loadmodule { 'modules/nickserv/set_language': } 56 | atheme::loadmodule { 'modules/nickserv/set_nevergroup': } 57 | atheme::loadmodule { 'modules/nickserv/set_neverop': } 58 | atheme::loadmodule { 'modules/nickserv/set_nogreet': } 59 | atheme::loadmodule { 'modules/nickserv/set_nomemo': } 60 | atheme::loadmodule { 'modules/nickserv/set_noop': } 61 | atheme::loadmodule { 'modules/nickserv/set_password': } 62 | #atheme::loadmodule { 'modules/nickserv/set_privmsg': } 63 | #atheme::loadmodule { 'modules/nickserv/set_private': } 64 | atheme::loadmodule { 'modules/nickserv/set_property': } 65 | atheme::loadmodule { 'modules/nickserv/set_quietchg': } 66 | atheme::loadmodule { 'modules/nickserv/status': } 67 | atheme::loadmodule { 'modules/nickserv/taxonomy': } 68 | atheme::loadmodule { 'modules/nickserv/vacation': } 69 | atheme::loadmodule { 'modules/nickserv/verify': } 70 | atheme::loadmodule { 'modules/nickserv/vhost': } 71 | 72 | # ChanServ modules. 73 | atheme::loadmodule { 'modules/chanserv/main': } 74 | atheme::loadmodule { 'modules/chanserv/access': } 75 | atheme::loadmodule { 'modules/chanserv/akick': } 76 | atheme::loadmodule { 'modules/chanserv/ban': } 77 | #atheme::loadmodule { 'modules/chanserv/unban_self': } 78 | atheme::loadmodule { 'modules/chanserv/clone': } 79 | atheme::loadmodule { 'modules/chanserv/close': } 80 | atheme::loadmodule { 'modules/chanserv/clear': } 81 | atheme::loadmodule { 'modules/chanserv/clear_bans': } 82 | atheme::loadmodule { 'modules/chanserv/clear_flags': } 83 | atheme::loadmodule { 'modules/chanserv/clear_users': } 84 | atheme::loadmodule { 'modules/chanserv/count': } 85 | atheme::loadmodule { 'modules/chanserv/drop': } 86 | #atheme::loadmodule { 'modules/chanserv/fflags': } 87 | atheme::loadmodule { 'modules/chanserv/flags': } 88 | atheme::loadmodule { 'modules/chanserv/ftransfer': } 89 | atheme::loadmodule { 'modules/chanserv/getkey': } 90 | #atheme::loadmodule { 'modules/chanserv/halfop': } 91 | atheme::loadmodule { 'modules/chanserv/help': } 92 | atheme::loadmodule { 'modules/chanserv/hold': } 93 | atheme::loadmodule { 'modules/chanserv/info': } 94 | atheme::loadmodule { 'modules/chanserv/invite': } 95 | atheme::loadmodule { 'modules/chanserv/kick': } 96 | atheme::loadmodule { 'modules/chanserv/list': } 97 | atheme::loadmodule { 'modules/chanserv/mark': } 98 | #atheme::loadmodule { 'modules/chanserv/moderate': } 99 | atheme::loadmodule { 'modules/chanserv/op': } 100 | #atheme::loadmodule { 'modules/chanserv/owner': } 101 | #atheme::loadmodule { 'modules/chanserv/protect': } 102 | #atheme::loadmodule { 'modules/chanserv/quiet': } 103 | atheme::loadmodule { 'modules/chanserv/recover': } 104 | atheme::loadmodule { 'modules/chanserv/register': } 105 | atheme::loadmodule { 'modules/chanserv/set_core': } 106 | atheme::loadmodule { 'modules/chanserv/set_email': } 107 | atheme::loadmodule { 'modules/chanserv/set_entrymsg': } 108 | atheme::loadmodule { 'modules/chanserv/set_fantasy': } 109 | atheme::loadmodule { 'modules/chanserv/set_founder': } 110 | #atheme::loadmodule { 'modules/chanserv/set_gameserv': } 111 | atheme::loadmodule { 'modules/chanserv/set_guard': } 112 | atheme::loadmodule { 'modules/chanserv/set_keeptopic': } 113 | #atheme::loadmodule { 'modules/chanserv/set_limitflags': } 114 | atheme::loadmodule { 'modules/chanserv/set_mlock': } 115 | atheme::loadmodule { 'modules/chanserv/set_prefix': } 116 | #atheme::loadmodule { 'modules/chanserv/set_private': } 117 | atheme::loadmodule { 'modules/chanserv/set_property': } 118 | atheme::loadmodule { 'modules/chanserv/set_restricted': } 119 | atheme::loadmodule { 'modules/chanserv/set_secure': } 120 | atheme::loadmodule { 'modules/chanserv/set_topiclock': } 121 | atheme::loadmodule { 'modules/chanserv/set_url': } 122 | atheme::loadmodule { 'modules/chanserv/set_verbose': } 123 | atheme::loadmodule { 'modules/chanserv/status': } 124 | atheme::loadmodule { 'modules/chanserv/sync': } 125 | #atheme::loadmodule { 'modules/chanserv/successor_acl': } 126 | atheme::loadmodule { 'modules/chanserv/taxonomy': } 127 | atheme::loadmodule { 'modules/chanserv/template': } 128 | atheme::loadmodule { 'modules/chanserv/topic': } 129 | atheme::loadmodule { 'modules/chanserv/voice': } 130 | atheme::loadmodule { 'modules/chanserv/why': } 131 | #atheme::loadmodule { 'modules/chanserv/xop': } 132 | 133 | # CHANFIX module. 134 | #atheme::loadmodule { 'modules/chanfix/main': } 135 | 136 | # OperServ modules. 137 | atheme::loadmodule { 'modules/operserv/main': } 138 | atheme::loadmodule { 'modules/operserv/akill': } 139 | #atheme::loadmodule { 'modules/operserv/clearchan': } 140 | #atheme::loadmodule { 'modules/operserv/clones': } 141 | atheme::loadmodule { 'modules/operserv/compare': } 142 | #atheme::loadmodule { 'modules/operserv/greplog': } 143 | atheme::loadmodule { 'modules/operserv/help': } 144 | atheme::loadmodule { 'modules/operserv/identify': } 145 | atheme::loadmodule { 'modules/operserv/ignore': } 146 | atheme::loadmodule { 'modules/operserv/info': } 147 | atheme::loadmodule { 'modules/operserv/jupe': } 148 | atheme::loadmodule { 'modules/operserv/mode': } 149 | atheme::loadmodule { 'modules/operserv/modinspect': } 150 | atheme::loadmodule { 'modules/operserv/modlist': } 151 | atheme::loadmodule { 'modules/operserv/modload': } 152 | atheme::loadmodule { 'modules/operserv/modunload': } 153 | atheme::loadmodule { 'modules/operserv/modreload': } 154 | atheme::loadmodule { 'modules/operserv/noop': } 155 | #atheme::loadmodule { 'modules/operserv/override': } 156 | #atheme::loadmodule { 'modules/operserv/rakill': } 157 | atheme::loadmodule { 'modules/operserv/readonly': } 158 | atheme::loadmodule { 'modules/operserv/rehash': } 159 | atheme::loadmodule { 'modules/operserv/restart': } 160 | atheme::loadmodule { 'modules/operserv/rmatch': } 161 | atheme::loadmodule { 'modules/operserv/rnc': } 162 | atheme::loadmodule { 'modules/operserv/rwatch': } 163 | atheme::loadmodule { 'modules/operserv/set': } 164 | atheme::loadmodule { 'modules/operserv/sgline': } 165 | atheme::loadmodule { 'modules/operserv/shutdown': } 166 | #atheme::loadmodule { 'modules/operserv/soper': } 167 | atheme::loadmodule { 'modules/operserv/specs': } 168 | atheme::loadmodule { 'modules/operserv/sqline': } 169 | atheme::loadmodule { 'modules/operserv/update': } 170 | atheme::loadmodule { 'modules/operserv/uptime': } 171 | 172 | # MemoServ modules. 173 | atheme::loadmodule { 'modules/memoserv/main': } 174 | atheme::loadmodule { 'modules/memoserv/help': } 175 | atheme::loadmodule { 'modules/memoserv/send': } 176 | atheme::loadmodule { 'modules/memoserv/sendops': } 177 | atheme::loadmodule { 'modules/memoserv/sendgroup': } 178 | atheme::loadmodule { 'modules/memoserv/list': } 179 | atheme::loadmodule { 'modules/memoserv/read': } 180 | atheme::loadmodule { 'modules/memoserv/forward': } 181 | atheme::loadmodule { 'modules/memoserv/delete': } 182 | atheme::loadmodule { 'modules/memoserv/ignore': } 183 | 184 | # Global module. 185 | atheme::loadmodule { 'modules/global/main': } 186 | 187 | # InfoServ module. 188 | atheme::loadmodule { 'modules/infoserv/main': } 189 | 190 | # SASL agent module. 191 | atheme::loadmodule { 'modules/saslserv/main': } 192 | atheme::loadmodule { 'modules/saslserv/plain': } 193 | #atheme::loadmodule { 'modules/saslserv/dh-blowfish': } /* requires SSL */ 194 | atheme::loadmodule { 'modules/saslserv/authcookie': } 195 | #atheme::loadmodule { 'modules/saslserv/external': } 196 | 197 | # GameServ modules. 198 | #atheme::loadmodule { 'modules/gameserv/main': } 199 | #atheme::loadmodule { 'modules/gameserv/dice': } 200 | #atheme::loadmodule { 'modules/gameserv/eightball': } 201 | #atheme::loadmodule { 'modules/gameserv/gamecalc': } 202 | #atheme::loadmodule { 'modules/gameserv/help': } 203 | #atheme::loadmodule { 'modules/gameserv/lottery': } 204 | #atheme::loadmodule { 'modules/gameserv/namegen': } 205 | #atheme::loadmodule { 'modules/gameserv/rps': } 206 | 207 | # RPGServ modules. 208 | #atheme::loadmodule { 'modules/rpgserv/main': } 209 | #atheme::loadmodule { 'modules/rpgserv/enable': } 210 | #atheme::loadmodule { 'modules/rpgserv/help': } 211 | #atheme::loadmodule { 'modules/rpgserv/info': } 212 | #atheme::loadmodule { 'modules/rpgserv/list': } 213 | #atheme::loadmodule { 'modules/rpgserv/search': } 214 | #atheme::loadmodule { 'modules/rpgserv/set': } 215 | 216 | # BotServ modules. 217 | #atheme::loadmodule { 'modules/botserv/main': } 218 | #atheme::loadmodule { 'modules/botserv/help': } 219 | #atheme::loadmodule { 'modules/botserv/info': } 220 | #atheme::loadmodule { 'modules/botserv/bottalk': } 221 | #atheme::loadmodule { 'modules/botserv/set_core': } 222 | #atheme::loadmodule { 'modules/botserv/set_fantasy': } 223 | #atheme::loadmodule { 'modules/botserv/set_nobot': } 224 | #atheme::loadmodule { 'modules/botserv/set_private': } 225 | 226 | # HostServ modules. 227 | #atheme::loadmodule { 'modules/hostserv/main': } 228 | #atheme::loadmodule { 'modules/hostserv/help': } 229 | #atheme::loadmodule { 'modules/hostserv/onoff': } 230 | #atheme::loadmodule { 'modules/hostserv/offer': } 231 | #atheme::loadmodule { 'modules/hostserv/request': } 232 | #atheme::loadmodule { 'modules/hostserv/vhost': } 233 | #atheme::loadmodule { 'modules/hostserv/vhostnick': } 234 | #atheme::loadmodule { 'modules/hostserv/group': } 235 | 236 | # HelpServ modules. 237 | #atheme::loadmodule { 'modules/helpserv/main': } 238 | #atheme::loadmodule { 'modules/helpserv/helpme': } 239 | #atheme::loadmodule { 'modules/helpserv/ticket': } 240 | #atheme::loadmodule { 'modules/helpserv/services': } 241 | 242 | # Channel listing service. 243 | #atheme::loadmodule { 'modules/alis/main': } 244 | 245 | # StatServ module. 246 | atheme::loadmodule { 'modules/statserv/main': } 247 | #atheme::loadmodule { 'modules/statserv/channel': } 248 | atheme::loadmodule { 'modules/statserv/netsplit': } 249 | atheme::loadmodule { 'modules/statserv/server': } 250 | 251 | # GroupServ module. 252 | atheme::loadmodule { 'modules/groupserv/main': } 253 | atheme::loadmodule { 'modules/groupserv/acsnolimit': } 254 | atheme::loadmodule { 'modules/groupserv/drop': } 255 | atheme::loadmodule { 'modules/groupserv/fdrop': } 256 | atheme::loadmodule { 'modules/groupserv/fflags': } 257 | atheme::loadmodule { 'modules/groupserv/flags': } 258 | atheme::loadmodule { 'modules/groupserv/help': } 259 | atheme::loadmodule { 'modules/groupserv/info': } 260 | atheme::loadmodule { 'modules/groupserv/join': } 261 | atheme::loadmodule { 'modules/groupserv/list': } 262 | atheme::loadmodule { 'modules/groupserv/listchans': } 263 | atheme::loadmodule { 'modules/groupserv/register': } 264 | atheme::loadmodule { 'modules/groupserv/regnolimit': } 265 | atheme::loadmodule { 'modules/groupserv/set': } 266 | atheme::loadmodule { 'modules/groupserv/set_channel': } 267 | atheme::loadmodule { 'modules/groupserv/set_description': } 268 | atheme::loadmodule { 'modules/groupserv/set_email': } 269 | atheme::loadmodule { 'modules/groupserv/set_joinflags': } 270 | atheme::loadmodule { 'modules/groupserv/set_open': } 271 | atheme::loadmodule { 'modules/groupserv/set_public': } 272 | atheme::loadmodule { 'modules/groupserv/set_url': } 273 | 274 | # HTTP Server 275 | atheme::loadmodule { 'modules/misc/httpd': } 276 | 277 | # XMLRPC server module. 278 | atheme::loadmodule { 'modules/transport/xmlrpc': } 279 | 280 | # Extended target entity types. [EXPERIMENTAL] 281 | #atheme::loadmodule { 'modules/exttarget/main': } 282 | #atheme::loadmodule { 'modules/exttarget/oper': } 283 | #atheme::loadmodule { 'modules/exttarget/registered': } 284 | #atheme::loadmodule { 'modules/exttarget/channel': } 285 | #atheme::loadmodule { 'modules/exttarget/chanacs': } 286 | 287 | # Other modules. 288 | #atheme::loadmodule { 'modules/contrib/ns_listlogins': } 289 | } 290 | -------------------------------------------------------------------------------- /templates/atheme.conf.erb: -------------------------------------------------------------------------------- 1 | /* This is an example configuration for Services. 2 | * 3 | * All statements end in semi-colons (';'). 4 | * Shell style, C style, and C++ style comments may be used. 5 | * 6 | * Items marked with "(*)" are reconfigurable at runtime via REHASH. 7 | */ 8 | 9 | /****************************************************************************** 10 | * MODULES SECTION. * 11 | ******************************************************************************/ 12 | 13 | /* 14 | * These are the modules included with the core distribution of Services. 15 | * 16 | * You may be interested in the atheme community modules distribution as 17 | * well, which adds additional features that may or may not be compatible 18 | * with the project paradigms intended for maintainance of the core of 19 | * atheme-services. 20 | * 21 | * Visit the atheme-services website for more information and to download them. 22 | * 23 | * Modules marked [experimental] will taint your atheme-services instance. Do 24 | * not file any bug reports with us about using Services with those modules; 25 | * they will be ignored. 26 | */ 27 | 28 | /* Protocol module. 29 | * 30 | * Please select a protocol module. Different servers use different protocols. 31 | * Below is a listing of ircd's known to work with the various protocol modules 32 | * available. 33 | * 34 | * Asuka 1.2.1 or later modules/protocol/asuka 35 | * Bahamut 1.8.x modules/protocol/bahamut 36 | * Charybdis IRCd modules/protocol/charybdis 37 | * DreamForge 4.6.7 or later modules/protocol/dreamforge 38 | * Hybrid 7.1.2 and later modules/protocol/hybrid 39 | * InspIRCd 1.2 - 2.1 (link protocol 1201-1204) modules/protocol/inspircd 40 | * ircd-ratbox 2.0 and later modules/protocol/ratbox 41 | * IRCNet ircd (ircd 2.11) modules/protocol/ircnet 42 | * ircd-seven modules/protocol/ircd-seven 43 | * ircu 2.10.11.07 or later modules/protocol/undernet 44 | * Nefarious IRCu 0.4.0 or later modules/protocol/nefarious 45 | * ngIRCd 19 or later [experimental] modules/protocol/ngircd 46 | * ShadowIRCd 5.0 or later modules/protocol/shadowircd 47 | * SporksIRCd modules/protocol/sporksircd 48 | * UnrealIRCd 3.1/3.2 modules/protocol/unreal 49 | * 50 | * If your IRCd vendor has supplied a module file, build it and load it here 51 | * instead of one above. 52 | */ 53 | loadmodule "modules/protocol/charybdis"; 54 | 55 | /* Protocol mixins. 56 | * 57 | * These should be used if you do not have/want certain features on your 58 | * network that your ircd normally has. If you do not know what this means, 59 | * you do not need any of them. 60 | * 61 | * Disable halfops modules/protocol/mixin_nohalfops 62 | * Disable holdnick (use enforcer clients) modules/protocol/mixin_noholdnick 63 | * Disable "protect" mode on channels modules/protocol/mixin_noprotect 64 | * Disable "owner" mode on channels modules/protocol/mixin_noowner 65 | */ 66 | #loadmodule "modules/protocol/mixin_nohalfops"; 67 | #loadmodule "modules/protocol/mixin_noholdnick"; 68 | #loadmodule "modules/protocol/mixin_noprotect"; 69 | #loadmodule "modules/protocol/mixin_noowner"; 70 | 71 | /* Database backend module. 72 | * 73 | * Please select a database backend module. Different backends allow for 74 | * different ways in which the services data can be manipulated. YOU MAY 75 | * ONLY HAVE ONE OF THESE BACKENDS LOADED. 76 | * 77 | * The following backends are available: 78 | * 79 | * Atheme 0.1 flatfile database format modules/backend/flatfile 80 | * Open Services Exchange database format modules/backend/opensex 81 | * 82 | * Most networks will want opensex. 83 | */ 84 | loadmodule "modules/backend/opensex"; 85 | 86 | /* Crypto module. 87 | * 88 | * If you would like encryption for your services passwords, please 89 | * select a module here. Note that upon starting with a crypto module 90 | * YOUR PASSWORDS ARE IMMEDIATELY AND IRREVERSIBLY CONVERTED. Make at 91 | * least TWO backups of your database before experimenting with this. 92 | * If you have several thousand accounts, this conversion may take 93 | * appreciable time. 94 | * 95 | * The following crypto modules are available: 96 | * 97 | * POSIX-style crypt(3) modules/crypto/posix 98 | * IRCServices (also Anope etc) compatibility modules/crypto/ircservices 99 | * Raw MD5 (Anope compatibility) modules/crypto/rawmd5 100 | * Raw SHA1 (Anope compatibility) modules/crypto/rawsha1 101 | * 102 | * The ircservices, rawmd5 and rawsha1 modules are only recommended for use with 103 | * a database converted from other services with password encryption. 104 | * 105 | * The rawsha1 module requires OpenSSL. 106 | */ 107 | loadmodule "modules/crypto/posix"; 108 | 109 | /* Authentication module. 110 | * 111 | * These allow using passwords from an external system. The password given 112 | * when registering a new account is also checked against the external 113 | * system. 114 | * 115 | * The following authentication modules are available: 116 | * 117 | * LDAP modules/auth/ldap 118 | * 119 | * The LDAP module requires OpenLDAP client libraries. It uses them in a 120 | * synchronous manner, which means that an unresponsive LDAP server can 121 | * freeze services. 122 | */ 123 | #loadmodule "modules/auth/ldap"; 124 | 125 | /* NickServ modules. 126 | * 127 | * Here you can disable or enable certain features of NickServ, by 128 | * defining which modules are loaded. You can even disable NickServ 129 | * entirely. Please note however, that an authentication service 130 | * (either NickServ, or UserServ) are required for proper functionality. 131 | * 132 | * The CrackLib password validation module requires CrackLib to be 133 | * installed on your system in order to use. 134 | * 135 | * Core components modules/nickserv/main 136 | * Nickname access lists modules/nickserv/access 137 | * Bad email address blocking modules/nickserv/badmail 138 | * CertFP fingerprint managment modules/nickserv/cert 139 | * CrackLib password validation modules/nickserv/cracklib 140 | * DROP command modules/nickserv/drop 141 | * Nickname enforcement modules/nickserv/enforce 142 | * GHOST command modules/nickserv/ghost 143 | * GROUP and UNGROUP commands modules/nickserv/group 144 | * HELP command modules/nickserv/help 145 | * Nickname expiry override (HOLD command) modules/nickserv/hold 146 | * IDENTIFY command modules/nickserv/identify 147 | * INFO command modules/nickserv/info 148 | * LIST command modules/nickserv/list 149 | * LISTMAIL command modules/nickserv/listmail 150 | * LISTOWNMAIL command modules/nickserv/listownmail 151 | * LOGIN command (for no_nick_ownership) modules/nickserv/login 152 | * LOGOUT command modules/nickserv/logout 153 | * MARK command modules/nickserv/mark 154 | * FREEZE command modules/nickserv/freeze 155 | * LISTCHANS command modules/nickserv/listchans 156 | * LISTGROUPS command modules/nickserv/listgroups 157 | * REGISTER command modules/nickserv/register 158 | * Bypass registration limits (REGNOLIMIT) modules/nickserv/regnolimit 159 | * Password reset (RESETPASS command) modules/nickserv/resetpass 160 | * RESTRICT command modules/nickserv/restrict 161 | * Password return (RETURN command) modules/nickserv/return 162 | * Password retrieval (SENDPASS command) modules/nickserv/sendpass 163 | * Password retrieval allowed to normal users modules/nickserv/sendpass_user 164 | * SET command core modules/nickserv/set_core 165 | * Change primary nickname (SET ACCOUNTNAME) modules/nickserv/set_accountname 166 | * SET EMAIL command modules/nickserv/set_email 167 | * SET EMAILMEMOS command modules/nickserv/set_emailmemos 168 | * SET ENFORCETIME command modules/nickserv/set_enforcetime 169 | * SET HIDEMAIL command modules/nickserv/set_hidemail 170 | * SET LANGUAGE command modules/nickserv/set_language 171 | * SET NEVERGROUP command modules/nickserv/set_nevergroup 172 | * SET NEVEROP command modules/nickserv/set_neverop 173 | * SET NOGREET command modules/nickserv/set_nogreet 174 | * SET NOMEMO command modules/nickserv/set_nomemo 175 | * SET NOOP command modules/nickserv/set_noop 176 | * SET PASSWORD command modules/nickserv/set_password 177 | * PRIVMSG instead of NOTICE (SET PRIVMSG cmd) modules/nickserv/set_privmsg 178 | * Account info hiding (SET PRIVATE command) modules/nickserv/set_private 179 | * SET PROPERTY command modules/nickserv/set_property 180 | * SET QUIETCHG command modules/nickserv/set_quietchg 181 | * Password retrieval uses code (SETPASS cmd) modules/nickserv/setpass 182 | * STATUS command modules/nickserv/status 183 | * Nickname metadata viewer (TAXONOMY command) modules/nickserv/taxonomy 184 | * VACATION command modules/nickserv/vacation 185 | * VERIFY command modules/nickserv/verify 186 | * VHOST command modules/nickserv/vhost 187 | */ 188 | loadmodule "modules/nickserv/main"; 189 | #loadmodule "modules/nickserv/access"; 190 | loadmodule "modules/nickserv/badmail"; 191 | #loadmodule "modules/nickserv/cert"; 192 | #loadmodule "modules/nickserv/cracklib"; 193 | loadmodule "modules/nickserv/drop"; 194 | #loadmodule "modules/nickserv/enforce"; 195 | loadmodule "modules/nickserv/ghost"; 196 | loadmodule "modules/nickserv/group"; 197 | loadmodule "modules/nickserv/help"; 198 | loadmodule "modules/nickserv/hold"; 199 | loadmodule "modules/nickserv/identify"; 200 | loadmodule "modules/nickserv/info"; 201 | loadmodule "modules/nickserv/list"; 202 | loadmodule "modules/nickserv/listmail"; 203 | #loadmodule "modules/nickserv/listownmail"; 204 | #loadmodule "modules/nickserv/login"; 205 | loadmodule "modules/nickserv/logout"; 206 | loadmodule "modules/nickserv/mark"; 207 | loadmodule "modules/nickserv/freeze"; 208 | loadmodule "modules/nickserv/listchans"; 209 | loadmodule "modules/nickserv/listgroups"; 210 | loadmodule "modules/nickserv/register"; 211 | loadmodule "modules/nickserv/regnolimit"; 212 | loadmodule "modules/nickserv/resetpass"; 213 | loadmodule "modules/nickserv/restrict"; 214 | loadmodule "modules/nickserv/return"; 215 | loadmodule "modules/nickserv/setpass"; 216 | #loadmodule "modules/nickserv/sendpass"; 217 | loadmodule "modules/nickserv/sendpass_user"; 218 | loadmodule "modules/nickserv/set_core"; 219 | loadmodule "modules/nickserv/set_accountname"; 220 | loadmodule "modules/nickserv/set_email"; 221 | loadmodule "modules/nickserv/set_emailmemos"; 222 | #loadmodule "modules/nickserv/set_enforcetime"; 223 | loadmodule "modules/nickserv/set_hidemail"; 224 | loadmodule "modules/nickserv/set_language"; 225 | loadmodule "modules/nickserv/set_nevergroup"; 226 | loadmodule "modules/nickserv/set_neverop"; 227 | loadmodule "modules/nickserv/set_nogreet"; 228 | loadmodule "modules/nickserv/set_nomemo"; 229 | loadmodule "modules/nickserv/set_noop"; 230 | loadmodule "modules/nickserv/set_password"; 231 | #loadmodule "modules/nickserv/set_privmsg"; 232 | #loadmodule "modules/nickserv/set_private"; 233 | loadmodule "modules/nickserv/set_property"; 234 | loadmodule "modules/nickserv/set_quietchg"; 235 | loadmodule "modules/nickserv/status"; 236 | loadmodule "modules/nickserv/taxonomy"; 237 | loadmodule "modules/nickserv/vacation"; 238 | loadmodule "modules/nickserv/verify"; 239 | loadmodule "modules/nickserv/vhost"; 240 | 241 | /* ChanServ modules. 242 | * 243 | * Here you can disable or enable certain features of ChanServ, by 244 | * defining which modules are loaded. You can even disable ChanServ 245 | * entirely. Please note that ChanServ requires an authentication 246 | * service, either NickServ or UserServ will do. 247 | * 248 | * Core components modules/chanserv/main 249 | * ACCESS command (simplified ACL editing) modules/chanserv/access 250 | * AKICK command modules/chanserv/akick 251 | * BAN/UNBAN commands modules/chanserv/ban 252 | * UNBAN self only (load ban or this not both) modules/chanserv/unban_self 253 | * CLOSE command modules/chanserv/close 254 | * CLONE command modules/chanserv/clone 255 | * CLEAR command modules/chanserv/clear 256 | * CLEAR BANS command modules/chanserv/clear_bans 257 | * CLEAR FLAGS command modules/chanserv/clear_flags 258 | * CLEAR USERS command modules/chanserv/clear_users 259 | * COUNT command modules/chanserv/count 260 | * DROP command modules/chanserv/drop 261 | * Forced flags changes modules/chanserv/fflags 262 | * FLAGS command modules/chanserv/flags 263 | * Forced foundership transfers modules/chanserv/ftransfer 264 | * GETKEY command modules/chanserv/getkey 265 | * HALFOP/DEHALFOP commands modules/chanserv/halfop 266 | * HELP command modules/chanserv/help 267 | * Channel expiry override (HOLD command) modules/chanserv/hold 268 | * INFO command modules/chanserv/info 269 | * INVITE command modules/chanserv/invite 270 | * KICK/KICKBAN commands modules/chanserv/kick 271 | * LIST command modules/chanserv/list 272 | * MARK command modules/chanserv/mark 273 | * Moderated channel registrations modules/chanserv/moderate 274 | * OP/DEOP commands modules/chanserv/op 275 | * OWNER/DEOWNER commands modules/chanserv/owner 276 | * PROTECT/DEPROTECT commands modules/chanserv/protect 277 | * QUIET command (+q support) modules/chanserv/quiet 278 | * Channel takeover recovery (RECOVER command) modules/chanserv/recover 279 | * REGISTER command modules/chanserv/register 280 | * SET command core modules/chanserv/set_core 281 | * SET EMAIL command modules/chanserv/set_email 282 | * SET ENTRYMSG command modules/chanserv/set_entrymsg 283 | * SET FANTASY command modules/chanserv/set_fantasy 284 | * SET FOUNDER command modules/chanserv/set_founder 285 | * SET GAMESERV command modules/chanserv/set_gameserv 286 | * SET GUARD command modules/chanserv/set_guard 287 | * SET KEEPTOPIC command modules/chanserv/set_keeptopic 288 | * SET LIMITFLAGS command modules/chanserv/set_limitflags 289 | * SET MLOCK command modules/chanserv/set_mlock 290 | * SET PREFIX command modules/chanserv/set_prefix 291 | * Channel info hiding (SET PRIVATE command) modules/chanserv/set_private 292 | * SET PROPERTY command modules/chanserv/set_property 293 | * SET RESTRICTED command modules/chanserv/set_restricted 294 | * SET SECURE command modules/chanserv/set_secure 295 | * SET TOPICLOCK command modules/chanserv/set_topiclock 296 | * SET URL command modules/chanserv/set_url 297 | * SET VERBOSE command modules/chanserv/set_verbose 298 | * STATUS command modules/chanserv/status 299 | * SYNC command (and automatic ACL syncing) modules/chanserv/sync 300 | * Named Successor ACL flag modules/chanserv/successor_acl 301 | * Channel metadata viewer (TAXONOMY command) modules/chanserv/taxonomy 302 | * TEMPLATE command modules/chanserv/template 303 | * TOPIC/TOPICAPPEND commands modules/chanserv/topic 304 | * VOICE/DEVOICE commands modules/chanserv/voice 305 | * WHY command modules/chanserv/why 306 | * VOP/HOP/AOP/SOP commands modules/chanserv/xop 307 | * This module provides emulation of the ircservices XOP scheme ONLY. 308 | * Do not report discrepencies when using native commands to edit channel 309 | * ACLs. This is intentional. 310 | */ 311 | loadmodule "modules/chanserv/main"; 312 | loadmodule "modules/chanserv/access"; 313 | loadmodule "modules/chanserv/akick"; 314 | loadmodule "modules/chanserv/ban"; 315 | #loadmodule "modules/chanserv/unban_self"; 316 | loadmodule "modules/chanserv/clone"; 317 | loadmodule "modules/chanserv/close"; 318 | loadmodule "modules/chanserv/clear"; 319 | loadmodule "modules/chanserv/clear_bans"; 320 | loadmodule "modules/chanserv/clear_flags"; 321 | loadmodule "modules/chanserv/clear_users"; 322 | loadmodule "modules/chanserv/count"; 323 | loadmodule "modules/chanserv/drop"; 324 | #loadmodule "modules/chanserv/fflags"; 325 | loadmodule "modules/chanserv/flags"; 326 | loadmodule "modules/chanserv/ftransfer"; 327 | loadmodule "modules/chanserv/getkey"; 328 | #loadmodule "modules/chanserv/halfop"; 329 | loadmodule "modules/chanserv/help"; 330 | loadmodule "modules/chanserv/hold"; 331 | loadmodule "modules/chanserv/info"; 332 | loadmodule "modules/chanserv/invite"; 333 | loadmodule "modules/chanserv/kick"; 334 | loadmodule "modules/chanserv/list"; 335 | loadmodule "modules/chanserv/mark"; 336 | #loadmodule "modules/chanserv/moderate"; 337 | loadmodule "modules/chanserv/op"; 338 | #loadmodule "modules/chanserv/owner"; 339 | #loadmodule "modules/chanserv/protect"; 340 | #loadmodule "modules/chanserv/quiet"; 341 | loadmodule "modules/chanserv/recover"; 342 | loadmodule "modules/chanserv/register"; 343 | loadmodule "modules/chanserv/set_core"; 344 | loadmodule "modules/chanserv/set_email"; 345 | loadmodule "modules/chanserv/set_entrymsg"; 346 | loadmodule "modules/chanserv/set_fantasy"; 347 | loadmodule "modules/chanserv/set_founder"; 348 | #loadmodule "modules/chanserv/set_gameserv"; 349 | loadmodule "modules/chanserv/set_guard"; 350 | loadmodule "modules/chanserv/set_keeptopic"; 351 | #loadmodule "modules/chanserv/set_limitflags"; 352 | loadmodule "modules/chanserv/set_mlock"; 353 | loadmodule "modules/chanserv/set_prefix"; 354 | #loadmodule "modules/chanserv/set_private"; 355 | loadmodule "modules/chanserv/set_property"; 356 | loadmodule "modules/chanserv/set_restricted"; 357 | loadmodule "modules/chanserv/set_secure"; 358 | loadmodule "modules/chanserv/set_topiclock"; 359 | loadmodule "modules/chanserv/set_url"; 360 | loadmodule "modules/chanserv/set_verbose"; 361 | loadmodule "modules/chanserv/status"; 362 | loadmodule "modules/chanserv/sync"; 363 | #loadmodule "modules/chanserv/successor_acl"; 364 | loadmodule "modules/chanserv/taxonomy"; 365 | loadmodule "modules/chanserv/template"; 366 | loadmodule "modules/chanserv/topic"; 367 | loadmodule "modules/chanserv/voice"; 368 | loadmodule "modules/chanserv/why"; 369 | #loadmodule "modules/chanserv/xop"; 370 | 371 | /* CHANFIX module. 372 | * 373 | * Here you can disable or enable certain features of CHANFIX, by 374 | * defining which modules are loaded. 375 | * 376 | * Core components modules/chanfix/main 377 | */ 378 | #loadmodule "modules/chanfix/main"; 379 | 380 | /* OperServ modules. 381 | * 382 | * Here you can disable or enable certain features of OperServ, by 383 | * defining which modules are loaded. 384 | * 385 | * Core components modules/operserv/main 386 | * AKILL system modules/operserv/akill 387 | * CLEARCHAN command modules/operserv/clearchan 388 | * CLONES system modules/operserv/clones 389 | * COMPARE command modules/operserv/compare 390 | * GREPLOG command modules/operserv/greplog 391 | * HELP command modules/operserv/help 392 | * IGNORE system modules/operserv/ignore 393 | * IDENTIFY command modules/operserv/identify 394 | * INFO command modules/operserv/info 395 | * INJECT command modules/operserv/inject 396 | * JUPE command modules/operserv/jupe 397 | * MODE command modules/operserv/mode 398 | * MODINSPECT command modules/operserv/modinspect 399 | * MODLIST command modules/operserv/modlist 400 | * MODLOAD command modules/operserv/modload 401 | * MODRELOAD command modules/operserv/modreload 402 | * MODUNLOAD command modules/operserv/modunload 403 | * NOOP system modules/operserv/noop 404 | * Override access (OVERRIDE command) modules/operserv/override 405 | * Regex mass akill (RAKILL command) modules/operserv/rakill 406 | * RAW command modules/operserv/raw 407 | * READONLY command modules/operserv/readonly 408 | * REHASH command modules/operserv/rehash 409 | * RESTART command modules/operserv/restart 410 | * Display regex matching (RMATCH command) modules/operserv/rmatch 411 | * Most common realnames (RNC command) modules/operserv/rnc 412 | * RWATCH system modules/operserv/rwatch 413 | * Temporarily modify config options (SET command) modules/operserv/set 414 | * SGLINE system modules/operserv/sgline 415 | * SHUTDOWN command modules/operserv/shutdown 416 | * Non-config oper privileges (SOPER command) modules/operserv/soper 417 | * Oper privilege display (SPECS command) modules/operserv/specs 418 | * SQLINE system modules/operserv/sqline 419 | * UPDATE command modules/operserv/update 420 | * UPTIME command modules/operserv/uptime 421 | */ 422 | loadmodule "modules/operserv/main"; 423 | loadmodule "modules/operserv/akill"; 424 | #loadmodule "modules/operserv/clearchan"; 425 | #loadmodule "modules/operserv/clones"; 426 | loadmodule "modules/operserv/compare"; 427 | #loadmodule "modules/operserv/greplog"; 428 | loadmodule "modules/operserv/help"; 429 | loadmodule "modules/operserv/identify"; 430 | loadmodule "modules/operserv/ignore"; 431 | loadmodule "modules/operserv/info"; 432 | loadmodule "modules/operserv/jupe"; 433 | loadmodule "modules/operserv/mode"; 434 | loadmodule "modules/operserv/modinspect"; 435 | loadmodule "modules/operserv/modlist"; 436 | loadmodule "modules/operserv/modload"; 437 | loadmodule "modules/operserv/modunload"; 438 | loadmodule "modules/operserv/modreload"; 439 | loadmodule "modules/operserv/noop"; 440 | #loadmodule "modules/operserv/override"; 441 | #loadmodule "modules/operserv/rakill"; 442 | loadmodule "modules/operserv/readonly"; 443 | loadmodule "modules/operserv/rehash"; 444 | loadmodule "modules/operserv/restart"; 445 | loadmodule "modules/operserv/rmatch"; 446 | loadmodule "modules/operserv/rnc"; 447 | loadmodule "modules/operserv/rwatch"; 448 | loadmodule "modules/operserv/set"; 449 | loadmodule "modules/operserv/sgline"; 450 | loadmodule "modules/operserv/shutdown"; 451 | #loadmodule "modules/operserv/soper"; 452 | loadmodule "modules/operserv/specs"; 453 | loadmodule "modules/operserv/sqline"; 454 | loadmodule "modules/operserv/update"; 455 | loadmodule "modules/operserv/uptime"; 456 | 457 | /* MemoServ modules. 458 | * 459 | * Here you can disable or enable certain features of MemoServ, by 460 | * defining which modules are loaded. You can even disable MemoServ 461 | * entirely. 462 | * 463 | * Core components modules/memoserv/main 464 | * HELP command modules/memoserv/help 465 | * SEND command modules/memoserv/send 466 | * Channel memos (SENDOPS command) modules/memoserv/sendops 467 | * Group memos (SENDGROUP command) modules/memoserv/sendgroup 468 | * LIST command modules/memoserv/list 469 | * READ command modules/memoserv/read 470 | * FORWARD command modules/memoserv/forward 471 | * DELETE command modules/memoserv/delete 472 | * IGNORE command modules/memoserv/ignore 473 | */ 474 | loadmodule "modules/memoserv/main"; 475 | loadmodule "modules/memoserv/help"; 476 | loadmodule "modules/memoserv/send"; 477 | loadmodule "modules/memoserv/sendops"; 478 | loadmodule "modules/memoserv/sendgroup"; 479 | loadmodule "modules/memoserv/list"; 480 | loadmodule "modules/memoserv/read"; 481 | loadmodule "modules/memoserv/forward"; 482 | loadmodule "modules/memoserv/delete"; 483 | loadmodule "modules/memoserv/ignore"; 484 | 485 | /* Global module. 486 | * 487 | * Like the other services, the Global noticer is a module. You can 488 | * disable or enable it to your liking below. Please note that the 489 | * Global noticer is dependent on OperServ for full functionality. 490 | */ 491 | loadmodule "modules/global/main"; 492 | 493 | /* InfoServ module. 494 | * 495 | * Like the other services, InfoServ is a module. You can disable or 496 | * enable it to your liking below. 497 | */ 498 | loadmodule "modules/infoserv/main"; 499 | 500 | /* SASL agent module. 501 | * 502 | * Allows clients to authenticate to services via SASL with an appropriate 503 | * ircd. You need the core components and at least one mechanism. 504 | * 505 | * Core components modules/saslserv/main 506 | * PLAIN mechanism modules/saslserv/plain 507 | * DH-BLOWFISH mechanism modules/saslserv/dh-blowfish 508 | * AUTHCOOKIE mechanism (for IRIS) modules/saslserv/authcookie 509 | * EXTERNAL mechanism (IRCv3.1+) modules/saslserv/external 510 | */ 511 | loadmodule "modules/saslserv/main"; 512 | loadmodule "modules/saslserv/plain"; 513 | #loadmodule "modules/saslserv/dh-blowfish"; /* requires SSL */ 514 | loadmodule "modules/saslserv/authcookie"; 515 | #loadmodule "modules/saslserv/external"; 516 | 517 | /* GameServ modules. 518 | * 519 | * Here you can disable or enable certain features of GameServ, by 520 | * defining which modules are loaded. You can even disable GameServ 521 | * entirely. 522 | * 523 | * Core components modules/gameserv/main 524 | * DICE/WOD commands modules/gameserv/dice 525 | * EIGHTBALL command modules/gameserv/eightball 526 | * Game-specific dice calculators modules/gameserv/gamecalc 527 | * HELP commands modules/gameserv/help 528 | * LOTTERY command modules/gameserv/lottery 529 | * NAMEGEN command modules/gameserv/namegen 530 | * RPS command modules/gameserv/rps 531 | */ 532 | #loadmodule "modules/gameserv/main"; 533 | #loadmodule "modules/gameserv/dice"; 534 | #loadmodule "modules/gameserv/eightball"; 535 | #loadmodule "modules/gameserv/gamecalc"; 536 | #loadmodule "modules/gameserv/help"; 537 | #loadmodule "modules/gameserv/lottery"; 538 | #loadmodule "modules/gameserv/namegen"; 539 | #loadmodule "modules/gameserv/rps"; 540 | 541 | /* RPGServ modules. 542 | * 543 | * Here you can disable or enable certain features of RPGServ, by 544 | * defining which modules are loaded. You can even disable RPGServ 545 | * entirely. 546 | * 547 | * Core components modules/rpgserv/main 548 | * ENABLE/DISABLE commands modules/rpgserv/enable 549 | * HELP command modules/rpgserv/help 550 | * INFO command modules/rpgserv/info 551 | * LIST command modules/rpgserv/list 552 | * SEARCH command modules/rpgserv/search 553 | * SET commands modules/rpgserv/set 554 | */ 555 | #loadmodule "modules/rpgserv/main"; 556 | #loadmodule "modules/rpgserv/enable"; 557 | #loadmodule "modules/rpgserv/help"; 558 | #loadmodule "modules/rpgserv/info"; 559 | #loadmodule "modules/rpgserv/list"; 560 | #loadmodule "modules/rpgserv/search"; 561 | #loadmodule "modules/rpgserv/set"; 562 | 563 | /* BotServ modules. 564 | * 565 | * Here you can disable or enable certain features of BotServ, by 566 | * defining which modules are loaded. You can even disable BotServ 567 | * entirely. 568 | * 569 | * Core components modules/botserv/main 570 | * HELP command modules/botserv/help 571 | * INFO command modules/botserv/info 572 | * NPC commands (SAY, ACT) modules/botserv/bottalk 573 | * SET command (required for SET commands) modules/botserv/set_core 574 | * SET FANTASY command modules/botserv/set_fantasy 575 | * SET NOBOT command modules/botserv/set_nobot 576 | * SET PRIVATE command modules/botserv/set_private 577 | */ 578 | #loadmodule "modules/botserv/main"; 579 | #loadmodule "modules/botserv/help"; 580 | #loadmodule "modules/botserv/info"; 581 | #loadmodule "modules/botserv/bottalk"; 582 | #loadmodule "modules/botserv/set_core"; 583 | #loadmodule "modules/botserv/set_fantasy"; 584 | #loadmodule "modules/botserv/set_nobot"; 585 | #loadmodule "modules/botserv/set_private"; 586 | 587 | /* HostServ modules. 588 | * 589 | * Here you can disable or enable certain features of HostServ, by 590 | * defining which modules are loaded. You can even disable HostServ 591 | * entirely. 592 | * 593 | * HostServ is a more complex, and optional virtual host management service. 594 | * Users wishing only to set vhosts need not use it (they can use the builtin 595 | * vhost management of NickServ instead). 596 | * 597 | * Core components modules/hostserv/main 598 | * HELP command modules/hostserv/help 599 | * OFFER system modules/hostserv/offer 600 | * ON and OFF commands modules/hostserv/onoff 601 | * REQUEST system modules/hostserv/request 602 | * VHOST and LISTVHOST commands modules/hostserv/vhost 603 | * VHOSTNICK command modules/hostserv/vhostnick 604 | * GROUP command modules/hostserv/group 605 | */ 606 | #loadmodule "modules/hostserv/main"; 607 | #loadmodule "modules/hostserv/help"; 608 | #loadmodule "modules/hostserv/onoff"; 609 | #loadmodule "modules/hostserv/offer"; 610 | #loadmodule "modules/hostserv/request"; 611 | #loadmodule "modules/hostserv/vhost"; 612 | #loadmodule "modules/hostserv/vhostnick"; 613 | #loadmodule "modules/hostserv/group"; 614 | 615 | /* HelpServ modules. 616 | * HelpServ allows users to request help from network staff in a few different ways. 617 | * 618 | * Core components modules/helpserv/main 619 | * HELPME command modules/helpserv/helpme 620 | * Help Ticket system modules/helpserv/ticket 621 | * Service List modules/helpserv/services 622 | * 623 | * The ticket system works like a bugtracker ot helpdesk ticket system, HELPME 624 | * works like a one-time alert. You should probably only load one of the two systems. 625 | */ 626 | #loadmodule "modules/helpserv/main"; 627 | #loadmodule "modules/helpserv/helpme"; 628 | #loadmodule "modules/helpserv/ticket"; 629 | #loadmodule "modules/helpserv/services"; 630 | 631 | /* Channel listing service. 632 | * 633 | * Allows users to list channels with more flexibility than the /list 634 | * command. 635 | * 636 | * Core components modules/alis/main 637 | */ 638 | #loadmodule "modules/alis/main"; 639 | 640 | /* StatServ module. 641 | * StatServ provides basic statistics and split tracking. 642 | * 643 | * Core components modules/statserv/main 644 | * CHANNEL command modules/statserv/channel 645 | * NETSPLIT command modules/statserv/netsplit 646 | * SERVER command modules/statserv/server 647 | */ 648 | loadmodule "modules/statserv/main"; 649 | #loadmodule "modules/statserv/channel"; 650 | loadmodule "modules/statserv/netsplit"; 651 | loadmodule "modules/statserv/server"; 652 | 653 | /* GroupServ module. 654 | * GroupServ allows users to create groups to easily mass-manage channel 655 | * access and more. 656 | * 657 | * Core components modules/groupserv/main 658 | * ACSNOLIMIT command modules/groupserv/acsnolimit 659 | * DROP command modules/groupserv/drop 660 | * FDROP command modules/groupserv/fdrop 661 | * FFLAGS command modules/groupserv/fflags 662 | * FLAGS command modules/groupserv/flags 663 | * HELP command modules/groupserv/help 664 | * INFO command modules/groupserv/info 665 | * JOIN command modules/groupserv/join 666 | * LIST command modules/groupserv/list 667 | * LISTCHANS command modules/groupserv/listchans 668 | * REGISTER command modules/groupserv/register 669 | * REGNOLIMIT command modules/groupserv/regnolimit 670 | * SET command modules/groupserv/set 671 | * SET CHANNEL command modules/groupserv/set_channel 672 | * SET DESCRIPTION command modules/groupserv/set_description 673 | * SET EMAIL command modules/groupserv/set_email 674 | * SET JOINFLAGS command modules/groupserv/set_joinflags 675 | * SET OPEN command modules/groupserv/set_open 676 | * SET PUBLIC command modules/groupserv/set_public 677 | * SET URL command modules/groupserv/set_url 678 | * 679 | */ 680 | loadmodule "modules/groupserv/main"; 681 | loadmodule "modules/groupserv/acsnolimit"; 682 | loadmodule "modules/groupserv/drop"; 683 | loadmodule "modules/groupserv/fdrop"; 684 | loadmodule "modules/groupserv/fflags"; 685 | loadmodule "modules/groupserv/flags"; 686 | loadmodule "modules/groupserv/help"; 687 | loadmodule "modules/groupserv/info"; 688 | loadmodule "modules/groupserv/join"; 689 | loadmodule "modules/groupserv/list"; 690 | loadmodule "modules/groupserv/listchans"; 691 | loadmodule "modules/groupserv/register"; 692 | loadmodule "modules/groupserv/regnolimit"; 693 | loadmodule "modules/groupserv/set"; 694 | loadmodule "modules/groupserv/set_channel"; 695 | loadmodule "modules/groupserv/set_description"; 696 | loadmodule "modules/groupserv/set_email"; 697 | loadmodule "modules/groupserv/set_joinflags"; 698 | loadmodule "modules/groupserv/set_open"; 699 | loadmodule "modules/groupserv/set_public"; 700 | loadmodule "modules/groupserv/set_url"; 701 | 702 | /* 703 | * Various modules. 704 | * 705 | * Atheme includes an optional HTTP server that can be used for integration 706 | * with portal software and other useful things. To enable it, load this 707 | * module, and uncomment the httpd { } block towards the bottom of the config. 708 | * 709 | * HTTP Server modules/misc/httpd 710 | */ 711 | loadmodule "modules/misc/httpd"; 712 | 713 | /* XMLRPC server module. 714 | * 715 | * The XML-RPC handler requires modules/misc/httpd to be loaded as it merely 716 | * registers a path handler for XML-RPC. The path used for XML-RPC is /xmlrpc. 717 | * 718 | * XMLRPC handler for the httpd modules/transport/xmlrpc 719 | */ 720 | loadmodule "modules/transport/xmlrpc"; 721 | 722 | /* Extended target entity types. [EXPERIMENTAL] 723 | * 724 | * Atheme can set up special target mapping entities which match multiple 725 | * users in channel access entries. These target mapping entity types are 726 | * defined through the 'exttarget' modules listed below. 727 | * 728 | * Exttarget handling core modules/exttarget/main 729 | * $oper exttarget match type modules/exttarget/oper 730 | * $registered exttarget match type modules/exttarget/registered 731 | * $channel exttarget match type modules/exttarget/channel 732 | * $chanacs exttarget match type modules/exttarget/chanacs 733 | */ 734 | #loadmodule "modules/exttarget/main"; 735 | #loadmodule "modules/exttarget/oper"; 736 | #loadmodule "modules/exttarget/registered"; 737 | #loadmodule "modules/exttarget/channel"; 738 | #loadmodule "modules/exttarget/chanacs"; 739 | 740 | /* Other modules. 741 | * 742 | * Put any other modules you want to load on startup here. The path 743 | * is relative to PREFIX or PREFIX/lib/atheme, depending on how Atheme 744 | * was compiled. 745 | */ 746 | #loadmodule "modules/contrib/ns_listlogins"; 747 | 748 | /****************************************************************************** 749 | * SERVICES RUNTIME CONFIGURATION SECTION. * 750 | ******************************************************************************/ 751 | 752 | /* The serverinfo{} block defines how we appear on the IRC network. */ 753 | serverinfo { 754 | /* name 755 | * The server name that this program uses on the IRC network. 756 | * This is the name you'll have to use in C:/N:Lines. It must be 757 | * unique on the IRC network and contain at least one dot, but does 758 | * not have to be equal to any DNS name. 759 | */ 760 | name = "services.int"; 761 | 762 | /* desc 763 | * The ``server comment'' we send to the IRC network. 764 | * If you want server hiding, prefix your desc with "(H)" 765 | */ 766 | desc = "Atheme IRC Services"; 767 | 768 | /* numeric 769 | * Some protocol drivers (Charybdis, Ratbox2, Hybrid, P10, IRCNet) 770 | * require a server id, also known as a numeric. Please consult your 771 | * ircd's documentation when providing this value. 772 | */ 773 | numeric = "00A"; 774 | 775 | /* (*)recontime 776 | * The number of seconds before we reconnect to the uplink. 777 | */ 778 | recontime = 10; 779 | 780 | /* (*)netname 781 | * The name of your network. 782 | */ 783 | netname = "misconfigured network"; 784 | 785 | /* (*)hidehostsuffix 786 | * P10 +x host hiding gives .. 787 | * If using +x on asuka/bircd/undernet, this must agree 788 | * with F:HIDDEN_HOST. 789 | */ 790 | hidehostsuffix = "users.misconfigured"; 791 | 792 | /* (*)adminname 793 | * The name of the person running this service. 794 | */ 795 | adminname = "misconfigured admin"; 796 | 797 | /* (*)adminemail 798 | * The email address of the person running this service. 799 | */ 800 | adminemail = "misconfigured@admin.tld"; 801 | 802 | /* (*)mta 803 | * The full path to your mail transfer agent. 804 | * This is used for email authorization and password retrieval. 805 | * Comment this out to disable sending email. 806 | * Warning: sending email can disclose the IP of your services 807 | * unless you take precautions (not discussed here further). 808 | */ 809 | mta = "/usr/sbin/sendmail"; 810 | 811 | /* (*)loglevel 812 | * Specify the default categories of logging information to record 813 | * in the master Atheme logfile, usually var/atheme.log. 814 | * 815 | * Options include: 816 | * debug, all - meta-keyword for all possible categories 817 | * trace - meta-keyword for a little bit of info 818 | * misc - like trace, but with some more miscillaneous info 819 | * notice - meta-keyword for notice-like information 820 | * ------------------------------------------------------------------------------ 821 | * error - critical errors 822 | * info - miscillaneous log notices 823 | * verbose - A bit more verbose than info, not quite as spammy as debug 824 | * commands - all command use 825 | * admin - administrative command use 826 | * register - account and channel registrations 827 | * set - changes of account or channel settings 828 | * request - user requests (currently only vhosts) 829 | * network - log notices related to network status 830 | * rawdata - log raw data sent and received by services 831 | * wallops - 832 | */ 833 | loglevel = { error; info; admin; network; wallops; }; 834 | 835 | /* (*)maxlogins 836 | * What is the maximum number of sessions allowed to login to one 837 | * username? This reduces potential abuse. It is only checked on login. 838 | */ 839 | maxlogins = 5; 840 | 841 | /* (*)maxusers 842 | * What are the maximum usernames that one email address can register? 843 | * Set to 0 to disable this check (it can be slow currently). 844 | */ 845 | maxusers = 5; 846 | 847 | /* (*)maxnicks 848 | * If GROUP is loaded, what are the maximum nicknames that one 849 | * username can register? 850 | */ 851 | maxnicks = 5; 852 | 853 | /* (*)maxchans 854 | * What are the maximum channels that one username can register? 855 | */ 856 | maxchans = 5; 857 | 858 | /* (*)mdlimit 859 | * How many metadata entries can be added to an object? 860 | */ 861 | mdlimit = 30; 862 | 863 | /* (*)emaillimit, emailtime 864 | * The maximum number of emails allowed to be sent in 865 | * that amount of time (seconds). If this is exceeded, 866 | * wallops will be sent, at most one per minute. 867 | */ 868 | emaillimit = 10; 869 | emailtime = 300; 870 | 871 | /* (*)auth 872 | * What type of username registration authorization do you want? 873 | * If "email", Atheme will send a confirmation email to the address to 874 | * ensure it's valid. If registration is not completed within one day, 875 | * the username will expire. If "none", no message will be sent and 876 | * the username will be fully registered. 877 | * Valid values are: email, none. 878 | */ 879 | auth = none; 880 | 881 | /* casemapping 882 | * Specify the casemapping to use. Almost all TSora (and any that follow 883 | * the RFC correctly) ircds will use rfc1459 casemapping. Bahamut, Unreal, 884 | * and other ``Dalnet'' ircds will use ascii casemapping. 885 | * Valid values are: rfc1459, ascii. 886 | */ 887 | casemapping = rfc1459; 888 | }; 889 | 890 | /* uplink{} blocks define connections to IRC servers. 891 | * Multiple may be defined but only one will be used at a time (IRC 892 | * being a tree shaped network). 893 | */ 894 | uplink "<%= @uplink_servername %>" { 895 | // The server name of the ircd you're linking to goes above. 896 | 897 | // host 898 | // The hostname to connect to. 899 | host = "<%= @uplink_host %>"; 900 | 901 | // vhost 902 | // The source IP to connect from, used on machines with multiple interfaces. 903 | #vhost = "202.119.187.31"; 904 | 905 | // password 906 | // The password used for linking. 907 | password = "<%= @uplink_password %>"; 908 | 909 | // port 910 | // The port to connect to. 911 | port = <%= @uplink_port %>; 912 | }; 913 | 914 | /* this is an example for using an IPv6 address as an uplink 915 | uplink "irc6.example.net" { 916 | host = "::1"; 917 | password = "linkage"; 918 | port = 6667; 919 | }; 920 | */ 921 | 922 | /* Services configuration. 923 | * 924 | * Each of these blocks can contain a nick, user, host, real and aliases. 925 | * Several of them also have options specific to the service. 926 | */ 927 | 928 | /* NickServ configuration. 929 | * 930 | * The nickserv {} block contains settings specific to the NickServ modules. 931 | * 932 | * NickServ provides nickname or username registration and authentication 933 | * services. It provides necessary authentication features required for 934 | * Services to operate correctly. You should make sure these settings 935 | * are properly configured for your network. 936 | */ 937 | nickserv { 938 | /* (*)spam 939 | * Have NickServ tell people about how great it and ChanServ are. 940 | */ 941 | spam; 942 | 943 | /* no_nick_ownership 944 | * Enable this to disable nickname ownership (old userserv{}). 945 | * This changes changes "nickname" to "account" in most messages, 946 | * disables GHOST on users not logged in to the same account and 947 | * makes the spam directive ineffective. 948 | * It is suggested that the nick be set to UserServ, login.so 949 | * be loaded instead of identify.so and ghost.so not be loaded. 950 | */ 951 | #no_nick_ownership; 952 | 953 | /* (*)nick 954 | * The nickname we want NickServ to have. 955 | */ 956 | nick = "NickServ"; 957 | 958 | /* (*)user 959 | * The username we want NickServ to have. 960 | */ 961 | user = "NickServ"; 962 | 963 | /* (*)host 964 | * The hostname we want NickServ to have. 965 | */ 966 | host = "services.int"; 967 | 968 | /* (*)real 969 | * The realname (gecos) information we want NickServ to have. 970 | */ 971 | real = "Nickname Services"; 972 | 973 | /* (*)aliases 974 | * Command aliases for NickServ. 975 | */ 976 | aliases { 977 | "ID" = "IDENTIFY"; 978 | "MYACCESS" = "LISTCHANS"; 979 | }; 980 | 981 | /* (*)access 982 | * This block allows you to modify the access level required to run 983 | * commands. The list of possible accesses are listed in the operclass 984 | * section later in this .conf . Note that you can only set the access 985 | * on an actual command, not an alias. 986 | */ 987 | access { 988 | }; 989 | 990 | /* (*)expire 991 | * The number of days before inactive registrations are expired. 992 | */ 993 | expire = 30; 994 | 995 | /* (*)enforce_expire 996 | * The number of days of no use after which to ignore enforcement 997 | * settings on nicks. 998 | */ 999 | #enforce_expire = 14; 1000 | 1001 | /* (*)enforce_delay 1002 | * The number of seconds to delay nickchange enforcement settings 1003 | * on nicks. 1004 | */ 1005 | #enforce_delay = 30; 1006 | 1007 | /* (*)enforce_prefix 1008 | * The prefix to use when changing the user's nick on enforcement 1009 | */ 1010 | #enforce_prefix = "Guest"; 1011 | 1012 | /* (*)cracklib_dict 1013 | * The location and filename prefix of the cracklib dictionaries 1014 | * for use with nickserv/cracklib. This must be provided if you are 1015 | * going to be using nickserv/cracklib. 1016 | */ 1017 | #cracklib_dict = "/var/cache/cracklib/cracklib_dict"; 1018 | 1019 | /* (*)cracklib_warn 1020 | * If this option is set and nickserv/cracklib is loaded, nickserv will just 1021 | * warn users that their password is insecure, recommend they change it and 1022 | * still register the nick. If this option is unset, it will refuse to 1023 | * register the nick at all until the user chooses a better password. 1024 | */ 1025 | #cracklib_warn; 1026 | 1027 | /* (*)emailexempts 1028 | * A list of email addresses that will be exempt from the check of how many 1029 | * accounts one user may have. Any email address in this block may register 1030 | * an unlimited number of accounts/usernames. 1031 | */ 1032 | emailexempts { 1033 | }; 1034 | }; 1035 | 1036 | /* ChanServ configuration. 1037 | * 1038 | * The chanserv {} block contains settings specific to the ChanServ modules. 1039 | * 1040 | * ChanServ provides channel registration services, which allows users to own 1041 | * channels. It is not required, but is strongly recommended. 1042 | */ 1043 | chanserv { 1044 | /* (*)nick 1045 | * The nickname we want the client to have. 1046 | */ 1047 | nick = "ChanServ"; 1048 | 1049 | /* (*)user 1050 | * The username we want the client to have. 1051 | */ 1052 | user = "ChanServ"; 1053 | 1054 | /* (*)host 1055 | * The hostname we want the client to have. 1056 | */ 1057 | host = "services.int"; 1058 | 1059 | /* (*)real 1060 | * The GECOS of the client. 1061 | */ 1062 | real = "Channel Services"; 1063 | 1064 | /* (*)aliases 1065 | * Command aliases for ChanServ. 1066 | */ 1067 | aliases { 1068 | }; 1069 | 1070 | /* (*)access 1071 | * Command access changes for ChanServ. 1072 | */ 1073 | access { 1074 | }; 1075 | 1076 | /* fantasy 1077 | * Do you want to enable fantasy commands? This can 1078 | * use a lot of CPU up, and will only work if you have 1079 | * join_chans (in general) enabled as well. 1080 | */ 1081 | fantasy; 1082 | 1083 | /* (*) hide_xop 1084 | * Hide the XOP templates from sight. This is useful if you 1085 | * want to use templates and not have the XOP templates displayed. 1086 | */ 1087 | #hide_xop; 1088 | 1089 | /* (*) templates 1090 | * Defines what flags the global templates comprise. 1091 | * 1092 | * For the special XOP templates: 1093 | * These should all be different and not equal to the empty set, 1094 | * except that hop may be equal to vop to disable hop. 1095 | * Each subsequent level should have more flags (except +VHO). 1096 | * For optimal functioning of /cs forcexop, aop should not have 1097 | * any of +sRf, hop should not have any of +sRfoOr and vop should 1098 | * not have any of +sRfoOrhHt. 1099 | * If this is not specified, the values of Atheme 0.3 are used, 1100 | * which are generally less intuitive than these. 1101 | * Note: changing these leaves the flags of existing channel access 1102 | * entries unchanged, thus removing them of the view of /cs xop list. 1103 | * Usually the channel founder can use /cs forcexop to update the 1104 | * entries to the new levels. 1105 | * 1106 | * Advice: 1107 | * If you want to add a co-founder role, remove the flags permission 1108 | * from the SOP role, and define a co-founder role with flags 1109 | * permissions. 1110 | */ 1111 | templates { 1112 | vop = "+AV"; 1113 | hop = "+AHhtv"; 1114 | aop = "+AOhiortv"; 1115 | sop = "+AOafhiorstv"; 1116 | 1117 | founder = "+AFORafhiorstv"; 1118 | 1119 | /* some examples (which are commented out...) */ 1120 | #member = "+Ai"; 1121 | #op = "+AOiortv"; 1122 | }; 1123 | 1124 | /* (*) deftemplates 1125 | * Defines default templates to set on new channels, as a 1126 | * space-separated list of name=+flags pairs. 1127 | * Note: at this time no syntax checking is done on this; it 1128 | * is your own responsibility to make sure it is correct. 1129 | */ 1130 | #deftemplates = "MEMBER=+Ai OP=+AOiortv"; 1131 | 1132 | /* (*) changets 1133 | * Change the channel TS to the registration time when someone 1134 | * recreates a registered channel, ensuring that they are deopped 1135 | * and all their modes are undone. Note that this involves ChanServ 1136 | * joining. When the channel was not recreated no deops will be done 1137 | * (apart from the SECURE option). 1138 | * This also solves the "join-mode" problem where someone recreates 1139 | * a registered channel and then sets some modes before they are 1140 | * deopped. 1141 | * This is currently supported for charybdis, hybrid, ratbox, 1142 | * bahamut, and unrealircd. For charybdis, hybrid and ratbox 1143 | * it only fully works with TS6, with TS5 bans and last-moment modes 1144 | * will still apply. 1145 | * (That can also be used to advantage, when first enabling this.) 1146 | */ 1147 | #changets; 1148 | 1149 | /* (*) trigger 1150 | * This setting allows you to change the trigger prefix for 1151 | * ChanServ's in-channel command feature (disableable via chanserv::fantasy). 1152 | * If no setting is provided, the default is used, which is "!". 1153 | * 1154 | * Other settings you could consider trying: ".", "~", "?", "`", "'". 1155 | */ 1156 | trigger = "!"; 1157 | 1158 | /* (*)expire 1159 | * The number of days before inactive registrations are expired. 1160 | */ 1161 | expire = 30; 1162 | 1163 | /* (*)maxchanacs 1164 | * The maximum number of entries allowed in a channel's access list 1165 | * (both channel ops and akicks), 0 for unlimited. 1166 | */ 1167 | maxchanacs = 0; 1168 | 1169 | /* (*)maxfounders 1170 | * The maximum number of founders allowed in a channel. 1171 | * Note that all founders have the exact same privileges and 1172 | * the list of founders is shown in various places. 1173 | */ 1174 | maxfounders = 4; 1175 | 1176 | /* (*)founder_flags 1177 | * The flags a user will get when they register a new channel. 1178 | * This MUST include at least 'F' or it will be ignored. 1179 | * If it is not set, Atheme will give the user all channel flags. 1180 | */ 1181 | #founder_flags = "AFORfiorstv"; 1182 | 1183 | /* (*)akick_time 1184 | * The default expiration time (in minutes) for AKICKs. 1185 | * Comment this option out or set to zero for permanent AKICKs 1186 | * by default (the old behaviour). 1187 | */ 1188 | #akick_time = 10; 1189 | }; 1190 | 1191 | /* CHANFIX configuration. 1192 | * 1193 | * The chanfix {} block contains settings specific to the CHANFIX modules. 1194 | * 1195 | * CHANFIX provides channel recovery services without registration, which 1196 | * allows users to maintain control of channels even if ChanServ is not used 1197 | * to register them. 1198 | */ 1199 | chanfix { 1200 | /* (*)nick 1201 | * The nickname we want the client to have. 1202 | */ 1203 | nick = "ChanFix"; 1204 | 1205 | /* (*)user 1206 | * The username we want the client to have. 1207 | */ 1208 | user = "ChanFix"; 1209 | 1210 | /* (*)host 1211 | * The hostname we want the client to have. 1212 | */ 1213 | host = "services.int"; 1214 | 1215 | /* (*)real 1216 | * The GECOS of the client. 1217 | */ 1218 | real = "Channel Fixing Service"; 1219 | 1220 | /* (*)autofix 1221 | * Automatically fix channels if they become opless and meet fixing 1222 | * criteria. 1223 | */ 1224 | autofix; 1225 | }; 1226 | 1227 | /* Global noticing configuration. 1228 | * 1229 | * The global {} block contains settings specific to the Global notice module. 1230 | * 1231 | * The Global notice module provides the ability to mass-notify a network. 1232 | */ 1233 | global { 1234 | /* (*)nick 1235 | * Sets the nick used for sending out a global notice. 1236 | */ 1237 | nick = "Global"; 1238 | 1239 | /* (*)user 1240 | * Sets the username used for this client. 1241 | */ 1242 | user = "Global"; 1243 | 1244 | /* (*)host 1245 | * The hostname used for this client. 1246 | */ 1247 | host = "services.int"; 1248 | 1249 | /* (*)real 1250 | * The GECOS (real name) of the client. 1251 | */ 1252 | real = "Network Announcements"; 1253 | }; 1254 | 1255 | /* InfoServ configuration 1256 | * 1257 | * The infoserv {} block contains settings specific to the InfoServ module. 1258 | * 1259 | * The InfoServ modules provides the ability to mass-notify a network and send 1260 | * news to users when they connect to the network. 1261 | */ 1262 | infoserv { 1263 | /* (*)nick 1264 | * Sets the nick used for InfoServ and sending out informational messages. 1265 | */ 1266 | nick = "InfoServ"; 1267 | 1268 | /* (*)user 1269 | * Sets the username used for this client. 1270 | */ 1271 | user = "InfoServ"; 1272 | 1273 | /* (*)host 1274 | * The hostname used for this client, 1275 | */ 1276 | host = "services.int"; 1277 | 1278 | /* (*)real 1279 | * The GECOS (real name) of the client. 1280 | */ 1281 | real = "Information Service"; 1282 | 1283 | /* (*)logoninfo_count 1284 | * The number of InfoServ messages a user will see upon connect. 1285 | * If there are more than this number, the user will be able to 1286 | * see the rest with /msg infoserv list . 1287 | */ 1288 | logoninfo_count = 3; 1289 | }; 1290 | 1291 | /* OperServ configuration. 1292 | * 1293 | * The operserv {} block contains settings specific to the OperServ modules. 1294 | * 1295 | * OperServ provides essential network management tools for IRC operators 1296 | * on the IRC network. 1297 | */ 1298 | operserv { 1299 | /* (*)nick 1300 | * The nickname we want the Operator Service to have. 1301 | */ 1302 | nick = "OperServ"; 1303 | 1304 | /* (*)user 1305 | * Sets the username used for this client. 1306 | */ 1307 | user = "OperServ"; 1308 | 1309 | /* (*)host 1310 | * The hostname used for this client. 1311 | */ 1312 | host = "services.int"; 1313 | 1314 | /* (*)real 1315 | * The GECOS (real name) of the client. 1316 | */ 1317 | real = "Operator Services"; 1318 | 1319 | /* (*)aliases 1320 | * Command aliases for OperServ. 1321 | */ 1322 | aliases { 1323 | }; 1324 | 1325 | /* (*)access 1326 | * Command access changes for OperServ. 1327 | */ 1328 | access { 1329 | }; 1330 | }; 1331 | 1332 | /* SaslServ configuration. 1333 | * 1334 | * The saslserv {} block contains settings specific to the SaslServ modules. 1335 | * 1336 | * SaslServ provides an authentication agent which is compatible with the 1337 | * SASL over IRC (SASL/IRC) protocol extension. 1338 | */ 1339 | saslserv { 1340 | /* (*)nick 1341 | * The nickname we want SaslServ to have. 1342 | */ 1343 | nick = "SaslServ"; 1344 | 1345 | /* (*)user 1346 | * The username we want SaslServ to have. 1347 | */ 1348 | user = "SaslServ"; 1349 | 1350 | /* (*)host 1351 | * The hostname we want SaslServ to have. 1352 | */ 1353 | host = "services.int"; 1354 | 1355 | /* (*)real 1356 | * The realname (gecos) information we want SaslServ to have. 1357 | */ 1358 | real = "SASL Authentication Agent"; 1359 | }; 1360 | 1361 | /* MemoServ configuration. 1362 | * 1363 | * The memoserv {} block contains settings specific to the MemoServ modules. 1364 | * 1365 | * MemoServ provides a note-taking service that you can use to send notes 1366 | * to offline users (provided they are registered with Services). 1367 | */ 1368 | memoserv { 1369 | /* (*)nick 1370 | * The nickname we want MemoServ to have. 1371 | */ 1372 | nick = "MemoServ"; 1373 | 1374 | /* (*)user 1375 | * The username we want MemoServ to have. 1376 | */ 1377 | user = "MemoServ"; 1378 | 1379 | /* (*)host 1380 | * The hostname we want MemoServ to have. 1381 | */ 1382 | host = "services.int"; 1383 | 1384 | /* (*)real 1385 | * The realname (gecos) information we want MemoServ to have. 1386 | */ 1387 | real = "Memo Services"; 1388 | 1389 | /* (*)aliases 1390 | * Command aliases for MemoServ. 1391 | */ 1392 | aliases { 1393 | }; 1394 | 1395 | /* (*)access 1396 | * Command access changes for MemoServ. 1397 | */ 1398 | access { 1399 | }; 1400 | }; 1401 | 1402 | /* GameServ configuration. 1403 | * 1404 | * The gameserv {} block contains settings specific to the GameServ modules. 1405 | * 1406 | * GameServ provides various in-channel commands for games. 1407 | */ 1408 | gameserv { 1409 | /* (*)nick 1410 | * The nickname we want GameServ to have. 1411 | */ 1412 | nick = "GameServ"; 1413 | 1414 | /* (*)user 1415 | * Sets the username used for this client. 1416 | */ 1417 | user = "GameServ"; 1418 | 1419 | /* (*)host 1420 | * The hostname used for this client. 1421 | */ 1422 | host = "services.int"; 1423 | 1424 | /* (*)real 1425 | * The GECOS (real name) of the client. 1426 | */ 1427 | real = "Game Services"; 1428 | 1429 | /* (*)aliases 1430 | * Command aliases for GameServ. 1431 | */ 1432 | aliases { 1433 | }; 1434 | 1435 | /* (*)access 1436 | * Command access changes for GameServ. 1437 | */ 1438 | access { 1439 | }; 1440 | }; 1441 | 1442 | /* RPGServ configuration. 1443 | * 1444 | * The rpgserv {} block contains settings specific to the RPGServ modules. 1445 | * 1446 | * RPGServ provides a facility for finding roleplaying channels. 1447 | */ 1448 | rpgserv { 1449 | /* (*)nick 1450 | * The nickname we want GameServ to have. 1451 | */ 1452 | nick = "RPGServ"; 1453 | 1454 | /* (*)user 1455 | * Sets the username used for this client. 1456 | */ 1457 | user = "RPGServ"; 1458 | 1459 | /* (*)host 1460 | * The hostname used for this client. 1461 | */ 1462 | host = "services.int"; 1463 | 1464 | /* (*)real 1465 | * The GECOS (real name) of the client. 1466 | */ 1467 | real = "RPG Finding Services"; 1468 | 1469 | /* (*)aliases 1470 | * Command aliases for GameServ. 1471 | */ 1472 | aliases { 1473 | }; 1474 | 1475 | /* (*)access 1476 | * Command access changes for GameServ. 1477 | */ 1478 | access { 1479 | }; 1480 | }; 1481 | 1482 | /* BotServ configuration. 1483 | * 1484 | * The botserv {} block contains settings specific to the BotServ modules. 1485 | * 1486 | * BotServ provides virtual channel bots. 1487 | */ 1488 | botserv { 1489 | /* (*)nick 1490 | * The nickname we want BotServ to have. 1491 | */ 1492 | nick = "BotServ"; 1493 | 1494 | /* (*)user 1495 | * Sets the username used for this client. 1496 | */ 1497 | user = "BotServ"; 1498 | 1499 | /* (*)host 1500 | * The hostname used for this client. 1501 | */ 1502 | host = "services.int"; 1503 | 1504 | /* (*)real 1505 | * The GECOS (real name) of the client. 1506 | */ 1507 | real = "Bot Services"; 1508 | 1509 | /* (*)min_users 1510 | * Minimum number of users a channel must have before a Bot is allowed 1511 | * to be assigned to that channel. 1512 | */ 1513 | min_users = 0; 1514 | }; 1515 | 1516 | /* GroupServ configuration. 1517 | * 1518 | * The groupserv {} block contains settings specific to the GroupServ modules. 1519 | * 1520 | * GroupServ provides features for managing a collection of channels at once. 1521 | * 1522 | */ 1523 | groupserv { 1524 | /* (*)nick 1525 | * The nickname we want GroupServ to have. 1526 | */ 1527 | nick = "GroupServ"; 1528 | 1529 | /* (*)user 1530 | * The username we want GroupServ to have. 1531 | */ 1532 | user = "GroupServ"; 1533 | 1534 | /* (*)host 1535 | * The hostname we want GroupServ to have. 1536 | */ 1537 | host = "services.int"; 1538 | 1539 | /* (*)real 1540 | * The realname (gecos) information we want GroupServ to have. 1541 | */ 1542 | real = "Group Managment Services"; 1543 | 1544 | /* (*)aliases 1545 | * Command aliases for GroupServ. 1546 | */ 1547 | aliases { 1548 | }; 1549 | 1550 | /* (*)access 1551 | * Command access changes for GroupServ. 1552 | */ 1553 | access { 1554 | }; 1555 | 1556 | /* (*)maxgroups 1557 | * Maximum number of groups one username can be founder of. 1558 | */ 1559 | maxgroups = 5; 1560 | 1561 | /* (*)maxgroupacs 1562 | * Maximum number of access entries you may have in a group. 1563 | */ 1564 | maxgroupacs = 100; 1565 | 1566 | /* (*)enable_open_groups 1567 | * Setting this option will allow any group founder to mark 1568 | * their group as "anyone can join". 1569 | */ 1570 | enable_open_groups; 1571 | 1572 | /* (*)join_flags 1573 | * This is the GroupServ flagset that users who JOIN a open 1574 | * group will get upon join. Please check the groupserv/flags 1575 | * helpfile before changing this option. Valid flagsets (for 1576 | * example) would be: "+v" or "+cv". It is not valid to use 1577 | * minus flags (such as "-v") here. 1578 | */ 1579 | join_flags = "+"; 1580 | }; 1581 | 1582 | /* HostServ configuration. 1583 | * 1584 | * The hostserv {} block contains settings specific to the HostServ modules. 1585 | * 1586 | * HostServ provides advanced virtual host management. 1587 | */ 1588 | hostserv { 1589 | /* (*)nick 1590 | * The nickname we want HostServ to have. 1591 | */ 1592 | nick = "HostServ"; 1593 | 1594 | /* (*)user 1595 | * Sets the username used for this client. 1596 | */ 1597 | user = "HostServ"; 1598 | 1599 | /* (*)host 1600 | * The hostname used for this client. 1601 | */ 1602 | host = "services.int"; 1603 | 1604 | /* (*)real 1605 | * The GECOS (real name) of the client. 1606 | */ 1607 | real = "Host Management Services"; 1608 | 1609 | /* (*)request_per_nick 1610 | * Whether the request system should work per nick or per account. 1611 | * The recommended setting is to leave this disabled, so that 1612 | * vhosts work as consistently as possible. 1613 | */ 1614 | #request_per_nick; 1615 | 1616 | /* (*)aliases 1617 | * Command aliases for HostServ. 1618 | */ 1619 | aliases { 1620 | "APPROVE" = "ACTIVATE"; 1621 | "DENY" = "REJECT"; 1622 | }; 1623 | 1624 | /* (*)access 1625 | * Command access changes for HostServ. 1626 | */ 1627 | access { 1628 | }; 1629 | }; 1630 | 1631 | /* HelpServ configuration 1632 | * 1633 | * The helpserv {} block contains settings specific to the HelpServ modules. 1634 | * 1635 | * HelpServ adds a few different ways for users to request help from network staff. 1636 | */ 1637 | helpserv { 1638 | /* (*)nick 1639 | * The nickname we want HelpServ to have. 1640 | */ 1641 | nick = "HelpServ"; 1642 | 1643 | /* (*)user 1644 | * The username we want HelpServ to have. 1645 | */ 1646 | user = "HelpServ"; 1647 | 1648 | /* (*)host 1649 | * The hostname we want HelpServ to have. 1650 | */ 1651 | host = "services.int"; 1652 | 1653 | /* (*)real 1654 | * The realname (gecos) information we want HelpServ to have. 1655 | */ 1656 | real = "Help Services"; 1657 | }; 1658 | 1659 | /* StatServ configuration 1660 | * 1661 | * The statserv {} block contains settings specific to the StatServ modules. 1662 | * 1663 | * StatServ adds basic stats and split tracking. 1664 | */ 1665 | statserv { 1666 | /* (*)nick 1667 | * The nickname we want StatServ to have. 1668 | */ 1669 | nick = "StatServ"; 1670 | 1671 | /* (*)user 1672 | * The username we want StatServ to have. 1673 | */ 1674 | user = "StatServ"; 1675 | 1676 | /* (*)host 1677 | * The hostname we want StatServ to have. 1678 | */ 1679 | host = "services.int"; 1680 | 1681 | /* (*)real 1682 | * The realname (gecos) information we want StatServ to have. 1683 | */ 1684 | real = "Statistics Services"; 1685 | }; 1686 | 1687 | /* ALIS configuration. 1688 | * 1689 | * The alis {} block contains settings specific to the ALIS modules. 1690 | */ 1691 | alis { 1692 | /* (*)nick 1693 | * The nickname we want ALIS to have. 1694 | */ 1695 | nick = "ALIS"; 1696 | 1697 | /* (*)user 1698 | * The username we want ALIS to have. 1699 | */ 1700 | user = "alis"; 1701 | 1702 | /* (*)host 1703 | * The hostname we want ALIS to have. 1704 | */ 1705 | host = "services.int"; 1706 | 1707 | /* (*)real 1708 | * The realname (gecos) information we want ALIS to have. 1709 | */ 1710 | real = "Channel Directory"; 1711 | }; 1712 | 1713 | /* HTTP server configuration. 1714 | * 1715 | * The httpd {} block contains settings specific to the HTTP server module. 1716 | * 1717 | * The HTTP server in Services is used for serving XMLRPC requests. It can 1718 | * also serve static documents and statistics pages. 1719 | */ 1720 | httpd { 1721 | /* host 1722 | * The host that the HTTP server will listen on. 1723 | * Use 0.0.0.0 if you want to listen on all available hosts. 1724 | */ 1725 | host = "0.0.0.0"; 1726 | 1727 | /* host (ipv6) 1728 | * If you want, you can have Atheme listen on an IPv6 host too. 1729 | * Use :: if you want to listen on all available IPv6 hosts. 1730 | */ 1731 | #host = "::"; 1732 | 1733 | /* www_root 1734 | * The directory that contains the files that should be served by the httpd. 1735 | */ 1736 | www_root = "/var/www"; 1737 | 1738 | /* port 1739 | * The port that the HTTP server will listen on. 1740 | */ 1741 | port = 8080; 1742 | }; 1743 | 1744 | /* LDAP configuration. 1745 | * 1746 | * The ldap {} block contains settings specific to the LDAP authentication 1747 | * module. 1748 | */ 1749 | ldap { 1750 | /* (*)url 1751 | * LDAP URL of the server to use. 1752 | */ 1753 | url = "ldap://127.0.0.1"; 1754 | 1755 | /* (*)dnformat 1756 | * Format string to convert an account name to an LDAP DN. 1757 | * Must contain exactly one %s which will be replaced by the account 1758 | * name. 1759 | * Services will attempt a simple bind with this DN and the given 1760 | * password; if this is successful the password is considered correct. 1761 | */ 1762 | dnformat = "cn=%s,dc=jillestest,dc=com"; 1763 | }; 1764 | 1765 | /****************************************************************************** 1766 | * LOGGING SECTION. * 1767 | ******************************************************************************/ 1768 | 1769 | /* 1770 | * logfile{} blocks can be used to set up log files other than the master 1771 | * logfile used by services, which is controlled by serverinfo::loglevel. 1772 | * 1773 | * The various logging categories are: 1774 | * debug, all - meta-keyword for all possible categories 1775 | * trace - meta-keyword for a little bit of info 1776 | * misc - like trace, but with some more miscillaneous info 1777 | * notice - meta-keyword for notice-like information 1778 | * ------------------------------------------------------------------------------ 1779 | * error - critical errors 1780 | * info - miscillaneous log notices 1781 | * verbose - A bit more verbose than info, not quite as spammy as debug 1782 | * commands - all command use 1783 | * admin - administrative command use 1784 | * register - account and channel registrations 1785 | * set - changes of account or channel settings 1786 | * request - user requests (currently only vhosts) 1787 | * network - log notices related to network status 1788 | * rawdata - log raw data sent and received by services 1789 | * wallops - 1790 | */ 1791 | 1792 | /* 1793 | * This block logs all account and channel registrations and drops, 1794 | * and account and channel setting changes to var/account.log. 1795 | */ 1796 | logfile "var/account.log" { register; set; }; 1797 | 1798 | /* 1799 | * This block logs all command use to var/commands.log. 1800 | */ 1801 | logfile "var/commands.log" { commands; }; 1802 | 1803 | /* 1804 | * You can log to IRC channels, and even split it by category, too. 1805 | * This entry provides roughly the same functionality as the old snoop 1806 | * feature. 1807 | */ 1808 | logfile "#services" { error; info; admin; request; register; }; 1809 | 1810 | /****************************************************************************** 1811 | * GENERAL PARAMETERS CONFIGURATION SECTION. * 1812 | ******************************************************************************/ 1813 | 1814 | /* The general {} block defines general configuration options. */ 1815 | general { 1816 | 1817 | /* (*)helpchan 1818 | * Network help channel. Shown to users when they request 1819 | * help for a command that doesn't exist. 1820 | */ 1821 | #helpchan = "#help"; 1822 | 1823 | /* (*)helpurl 1824 | * Network webpage for services help. Shown to users when they 1825 | * request help for a command that doesn't exist. 1826 | */ 1827 | #helpurl = "http://www.stack.nl/~jilles/irc/atheme-help/"; 1828 | 1829 | /* (*)silent 1830 | * If you want to prevent services from sending 1831 | * WALLOPS/GLOBOPS about things uncomment this. 1832 | * Not recommended. 1833 | */ 1834 | #silent; 1835 | 1836 | /* (*)verbose_wallops 1837 | * If you want services to send you more information about 1838 | * events that are occuring (in particular AKILLs), uncomment the 1839 | * directive below. 1840 | * 1841 | * WARNING! This may result in large amounts of wallops/globops 1842 | * floods. 1843 | */ 1844 | #verbose_wallops; 1845 | 1846 | /* (*)join_chans 1847 | * Should ChanServ be allowed to join registered channels? 1848 | * This option is useful for the fantasy command set. 1849 | * 1850 | * If enabled, you can tell ChanServ to join via SET GUARD ON. 1851 | * 1852 | * If you use ircu-like ircd (asuka, bircd, undernet), you must 1853 | * leave this enabled, and put guard in default cflags. 1854 | * 1855 | * For ratbox it is recommended to leave it on and put guard in 1856 | * default cflags, in order that ChanServ does not have to join/part 1857 | * to do certain things. On the other hand, enabling this increases 1858 | * potential for bots fighting with ChanServ. 1859 | * 1860 | * Regardless of this option, ChanServ will temporarily join 1861 | * channels which would otherwise be empty if necessary to enforce 1862 | * akick/restricted/close, and to change the TS if changets is 1863 | * enabled. 1864 | */ 1865 | join_chans; 1866 | 1867 | /* (*)leave_chans 1868 | * Do we leave registered channels after everyone else has left? 1869 | * Turning this off serves little purpose, except to mark "official" 1870 | * network channels by keeping them open, and to preserve the 1871 | * topic and +beI lists. 1872 | */ 1873 | leave_chans; 1874 | 1875 | /* secure 1876 | * Do you want to require the use of /msg @? 1877 | * Turning this on helps protect against spoofers, but is disabled 1878 | * as most networks do not presently use it. 1879 | */ 1880 | #secure; 1881 | 1882 | /* (*)uflags 1883 | * The default flags to set for usernames upon registration. 1884 | * Valid values are: hold, neverop, noop, hidemail, nomemo, emailmemos, 1885 | * enforce, privmsg, private, quietchg and none. 1886 | */ 1887 | uflags = { hidemail; }; 1888 | 1889 | /* (*)cflags 1890 | * The default flags to set for channels upon registration. 1891 | * Valid values are: hold, secure, verbose, verbose_ops, keeptopic, 1892 | * topiclock, guard, private, nosync, limitflags and none. 1893 | */ 1894 | cflags = { verbose; guard; }; 1895 | 1896 | /* (*)raw 1897 | * Do you want to allow SRAs to use the RAW and INJECT commands? 1898 | * These commands are for debugging. If you don't know how to use them 1899 | * then don't enable them. They are not supported. 1900 | */ 1901 | #raw; 1902 | 1903 | /* (*)flood_msgs 1904 | * Do you want services to detect floods? 1905 | * Set to how many messages before a flood is triggered. 1906 | * Note that some messages that need a lot of processing count 1907 | * as two or four messages. 1908 | * If services receives `flood_msgs' within `flood_time' the user will 1909 | * trigger the flood protection. 1910 | * Setting this to zero disables flood protection. 1911 | */ 1912 | flood_msgs = 7; 1913 | 1914 | /* (*)flood_time 1915 | * Do you want services to detect floods? 1916 | * Set to how long before the counter resets. 1917 | * If services receives `flood_msgs' within `flood_time' the user will 1918 | * trigger the flood protection. 1919 | */ 1920 | flood_time = 10; 1921 | 1922 | /* (*)ratelimit_uses 1923 | * After how many uses of a command will users be throttled. 1924 | * After `ratelimit_uses' of a command within `ratelimit_period', users 1925 | * will not be able to run that ratelimited command until the period is up. 1926 | * Comment this, ratelimit_period below or both options out to disable rate limiting. 1927 | * Currently used in helpserv/helpme, helpserv/ticket, hostserv/request, 1928 | * nickserv/register and chanserv/register. 1929 | */ 1930 | ratelimit_uses = 5; 1931 | 1932 | /* (*)ratelimit_period 1933 | * After how much time (in seconds) will the ratelimit_uses counter reset. 1934 | * After `ratelimit_uses' of a command within `ratelimit_period', users 1935 | * will not be able to run that ratelimited command until the period is up. 1936 | * Comment this, ratelimit_uses above or both options out to disable rate limiting. 1937 | * Currently used in helpserv/helpme, helpserv/ticket, hostserv/request, 1938 | * nickserv/register and chanserv/register. 1939 | */ 1940 | ratelimit_period = 60; 1941 | 1942 | /* (*)kline_time 1943 | * The default expire time for KLINE's in days. 1944 | * Setting this to 0 makes all KLINE's permanent. 1945 | */ 1946 | kline_time = 7; 1947 | 1948 | /* (*)clone_time 1949 | * This is the default expiry time for CLONE exemptions in minutes. 1950 | * Setting this to 0 makes all CLONE exemptions permanent. 1951 | */ 1952 | clone_time = 0; 1953 | 1954 | /* commit_interval 1955 | * The time between database writes in minutes. 1956 | */ 1957 | commit_interval = 5; 1958 | 1959 | /* (*)default_clone_allowed 1960 | * The limit after which clones will be KILLed or TKLINEd. 1961 | * Used by operserv/clones. 1962 | */ 1963 | default_clone_allowed = 5; 1964 | 1965 | /* (*)default_clone_warn 1966 | * The limit after which clones will be warned that they may not 1967 | * have any more concurrent connections. Should be lower than 1968 | * default_clone_allowed . Used by operserv/clones. 1969 | */ 1970 | default_clone_warn = 4; 1971 | 1972 | /* (*)clone_identified_increase_limit 1973 | * If this option is enabled, the clone limit for a IP/host will 1974 | * be increased by 1 per clone that's identified to services. 1975 | * This has a limit of double the clone limits above. 1976 | */ 1977 | clone_identified_increase_limit; 1978 | 1979 | /* (*)uplink_sendq_limit 1980 | * The maximum amount of data that may be queued to be sent 1981 | * to the uplink, in bytes. This should be enough to contain 1982 | * Atheme's response to the netburst, but smaller than the 1983 | * IRCd's sendq limit for servers. 1984 | */ 1985 | uplink_sendq_limit = 1048576; 1986 | 1987 | /* (*)language 1988 | * Language to use for channel and oper messages and as default 1989 | * for users. 1990 | */ 1991 | language = "en"; 1992 | 1993 | /* exempts 1994 | * This block contains a list of user@host masks. Users matching any 1995 | * of these will not be automatically K:lined by services. 1996 | */ 1997 | exempts { 1998 | }; 1999 | 2000 | /* allow_taint 2001 | * By enabling this option, Atheme will run in configurations where 2002 | * the upstream will not provide support. By enabling this feature, 2003 | * you void any perceived rights to support. 2004 | */ 2005 | #allow_taint; 2006 | 2007 | /* (*)immune_level 2008 | * This option allows you to customize the operlevel which gets kick 2009 | * immunity privileges. 2010 | * 2011 | * The following flags are available: 2012 | * immune - require whatever ircd usermode is needed for kick 2013 | * immunity (this is the default); 2014 | * admin - require admin privileges for kick immunity 2015 | * ircop - require any ircop privileges for kick immunity (umode +o) 2016 | */ 2017 | immune_level = immune; 2018 | }; 2019 | 2020 | /****************************************************************************** 2021 | * OPERATOR AND PRIVILEGES CONFIGURATION SECTION. * 2022 | ******************************************************************************/ 2023 | 2024 | /* Operator configuration 2025 | * See the PRIVILEGES document for more information. 2026 | * NOTE: All changes apply immediately upon rehash. You may need 2027 | * to send a signal (killall -HUP atheme-services) to regain control. 2028 | */ 2029 | /* (*) Operclasses specify groups of services operator privileges */ 2030 | 2031 | /* The "ircop" operclass specifies privileges all IRCops get. 2032 | * This may be empty in which case IRCops get no privs. 2033 | * At least chan:cmodes, chan:joinstaffonly and general:auspex are suggested. 2034 | */ 2035 | operclass "ircop" { 2036 | privs { 2037 | special:ircop; 2038 | }; 2039 | 2040 | privs { 2041 | user:auspex; 2042 | user:admin; 2043 | user:sendpass; 2044 | user:vhost; 2045 | user:mark; 2046 | }; 2047 | 2048 | privs { 2049 | chan:auspex; 2050 | chan:admin; 2051 | chan:cmodes; 2052 | chan:joinstaffonly; 2053 | }; 2054 | 2055 | privs { 2056 | general:auspex; 2057 | general:helper; 2058 | general:viewprivs; 2059 | general:flood; 2060 | }; 2061 | 2062 | privs { 2063 | operserv:omode; 2064 | operserv:akill; 2065 | operserv:jupe; 2066 | operserv:global; 2067 | }; 2068 | 2069 | privs { 2070 | group:auspex; 2071 | group:admin; 2072 | }; 2073 | }; 2074 | 2075 | operclass "sra" { 2076 | /* You can inherit privileges from a lower operclass. */ 2077 | extends "ircop"; 2078 | 2079 | privs { 2080 | user:hold; 2081 | user:regnolimit; 2082 | }; 2083 | 2084 | privs { 2085 | general:metadata; 2086 | general:admin; 2087 | }; 2088 | 2089 | privs { 2090 | #operserv:massakill; 2091 | #operserv:akill-anymask; 2092 | operserv:noop; 2093 | operserv:grant; 2094 | #operserv:override; 2095 | }; 2096 | 2097 | /* needoper 2098 | * Only grant privileges to IRC users in this oper class if they 2099 | * are opered; other use of privilege (channel succession, XMLRPC, 2100 | * etc.) is unaffected by this. 2101 | */ 2102 | needoper; 2103 | }; 2104 | 2105 | 2106 | /* (*) Operator blocks specify accounts with certain privileges 2107 | * Oper classes must be defined before they are used in operator blocks. 2108 | */ 2109 | operator "jilles" { 2110 | /* operclass */ 2111 | operclass = "sra"; 2112 | /* password 2113 | * Normally, the user needs to identify/log in using the account's 2114 | * password, and may need to be an IRCop (see operclass::needoper 2115 | * above). If you consider this not secure enough, you can 2116 | * specify an additional password here, which the user must enter 2117 | * using the OperServ IDENTIFY command, before the privileges can 2118 | * be used. 2119 | * The password must be encrypted if a crypto module is in use. 2120 | */ 2121 | #password = "$1$3gJMO9by$0G60YE6GqmuHVH3AnFPor1"; 2122 | }; 2123 | 2124 | /****************************************************************************** 2125 | * INCLUDE CONFIGURATION SECTION. * 2126 | ******************************************************************************/ 2127 | 2128 | /* You may also specify other files for inclusion. 2129 | * For example: 2130 | * 2131 | * include "etc/sras.conf"; 2132 | */ 2133 | --------------------------------------------------------------------------------