Compare commits
No commits in common. "f5123f26957ef72a08e2e699c63dece366b804ee" and "e344e7351ce54462f686461524a4a8eae7d6dd37" have entirely different histories.
f5123f2695
...
e344e7351c
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
|
include.conf
|
||||||
config.env
|
config.env
|
||||||
|
51
Dockerfile
51
Dockerfile
@ -6,48 +6,59 @@ ARG BUILD_SERVER_NAME="services.lame-network.local"
|
|||||||
|
|
||||||
RUN apt -y update
|
RUN apt -y update
|
||||||
|
|
||||||
RUN apt -y install coreutils perl git automake autoconf build-essential libpcre2-dev rapidjson-dev libcurl4-gnutls-dev libargon2-dev libmaxminddb-dev libldap2-dev rapidjson-dev libmysqlclient-dev libmysqlclient-dev default-libmysqlclient-dev libpq-dev libre2-dev gnutls-dev libsqlite3-dev libmbedtls-dev libqrencode-dev libpcre3-dev libtre-dev pkg-config libwww-perl libidn-dev libpasswdqc-dev libcrack2-dev libperl-dev libsodium-dev cracklib-runtime libcrypt-cracklib-perl sendmail gettext
|
RUN apt -y install coreutils cmake perl git automake autoconf build-essential libpcre2-dev rapidjson-dev libcurl4-gnutls-dev libargon2-dev libmaxminddb-dev libldap2-dev rapidjson-dev libmysqlclient-dev libmysqlclient-dev default-libmysqlclient-dev libpq-dev libre2-dev gnutls-dev libsqlite3-dev libmbedtls-dev libqrencode-dev libpcre3-dev libtre-dev pkg-config libwww-perl libidn-dev libpasswdqc-dev libcrack2-dev libperl-dev libsodium-dev cracklib-runtime libcrypt-cracklib-perl sendmail
|
||||||
|
|
||||||
RUN groupadd atheme
|
RUN groupadd anope
|
||||||
|
|
||||||
RUN useradd --system --shell /bin/bash atheme -g atheme
|
RUN useradd --system --shell /bin/bash anope -g anope
|
||||||
|
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
|
|
||||||
RUN git clone https://github.com/atheme/atheme.git -b master
|
RUN git clone https://github.com/anope/anope.git
|
||||||
|
|
||||||
WORKDIR /tmp/atheme
|
WORKDIR /tmp/anope
|
||||||
|
|
||||||
RUN git submodule update --init --recursive
|
#RUN git checkout 2.1
|
||||||
|
|
||||||
RUN ./configure --prefix=/usr/local --enable-large-net --enable-contrib --enable-legacy-pwcrypto --with-idn
|
#RUN git reset --hard 240f8b9e505af4888039769f5ce5a2388bdf228e
|
||||||
|
|
||||||
|
WORKDIR /tmp/anope/modules
|
||||||
|
|
||||||
|
RUN ls -1 extra/*.cpp | xargs -i ln -s {}
|
||||||
|
|
||||||
|
WORKDIR /tmp/anope
|
||||||
|
|
||||||
|
RUN cmake -DINSTDIR:STRING=/usr/local -DRUNGROUP:STRING=anope -DDEFUMASK:STRING=007 -DCMAKE_BUILD_TYPE:STRING=RELEASE -B /tmp/anope/build /tmp/anope
|
||||||
|
|
||||||
|
WORKDIR /tmp/anope/build
|
||||||
|
|
||||||
RUN make -j$(nproc)
|
RUN make -j$(nproc)
|
||||||
|
|
||||||
RUN make install
|
RUN make install
|
||||||
|
|
||||||
RUN mkdir -p /etc/atheme -p /etc/ssl/atheme -p /var/log/atheme
|
RUN mkdir -p /etc/anope -p /etc/ssl/anope -p /var/log/anope -p /var/lib/anope
|
||||||
|
|
||||||
RUN mv /usr/local/etc /usr/local/etc_old
|
ADD anope.conf /etc/anope
|
||||||
|
|
||||||
RUN ln -sf /etc/atheme /usr/local/etc
|
ADD include.default.conf /etc/anope/include.conf
|
||||||
|
|
||||||
ADD data/atheme.conf /etc/atheme
|
RUN openssl genrsa -out /etc/ssl/anope/server.key
|
||||||
|
|
||||||
ADD data/include.default.conf /etc/atheme/include.conf
|
RUN openssl req -new -key /etc/ssl/anope/server.key -out /etc/ssl/anope/server.csr \
|
||||||
|
-subj "/C=US/ST=Washington/L=Seattle/O=LameNetwork/OU=IT Department/CN=$BUILD_SERVER_NAME"
|
||||||
|
|
||||||
RUN chown -R atheme:atheme /etc/atheme /etc/ssl/atheme /var/log/atheme
|
RUN openssl x509 -req -days 365 -in /etc/ssl/anope/server.csr -signkey /etc/ssl/anope/server.key -out /etc/ssl/anope/server.crt
|
||||||
|
|
||||||
|
RUN chown -R anope:anope /etc/anope /etc/ssl/anope /var/log/anope /var/lib/anope
|
||||||
|
|
||||||
WORKDIR /
|
WORKDIR /
|
||||||
|
|
||||||
RUN rm -rf /tmp/atheme
|
VOLUME /var/lib/anope
|
||||||
|
|
||||||
USER atheme
|
VOLUME /etc/ssl/anope
|
||||||
|
|
||||||
RUN /usr/local/bin/atheme-services -b ; true
|
VOLUME /var/log/anope
|
||||||
|
|
||||||
VOLUME /etc/atheme
|
USER anope
|
||||||
|
|
||||||
VOLUME /var/log/atheme
|
ENTRYPOINT ["/usr/local/bin/anope", "--nofork", "--confdir=/etc/anope/", "--dbdir=/etc/anope/custom/", "--logdir=/var/log/anope/", "--moduledir=/usr/local/modules/"]
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/local/bin/atheme-services", "-p", "/tmp/atheme.pid", "-n"]
|
|
||||||
|
29
README.md
29
README.md
@ -1,27 +1,2 @@
|
|||||||
# Instructions
|
- Copy `config.env.example` to `config.env` and `include.default.conf` to `include.conf` and edit both
|
||||||
|
- `chown -R 999 custom` and `docker-compose up -d`
|
||||||
## Remote with TLS
|
|
||||||
since atheme doesn't support TLS uplinks, (https://github.com/atheme/atheme/issues/265) stunnel has to be used for remote TLS
|
|
||||||
encryption (this assumes stunnel is running on the hub already):
|
|
||||||
- `cd stunnel/`
|
|
||||||
- Copy `stunnel.conf.example` to `stunnel.conf` then edit
|
|
||||||
- retrieve certificates from CA `see inspircd hub CA setup with easyrsa3`, place `ca.crt` in `ssl/`
|
|
||||||
- `docker-compose up -d`
|
|
||||||
|
|
||||||
## docker-compose
|
|
||||||
- Copy `config.env.example` to `config.env` and edit
|
|
||||||
- Copy `data/include.default.conf` to `data/include.conf` and edit
|
|
||||||
- `docker-compose build`
|
|
||||||
- `docker-compose up -d`
|
|
||||||
|
|
||||||
## Administration
|
|
||||||
- To enable debugging add `-d` to `DAEMON_FLAGS` in `config.env`
|
|
||||||
- `docker-compose up -d`
|
|
||||||
- `docker logs -f atheme-atheme-1`
|
|
||||||
### Anope migration
|
|
||||||
See `tools/` for `anope2atheme.php`. YMMV
|
|
||||||
|
|
||||||
### Resetting passwords
|
|
||||||
- `/oper`
|
|
||||||
- `/msg nickserv resetpass <nick>` this gives a temporary password for the user
|
|
||||||
- as the user: `/msg nickserv identify <temporary password` then `/msg nickserv set password <new password>`
|
|
||||||
|
1572
anope.conf
Normal file
1572
anope.conf
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,2 +1 @@
|
|||||||
DAEMON_FLAGS=""
|
SERVER_NAME="services.lame-network.local"
|
||||||
SERVER_NAME="services.supernets.org"
|
|
||||||
|
1
custom/.gitignore
vendored
Normal file
1
custom/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*
|
2
data/.gitignore
vendored
2
data/.gitignore
vendored
@ -1,2 +0,0 @@
|
|||||||
services.*
|
|
||||||
include.conf
|
|
598
data/atheme.conf
598
data/atheme.conf
@ -1,598 +0,0 @@
|
|||||||
# loadmodule "/usr/local/modules/security/cmdperm"; https://github.com/atheme/atheme/issues/937
|
|
||||||
loadmodule "/usr/local/modules/protocol/inspircd";
|
|
||||||
# loadmodule "/usr/local/modules/protocol/mixin_nohalfops";
|
|
||||||
# loadmodule "/usr/local/modules/protocol/mixin_noholdnick";
|
|
||||||
# loadmodule "/usr/local/modules/protocol/mixin_noprotect";
|
|
||||||
# loadmodule "/usr/local/modules/protocol/mixin_noowner";
|
|
||||||
loadmodule "/usr/local/modules/backend/opensex";
|
|
||||||
loadmodule "/usr/local/modules/crypto/argon2";
|
|
||||||
loadmodule "/usr/local/modules/crypto/scrypt";
|
|
||||||
# loadmodule "/usr/local/modules/crypto/pbkdf2v2";
|
|
||||||
loadmodule "/usr/local/modules/crypto/bcrypt";
|
|
||||||
# loadmodule "/usr/local/modules/crypto/pbkdf2";
|
|
||||||
# loadmodule "/usr/local/modules/crypto/crypt3-sha2-512";
|
|
||||||
# loadmodule "/usr/local/modules/crypto/crypt3-sha2-256";
|
|
||||||
# loadmodule "/usr/local/modules/crypto/crypt3-md5";
|
|
||||||
loadmodule "/usr/local/modules/crypto/rawsha2-512";
|
|
||||||
loadmodule "/usr/local/modules/crypto/rawsha2-256";
|
|
||||||
loadmodule "/usr/local/modules/crypto/anope-enc-sha256";
|
|
||||||
loadmodule "/usr/local/modules/crypto/rawsha1";
|
|
||||||
loadmodule "/usr/local/modules/crypto/rawmd5";
|
|
||||||
loadmodule "/usr/local/modules/crypto/ircservices";
|
|
||||||
# loadmodule "/usr/local/modules/crypto/crypt3-des";
|
|
||||||
loadmodule "/usr/local/modules/crypto/base64";
|
|
||||||
# loadmodule "/usr/local/modules/auth/ldap";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/main";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/access";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/badmail";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/cert";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/drop";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/enforce";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/ghost";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/group";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/help";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/hold";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/identify";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/info";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/info_lastquit";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/list";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/listlogins";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/listmail";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/listownmail";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/login";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/loginnolimit";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/logout";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/mark";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/pwquality";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/freeze";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/listchans";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/listgroups";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/register";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/regnolimit";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/resetpass";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/restrict";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/return";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/setpass";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/sendpass";
|
|
||||||
# loadmodule "/usr/local/modules/nickserv/sendpass_user";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/set_accountname";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/set_badpasswdmsg";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/set_email";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/set_emailmemos";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/set_enforcetime";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/set_hidemail";
|
|
||||||
# loadmodule "/usr/local/modules/nickserv/set_language";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/set_nevergroup";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/set_neverop";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/set_nogreet";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/set_nomemo";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/set_noop";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/set_nopassword";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/set_password";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/set_privmsg";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/set_private";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/set_property";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/set_pubkey";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/set_quietchg";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/status";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/taxonomy";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/vacation";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/verify";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/vhost";
|
|
||||||
loadmodule "/usr/local/modules/nickserv/waitreg";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/main";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/access";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/akick";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/ban";
|
|
||||||
# loadmodule "/usr/local/modules/chanserv/unban_self";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/bansearch";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/clone";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/close";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/clear";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/clear_akicks";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/clear_bans";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/clear_flags";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/clear_users";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/count";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/drop";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/fflags";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/flags";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/ftransfer";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/getkey";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/halfop";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/help";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/hold";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/info";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/invite";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/kick";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/list";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/mark";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/moderate";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/op";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/owner";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/protect";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/quiet";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/recover";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/register";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/set_email";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/set_entrymsg";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/set_fantasy";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/set_gameserv";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/set_guard";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/set_keeptopic";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/set_limitflags";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/set_mlock";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/set_prefix";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/set_private";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/set_property";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/set_pubacl";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/set_restricted";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/set_secure";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/set_topiclock";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/set_url";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/set_verbose";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/status";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/sync";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/successor_acl";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/taxonomy";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/template";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/topic";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/voice";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/why";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/xop";
|
|
||||||
loadmodule "/usr/local/modules/chanserv/antiflood";
|
|
||||||
loadmodule "/usr/local/modules/chanfix/main";
|
|
||||||
loadmodule "/usr/local/modules/operserv/akill";
|
|
||||||
loadmodule "/usr/local/modules/operserv/clearchan";
|
|
||||||
loadmodule "/usr/local/modules/operserv/clones";
|
|
||||||
loadmodule "/usr/local/modules/operserv/compare";
|
|
||||||
loadmodule "/usr/local/modules/operserv/genhash";
|
|
||||||
loadmodule "/usr/local/modules/operserv/greplog";
|
|
||||||
loadmodule "/usr/local/modules/operserv/help";
|
|
||||||
loadmodule "/usr/local/modules/operserv/identify";
|
|
||||||
loadmodule "/usr/local/modules/operserv/ignore";
|
|
||||||
loadmodule "/usr/local/modules/operserv/info";
|
|
||||||
loadmodule "/usr/local/modules/operserv/joinrate";
|
|
||||||
loadmodule "/usr/local/modules/operserv/jupe";
|
|
||||||
loadmodule "/usr/local/modules/operserv/mode";
|
|
||||||
loadmodule "/usr/local/modules/operserv/modlist";
|
|
||||||
loadmodule "/usr/local/modules/operserv/modmanager";
|
|
||||||
loadmodule "/usr/local/modules/operserv/noop";
|
|
||||||
loadmodule "/usr/local/modules/operserv/rakill";
|
|
||||||
loadmodule "/usr/local/modules/operserv/readonly";
|
|
||||||
loadmodule "/usr/local/modules/operserv/rehash";
|
|
||||||
loadmodule "/usr/local/modules/operserv/restart";
|
|
||||||
loadmodule "/usr/local/modules/operserv/rmatch";
|
|
||||||
loadmodule "/usr/local/modules/operserv/rnc";
|
|
||||||
loadmodule "/usr/local/modules/operserv/rwatch";
|
|
||||||
# loadmodule "/usr/local/modules/operserv/set";
|
|
||||||
# loadmodule "/usr/local/modules/operserv/sgline";
|
|
||||||
loadmodule "/usr/local/modules/operserv/shutdown";
|
|
||||||
loadmodule "/usr/local/modules/operserv/soper";
|
|
||||||
loadmodule "/usr/local/modules/operserv/specs";
|
|
||||||
loadmodule "/usr/local/modules/operserv/sqline";
|
|
||||||
loadmodule "/usr/local/modules/operserv/update";
|
|
||||||
loadmodule "/usr/local/modules/operserv/uptime";
|
|
||||||
loadmodule "/usr/local/modules/memoserv/help";
|
|
||||||
loadmodule "/usr/local/modules/memoserv/send";
|
|
||||||
loadmodule "/usr/local/modules/memoserv/sendops";
|
|
||||||
loadmodule "/usr/local/modules/memoserv/sendgroup";
|
|
||||||
loadmodule "/usr/local/modules/memoserv/list";
|
|
||||||
loadmodule "/usr/local/modules/memoserv/read";
|
|
||||||
loadmodule "/usr/local/modules/memoserv/forward";
|
|
||||||
loadmodule "/usr/local/modules/memoserv/delete";
|
|
||||||
loadmodule "/usr/local/modules/memoserv/ignore";
|
|
||||||
loadmodule "/usr/local/modules/global/main";
|
|
||||||
loadmodule "/usr/local/modules/infoserv/main";
|
|
||||||
loadmodule "/usr/local/modules/saslserv/authcookie";
|
|
||||||
loadmodule "/usr/local/modules/saslserv/ecdh-x25519-challenge";
|
|
||||||
loadmodule "/usr/local/modules/saslserv/ecdsa-nist256p-challenge";
|
|
||||||
loadmodule "/usr/local/modules/saslserv/external";
|
|
||||||
loadmodule "/usr/local/modules/saslserv/plain";
|
|
||||||
# loadmodule "/usr/local/modules/saslserv/scram";
|
|
||||||
loadmodule "/usr/local/modules/gameserv/dice";
|
|
||||||
loadmodule "/usr/local/modules/gameserv/eightball";
|
|
||||||
loadmodule "/usr/local/modules/gameserv/gamecalc";
|
|
||||||
loadmodule "/usr/local/modules/gameserv/help";
|
|
||||||
loadmodule "/usr/local/modules/gameserv/lottery";
|
|
||||||
loadmodule "/usr/local/modules/gameserv/namegen";
|
|
||||||
loadmodule "/usr/local/modules/gameserv/rps";
|
|
||||||
loadmodule "/usr/local/modules/rpgserv/enable";
|
|
||||||
loadmodule "/usr/local/modules/rpgserv/help";
|
|
||||||
loadmodule "/usr/local/modules/rpgserv/info";
|
|
||||||
loadmodule "/usr/local/modules/rpgserv/list";
|
|
||||||
loadmodule "/usr/local/modules/rpgserv/search";
|
|
||||||
loadmodule "/usr/local/modules/rpgserv/set";
|
|
||||||
loadmodule "/usr/local/modules/botserv/main";
|
|
||||||
loadmodule "/usr/local/modules/botserv/help";
|
|
||||||
loadmodule "/usr/local/modules/botserv/info";
|
|
||||||
loadmodule "/usr/local/modules/botserv/bottalk";
|
|
||||||
loadmodule "/usr/local/modules/botserv/set_fantasy";
|
|
||||||
loadmodule "/usr/local/modules/botserv/set_nobot";
|
|
||||||
loadmodule "/usr/local/modules/botserv/set_private";
|
|
||||||
loadmodule "/usr/local/modules/botserv/set_saycaller";
|
|
||||||
loadmodule "/usr/local/modules/hostserv/help";
|
|
||||||
loadmodule "/usr/local/modules/hostserv/onoff";
|
|
||||||
loadmodule "/usr/local/modules/hostserv/offer";
|
|
||||||
loadmodule "/usr/local/modules/hostserv/request";
|
|
||||||
loadmodule "/usr/local/modules/hostserv/vhost";
|
|
||||||
loadmodule "/usr/local/modules/hostserv/vhostnick";
|
|
||||||
loadmodule "/usr/local/modules/hostserv/group";
|
|
||||||
loadmodule "/usr/local/modules/hostserv/drop";
|
|
||||||
loadmodule "/usr/local/modules/helpserv/helpme";
|
|
||||||
loadmodule "/usr/local/modules/helpserv/ticket";
|
|
||||||
loadmodule "/usr/local/modules/helpserv/services";
|
|
||||||
loadmodule "/usr/local/modules/alis/main";
|
|
||||||
loadmodule "/usr/local/modules/statserv/channel";
|
|
||||||
loadmodule "/usr/local/modules/statserv/netsplit";
|
|
||||||
loadmodule "/usr/local/modules/statserv/server";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/main";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/acsnolimit";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/drop";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/fflags";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/flags";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/help";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/info";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/join";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/list";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/listchans";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/register";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/regnolimit";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/invite";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/set";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/set_channel";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/set_description";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/set_email";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/set_groupname";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/set_joinflags";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/set_open";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/set_public";
|
|
||||||
loadmodule "/usr/local/modules/groupserv/set_url";
|
|
||||||
loadmodule "/usr/local/modules/misc/httpd";
|
|
||||||
loadmodule "/usr/local/modules/misc/login_throttling";
|
|
||||||
loadmodule "/usr/local/modules/transport/xmlrpc";
|
|
||||||
loadmodule "/usr/local/modules/exttarget/oper";
|
|
||||||
loadmodule "/usr/local/modules/exttarget/registered";
|
|
||||||
loadmodule "/usr/local/modules/exttarget/channel";
|
|
||||||
loadmodule "/usr/local/modules/exttarget/chanacs";
|
|
||||||
loadmodule "/usr/local/modules/exttarget/server";
|
|
||||||
loadmodule "/usr/local/modules/proxyscan/dnsbl";
|
|
||||||
include "/usr/local/etc/include.conf";
|
|
||||||
|
|
||||||
crypto {
|
|
||||||
argon2_type = "argon2id";
|
|
||||||
argon2_memcost = 16;
|
|
||||||
argon2_timecost = 3;
|
|
||||||
argon2_threads = 1;
|
|
||||||
argon2_saltlen = 16;
|
|
||||||
argon2_hashlen = 64;
|
|
||||||
scrypt_memlimit = 14;
|
|
||||||
scrypt_opslimit = 524288;
|
|
||||||
# pbkdf2v2_digest = "SHA256";
|
|
||||||
# pbkdf2v2_rounds = 64000;
|
|
||||||
# pbkdf2v2_saltlen = 32;
|
|
||||||
# scram_mechanisms = "SCRAM-SHA-1,SCRAM-SHA-256";
|
|
||||||
bcrypt_cost = 7;
|
|
||||||
# crypt3_sha2_256_rounds = 5000;
|
|
||||||
# crypt3_sha2_512_rounds = 5000;
|
|
||||||
};
|
|
||||||
|
|
||||||
nickserv {
|
|
||||||
nick = "NICKSERV";
|
|
||||||
user = "_";
|
|
||||||
host = "services/SuperNETs";
|
|
||||||
real = "Nickname Services";
|
|
||||||
# spam;
|
|
||||||
# no_nick_ownership;
|
|
||||||
maxnicks = 8;
|
|
||||||
expire = 0;
|
|
||||||
# enforce_expire = 14;
|
|
||||||
enforce_delay = 32;
|
|
||||||
enforce_prefix = "`";
|
|
||||||
waitreg_time = 4;
|
|
||||||
pwquality_warn_only;
|
|
||||||
show_custom_metadata;
|
|
||||||
shorthelp = "";
|
|
||||||
listownmail_canon;
|
|
||||||
bad_password_message;
|
|
||||||
};
|
|
||||||
|
|
||||||
chanserv {
|
|
||||||
nick = "CHANSERV";
|
|
||||||
user = "_";
|
|
||||||
host = "services/SuperNETs";
|
|
||||||
real = "Channel Services";
|
|
||||||
aliases {
|
|
||||||
};
|
|
||||||
access {
|
|
||||||
};
|
|
||||||
reggroup = "!Services-Team";
|
|
||||||
maxchans = 5;
|
|
||||||
fantasy;
|
|
||||||
hide_xop;
|
|
||||||
hide_flags_akicks;
|
|
||||||
hide_pubacl_akicks;
|
|
||||||
templates {
|
|
||||||
vop = "+AV";
|
|
||||||
hop = "+AHehitrv";
|
|
||||||
aop = "+AOehiortv";
|
|
||||||
sop = "+AOaefhiorstv";
|
|
||||||
founder = "+AFORaefhioqrstv";
|
|
||||||
member = "+Ai";
|
|
||||||
op = "+AOiortv";
|
|
||||||
};
|
|
||||||
deftemplates = "MEMBER=+Ai OP=+AOeiortv";
|
|
||||||
changets;
|
|
||||||
trigger = "!";
|
|
||||||
expire = 30;
|
|
||||||
maxchanacs = 0;
|
|
||||||
maxfounders = 4;
|
|
||||||
founder_flags = "AFORefiorstv";
|
|
||||||
default_mlock = "+nt";
|
|
||||||
akick_time = 10;
|
|
||||||
antiflood_enforce_method = quiet;
|
|
||||||
show_custom_metadata;
|
|
||||||
shorthelp = "";
|
|
||||||
};
|
|
||||||
|
|
||||||
chanfix {
|
|
||||||
nick = "CHANFIX";
|
|
||||||
user = "_";
|
|
||||||
host = "services/SuperNETs";
|
|
||||||
real = "Channel Fixing Service";
|
|
||||||
aliases {
|
|
||||||
};
|
|
||||||
access {
|
|
||||||
};
|
|
||||||
autofix;
|
|
||||||
};
|
|
||||||
|
|
||||||
global {
|
|
||||||
nick = "GLOBAL";
|
|
||||||
user = "_";
|
|
||||||
host = "services/SuperNETs";
|
|
||||||
real = "Network Announcements";
|
|
||||||
aliases {
|
|
||||||
};
|
|
||||||
access {
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
infoserv {
|
|
||||||
nick = "INFOSERV";
|
|
||||||
user = "_";
|
|
||||||
host = "services/SuperNETs";
|
|
||||||
real = "Information Service";
|
|
||||||
aliases {
|
|
||||||
};
|
|
||||||
access {
|
|
||||||
};
|
|
||||||
logoninfo_count = 4;
|
|
||||||
logoninfo_reverse;
|
|
||||||
logoninfo_show_metadata;
|
|
||||||
};
|
|
||||||
|
|
||||||
operserv {
|
|
||||||
nick = "OPERSERV";
|
|
||||||
user = "_";
|
|
||||||
host = "services/SuperNETs";
|
|
||||||
real = "Operator Services";
|
|
||||||
aliases {
|
|
||||||
};
|
|
||||||
access {
|
|
||||||
};
|
|
||||||
modinspect_use_colors;
|
|
||||||
};
|
|
||||||
|
|
||||||
saslserv {
|
|
||||||
nick = "SASLSERV";
|
|
||||||
user = "_";
|
|
||||||
host = "services/SuperNETs";
|
|
||||||
real = "SASL Authentication Agent";
|
|
||||||
hide_server_names;
|
|
||||||
};
|
|
||||||
|
|
||||||
memoserv {
|
|
||||||
nick = "MEMOSERV";
|
|
||||||
user = "_";
|
|
||||||
host = "services/SuperNETs";
|
|
||||||
real = "Memo Services";
|
|
||||||
aliases {
|
|
||||||
};
|
|
||||||
access {
|
|
||||||
};
|
|
||||||
maxmemos = 64;
|
|
||||||
};
|
|
||||||
|
|
||||||
gameserv {
|
|
||||||
nick = "GAMESERV";
|
|
||||||
user = "_";
|
|
||||||
host = "services/SuperNETs";
|
|
||||||
real = "Game Services";
|
|
||||||
aliases {
|
|
||||||
};
|
|
||||||
access {
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
rpgserv {
|
|
||||||
nick = "RPGSERV";
|
|
||||||
user = "_";
|
|
||||||
host = "services/SuperNETs";
|
|
||||||
real = "RPG Finding Services";
|
|
||||||
aliases {
|
|
||||||
};
|
|
||||||
access {
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
botserv {
|
|
||||||
nick = "BOTSERV";
|
|
||||||
user = "_";
|
|
||||||
host = "services/SuperNETs";
|
|
||||||
real = "Bot Services";
|
|
||||||
aliases {
|
|
||||||
};
|
|
||||||
access {
|
|
||||||
};
|
|
||||||
min_users = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
groupserv {
|
|
||||||
nick = "GROUPSERV";
|
|
||||||
user = "_";
|
|
||||||
host = "services/SuperNETs";
|
|
||||||
real = "Group Management Services";
|
|
||||||
aliases {
|
|
||||||
};
|
|
||||||
access {
|
|
||||||
};
|
|
||||||
maxgroups = 16;
|
|
||||||
maxgroupacs = 256;
|
|
||||||
enable_open_groups;
|
|
||||||
join_flags = "+";
|
|
||||||
};
|
|
||||||
|
|
||||||
hostserv {
|
|
||||||
nick = "HOSTSERV";
|
|
||||||
user = "_";
|
|
||||||
host = "services/SuperNETs";
|
|
||||||
real = "Host Management Services";
|
|
||||||
aliases {
|
|
||||||
"APPROVE" = "ACTIVATE";
|
|
||||||
"DENY" = "REJECT";
|
|
||||||
};
|
|
||||||
access {
|
|
||||||
};
|
|
||||||
reggroup = "!Services-Team";
|
|
||||||
no_subsequent_requests;
|
|
||||||
request_per_nick;
|
|
||||||
};
|
|
||||||
|
|
||||||
helpserv {
|
|
||||||
nick = "HELPSERV";
|
|
||||||
user = "_";
|
|
||||||
host = "services/SuperNETs";
|
|
||||||
real = "Help Services";
|
|
||||||
aliases {
|
|
||||||
};
|
|
||||||
access {
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
statserv {
|
|
||||||
nick = "STATSERV";
|
|
||||||
user = "_";
|
|
||||||
host = "services/SuperNETs";
|
|
||||||
real = "Statistics Services";
|
|
||||||
aliases {
|
|
||||||
};
|
|
||||||
access {
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
alis {
|
|
||||||
nick = "ALIS";
|
|
||||||
user = "_";
|
|
||||||
host = "services/SuperNETs";
|
|
||||||
real = "Channel Directory";
|
|
||||||
aliases {
|
|
||||||
};
|
|
||||||
access {
|
|
||||||
};
|
|
||||||
maxmatches = 128;
|
|
||||||
};
|
|
||||||
|
|
||||||
proxyscan {
|
|
||||||
nick = "PROXYSCAN";
|
|
||||||
user = "_";
|
|
||||||
host = "services/SuperNETs";
|
|
||||||
real = "Proxyscan Service";
|
|
||||||
aliases {
|
|
||||||
};
|
|
||||||
access {
|
|
||||||
};
|
|
||||||
blacklists {
|
|
||||||
"dnsbl.dronebl.org";
|
|
||||||
"rbl.efnetrbl.org";
|
|
||||||
"tor.efnet.org";
|
|
||||||
};
|
|
||||||
dnsbl_action = snoop;
|
|
||||||
};
|
|
||||||
|
|
||||||
httpd {
|
|
||||||
host = "127.0.0.1";
|
|
||||||
# host = "::";
|
|
||||||
www_root = "/var/www";
|
|
||||||
port = 8080;
|
|
||||||
};
|
|
||||||
|
|
||||||
throttle {
|
|
||||||
address_burst = 5;
|
|
||||||
address_replenish = 1;
|
|
||||||
address_account_burst = 2;
|
|
||||||
address_account_replenish = 2;
|
|
||||||
};
|
|
||||||
|
|
||||||
logfile "/var/log/atheme/account.log" { register; set; };
|
|
||||||
logfile "/var/log/atheme/commands.log" { commands; };
|
|
||||||
logfile "/var/log/atheme/audit.log" { denycmd; };
|
|
||||||
logfile "#services" { admin; denycmd; error; info; register; request; };
|
|
||||||
logfile "!snotices" { denycmd; error; info; request; };
|
|
||||||
|
|
||||||
operclass "user" { };
|
|
||||||
|
|
||||||
operclass "ircop" {
|
|
||||||
privs {
|
|
||||||
special:ircop;
|
|
||||||
};
|
|
||||||
privs {
|
|
||||||
user:auspex;
|
|
||||||
user:admin;
|
|
||||||
user:sendpass;
|
|
||||||
user:vhost;
|
|
||||||
user:mark;
|
|
||||||
};
|
|
||||||
privs {
|
|
||||||
chan:auspex;
|
|
||||||
chan:admin;
|
|
||||||
chan:cmodes;
|
|
||||||
chan:joinstaffonly;
|
|
||||||
};
|
|
||||||
privs {
|
|
||||||
general:auspex;
|
|
||||||
general:helper;
|
|
||||||
general:viewprivs;
|
|
||||||
general:flood;
|
|
||||||
};
|
|
||||||
privs {
|
|
||||||
operserv:omode;
|
|
||||||
operserv:akill;
|
|
||||||
operserv:jupe;
|
|
||||||
operserv:global;
|
|
||||||
};
|
|
||||||
privs {
|
|
||||||
group:auspex;
|
|
||||||
group:admin;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
operclass "sra" {
|
|
||||||
extends "ircop";
|
|
||||||
privs {
|
|
||||||
user:exceedlimits;
|
|
||||||
user:hold;
|
|
||||||
user:regnolimit;
|
|
||||||
};
|
|
||||||
privs {
|
|
||||||
general:metadata;
|
|
||||||
general:admin;
|
|
||||||
};
|
|
||||||
privs {
|
|
||||||
operserv:massakill;
|
|
||||||
operserv:akill-anymask;
|
|
||||||
operserv:noop;
|
|
||||||
operserv:grant;
|
|
||||||
};
|
|
||||||
# needoper;
|
|
||||||
};
|
|
@ -1,72 +0,0 @@
|
|||||||
serverinfo {
|
|
||||||
name = "services.supernets.org";
|
|
||||||
desc = "IRC Services";
|
|
||||||
numeric = "10X";
|
|
||||||
recontime = 4;
|
|
||||||
netname = "SuperNETs";
|
|
||||||
hidehostsuffix = "hidden";
|
|
||||||
adminname = "admin";
|
|
||||||
adminemail = "no-reply@supernets.org";
|
|
||||||
registeremail = "no-reply@supernets.org";
|
|
||||||
# hidden;
|
|
||||||
# mta = "/usr/sbin/sendmail";
|
|
||||||
loglevel = { admin; error; info; network; wallops; };
|
|
||||||
maxcertfp = 8;
|
|
||||||
maxlogins = 8;
|
|
||||||
maxusers = 8;
|
|
||||||
mdlimit = 64;
|
|
||||||
emaillimit = 8;
|
|
||||||
emailtime = 256;
|
|
||||||
auth = none;
|
|
||||||
casemapping = rfc1459;
|
|
||||||
};
|
|
||||||
|
|
||||||
uplink "hub.supernets.org" {
|
|
||||||
host = "127.0.0.1";
|
|
||||||
port = 6000;
|
|
||||||
send_password = "changeme";
|
|
||||||
receive_password = "changeme";
|
|
||||||
};
|
|
||||||
|
|
||||||
operator "admin" {
|
|
||||||
operclass = "sra";
|
|
||||||
password = "changeme";
|
|
||||||
};
|
|
||||||
|
|
||||||
general {
|
|
||||||
# permissive_mode; # https://github.com/atheme/atheme/issues/937
|
|
||||||
helpchan = "#help";
|
|
||||||
helpurl = "https://www.supernets.org";
|
|
||||||
verbose_wallops;
|
|
||||||
join_chans;
|
|
||||||
leave_chans;
|
|
||||||
uflags = { hidemail; };
|
|
||||||
cflags = { verbose; verbose_ops; keeptopic; guard; };
|
|
||||||
flood_msgs = 0;
|
|
||||||
flood_time = 10;
|
|
||||||
# ratelimit_uses = 5;
|
|
||||||
# ratelimit_period = 60;
|
|
||||||
# vhost_change = 30;
|
|
||||||
kline_time = 1;
|
|
||||||
# kline_with_ident;
|
|
||||||
kline_verified_ident;
|
|
||||||
clone_time = 0;
|
|
||||||
commit_interval = 16;
|
|
||||||
db_save_blocking;
|
|
||||||
operstring = "is an IRC Operator";
|
|
||||||
servicestring = "is a Network Service";
|
|
||||||
default_clone_allowed = 8;
|
|
||||||
default_clone_warn = 4;
|
|
||||||
clone_identified_increase_limit;
|
|
||||||
# uplink_sendq_limit = 1048576;
|
|
||||||
language = "en";
|
|
||||||
exempts {
|
|
||||||
};
|
|
||||||
# allow_taint;
|
|
||||||
immune_level = ircop;
|
|
||||||
show_entity_id;
|
|
||||||
# load_database_mdeps;
|
|
||||||
hide_opers;
|
|
||||||
match_masks_through_vhost;
|
|
||||||
default_password_length = 16;
|
|
||||||
};
|
|
@ -1,16 +1,25 @@
|
|||||||
services:
|
services:
|
||||||
atheme:
|
anope:
|
||||||
|
ulimits:
|
||||||
|
nofile:
|
||||||
|
soft: "102400"
|
||||||
|
hard: "102400"
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "64k"
|
||||||
|
restart: always
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
args:
|
args:
|
||||||
BUILD_SERVER_NAME: ${SERVER_NAME}
|
BUILD_SERVER_NAME: ${SERVER_NAME}
|
||||||
image: atheme
|
image: anope
|
||||||
command: ${DAEMON_FLAGS}
|
|
||||||
network_mode: "host"
|
network_mode: "host"
|
||||||
env_file: "config.env"
|
env_file: "config.env"
|
||||||
volumes:
|
volumes:
|
||||||
- ./data:/etc/atheme
|
- ./custom:/etc/anope/custom:rw
|
||||||
- log:/var/log/atheme
|
- ./include.conf:/etc/anope/include.conf:ro
|
||||||
|
- log:/var/log/anope
|
||||||
volumes:
|
volumes:
|
||||||
log:
|
log:
|
||||||
name: atheme_log
|
name: anope_log
|
||||||
|
97
include.default.conf
Normal file
97
include.default.conf
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
uplink
|
||||||
|
{
|
||||||
|
host = 127.0.0.1
|
||||||
|
protocol = "ipv4"
|
||||||
|
ssl = yes
|
||||||
|
port = "7000"
|
||||||
|
password = changeme
|
||||||
|
}
|
||||||
|
|
||||||
|
serverinfo
|
||||||
|
{
|
||||||
|
name = services.lame-network.local
|
||||||
|
description = "IRC Services"
|
||||||
|
localhost = 127.0.0.1
|
||||||
|
id = 10X
|
||||||
|
pid = "/tmp/anope.pid"
|
||||||
|
motd = "/etc/anope/motd.txt"
|
||||||
|
}
|
||||||
|
|
||||||
|
networkinfo
|
||||||
|
{
|
||||||
|
networkname = "NetcraveIRC"
|
||||||
|
nicklen = 31
|
||||||
|
userlen = 10
|
||||||
|
hostlen = 64
|
||||||
|
chanlen = 32
|
||||||
|
modelistsize = 256
|
||||||
|
nick_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||||
|
vhost_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-"
|
||||||
|
allow_undotted_vhosts = true
|
||||||
|
disallow_start_or_end = ".-"
|
||||||
|
}
|
||||||
|
|
||||||
|
mail
|
||||||
|
{
|
||||||
|
usemail = no
|
||||||
|
sendmailpath = "/usr/sbin/sendmail -it"
|
||||||
|
sendfrom = "no-reply@lame-network.local"
|
||||||
|
delay = 5m
|
||||||
|
dontquoteaddresses = no
|
||||||
|
content_type = "text/plain; charset=UTF-8"
|
||||||
|
registration_subject = "Nickname registration for %n"
|
||||||
|
registration_message = "Hi,
|
||||||
|
|
||||||
|
You have requested to register the nickname %n on %N.
|
||||||
|
Please type \" /msg NickServ CONFIRM %c \" to complete registration.
|
||||||
|
|
||||||
|
If you don't know why this mail was sent to you, please ignore it silently.
|
||||||
|
|
||||||
|
%N administrators."
|
||||||
|
|
||||||
|
reset_subject = "Reset password request for %n"
|
||||||
|
reset_message = "Hi,
|
||||||
|
|
||||||
|
You have requested to have the password for %n reset.
|
||||||
|
To reset your password, type \" /msg NickServ CONFIRM %n %c \"
|
||||||
|
|
||||||
|
If you don't know why this mail was sent to you, please ignore it silently.
|
||||||
|
|
||||||
|
%N administrators."
|
||||||
|
|
||||||
|
emailchange_subject = "Email confirmation"
|
||||||
|
emailchange_message = "Hi,
|
||||||
|
|
||||||
|
You have requested to change your email address from %e to %E.
|
||||||
|
Please type \" /msg NickServ CONFIRM %c \" to confirm this change.
|
||||||
|
|
||||||
|
If you don't know why this mail was sent to you, please ignore it silently.
|
||||||
|
|
||||||
|
%N administrators."
|
||||||
|
|
||||||
|
memo_subject = "New memo"
|
||||||
|
memo_message = "Hi %n,
|
||||||
|
|
||||||
|
You've just received a new memo from %s. This is memo number %d.
|
||||||
|
|
||||||
|
Memo text:
|
||||||
|
|
||||||
|
%t"
|
||||||
|
}
|
||||||
|
|
||||||
|
oper
|
||||||
|
{
|
||||||
|
name = "admin"
|
||||||
|
type = "Services Root"
|
||||||
|
require_oper = yes
|
||||||
|
}
|
||||||
|
|
||||||
|
module
|
||||||
|
{
|
||||||
|
name = "db_flatfile"
|
||||||
|
database = "/var/lib/anope/anope.db"
|
||||||
|
fork = no
|
||||||
|
nobackupokay = yes
|
||||||
|
keepbackups = 3
|
||||||
|
}
|
||||||
|
|
3
ssl/.gitignore
vendored
3
ssl/.gitignore
vendored
@ -1,3 +0,0 @@
|
|||||||
*
|
|
||||||
!.gitignore
|
|
||||||
!ca.crt
|
|
40
ssl/ca.crt
40
ssl/ca.crt
@ -1,40 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIG+TCCBOGgAwIBAgIUTnY+1MZsN286sT+G2i8UWe3VjZwwDQYJKoZIhvcNAQEL
|
|
||||||
BQAwgaIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQH
|
|
||||||
DA1TYW4gRnJhbmNpc2NvMRIwEAYDVQQKDAlTdXBlck5FVHMxDDAKBgNVBAsMA0lS
|
|
||||||
QzEdMBsGA1UEAwwUY2EudGFpbDkxMjJjOC50cy5uZXQxJTAjBgkqhkiG9w0BCQEW
|
|
||||||
Fm5vLXJlcGx5QHN1cGVybmV0cy5vcmcwHhcNMjQxMTA2MTkzMDM3WhcNMzQxMTA0
|
|
||||||
MTkzMDM3WjCBojELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAU
|
|
||||||
BgNVBAcMDVNhbiBGcmFuY2lzY28xEjAQBgNVBAoMCVN1cGVyTkVUczEMMAoGA1UE
|
|
||||||
CwwDSVJDMR0wGwYDVQQDDBRjYS50YWlsOTEyMmM4LnRzLm5ldDElMCMGCSqGSIb3
|
|
||||||
DQEJARYWbm8tcmVwbHlAc3VwZXJuZXRzLm9yZzCCAiIwDQYJKoZIhvcNAQEBBQAD
|
|
||||||
ggIPADCCAgoCggIBAKSUdSIh1QLRB+rP0CrLd9T3zMSnA6o0ToIiSwJFjDqZ6F3v
|
|
||||||
ZtYnZMD0OiNCJe89KNngaLbTY9CY5Yds2b9g3PemdAM1Kle9hMom+W6Q17T4oA2q
|
|
||||||
0hrJkvf4sFQo1P0P6KEQSWRPqSwQ7h10DQYNEvZ7Q9LCAsgHoCmVXZIdAm6fRZmM
|
|
||||||
ihTkXm0K24aTS8k/Tjgq+NsMulw0Z5SA19INvq+jk4AnYcqwuFPbPHdcKdfXryLh
|
|
||||||
M8dXbUQbv0z8tLGptLqr56ESnf3QuP9ad86hx22WxesJxnR7JwHBjWdlwO1hAdOa
|
|
||||||
QZjlcJxejIyYwHAU1FSpYdbH++HuQ6kd+DvREEF6FOVMlIyYqwHzo4fm9mzrne7s
|
|
||||||
NLTQWp2wnzv3RB2/Q2sMwd3ccG7SWfo7iCOXIYaEwGbjduk2/4y388uBAfbofT+T
|
|
||||||
8hAWgPVVEJiCpQ2cMzscQxA1mAk3WDB1fz9lHwMrlgBRa/Tftj3jVogdVPl5fDsD
|
|
||||||
/2sCQgVQ68ABT6hlzMp56iayhZu1jjnBc/fTKK40NHCh7WNvZgJ9pR4Lpqzmt6JA
|
|
||||||
Z4iY5WtHehg+xwhFoAfjjZdCiWvLNmfzet+PmW+D9c8V17faMMNfLsHTxHjzABoc
|
|
||||||
2jFSdGNOyoI1DPKDEw6f/ZlNY67YOesiozbvH+XBurFhzh04hkyPkKWSZnqhAgMB
|
|
||||||
AAGjggEjMIIBHzAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBRI9BMsv2VBGfUEfJjN
|
|
||||||
s1Fb2B68zDCB4gYDVR0jBIHaMIHXgBRI9BMsv2VBGfUEfJjNs1Fb2B68zKGBqKSB
|
|
||||||
pTCBojELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM
|
|
||||||
DVNhbiBGcmFuY2lzY28xEjAQBgNVBAoMCVN1cGVyTkVUczEMMAoGA1UECwwDSVJD
|
|
||||||
MR0wGwYDVQQDDBRjYS50YWlsOTEyMmM4LnRzLm5ldDElMCMGCSqGSIb3DQEJARYW
|
|
||||||
bm8tcmVwbHlAc3VwZXJuZXRzLm9yZ4IUTnY+1MZsN286sT+G2i8UWe3VjZwwCwYD
|
|
||||||
VR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAUfhnquPlKvCB/l47JZaC0V+wR
|
|
||||||
aAJlbCjqwCsfOJqE381i1yKBc7Dbk0rYmS68fjDDyeGs6Av/9wj6RZ4+WoY47WYL
|
|
||||||
fYCGF/HAFqyKllAfzKF+nvvBP8mKVOZX/QTlZKBD7biTjHTJSUou6y9LkRAwm7yw
|
|
||||||
cRHkJkPwPCHihLcn0MLdlf8vRrTCZqZ1wEiRd0jIPkrBdpYoc3ENg+3zQGkPnCsD
|
|
||||||
L1LwbiL7d1WASZ5cAxKKMl7rqA8oHCH8Ffou4DyK+igeEhcOxTu1A2jSpIAHjLZv
|
|
||||||
aoWy/aEl4QO1QmY4CTftb2qgX5rr7EDLRK4paqFMsPfv8nCK3w8KmwZ/s1rlYt10
|
|
||||||
oVoO3SJF+PRl78bMiuv55k+4UHh1S17fHuYKz31eGVkj9AfIec4FPewq4hHnLYO6
|
|
||||||
F5tX96OlTubweeNioZauKv4pynwleIhjnzW0af50beaGulJmY83gCenyQcxxdTxu
|
|
||||||
B7bmdj11/knCdFy0CKjZmvFNc99ujkH8Bac/qViHwjctWJ87mNLxHvlHQSMe9e7f
|
|
||||||
Z2FmtlL0tlFl4KSX3RLXBt5MzRq2zbGY6eAjm2Ld3F+/bPYoyi4t1dUZh9BglTUb
|
|
||||||
fW0A6bn325JCOPAMvyyBs4M4yeaUm5wep+KB1VyLhbm39OFotNz5oXZ/2WhQQK1E
|
|
||||||
WOpWX6M4m8GQTXG1IA==
|
|
||||||
-----END CERTIFICATE-----
|
|
1
stunnel/.gitignore
vendored
1
stunnel/.gitignore
vendored
@ -1 +0,0 @@
|
|||||||
stunnel.conf
|
|
@ -1,11 +0,0 @@
|
|||||||
ARG UBUNTU_VERSION="noble"
|
|
||||||
|
|
||||||
FROM ubuntu:${UBUNTU_VERSION}
|
|
||||||
|
|
||||||
RUN apt -y update
|
|
||||||
|
|
||||||
RUN apt -y install stunnel
|
|
||||||
|
|
||||||
ADD stunnel.conf /etc/stunnel/stunnel.conf
|
|
||||||
|
|
||||||
CMD stunnel
|
|
@ -1,20 +0,0 @@
|
|||||||
services:
|
|
||||||
stunnel:
|
|
||||||
restart: on-failure:3
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
image: stunnel
|
|
||||||
network_mode: "host"
|
|
||||||
volumes:
|
|
||||||
- ../ssl/ca.crt:/ca.crt:ro
|
|
||||||
- ../ssl/server.crt:/server.crt:ro
|
|
||||||
- ../ssl/server.key:/server.key:ro
|
|
||||||
- ./stunnel.conf:/etc/stunnel/stunnel.conf:ro
|
|
||||||
ulimits:
|
|
||||||
nofile:
|
|
||||||
soft: "102400"
|
|
||||||
hard: "102400"
|
|
||||||
logging:
|
|
||||||
driver: "json-file"
|
|
||||||
options:
|
|
||||||
max-size: "64k"
|
|
@ -1,9 +0,0 @@
|
|||||||
foreground = yes
|
|
||||||
|
|
||||||
[PKI client]
|
|
||||||
client = yes
|
|
||||||
accept = 127.0.0.1:6000
|
|
||||||
connect = 100.79.209.72:7777
|
|
||||||
CAfile = /ca.crt
|
|
||||||
verifyChain = yes
|
|
||||||
checkHost = super-temple.lame-server.local
|
|
1
tools/.gitignore
vendored
1
tools/.gitignore
vendored
@ -1 +0,0 @@
|
|||||||
anope.db
|
|
@ -1,410 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* Created by Klaas Tammling. (https://gist.github.com/KlaasT/449b28c63db129a7714d41b8e2074d90)
|
|
||||||
* Project: anope2atheme
|
|
||||||
* User: ktammling
|
|
||||||
* Date: 10.10.2016
|
|
||||||
* Time: 15:55
|
|
||||||
*/
|
|
||||||
|
|
||||||
$mu_hold = 0x00000001;
|
|
||||||
$mu_neverop = 0x00000002;
|
|
||||||
$mu_noop = 0x00000004;
|
|
||||||
$mu_waitauth = 0x00000008;
|
|
||||||
$mu_hidemail = 0x00000010;
|
|
||||||
$mu_oldalias = 0x00000020;
|
|
||||||
$mu_nomemo = 0x00000040;
|
|
||||||
$mu_emailmemos = 0x00000080;
|
|
||||||
$mu_cryptpass = 0x00000100;
|
|
||||||
$mu_old_sasl = 0x00000200;
|
|
||||||
$mu_noburstlogin = 0x00000400;
|
|
||||||
$mu_enforce = 0x00000800;
|
|
||||||
$mu_usepriv = 0x00001000;
|
|
||||||
$mu_private = 0x00002000;
|
|
||||||
$mu_quietchg = 0x00004000;
|
|
||||||
|
|
||||||
$levels['VOP'] = "+AV";
|
|
||||||
$levels['HOP'] = "+AHehirtv";
|
|
||||||
$levels['AOP'] = "+AOehiortv";
|
|
||||||
$levels['SOP'] = "+AOaefhiorstv";
|
|
||||||
$levels['QOP'] = "+AFORaefhioqrstv";
|
|
||||||
|
|
||||||
$access[1] = "+A";
|
|
||||||
$access[3] = "+VA";
|
|
||||||
$access[4] = "+vHiA";
|
|
||||||
$access[5] = "+vhoOirtA";
|
|
||||||
$access[10] = "+vhoOairRftA";
|
|
||||||
$access[15] = "+vhoOairRftA";
|
|
||||||
$access[20] = "+vhoOairRftA";
|
|
||||||
$access[999] = "+vhoOairRftA";
|
|
||||||
$access[9000] = "+vhoOaqsirRftA";
|
|
||||||
$access[9999] = "+vhoOaqsirRftA";
|
|
||||||
$access[10000] = "+vhoOaqsirRftA";
|
|
||||||
|
|
||||||
$tdata = file_get_contents("anope.db");
|
|
||||||
|
|
||||||
$data = explode("\n", $tdata);
|
|
||||||
unset($tdata);
|
|
||||||
|
|
||||||
$userset = array();
|
|
||||||
#$aliasset = array();
|
|
||||||
$channelset = array();
|
|
||||||
|
|
||||||
$is_mu = false;
|
|
||||||
$is_na = false;
|
|
||||||
$is_cu = false;
|
|
||||||
$is_ca = false;
|
|
||||||
$mu_account = "";
|
|
||||||
$mu_pass = "";
|
|
||||||
$mu_lang = "";
|
|
||||||
$mu_email = "";
|
|
||||||
$mu_register = "";
|
|
||||||
$mu_flags = 0;
|
|
||||||
$channel_flags = "+";
|
|
||||||
$mu_vhost_ident = "";
|
|
||||||
$mu_vhost_host = "";
|
|
||||||
$mu_vhost_creator = "";
|
|
||||||
$mu_vhost_time = "";
|
|
||||||
for($i = 0; $i < count($data); $i++) {
|
|
||||||
|
|
||||||
$line = $data[$i];
|
|
||||||
$data2 = explode(" ", $line);
|
|
||||||
|
|
||||||
if($is_mu or ($data2[0] == 'OBJECT' && $data2[1] == "NickCore")) {
|
|
||||||
$is_md = false;
|
|
||||||
$is_mu = true;
|
|
||||||
$is_cu = false;
|
|
||||||
$is_na = false;
|
|
||||||
|
|
||||||
if (isset($data2[1])) {
|
|
||||||
if ($data2[1] == "pass") {
|
|
||||||
$passvars = explode(":", $data2[2]);
|
|
||||||
$pass = $passvars[1];
|
|
||||||
$mu_pass = '$rawmd5$'.$pass;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($data2[1] == "display") {
|
|
||||||
$mu_account = $data2[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($data2[1] == "language") {
|
|
||||||
$mu_lang = (isset($data2[2])) ? $data2[2] : "default";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($data2[1] == "email") {
|
|
||||||
$mu_email = (isset($data2[2])) ? $data2[2] : "admin@st-city.net";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($data2[1] == "time_registered" && isset($data2[2])) {
|
|
||||||
$mu_register = $data2[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
if($data2[1] == "HIDE_EMAIL")
|
|
||||||
$mu_flags |= $mu_hidemail;
|
|
||||||
|
|
||||||
if($data2[1] == "NS_PRIVATE")
|
|
||||||
$mu_flags |= $mu_private;
|
|
||||||
|
|
||||||
if($data2[1] == "NS_SECURE")
|
|
||||||
$mu_flags |= $mu_enforce;
|
|
||||||
|
|
||||||
$mu_flags = 272;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($mu_account)) {
|
|
||||||
$userset[$mu_account] = array(
|
|
||||||
"mu_pass" => $mu_pass,
|
|
||||||
"mu_account" => $mu_account,
|
|
||||||
"mu_lang" => $mu_lang,
|
|
||||||
"mu_email" => $mu_email,
|
|
||||||
"mu_register" => $mu_register,
|
|
||||||
"mu_flags" => $mu_flags,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($data2[0] == "END") {
|
|
||||||
$mu_account = "";
|
|
||||||
$mu_pass = "";
|
|
||||||
$mu_lang = "";
|
|
||||||
$mu_email = "";
|
|
||||||
$mu_register = "";
|
|
||||||
$is_mu = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if($is_na or ($data2[0] == 'OBJECT' && $data2[1] == "NickAlias")) {
|
|
||||||
$is_md = false;
|
|
||||||
$is_mu = false;
|
|
||||||
$is_cu = false;
|
|
||||||
$is_na = true;
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1]=="nick") {
|
|
||||||
$tmplined = 'MN ' . $data2[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == "time_registered") {
|
|
||||||
$mu_register = $data2[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1]=="nc") {
|
|
||||||
$mu_account = $data2[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == "vhost_ident") {
|
|
||||||
$mu_vhost_ident = $data2[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == "vhost_host") {
|
|
||||||
$mu_vhost_host = $data2[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == "vhost_creator") {
|
|
||||||
$mu_vhost_creator = $data2[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == "vhost_time") {
|
|
||||||
$mu_vhost_time = $data2[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($data2[0] == "END") {
|
|
||||||
|
|
||||||
$tmplined .= " ".$mu_account." ".$mu_register." ".time();
|
|
||||||
$lastnick = $mu_account;
|
|
||||||
$lastid = 'NA';
|
|
||||||
|
|
||||||
$dataNA = explode(" ", $tmplined);
|
|
||||||
if (!empty($userset[$dataNA[1]])) {
|
|
||||||
$userset[$dataNA[2]]['mu_register'] = $mu_register;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$userset[$dataNA[2]]['aliases'][$dataNA[1]] = array(
|
|
||||||
"mu_register" => $mu_register,
|
|
||||||
"last_seen" => time(),
|
|
||||||
);
|
|
||||||
|
|
||||||
$userset[$dataNA[2]]['mu_register'] = $mu_register;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($mu_vhost_host)) {
|
|
||||||
|
|
||||||
$userset[$mu_account]['vhost_ident'] = $mu_vhost_ident;
|
|
||||||
$userset[$mu_account]['vhost_host'] = $mu_vhost_host;
|
|
||||||
$userset[$mu_account]['vhost_creator'] = $mu_vhost_creator;
|
|
||||||
$userset[$mu_account]['vhost_time'] = $mu_vhost_time;
|
|
||||||
}
|
|
||||||
|
|
||||||
$mu_vhost_ident = "";
|
|
||||||
$mu_vhost_host = "";
|
|
||||||
$mu_vhost_creator = "";
|
|
||||||
$mu_vhost_time = "";
|
|
||||||
|
|
||||||
$mu_account = "";
|
|
||||||
$mu_pass = "";
|
|
||||||
$mu_lang = "";
|
|
||||||
$mu_email = "";
|
|
||||||
$mu_register = "";
|
|
||||||
$is_na = false;
|
|
||||||
$tmplined = "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if($is_cu or ($data2[0] == 'OBJECT' && $data2[1] == "ChannelInfo")) {
|
|
||||||
|
|
||||||
$is_md = false;
|
|
||||||
$is_mu = false;
|
|
||||||
$is_cu = true;
|
|
||||||
$is_na = false;
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == 'name') {
|
|
||||||
$cu_name = $data2[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == 'time_registered') {
|
|
||||||
$cu_register = $data2[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == 'last_used') {
|
|
||||||
$cu_last_used = $data2[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == 'founder') {
|
|
||||||
$cu_founder = $data2[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == 'last_topic') {
|
|
||||||
$cu_last_topic = "";
|
|
||||||
for($i2 = 2; $i2 < count($data2); $i2++) {
|
|
||||||
if (!empty($cu_last_topic)) {
|
|
||||||
$cu_last_topic .= " ".$data2[$i2];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$cu_last_topic .= $data2[$i2];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == 'last_topic_setter') {
|
|
||||||
$cu_last_topic_setter = $data2[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == 'last_topic_time') {
|
|
||||||
$cu_last_topic_time = $data2[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == 'KEEPTOPIC') {
|
|
||||||
if ($data2[2] == "1") {
|
|
||||||
$channel_flags .= "k";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == 'CS_SECURE') {
|
|
||||||
if ($data2[2] == "1") {
|
|
||||||
$channel_flags .= "z";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == 'CS_PRIVATE') {
|
|
||||||
if ($data2[2] == "1") {
|
|
||||||
$channel_flags .= "p";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == 'CS_RESTRICT') {
|
|
||||||
if ($data2[2] == "1") {
|
|
||||||
$channel_flags .= "r";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($cu_name)) {
|
|
||||||
$channelset[$cu_name] = array(
|
|
||||||
"cu_name" => $cu_name,
|
|
||||||
"cu_register" => $cu_register,
|
|
||||||
"cu_last_used" => $cu_last_used,
|
|
||||||
"cu_founder" => $cu_founder,
|
|
||||||
"cu_last_topic" => $cu_last_topic,
|
|
||||||
"cu_last_topic_setter" => $cu_last_topic_setter,
|
|
||||||
"cu_last_topic_time" => $cu_last_topic_time,
|
|
||||||
##"channel_flags" => $channel_flags,
|
|
||||||
"channel_flags" => 600,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($data2[0] == "END") {
|
|
||||||
$is_cu = false;
|
|
||||||
$cu_name = "";
|
|
||||||
$cu_register = 0;
|
|
||||||
$cu_last_used = 0;
|
|
||||||
$cu_founder = "";
|
|
||||||
$cu_last_topic = "";
|
|
||||||
$cu_last_topic_setter = "";
|
|
||||||
$cu_last_topic_time = 0;
|
|
||||||
$channel_flags = "+";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if($is_ca or ($data2[0] == 'OBJECT' && $data2[1] == "ChanAccess")) {
|
|
||||||
$is_md = false;
|
|
||||||
$is_mu = false;
|
|
||||||
$is_cu = false;
|
|
||||||
$is_na = false;
|
|
||||||
$is_ca = true;
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == "provider") {
|
|
||||||
$ca_provider = $data2[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == "ci") {
|
|
||||||
$ca_channel = $data2[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == "mask") {
|
|
||||||
$ca_mask = $data2[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == "creator") {
|
|
||||||
$ca_creator = $data2[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == "created") {
|
|
||||||
$ca_created = $data2[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($data2[1]) && $data2[1] == "data") {
|
|
||||||
if ($ca_provider == "access/xop") {
|
|
||||||
$ca_level = $levels[$data2[2]];
|
|
||||||
}
|
|
||||||
else if ($ca_provider == "access/access") {
|
|
||||||
$ca_level = $access[$data2[2]];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($data2[0] == "END") {
|
|
||||||
$channel_access = array(
|
|
||||||
"ca_channel" => $ca_channel,
|
|
||||||
"ca_mask" => $ca_mask,
|
|
||||||
"ca_creator" => $ca_creator,
|
|
||||||
"ca_created" => $ca_created,
|
|
||||||
"ca_level" => $ca_level,
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!empty($userset[$ca_mask])) {
|
|
||||||
$channelset[$ca_channel]['channel_access'][] = $channel_access;
|
|
||||||
}
|
|
||||||
$is_ca = false;
|
|
||||||
$channel_access = array();
|
|
||||||
$ca_channel = "";
|
|
||||||
$ca_mask = "";
|
|
||||||
$ca_creator = "";
|
|
||||||
$ca_created = "";
|
|
||||||
$ca_level = "";
|
|
||||||
$ca_provider = "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$atheme = fopen("atheme.db", 'w');
|
|
||||||
fwrite($atheme, "DBV 7\n");
|
|
||||||
fwrite($atheme, "CF +vVoOtsriRfhHAb\n");
|
|
||||||
|
|
||||||
/* MDU Obi_Wan private:usercloak city-1464.galaxy-media.highway.hyperspace
|
|
||||||
MDU Obi_Wan private:usercloak-assigner Obi_Wan
|
|
||||||
MDU Obi_Wan private:usercloak-timestamp 1476550194
|
|
||||||
*/
|
|
||||||
foreach ($userset as $key => $value) {
|
|
||||||
fwrite($atheme, "MU ".$value['mu_account']." ".$value['mu_pass']. " ".$value['mu_email']." ".$value['mu_register']." ".time()." ".$mu_flags." ".$mu_lang."\n");
|
|
||||||
|
|
||||||
if (!empty($value['vhost_host'])) {
|
|
||||||
fwrite($atheme, "MDU ".$value['mu_account']." private:usercloak ".$value['vhost_host']."\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($value['vhost_creator'])) {
|
|
||||||
fwrite($atheme, "MDU ".$value['mu_account']." private:usercloak-assigner ".$value['vhost_creator']."\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($value['vhost_time'])) {
|
|
||||||
fwrite($atheme, "MDU ".$value['mu_account']." private:usercloak-timestamp ".$value['vhost_time']."\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($value['aliases'])) {
|
|
||||||
foreach ($value['aliases'] as $key2 => $value2) {
|
|
||||||
fwrite($atheme, "MN ". $value['mu_account'] ." ".$key2." ".$value2['mu_register']." ".$value2['last_seen']."\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($channelset as $key => $value) {
|
|
||||||
fwrite($atheme, "MC ".$key." ".$value['cu_register']." ".$value['cu_last_used']." ".$value['channel_flags']." 272 6 0\n");
|
|
||||||
fwrite($atheme, "CA ".$key." ".$value['cu_founder']." +AFORafhioqrstv ".$value['cu_register']." ".$value['cu_founder']."\n");
|
|
||||||
if (isset($value['channel_access'])) {
|
|
||||||
foreach ($value['channel_access'] as $key2 => $value2) {
|
|
||||||
fwrite($atheme, "CA ". $value2['ca_channel']." ".$value2['ca_mask']." ".$value2['ca_level']." ".$value2['ca_created']." ".$value2['ca_creator']."\n");
|
|
||||||
# die($key2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fwrite($atheme, "MDC ".$key." private:topic:setter ".$value['cu_last_topic_setter']."\n");
|
|
||||||
fwrite($atheme, "MDC ".$key." private:topic:text ".$value['cu_last_topic']."\n");
|
|
||||||
fwrite($atheme, "MDC ".$key." private:topic:ts ".$value['cu_last_topic_time']."\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
fclose($atheme);
|
|
Loading…
Reference in New Issue
Block a user