Use the Ergo HTTP API
masterAPI.md file bundled with your release or on the official website.repository·master·Indexed 25 days ago
https://github.com/ergochat/ergoErgo is a modern IRC server written in Go that integrates an IRC daemon, a services framework (NickServ, ChanServ, HostServ), and bouncer functionality including history storage and multi-client support. The documentation covers installation via bsd-rc and Docker, YAML configuration, user account and channel registration, and developer guidelines for Go concurrency, testing, and Crowdin translations.
API.md file bundled with your release or on the official website.Ergo uses user accounts to enable features like multiple clients per nickname.
Use the NickServ service to register your current nickname as an account:
/msg NickServ register <password>
Note: It is highly recommended to enable SASL in your IRC client to ensure automatic login and prevent nickname claiming issues.
Once you have a registered account, you can claim ownership of a channel:
/join #channel/CS REGISTER #channelRegistered channels will persist ownership, topics, and modes.
By default, Ergo channels are ephemeral and disappear when empty or upon server restart. To make a channel permanent and maintain control over its settings, register it via ChanServ.
Requirements:
+o mode, often displayed as @) in the channel./join #channel if it does not)./msg ChanServ register #myChannelTo run Ergo in a Docker container:
docker pull ghcr.io/ergochat/ergo:stable.docker volume create ergo-data./ircd.docker pull ghcr.io/ergochat/ergo:stable
docker volume create ergo-data
docker run -d --name ergo -v ergo-data:/ircd -p 6667:6667 -p 6697:6697 ghcr.io/ergochat/ergo:stableOn the first run, Ergo generates a default configuration and a randomized oper password. This information is output to stdout. You can retrieve it using docker logs.
docker logs ergoTo send updated source strings to CrowdIn for translation, follow these steps:
pyyaml and docopt.CrowdIn will automatically pick up the new translation files. Use the INFO command to verify if credits strings have been updated or translated correctly.
To restrict access to a registered channel, use the +i (invite-only) mode and manage access via exceptions or persistent privileges:
/mode #example +i/mode #example +I alice/msg ChanServ AMODE #example +v alice/msg ChanServ AMODE #example +o bobBy default, disconnecting from the server makes you appear as 'quit' to others. To remain 'present' on the server (joined to channels and able to receive DMs) even when your client is disconnected, enable always-on mode via NickServ.
/msg NickServ set always-on trueErgo includes built-in account registration via NickServ.
To register an account using a standard password (where your current nickname becomes your username):
/NS REGISTER <password> or /msg nickserv register <password>
To register an account using a TLS client certificate instead of a password:
/NS REGISTER *
PASS) field in your client with the format accountname:accountpassword.You can import user and channel registrations from Anope or Atheme databases into Ergo using the provided migration tools.
anope2json.py or atheme2json.py from the Ergo stable release.python3 <tool> <input_db> <output.json>.ircd.yaml.ergo importdb ./output.json.ergo mkcerts if TLS is required.ergo run.python3 ./anope2json.py anope.db output.json
ergo importdb ./output.json
ergo mkcerts
ergo runTo become an operator on your Ergo instance:
ergo genpasswd.opers section of your ircd.yaml file./oper admin <your_password> (where admin is the operator name defined in your config).The default configuration provides an admin operator with full privileges.
ergo genpasswd
# Then in IRC client:
/oper admin mysecretpasswordIf you need to manually upload source strings to CrowdIn:
pyyaml and docopt via pip../updatetranslations.py script.~/.crowdin.yaml.pip3 install pyyaml docopt
./updatetranslations.py run irc languages
crowdin upload sources