rizon-docker is an automation script that can deploy one or multiple (up to 10) ircd servers, with service and network bots, among other things, on one Linux box. Docker containers are used for this purpose. The object is to provide an easy, simple and fast method to deploy multiple linked servers for testing and development purposes.
- Linux
- Docker
- bash
- TCP ports 6630-6639, 6660-6669, 6697 and 9999 free to use
As the name of the project suggests, the main focus is servers used in Rizon IRC network.
- ircd:
- plexus 3
- plexus 4
- services:
- anope 1.8 (partial support, not recommended for use)
- anope 2.0
- service bots:
- acid
- moo (WIP)
- others:
- users (bots that just connect and join channels)
No installation is required.
TL;DR
-
Copy
config.example.sh
toconfig.sh
and change the variable values in the latter according to your needs. -
Run
./rizon-docker.sh build all
-
Run
./rizon-docker.sh create all
-
Run
./rizon-docker.sh start all
-
Voilà! Now you can open your favorite irc client, and connect using
/server <your_ip> 666x
, where x is the index of the ircd server you want to connect to. The ircd servers in your config file are numbered starting from zero, so the first ircd server is listening on port 6660, the second (if any) on port 6661, and so on.
The syntax of the script is:
rizon-docker.sh <command> <args>
- build: builds the docker images from custom templates and Dockerfiles. Required in the first time to run, and whenever there is any change to
config.sh
. - create: creates the docker containers from the corresponding docker images. You only need to use this command again if you delete the container(s).
- start: starts the container(s).
- stop: stops the container(s).
- restart: you guessed right! It restarts the container(s).
- delete: destroy the container(s) and remove them from disk, even if they were still running.
- shell: connects you to a shell running inside a container.
- list: lists some or all rizon-docker created containers.
- all: everything in
config.sh
, with exception of servers that have index values equal or greater than$NUMBER_OF_SERVERS
. - server x: where x is the server index number in
config.sh
. - servicetype x: only the servicetype belonging to server x. servicetype can be: ircd, services, acid, moo and users.
Explained by the comments within config.example.sh
.
Note that for each ircd, services, acid and/or moo container, you can optionally specify which branch/tag/commit to use for building by adding a variable in the form of SERVER_x_servicetype_BRANCHCOMMIT
to config.sh
.
For example: SERVER_0_ACID_BRANCHCOMMIT='master:32c1e78'
See config.example.sh
for more examples and explanations.
./rizon-docker.sh build all
./rizon-docker.sh create server 1
./rizon-docker.sh start ircd 3
./rizon-docker.sh stop services 0
./rizon-docker.sh list server 0
./rizon-docker.sh list
- The
list
command is the only command that can run without arguments, the result being equivalent tolist all
. - Servicetypes services, acid and moo can run only in server 0.
- Only server 0 accepts SSL connections, on ports 6697 and 9999.
BSD license, which can be found in LICENSE file.