first commit

This commit is contained in:
Paige Thompson 2024-11-01 21:43:28 -07:00
commit 1de65843b0
No known key found for this signature in database
GPG Key ID: 161B6569B60DDC9F
7 changed files with 1712 additions and 0 deletions

1
.env Symbolic link
View File

@ -0,0 +1 @@
config.env

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
include.conf
config.env

56
Dockerfile Normal file
View File

@ -0,0 +1,56 @@
FROM ubuntu:latest
ARG BUILD_SERVER_NAME="services.lame-network.local"
RUN apt -y update
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 anope
RUN useradd --system --shell /bin/bash anope -g anope
WORKDIR /tmp
RUN git clone https://github.com/anope/anope.git
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 install
RUN mkdir -p /etc/anope -p /etc/ssl/anope -p /var/log/anope -p /var/lib/anope
ADD anope.conf /etc/anope
ADD include.default.conf /etc/anope/include.conf
RUN openssl genrsa -out /etc/ssl/anope/server.key
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 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 /
VOLUME /var/lib/anope
VOLUME /etc/ssl/anope
VOLUME /var/log/anope
USER anope
ENTRYPOINT ["/usr/local/bin/anope", "--nofork", "--config=/etc/anope/anope.conf", "--dbdir=/var/lib/anope", "--logdir=/var/log/anope", "--moduledir=/usr/local/modules"]

1534
anope.conf Normal file

File diff suppressed because it is too large Load Diff

1
config.env.example Normal file
View File

@ -0,0 +1 @@
SERVER_NAME="services.lame-network.local"

21
docker-compose.yml Normal file
View File

@ -0,0 +1,21 @@
services:
anope:
build:
context: .
args:
BUILD_SERVER_NAME: ${SERVER_NAME}
image: anope
network_mode: "host"
env_file: "config.env"
volumes:
- data:/var/lib/anope
- ./include.conf:/etc/anope/include.conf:ro
- ssl:/etc/ssl/anope
- log:/var/log/anope
volumes:
data:
name: anope_data
ssl:
name: anope_ssl
log:
name: anope_log

97
include.default.conf Normal file
View 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
}