A Docker-based test environment for running Nefarious IRCd and X3 Services together.
- Git
- Docker and Docker Compose
- SSH key configured for GitHub (for x3 submodule)
git clone --recurse-submodules [email protected]:evilnet/testnet.git
cd testnetIf you already cloned without --recurse-submodules, initialize the submodules:
git submodule update --init --recursiveConfiguration files are stored in data/ and mounted directly into containers:
data/local.conf- Nefarious IRCd configuration (mounted to container)data/x3.conf- X3 services configuration (mounted to container).env- Environment variables (mostly unused; configs are hardcoded in the above files).env.local- Local overrides (not committed to repo)
# Build the containers
docker compose build
# Start the services
docker compose up -d
# View logs
docker compose logs -fOnce running, you can connect to the IRC server:
- Host:
localhost - Port:
6667(plain) or4497(SSL)
testnet/
├── docker-compose.yml # Docker orchestration
├── .env # Environment variables (mostly unused)
├── nefarious/ # Nefarious IRCd (git submodule)
├── x3/ # X3 Services (git submodule)
├── data/ # Configuration files (committed)
│ ├── local.conf # Nefarious IRCd config
│ └── x3.conf # X3 services config
└── tests/ # Integration tests
This repository uses git submodules for the main components:
| Submodule | Repository | Branch |
|---|---|---|
| nefarious | https://github.com/evilnet/nefarious2 | default |
| x3 | [email protected]:evilnet/x3.git | rubin-add_docker |
To pull the latest changes from upstream:
git submodule update --remote --merge| Port | Service |
|---|---|
| 6667 | IRC (plain) |
| 9998 | IRC (SSL) |
| 4497 | Services link |
If submodules appear empty after cloning:
git submodule update --init --recursiveCheck the logs for errors:
docker compose logs nefariousThe containers run as UID/GID 1234. Ensure mounted volumes have appropriate permissions.
To make changes to the submodules:
cd nefarious # or x3
git checkout -b my-feature
# make changes
git commit -am "My changes"
git push origin my-featureThen update the parent repo to track the new commit:
cd ..
git add nefarious # or x3
git commit -m "Update nefarious submodule"