mirror of
https://github.com/ergochat/ergo.git
synced 2024-12-22 02:32:39 +01:00
Merge pull request #1653 from slingamn/ergo.1
first pass at renaming Oragono to Ergo
This commit is contained in:
commit
9dad717c04
@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
# exclude vendor/
|
||||
SOURCES="./oragono.go ./irc"
|
||||
SOURCES="./ergo.go ./irc"
|
||||
|
||||
if [ "$1" = "--fix" ]; then
|
||||
exec gofmt -s -w $SOURCES
|
||||
|
8
.gitignore
vendored
8
.gitignore
vendored
@ -95,7 +95,7 @@ _testmain.go
|
||||
*.out
|
||||
|
||||
|
||||
### Oragono ###
|
||||
### custom ###
|
||||
/_site/
|
||||
/.vscode/*
|
||||
/ircd*
|
||||
@ -103,10 +103,10 @@ _testmain.go
|
||||
/web.*
|
||||
/ssl.*
|
||||
/tls.*
|
||||
/oragono
|
||||
/ergo
|
||||
/build/*
|
||||
_test
|
||||
oragono.prof
|
||||
oragono.mprof
|
||||
ergo.prof
|
||||
ergo.mprof
|
||||
/dist
|
||||
*.pem
|
||||
|
@ -1,9 +1,9 @@
|
||||
# .goreleaser.yml
|
||||
# Build customization
|
||||
project_name: oragono
|
||||
project_name: ergo
|
||||
builds:
|
||||
- main: oragono.go
|
||||
binary: oragono
|
||||
- main: ergo.go
|
||||
binary: ergo
|
||||
goos:
|
||||
- freebsd
|
||||
- windows
|
||||
@ -44,7 +44,7 @@ archives:
|
||||
files:
|
||||
- README
|
||||
- CHANGELOG.md
|
||||
- oragono.motd
|
||||
- ergo.motd
|
||||
- default.yaml
|
||||
- traditional.yaml
|
||||
- docs/MANUAL.md
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Changelog
|
||||
All notable changes to Oragono will be documented in this file.
|
||||
All notable changes to Ergo will be documented in this file.
|
||||
|
||||
## [2.6.1] - 2021-04-26
|
||||
|
||||
|
@ -1,18 +1,18 @@
|
||||
# Developing Oragono
|
||||
# Developing Ergo
|
||||
|
||||
This is a guide to modifying Oragono's code. If you're just trying to run your own Oragono, or use one, you shouldn't need to worry about these issues.
|
||||
This is a guide to modifying Ergo's code. If you're just trying to run your own Ergo, or use one, you shouldn't need to worry about these issues.
|
||||
|
||||
|
||||
## Golang issues
|
||||
|
||||
You should use the [latest distribution of the Go language for your OS and architecture](https://golang.org/dl/). (If `uname -m` on your Raspberry Pi reports `armv7l`, use the `armv6l` distribution of Go; if it reports v8, you may be able to use the `arm64` distribution.)
|
||||
|
||||
Oragono vendors all its dependencies. Because of this, Oragono is self-contained and you should not need to fetch any dependencies with `go get`. Doing so is not recommended, since it may fetch incompatible versions of the dependencies.
|
||||
Ergo vendors all its dependencies. Because of this, Ergo is self-contained and you should not need to fetch any dependencies with `go get`. Doing so is not recommended, since it may fetch incompatible versions of the dependencies.
|
||||
|
||||
If you're upgrading the Go version used by Oragono, there are several places where it's hard-coded and must be changed:
|
||||
If you're upgrading the Go version used by Ergo, there are several places where it's hard-coded and must be changed:
|
||||
|
||||
1. `.travis.yml`, which controls the version that our CI test suite uses to build and test the code (e.g., for a PR)
|
||||
2. `Dockerfile`, which controls the version that the Oragono binaries in our Docker images are built with
|
||||
2. `Dockerfile`, which controls the version that the Ergo binaries in our Docker images are built with
|
||||
3. `go.mod`: this should be updated automatically by Go when you do module-related operations
|
||||
|
||||
|
||||
@ -40,7 +40,7 @@ Develop branches are either used to work out implementation details in preperati
|
||||
1. Publish the release on GitHub (Releases -> "Draft a new release"); use the new tag, post the changelog entries, upload the binaries
|
||||
1. Update the `irctest_stable` branch with the new changes (this may be a force push).
|
||||
1. If it's a production release (as opposed to a release candidate), update the `stable` branch with the new changes. (This may be a force push in the event that stable contained a backport. This is fine because all stable releases and release candidates are tagged.)
|
||||
1. Similarly, for a production release, update the `irctest_stable` branch (this is the branch used by upstream irctest to integration-test against Oragono).
|
||||
1. Similarly, for a production release, update the `irctest_stable` branch (this is the branch used by upstream irctest to integration-test against Ergo).
|
||||
1. Make the appropriate announcements:
|
||||
* For a release candidate:
|
||||
1. the channel topic
|
||||
@ -49,7 +49,7 @@ Develop branches are either used to work out implementation details in preperati
|
||||
* For a production release:
|
||||
1. everything applicable to a release candidate
|
||||
1. Twitter
|
||||
1. oragono.io/news
|
||||
1. ergo.chat/news
|
||||
1. ircv3.net support tables, if applicable
|
||||
1. other social media?
|
||||
|
||||
@ -63,7 +63,7 @@ Once it's built and released, you need to setup the new development version. To
|
||||
|
||||
```md
|
||||
## Unreleased
|
||||
New release of Oragono!
|
||||
New release of Ergo!
|
||||
|
||||
### Config Changes
|
||||
|
||||
@ -80,17 +80,6 @@ New release of Oragono!
|
||||
|
||||
|
||||
|
||||
## Fuzzing and Testing
|
||||
|
||||
Fuzzing can be useful. We don't have testing done inside the IRCd itself, but this fuzzer I've written works alright and has helped shake out various bugs: [irc_fuzz.py](https://gist.github.com/DanielOaks/63ae611039cdf591dfa4).
|
||||
|
||||
In addition, I've got the beginnings of a stress-tester here which is useful:
|
||||
https://github.com/DanielOaks/irc-stress-test
|
||||
|
||||
As well, there's a decent set of 'tests' here, which I like to run Oragono through now and then:
|
||||
https://github.com/DanielOaks/irctest
|
||||
|
||||
|
||||
## Debugging
|
||||
|
||||
It's helpful to enable all loglines while developing. Here's how to configure this:
|
||||
@ -107,12 +96,12 @@ To debug a hang, the best thing to do is to get a stack trace. The easiest way t
|
||||
|
||||
$ kill -ABRT <procid>
|
||||
|
||||
This will kill Oragono and print out a stack trace for you to take a look at.
|
||||
This will kill Ergo and print out a stack trace for you to take a look at.
|
||||
|
||||
|
||||
## Concurrency design
|
||||
|
||||
Oragono involves a fair amount of shared state. Here are some of the main points:
|
||||
Ergo involves a fair amount of shared state. Here are some of the main points:
|
||||
|
||||
1. Each client has a separate goroutine that listens for incoming messages and synchronously processes them.
|
||||
1. All sends to clients are asynchronous; `client.Send` appends the message to a queue, which is then processed on a separate goroutine. It is always safe to call `client.Send`.
|
||||
|
6
Makefile
6
Makefile
@ -37,12 +37,12 @@ test:
|
||||
./.check-gofmt.sh
|
||||
|
||||
smoke:
|
||||
oragono mkcerts --conf ./default.yaml || true
|
||||
oragono run --conf ./default.yaml --smoke
|
||||
ergo mkcerts --conf ./default.yaml || true
|
||||
ergo run --conf ./default.yaml --smoke
|
||||
|
||||
gofmt:
|
||||
./.check-gofmt.sh --fix
|
||||
|
||||
irctest:
|
||||
git submodule update --init
|
||||
cd irctest && make oragono
|
||||
cd irctest && make ergo
|
||||
|
33
README
33
README
@ -1,13 +1,12 @@
|
||||
|
||||
▄▄▄ ▄▄▄· ▄▄ • ▐ ▄
|
||||
▪ ▀▄ █·▐█ ▀█ ▐█ ▀ ▪▪ •█▌▐█▪
|
||||
▄█▀▄ ▐▀▀▄ ▄█▀▀█ ▄█ ▀█▄ ▄█▀▄▪▐█▐▐▌ ▄█▀▄
|
||||
▐█▌.▐▌▐█•█▌▐█ ▪▐▌▐█▄▪▐█▐█▌ ▐▌██▐█▌▐█▌.▐▌
|
||||
▀█▄▀▪.▀ ▀ ▀ ▀ ·▀▀▀▀ ▀█▄▀ ▀▀ █▪ ▀█▄▀▪
|
||||
|
||||
___ _ __ __ _ ___
|
||||
/ _ \ '__/ _` |/ _ \
|
||||
| __/ | | (_| | (_) |
|
||||
\___|_| \__, |\___/
|
||||
__/ |
|
||||
|___/
|
||||
-----------------------------------------------------------------------------------------------
|
||||
|
||||
Oragono is a modern IRC server written in Go. Its core design principles are:
|
||||
Ergo is a modern IRC server written in Go. Its core design principles are:
|
||||
|
||||
* Being simple to set up and use
|
||||
* Combining the features of an ircd, a services framework, and a bouncer:
|
||||
@ -17,9 +16,9 @@ Oragono is a modern IRC server written in Go. Its core design principles are:
|
||||
* Bleeding-edge IRCv3 support
|
||||
* Highly customizable via a rehashable (runtime-reloadable) YAML config
|
||||
|
||||
https://oragono.io/
|
||||
https://github.com/oragono/oragono
|
||||
#oragono on Freenode
|
||||
https://ergo.chat/
|
||||
https://github.com/ergochat/ergo
|
||||
#ergo on irc.ergo.chat or irc.libera.chat
|
||||
|
||||
-----------------------------------------------------------------------------------------------
|
||||
|
||||
@ -34,23 +33,23 @@ Modify the config file as needed (the recommendations at the top may be helpful)
|
||||
|
||||
To generate passwords for opers and connect passwords, you can use this command:
|
||||
|
||||
$ oragono genpasswd
|
||||
$ ergo genpasswd
|
||||
|
||||
If you need to generate self-signed TLS certificates, use this command:
|
||||
|
||||
$ oragono mkcerts
|
||||
$ ergo mkcerts
|
||||
|
||||
You are now ready to start Oragono!
|
||||
You are now ready to start Ergo!
|
||||
|
||||
$ oragono run
|
||||
$ ergo run
|
||||
|
||||
For further instructions, consult the manual. A copy of the manual should be
|
||||
included in your release under `docs/MANUAL.md`. Or you can view it on the
|
||||
Web: https://oragono.io/manual.html
|
||||
Web: https://ergo.chat/manual.html
|
||||
|
||||
=== Updating ===
|
||||
|
||||
If you're updating from a previous version of Oragono, check out the CHANGELOG for a list
|
||||
If you're updating from a previous version of Ergo, check out the CHANGELOG for a list
|
||||
of important changes you'll want to take a look at. The change log details config changes,
|
||||
fixes, new features and anything else you'll want to be aware of!
|
||||
|
||||
|
29
README.md
29
README.md
@ -1,23 +1,22 @@
|
||||
![Oragono logo](docs/logo.png)
|
||||
![Ergo logo](docs/logo.png)
|
||||
|
||||
Oragono is a modern IRC server written in Go. Its core design principles are:
|
||||
Ergo (formerly known as Oragono) is a modern IRC server written in Go. Its core design principles are:
|
||||
|
||||
* Being simple to set up and use
|
||||
* Combining the features of an ircd, a services framework, and a bouncer (integrated account management, history storage, and bouncer functionality)
|
||||
* Bleeding-edge [IRCv3 support](https://ircv3.net/software/servers.html), suitable for use as an IRCv3 reference implementation
|
||||
* Highly customizable via a rehashable (i.e., reloadable at runtime) YAML config
|
||||
|
||||
Oragono is a fork of the [Ergonomadic](https://github.com/jlatt/ergonomadic) IRC daemon <3
|
||||
Ergo is a fork of the [Ergonomadic](https://github.com/jlatt/ergonomadic) IRC daemon <3
|
||||
|
||||
---
|
||||
|
||||
[![Go Report Card](https://goreportcard.com/badge/github.com/oragono/oragono)](https://goreportcard.com/report/github.com/oragono/oragono)
|
||||
[![Build Status](https://travis-ci.com/oragono/oragono.svg?branch=master)](https://travis-ci.com/oragono/oragono)
|
||||
[![Download Latest Release](https://img.shields.io/badge/downloads-latest%20release-green.svg)](https://github.com/oragono/oragono/releases/latest)
|
||||
[![Freenode #oragono](https://img.shields.io/badge/Freenode-%23oragono-1e72ff.svg?style=flat)](https://www.irccloud.com/invite?channel=%23oragono&hostname=irc.freenode.net&port=6697&ssl=1)
|
||||
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/oragono/localized.svg)](https://crowdin.com/project/oragono)
|
||||
|
||||
If you want to take a look at a running Oragono instance or test some client code, feel free to play with [testnet.oragono.io](https://testnet.oragono.io/) (TLS on port 6697 or plaintext on port 6667).
|
||||
If you want to take a look at a running Ergo instance or test some client code, feel free to play with [testnet.ergo.chat](https://testnet.ergo.chat/) (TLS on port 6697 or plaintext on port 6667).
|
||||
|
||||
---
|
||||
|
||||
@ -40,22 +39,22 @@ If you want to take a look at a running Oragono instance or test some client cod
|
||||
* passwords stored with [bcrypt](https://godoc.org/golang.org/x/crypto)
|
||||
* `UBAN`, a unified ban system that can target IPs, networks, masks, and registered accounts (`KLINE` and `DLINE` are also supported)
|
||||
* [IRCv3 support](https://ircv3.net/software/servers.html)
|
||||
* a focus on developing with [specifications](https://oragono.io/specs.html)
|
||||
* a focus on developing with [specifications](https://ergo.chat/specs.html)
|
||||
|
||||
## Quick start guide
|
||||
|
||||
Download the latest release from this page: https://github.com/oragono/oragono/releases/latest
|
||||
Download the latest release from this page: https://github.com/ergochat/ergo/releases/latest
|
||||
|
||||
Extract it into a folder, then run the following commands:
|
||||
|
||||
```sh
|
||||
cp default.yaml ircd.yaml
|
||||
vim ircd.yaml # modify the config file to your liking
|
||||
oragono mkcerts
|
||||
oragono run # server should be ready to go!
|
||||
ergo mkcerts
|
||||
ergo run # server should be ready to go!
|
||||
```
|
||||
|
||||
**Note:** See the [productionizing guide in our manual](https://github.com/oragono/oragono/blob/master/docs/MANUAL.md#productionizing-with-systemd) for recommendations on how to run a production network, including obtaining valid TLS certificates.
|
||||
**Note:** See the [productionizing guide in our manual](https://github.com/ergochat/ergo/blob/master/docs/MANUAL.md#productionizing-with-systemd) for recommendations on how to run a production network, including obtaining valid TLS certificates.
|
||||
|
||||
### Platform Packages
|
||||
|
||||
@ -81,13 +80,13 @@ The `stable` branch contains the latest release. You can run this for a producti
|
||||
|
||||
#### Building
|
||||
|
||||
You'll need an [up-to-date distribution of the Go language for your OS and architecture](https://golang.org/dl/). Once you have that, just clone the repository and run `make build`. If everything goes well, you should now have an executable named `oragono` in the base directory of the project.
|
||||
You'll need an [up-to-date distribution of the Go language for your OS and architecture](https://golang.org/dl/). Once you have that, just clone the repository and run `make build`. If everything goes well, you should now have an executable named `ergo` in the base directory of the project.
|
||||
|
||||
## Configuration
|
||||
|
||||
The default config file [`default.yaml`](default.yaml) helps walk you through what each option means and changes.
|
||||
|
||||
You can use the `--conf` parameter when launching Oragono to control where it looks for the config file. For instance: `oragono run --conf /path/to/ircd.yaml`. The configuration file also stores where the log, database, certificate, and other files are opened. Normally, all these files use relative paths, but you can change them to be absolute (such as `/var/log/ircd.log`) when running Oragono as a service.
|
||||
You can use the `--conf` parameter when launching Ergo to control where it looks for the config file. For instance: `ergo run --conf /path/to/ircd.yaml`. The configuration file also stores where the log, database, certificate, and other files are opened. Normally, all these files use relative paths, but you can change them to be absolute (such as `/var/log/ircd.log`) when running Ergo as a service.
|
||||
|
||||
### Logs
|
||||
|
||||
@ -98,14 +97,14 @@ By default, logs go to stderr only. They can be configured to go to a file, or y
|
||||
Passwords (for both `PASS` and oper logins) are stored using bcrypt. To generate encrypted strings for use in the config, use the `genpasswd` subcommand as such:
|
||||
|
||||
```sh
|
||||
oragono genpasswd
|
||||
ergo genpasswd
|
||||
```
|
||||
|
||||
With this, you receive a blob of text which you can plug into your configuration file.
|
||||
|
||||
### Nickname and channel registration
|
||||
|
||||
Oragono relies heavily on user accounts to enable its distinctive features (such as allowing multiple clients per nickname). As a user, you can register your current nickname as an account using `/msg NickServ register <password>`. Once you have done so, you should [enable SASL in your clients](https://freenode.net/kb/answer/sasl), ensuring that you will be automatically logged into your account on each connection. This will prevent [problems claiming your registered nickname](https://github.com/oragono/oragono/blob/master/docs/MANUAL.md#nick-equals-account).
|
||||
Ergo relies heavily on user accounts to enable its distinctive features (such as allowing multiple clients per nickname). As a user, you can register your current nickname as an account using `/msg NickServ register <password>`. Once you have done so, you should [enable SASL in your clients](https://freenode.net/kb/answer/sasl), ensuring that you will be automatically logged into your account on each connection. This will prevent [problems claiming your registered nickname](https://github.com/ergochat/ergo/blob/master/docs/MANUAL.md#nick-equals-account).
|
||||
|
||||
Once you have registered your nickname, you can use it to register channels:
|
||||
|
||||
@ -121,4 +120,4 @@ After this, your channel will remember the fact that you're the owner, the topic
|
||||
* Edmund Huber (2014-2015)
|
||||
* Daniel Oaks (2016-present)
|
||||
* Shivaram Lingamneni (2017-present)
|
||||
* [Many other contributors and friends of the project <3](https://github.com/oragono/oragono/blob/master/CHANGELOG.md)
|
||||
* [Many other contributors and friends of the project <3](https://github.com/ergochat/ergo/blob/master/CHANGELOG.md)
|
||||
|
51
default.yaml
51
default.yaml
@ -1,9 +1,9 @@
|
||||
# This is the default config file for Oragono.
|
||||
# This is the default config file for Ergo.
|
||||
# It contains recommended defaults for all settings, including some behaviors
|
||||
# that differ from conventional ircd+services setups. See traditional.yaml
|
||||
# for a config with more "mainstream" behavior.
|
||||
#
|
||||
# If you are setting up a new oragono server, you should copy this file
|
||||
# If you are setting up a new Ergo server, you should copy this file
|
||||
# to a new one named 'ircd.yaml', then read the whole file to see which
|
||||
# settings you want to customize. If you don't understand a setting, or
|
||||
# aren't sure what behavior you want, most of the defaults are fine
|
||||
@ -25,12 +25,12 @@
|
||||
# network configuration
|
||||
network:
|
||||
# name of the network
|
||||
name: OragonoTest
|
||||
name: ErgoTest
|
||||
|
||||
# server configuration
|
||||
server:
|
||||
# server name
|
||||
name: oragono.test
|
||||
name: ergo.test
|
||||
|
||||
# addresses to listen on
|
||||
listeners:
|
||||
@ -62,12 +62,12 @@ server:
|
||||
min-tls-version: 1.2
|
||||
|
||||
# Example of a Unix domain socket for proxying:
|
||||
# "/tmp/oragono_sock":
|
||||
# "/tmp/ergo_sock":
|
||||
|
||||
# Example of a Tor listener: any connection that comes in on this listener will
|
||||
# be considered a Tor connection. It is strongly recommended that this listener
|
||||
# *not* be on a public interface --- it should be on 127.0.0.0/8 or unix domain:
|
||||
# "/hidden_service_sockets/oragono_tor_sock":
|
||||
# "/hidden_service_sockets/ergo_tor_sock":
|
||||
# tor: true
|
||||
|
||||
# Example of a WebSocket listener:
|
||||
@ -120,14 +120,14 @@ server:
|
||||
|
||||
websockets:
|
||||
# Restrict the origin of WebSocket connections by matching the "Origin" HTTP
|
||||
# header. This setting causes oragono to reject websocket connections unless
|
||||
# header. This setting causes ergo to reject websocket connections unless
|
||||
# they originate from a page on one of the whitelisted websites in this list.
|
||||
# This prevents malicious websites from making their visitors connect to your
|
||||
# oragono instance without their knowledge. An empty list means there are no
|
||||
# ergo instance without their knowledge. An empty list means there are no
|
||||
# restrictions.
|
||||
allowed-origins:
|
||||
# - "https://oragono.io"
|
||||
# - "https://*.oragono.io"
|
||||
# - "https://ergo.chat"
|
||||
# - "https://*.ergo.chat"
|
||||
|
||||
# casemapping controls what kinds of strings are permitted as identifiers (nicknames,
|
||||
# channel names, account names, etc.), and how they are normalized for case.
|
||||
@ -164,13 +164,12 @@ server:
|
||||
# the value must begin with a '~' character. comment out / omit to disable:
|
||||
coerce-ident: '~u'
|
||||
|
||||
# password to login to the server
|
||||
# generated using "oragono genpasswd"
|
||||
#password: ""
|
||||
# password to login to the server, generated using `ergo genpasswd`:
|
||||
#password: "$2a$04$0123456789abcdef0123456789abcdef0123456789abcdef01234"
|
||||
|
||||
# motd filename
|
||||
# if you change the motd, you should move it to ircd.motd
|
||||
motd: oragono.motd
|
||||
motd: ergo.motd
|
||||
|
||||
# motd formatting codes
|
||||
# if this is true, the motd is escaped using formatting codes like $c, $b, and $i
|
||||
@ -206,7 +205,7 @@ server:
|
||||
# (comment this out to use passwords only)
|
||||
certfp: "abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789"
|
||||
|
||||
# password the gateway uses to connect, made with oragono genpasswd
|
||||
# password the gateway uses to connect, made with `ergo genpasswd`
|
||||
password: "$2a$04$abcdef0123456789abcdef0123456789abcdef0123456789abcde"
|
||||
|
||||
# IPs/CIDRs that can use this webirc command
|
||||
@ -228,7 +227,7 @@ server:
|
||||
compatibility:
|
||||
# many clients require that the final parameter of certain messages be an
|
||||
# RFC1459 trailing parameter, i.e., prefixed with :, whether or not this is
|
||||
# actually required. this forces Oragono to send those parameters
|
||||
# actually required. this forces Ergo to send those parameters
|
||||
# as trailings. this is recommended unless you're testing clients for conformance;
|
||||
# defaults to true when unset for that reason.
|
||||
force-trailing: true
|
||||
@ -241,7 +240,7 @@ server:
|
||||
|
||||
# traditionally, IRC servers will truncate and send messages that are
|
||||
# too long to be relayed intact. this behavior can be disabled by setting
|
||||
# allow-truncation to false, in which case Oragono will reject the message
|
||||
# allow-truncation to false, in which case Ergo will reject the message
|
||||
# and return an error to the client. (note that this option defaults to true
|
||||
# when unset.)
|
||||
allow-truncation: false
|
||||
@ -309,7 +308,7 @@ server:
|
||||
# IP cloaking hides users' IP addresses from other users and from channel admins
|
||||
# (but not from server admins), while still allowing channel admins to ban
|
||||
# offending IP addresses or networks. In place of hostnames derived from reverse
|
||||
# DNS, users see fake domain names like pwbs2ui4377257x8.oragono. These names are
|
||||
# DNS, users see fake domain names like pwbs2ui4377257x8.irc. These names are
|
||||
# generated deterministically from the underlying IP address, but if the underlying
|
||||
# IP is not already known, it is infeasible to recover it from the cloaked name.
|
||||
# If you disable this, you should probably enable lookup-hostnames in its place.
|
||||
@ -351,10 +350,10 @@ server:
|
||||
secure-nets:
|
||||
# - "10.0.0.0/8"
|
||||
|
||||
# oragono will write files to disk under certain circumstances, e.g.,
|
||||
# Ergo will write files to disk under certain circumstances, e.g.,
|
||||
# CPU profiling or data export. by default, these files will be written
|
||||
# to the working directory. set this to customize:
|
||||
#output-path: "/home/oragono/out"
|
||||
#output-path: "/home/ergo/out"
|
||||
|
||||
# the hostname used by "services", e.g., NickServ, defaults to "localhost",
|
||||
# e.g., `NickServ!NickServ@localhost`. uncomment this to override:
|
||||
@ -497,7 +496,7 @@ accounts:
|
||||
# nickname after the initial connection is complete
|
||||
forbid-anonymous-nick-changes: false
|
||||
|
||||
# multiclient controls whether oragono allows multiple connections to
|
||||
# multiclient controls whether Ergo allows multiple connections to
|
||||
# attach to the same client/nickname identity; this is part of the
|
||||
# functionality traditionally provided by a bouncer like ZNC
|
||||
multiclient:
|
||||
@ -658,7 +657,7 @@ opers:
|
||||
# operators can be authenticated either by password (with the /OPER command),
|
||||
# or by certificate fingerprint, or both. if a password hash is set, then a
|
||||
# password is required to oper up (e.g., /OPER dan mypassword). to generate
|
||||
# the hash, use `oragono genpasswd`.
|
||||
# the hash, use `ergo genpasswd`.
|
||||
password: "$2a$04$0123456789abcdef0123456789abcdef0123456789abcdef01234"
|
||||
|
||||
# if a SHA-256 certificate fingerprint is configured here, then it will be
|
||||
@ -718,7 +717,7 @@ logging:
|
||||
|
||||
# debug options
|
||||
debug:
|
||||
# when enabled, oragono will attempt to recover from certain kinds of
|
||||
# when enabled, Ergo will attempt to recover from certain kinds of
|
||||
# client-triggered runtime errors that would normally crash the server.
|
||||
# this makes the server more resilient to DoS, but could result in incorrect
|
||||
# behavior. deployments that would prefer to "start from scratch", e.g., by
|
||||
@ -749,9 +748,9 @@ datastore:
|
||||
port: 3306
|
||||
# if socket-path is set, it will be used instead of host:port
|
||||
#socket-path: "/var/run/mysqld/mysqld.sock"
|
||||
user: "oragono"
|
||||
user: "ergo"
|
||||
password: "hunter2"
|
||||
history-database: "oragono_history"
|
||||
history-database: "ergo_history"
|
||||
timeout: 3s
|
||||
max-conns: 4
|
||||
# this may be necessary to prevent middleware from closing your connections:
|
||||
@ -965,5 +964,5 @@ history:
|
||||
# - "typing"
|
||||
|
||||
# whether to allow customization of the config at runtime using environment variables,
|
||||
# e.g., ORAGONO__SERVER__MAX_SENDQ=128k. see the manual for more details.
|
||||
# e.g., ERGO__SERVER__MAX_SENDQ=128k. see the manual for more details.
|
||||
allow-environment-overrides: true
|
||||
|
BIN
docs/logo.png
BIN
docs/logo.png
Binary file not shown.
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 1.9 KiB |
@ -13,12 +13,13 @@ import (
|
||||
"strings"
|
||||
"syscall"
|
||||
|
||||
"github.com/docopt/docopt-go"
|
||||
"github.com/oragono/oragono/irc"
|
||||
"github.com/oragono/oragono/irc/logger"
|
||||
"github.com/oragono/oragono/irc/mkcerts"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
"golang.org/x/crypto/ssh/terminal"
|
||||
|
||||
"github.com/docopt/docopt-go"
|
||||
"github.com/ergochat/ergo/irc"
|
||||
"github.com/ergochat/ergo/irc/logger"
|
||||
"github.com/ergochat/ergo/irc/mkcerts"
|
||||
)
|
||||
|
||||
// set via linker flags, either by make or by goreleaser:
|
||||
@ -47,7 +48,7 @@ func fileDoesNotExist(file string) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// implements the `oragono mkcerts` command
|
||||
// implements the `ergo mkcerts` command
|
||||
func doMkcerts(configFile string, quiet bool) {
|
||||
config, err := irc.LoadRawConfig(configFile)
|
||||
if err != nil {
|
||||
@ -78,7 +79,7 @@ func doMkcerts(configFile string, quiet bool) {
|
||||
if !(fileDoesNotExist(cert) && fileDoesNotExist(key)) {
|
||||
log.Fatalf("Preexisting TLS cert and/or key files: %s %s", cert, key)
|
||||
}
|
||||
err := mkcerts.CreateCert("Oragono", host, cert, key)
|
||||
err := mkcerts.CreateCert("Ergo", host, cert, key)
|
||||
if err == nil {
|
||||
if !quiet {
|
||||
log.Printf(" Certificate created at %s : %s\n", cert, key)
|
||||
@ -92,16 +93,16 @@ func doMkcerts(configFile string, quiet bool) {
|
||||
|
||||
func main() {
|
||||
irc.SetVersionString(version, commit)
|
||||
usage := `oragono.
|
||||
usage := `ergo.
|
||||
Usage:
|
||||
oragono initdb [--conf <filename>] [--quiet]
|
||||
oragono upgradedb [--conf <filename>] [--quiet]
|
||||
oragono importdb <database.json> [--conf <filename>] [--quiet]
|
||||
oragono genpasswd [--conf <filename>] [--quiet]
|
||||
oragono mkcerts [--conf <filename>] [--quiet]
|
||||
oragono run [--conf <filename>] [--quiet] [--smoke]
|
||||
oragono -h | --help
|
||||
oragono --version
|
||||
ergo initdb [--conf <filename>] [--quiet]
|
||||
ergo upgradedb [--conf <filename>] [--quiet]
|
||||
ergo importdb <database.json> [--conf <filename>] [--quiet]
|
||||
ergo genpasswd [--conf <filename>] [--quiet]
|
||||
ergo mkcerts [--conf <filename>] [--quiet]
|
||||
ergo run [--conf <filename>] [--quiet] [--smoke]
|
||||
ergo -h | --help
|
||||
ergo --version
|
||||
Options:
|
||||
--conf <filename> Configuration file to use [default: ircd.yaml].
|
||||
--quiet Don't show startup/shutdown lines.
|
||||
@ -183,7 +184,7 @@ Options:
|
||||
|
||||
// warning if running a non-final version
|
||||
if strings.Contains(irc.Ver, "unreleased") {
|
||||
logman.Warning("server", "You are currently running an unreleased beta version of Oragono that may be unstable and could corrupt your database.\nIf you are running a production network, please download the latest build from https://oragono.io/downloads.html and run that instead.")
|
||||
logman.Warning("server", "You are currently running an unreleased beta version of Ergo that may be unstable and could corrupt your database.\nIf you are running a production network, please download the latest build from https://ergo.chat/downloads.html and run that instead.")
|
||||
}
|
||||
|
||||
server, err := irc.NewServer(config, logman)
|
||||
@ -193,7 +194,7 @@ Options:
|
||||
}
|
||||
if !arguments["--quiet"].(bool) {
|
||||
logman.Info("server", "Server running")
|
||||
defer logman.Info("server", fmt.Sprintf("Oragono v%s exiting", irc.SemVer))
|
||||
defer logman.Info("server", fmt.Sprintf("%s exiting", irc.Ver))
|
||||
}
|
||||
if !arguments["--smoke"].(bool) {
|
||||
server.Run()
|
2
go.mod
2
go.mod
@ -1,4 +1,4 @@
|
||||
module github.com/oragono/oragono
|
||||
module github.com/ergochat/ergo
|
||||
|
||||
go 1.16
|
||||
|
||||
|
@ -15,12 +15,12 @@ import (
|
||||
"time"
|
||||
"unicode"
|
||||
|
||||
"github.com/oragono/oragono/irc/connection_limits"
|
||||
"github.com/oragono/oragono/irc/email"
|
||||
"github.com/oragono/oragono/irc/migrations"
|
||||
"github.com/oragono/oragono/irc/modes"
|
||||
"github.com/oragono/oragono/irc/passwd"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/connection_limits"
|
||||
"github.com/ergochat/ergo/irc/email"
|
||||
"github.com/ergochat/ergo/irc/migrations"
|
||||
"github.com/ergochat/ergo/irc/modes"
|
||||
"github.com/ergochat/ergo/irc/passwd"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
"github.com/tidwall/buntdb"
|
||||
)
|
||||
|
||||
|
@ -10,7 +10,7 @@ import (
|
||||
"fmt"
|
||||
"net"
|
||||
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
// JSON-serializable input and output types for the script
|
||||
|
@ -5,7 +5,7 @@ package caps
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
// Set holds a set of enabled capabilities.
|
||||
|
@ -15,10 +15,10 @@ import (
|
||||
|
||||
"github.com/goshuirc/irc-go/ircutils"
|
||||
|
||||
"github.com/oragono/oragono/irc/caps"
|
||||
"github.com/oragono/oragono/irc/history"
|
||||
"github.com/oragono/oragono/irc/modes"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/caps"
|
||||
"github.com/ergochat/ergo/irc/history"
|
||||
"github.com/ergochat/ergo/irc/modes"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
type ChannelSettings struct {
|
||||
|
@ -7,7 +7,7 @@ import (
|
||||
"sort"
|
||||
"sync"
|
||||
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
type channelManagerEntry struct {
|
||||
|
@ -12,8 +12,8 @@ import (
|
||||
|
||||
"github.com/tidwall/buntdb"
|
||||
|
||||
"github.com/oragono/oragono/irc/modes"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/modes"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
// this is exclusively the *persistence* layer for channel registration;
|
||||
|
@ -10,10 +10,10 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/ergochat/ergo/irc/modes"
|
||||
"github.com/ergochat/ergo/irc/sno"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
"github.com/goshuirc/irc-go/ircfmt"
|
||||
"github.com/oragono/oragono/irc/modes"
|
||||
"github.com/oragono/oragono/irc/sno"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
)
|
||||
|
||||
const chanservHelp = `ChanServ lets you register and manage channels.`
|
||||
|
@ -21,13 +21,13 @@ import (
|
||||
"github.com/goshuirc/irc-go/ircreader"
|
||||
ident "github.com/oragono/go-ident"
|
||||
|
||||
"github.com/oragono/oragono/irc/caps"
|
||||
"github.com/oragono/oragono/irc/connection_limits"
|
||||
"github.com/oragono/oragono/irc/flatip"
|
||||
"github.com/oragono/oragono/irc/history"
|
||||
"github.com/oragono/oragono/irc/modes"
|
||||
"github.com/oragono/oragono/irc/sno"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/caps"
|
||||
"github.com/ergochat/ergo/irc/connection_limits"
|
||||
"github.com/ergochat/ergo/irc/flatip"
|
||||
"github.com/ergochat/ergo/irc/history"
|
||||
"github.com/ergochat/ergo/irc/modes"
|
||||
"github.com/ergochat/ergo/irc/sno"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -8,9 +8,9 @@ import (
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"github.com/oragono/oragono/irc/caps"
|
||||
"github.com/oragono/oragono/irc/modes"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/caps"
|
||||
"github.com/ergochat/ergo/irc/modes"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
// ClientManager keeps track of clients by nick, enforcing uniqueness of casefolded nicks
|
||||
|
@ -6,7 +6,7 @@ package irc
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
func TestGenerateBatchID(t *testing.T) {
|
||||
|
@ -8,7 +8,7 @@ import (
|
||||
|
||||
"golang.org/x/crypto/sha3"
|
||||
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
type CloakConfig struct {
|
||||
|
@ -27,19 +27,19 @@ import (
|
||||
"github.com/goshuirc/irc-go/ircfmt"
|
||||
"gopkg.in/yaml.v2"
|
||||
|
||||
"github.com/oragono/oragono/irc/caps"
|
||||
"github.com/oragono/oragono/irc/cloaks"
|
||||
"github.com/oragono/oragono/irc/connection_limits"
|
||||
"github.com/oragono/oragono/irc/custime"
|
||||
"github.com/oragono/oragono/irc/email"
|
||||
"github.com/oragono/oragono/irc/isupport"
|
||||
"github.com/oragono/oragono/irc/jwt"
|
||||
"github.com/oragono/oragono/irc/languages"
|
||||
"github.com/oragono/oragono/irc/logger"
|
||||
"github.com/oragono/oragono/irc/modes"
|
||||
"github.com/oragono/oragono/irc/mysql"
|
||||
"github.com/oragono/oragono/irc/passwd"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/caps"
|
||||
"github.com/ergochat/ergo/irc/cloaks"
|
||||
"github.com/ergochat/ergo/irc/connection_limits"
|
||||
"github.com/ergochat/ergo/irc/custime"
|
||||
"github.com/ergochat/ergo/irc/email"
|
||||
"github.com/ergochat/ergo/irc/isupport"
|
||||
"github.com/ergochat/ergo/irc/jwt"
|
||||
"github.com/ergochat/ergo/irc/languages"
|
||||
"github.com/ergochat/ergo/irc/logger"
|
||||
"github.com/ergochat/ergo/irc/modes"
|
||||
"github.com/ergochat/ergo/irc/mysql"
|
||||
"github.com/ergochat/ergo/irc/passwd"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
// here's how this works: exported (capitalized) members of the config structs
|
||||
@ -1025,10 +1025,13 @@ func (ce *configPathError) Error() string {
|
||||
func mungeFromEnvironment(config *Config, envPair string) (applied bool, err *configPathError) {
|
||||
equalIdx := strings.IndexByte(envPair, '=')
|
||||
name, value := envPair[:equalIdx], envPair[equalIdx+1:]
|
||||
if !strings.HasPrefix(name, "ORAGONO__") {
|
||||
if strings.HasPrefix(name, "ERGO__") {
|
||||
name = strings.TrimPrefix(name, "ERGO__")
|
||||
} else if strings.HasPrefix(name, "ORAGONO__") {
|
||||
name = strings.TrimPrefix(name, "ORAGONO__")
|
||||
} else {
|
||||
return false, nil
|
||||
}
|
||||
name = strings.TrimPrefix(name, "ORAGONO__")
|
||||
pathComponents := strings.Split(name, "__")
|
||||
for i, pathComponent := range pathComponents {
|
||||
pathComponents[i] = screamingSnakeToKebab(pathComponent)
|
||||
|
@ -19,12 +19,12 @@ func TestEnvironmentOverrides(t *testing.T) {
|
||||
env := []string{
|
||||
`USER=shivaram`, // unrelated var
|
||||
`ORAGONO_USER=oragono`, // this should be ignored as well
|
||||
`ORAGONO__NETWORK__NAME=example.com`,
|
||||
`ERGO__NETWORK__NAME=example.com`,
|
||||
`ORAGONO__SERVER__COMPATIBILITY__FORCE_TRAILING=false`,
|
||||
`ORAGONO__SERVER__COERCE_IDENT="~user"`,
|
||||
`ORAGONO__SERVER__MOTD=short.motd.txt`,
|
||||
`ERGO__SERVER__MOTD=short.motd.txt`,
|
||||
`ORAGONO__ACCOUNTS__NICK_RESERVATION__ENABLED=true`,
|
||||
`ORAGONO__ACCOUNTS__DEFAULT_USER_MODES="+iR"`,
|
||||
`ERGO__ACCOUNTS__DEFAULT_USER_MODES="+iR"`,
|
||||
`ORAGONO__SERVER__IP_CLOAKING={"enabled": true, "enabled-for-always-on": true, "netname": "irc", "cidr-len-ipv4": 32, "cidr-len-ipv6": 64, "num-bits": 64}`,
|
||||
}
|
||||
for _, envPair := range env {
|
||||
|
@ -10,8 +10,8 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/oragono/oragono/irc/flatip"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/flatip"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -8,7 +8,7 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/oragono/oragono/irc/flatip"
|
||||
"github.com/ergochat/ergo/irc/flatip"
|
||||
)
|
||||
|
||||
func easyParseIP(ipstr string) (result flatip.IP) {
|
||||
|
@ -14,8 +14,8 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/oragono/oragono/irc/modes"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/modes"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
|
||||
"github.com/tidwall/buntdb"
|
||||
)
|
||||
|
@ -10,7 +10,7 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/oragono/oragono/irc/flatip"
|
||||
"github.com/ergochat/ergo/irc/flatip"
|
||||
"github.com/tidwall/buntdb"
|
||||
)
|
||||
|
||||
|
@ -10,7 +10,7 @@ import (
|
||||
"regexp"
|
||||
"strings"
|
||||
|
||||
"github.com/oragono/oragono/irc/smtp"
|
||||
"github.com/ergochat/ergo/irc/smtp"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -10,7 +10,7 @@ import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
// Runtime Errors
|
||||
|
@ -9,9 +9,9 @@ import (
|
||||
"errors"
|
||||
"net"
|
||||
|
||||
"github.com/oragono/oragono/irc/flatip"
|
||||
"github.com/oragono/oragono/irc/modes"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/flatip"
|
||||
"github.com/ergochat/ergo/irc/modes"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -9,10 +9,10 @@ import (
|
||||
"time"
|
||||
"unsafe"
|
||||
|
||||
"github.com/oragono/oragono/irc/caps"
|
||||
"github.com/oragono/oragono/irc/languages"
|
||||
"github.com/oragono/oragono/irc/modes"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/caps"
|
||||
"github.com/ergochat/ergo/irc/languages"
|
||||
"github.com/ergochat/ergo/irc/modes"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
func (server *Server) Config() (config *Config) {
|
||||
|
@ -25,14 +25,14 @@ import (
|
||||
"github.com/goshuirc/irc-go/ircutils"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
|
||||
"github.com/oragono/oragono/irc/caps"
|
||||
"github.com/oragono/oragono/irc/custime"
|
||||
"github.com/oragono/oragono/irc/flatip"
|
||||
"github.com/oragono/oragono/irc/history"
|
||||
"github.com/oragono/oragono/irc/jwt"
|
||||
"github.com/oragono/oragono/irc/modes"
|
||||
"github.com/oragono/oragono/irc/sno"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/caps"
|
||||
"github.com/ergochat/ergo/irc/custime"
|
||||
"github.com/ergochat/ergo/irc/flatip"
|
||||
"github.com/ergochat/ergo/irc/history"
|
||||
"github.com/ergochat/ergo/irc/jwt"
|
||||
"github.com/ergochat/ergo/irc/modes"
|
||||
"github.com/ergochat/ergo/irc/sno"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
// helper function to parse ACC callbacks, e.g., mailto:person@example.com, tel:16505551234
|
||||
@ -710,7 +710,7 @@ func debugHandler(server *Server, client *Client, msg ircmsg.Message, rb *Respon
|
||||
rb.Notice(fmt.Sprintf("num goroutines: %d", count))
|
||||
|
||||
case "PROFILEHEAP":
|
||||
profFile := server.Config().getOutputPath("oragono.mprof")
|
||||
profFile := server.Config().getOutputPath("ergo.mprof")
|
||||
file, err := os.Create(profFile)
|
||||
if err != nil {
|
||||
rb.Notice(fmt.Sprintf("error: %s", err))
|
||||
@ -721,7 +721,7 @@ func debugHandler(server *Server, client *Client, msg ircmsg.Message, rb *Respon
|
||||
rb.Notice(fmt.Sprintf("written to %s", profFile))
|
||||
|
||||
case "STARTCPUPROFILE":
|
||||
profFile := server.Config().getOutputPath("oragono.prof")
|
||||
profFile := server.Config().getOutputPath("ergo.prof")
|
||||
file, err := os.Create(profFile)
|
||||
if err != nil {
|
||||
rb.Notice(fmt.Sprintf("error: %s", err))
|
||||
@ -1082,13 +1082,13 @@ func infoHandler(server *Server, client *Client, msg ircmsg.Message, rb *Respons
|
||||
for _, line := range infoString1 {
|
||||
rb.Add(nil, server.name, RPL_INFO, nick, line)
|
||||
}
|
||||
rb.Add(nil, server.name, RPL_INFO, nick, fmt.Sprintf(client.t("This is Oragono version %s."), SemVer))
|
||||
rb.Add(nil, server.name, RPL_INFO, nick, fmt.Sprintf(client.t("This is Ergo version %s."), SemVer))
|
||||
if Commit != "" {
|
||||
rb.Add(nil, server.name, RPL_INFO, nick, fmt.Sprintf(client.t("It was built from git hash %s."), Commit))
|
||||
}
|
||||
rb.Add(nil, server.name, RPL_INFO, nick, fmt.Sprintf(client.t("It was compiled using %s."), runtime.Version()))
|
||||
rb.Add(nil, server.name, RPL_INFO, nick, "")
|
||||
rb.Add(nil, server.name, RPL_INFO, nick, client.t("Oragono is released under the MIT license."))
|
||||
rb.Add(nil, server.name, RPL_INFO, nick, client.t("Ergo is released under the MIT license."))
|
||||
rb.Add(nil, server.name, RPL_INFO, nick, "")
|
||||
rb.Add(nil, server.name, RPL_INFO, nick, client.t("Core Developers:"))
|
||||
for _, line := range infoString2 {
|
||||
@ -1099,7 +1099,7 @@ func infoHandler(server *Server, client *Client, msg ircmsg.Message, rb *Respons
|
||||
rb.Add(nil, server.name, RPL_INFO, nick, line)
|
||||
}
|
||||
rb.Add(nil, server.name, RPL_INFO, nick, client.t("For a more complete list of contributors, see our changelog:"))
|
||||
rb.Add(nil, server.name, RPL_INFO, nick, " https://github.com/oragono/oragono/blob/master/CHANGELOG.md")
|
||||
rb.Add(nil, server.name, RPL_INFO, nick, " https://github.com/ergochat/ergo/blob/master/CHANGELOG.md")
|
||||
rb.Add(nil, server.name, RPL_INFO, nick, "")
|
||||
// show translators for languages other than good ole' regular English
|
||||
tlines := server.Languages().Translators()
|
||||
|
16
irc/help.go
16
irc/help.go
@ -9,7 +9,7 @@ import (
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"github.com/oragono/oragono/irc/languages"
|
||||
"github.com/ergochat/ergo/irc/languages"
|
||||
)
|
||||
|
||||
// HelpEntryType represents the different sorts of help entries that can exist.
|
||||
@ -37,7 +37,7 @@ type HelpEntry struct {
|
||||
var (
|
||||
cmodeHelpText = `== Channel Modes ==
|
||||
|
||||
Oragono supports the following channel modes:
|
||||
Ergo supports the following channel modes:
|
||||
|
||||
+b | Client masks that are banned from the channel (e.g. *!*@127.0.0.1)
|
||||
+e | Client masks that are exempted from bans.
|
||||
@ -68,7 +68,7 @@ Oragono supports the following channel modes:
|
||||
+v (+) | Voice channel mode.`
|
||||
umodeHelpText = `== User Modes ==
|
||||
|
||||
Oragono supports the following user modes:
|
||||
Ergo supports the following user modes:
|
||||
|
||||
+a | User is marked as being away. This mode is set with the /AWAY command.
|
||||
+i | User is marked as invisible (their channels are hidden from whois replies).
|
||||
@ -81,7 +81,7 @@ Oragono supports the following user modes:
|
||||
+T | CTCP messages to the user are blocked.`
|
||||
snomaskHelpText = `== Server Notice Masks ==
|
||||
|
||||
Oragono supports the following server notice masks for operators:
|
||||
Ergo supports the following server notice masks for operators:
|
||||
|
||||
a | Local announcements.
|
||||
c | Local client connections.
|
||||
@ -502,7 +502,7 @@ given, views the current topic on the channel.`,
|
||||
"uban": {
|
||||
text: `UBAN <subcommand> [arguments]
|
||||
|
||||
Oragono's "unified ban" system. Accepts the following subcommands:
|
||||
Ergo's "unified ban" system. Accepts the following subcommands:
|
||||
|
||||
1. UBAN ADD <target> [REQUIRE-SASL] [DURATION <duration>] [REASON...]
|
||||
2. UBAN DEL <target>
|
||||
@ -638,15 +638,15 @@ for direct use by end users.`,
|
||||
"casemapping": {
|
||||
text: `RPL_ISUPPORT CASEMAPPING
|
||||
|
||||
Oragono supports an experimental unicode casemapping designed for extended
|
||||
Ergo supports an experimental unicode casemapping designed for extended
|
||||
Unicode support. This casemapping is based off RFC 7613 and the draft rfc7613
|
||||
casemapping spec here: https://oragono.io/specs.html`,
|
||||
casemapping spec here: https://ergo.chat/specs.html`,
|
||||
helpType: ISupportHelpEntry,
|
||||
},
|
||||
"prefix": {
|
||||
text: `RPL_ISUPPORT PREFIX
|
||||
|
||||
Oragono supports the following channel membership prefixes:
|
||||
Ergo supports the following channel membership prefixes:
|
||||
|
||||
+q (~) | Founder channel mode.
|
||||
+a (&) | Admin channel mode.
|
||||
|
@ -4,7 +4,7 @@
|
||||
package history
|
||||
|
||||
import (
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
"sync"
|
||||
"time"
|
||||
)
|
||||
|
@ -11,9 +11,9 @@ import (
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/oragono/oragono/irc/history"
|
||||
"github.com/oragono/oragono/irc/modes"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/history"
|
||||
"github.com/ergochat/ergo/irc/modes"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -10,7 +10,7 @@ import (
|
||||
|
||||
"github.com/goshuirc/irc-go/ircfmt"
|
||||
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -12,7 +12,7 @@ import (
|
||||
|
||||
"github.com/tidwall/buntdb"
|
||||
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -12,7 +12,7 @@ import (
|
||||
"github.com/goshuirc/irc-go/ircmsg"
|
||||
"github.com/goshuirc/irc-go/ircreader"
|
||||
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -13,7 +13,7 @@ import (
|
||||
|
||||
"github.com/tidwall/buntdb"
|
||||
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -13,7 +13,7 @@ import (
|
||||
|
||||
"github.com/gorilla/websocket"
|
||||
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -8,8 +8,8 @@ import (
|
||||
|
||||
"github.com/goshuirc/irc-go/ircmsg"
|
||||
|
||||
"github.com/oragono/oragono/irc/caps"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/caps"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
// MessageCache caches serialized IRC messages.
|
||||
|
@ -10,9 +10,9 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/oragono/oragono/irc/modes"
|
||||
"github.com/oragono/oragono/irc/sno"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/modes"
|
||||
"github.com/ergochat/ergo/irc/sno"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -10,7 +10,7 @@ import (
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -7,7 +7,7 @@ import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/oragono/oragono/irc/modes"
|
||||
"github.com/ergochat/ergo/irc/modes"
|
||||
)
|
||||
|
||||
func TestParseDefaultChannelModes(t *testing.T) {
|
||||
|
@ -16,10 +16,10 @@ import (
|
||||
"sync/atomic"
|
||||
"time"
|
||||
|
||||
"github.com/ergochat/ergo/irc/history"
|
||||
"github.com/ergochat/ergo/irc/logger"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
"github.com/oragono/oragono/irc/history"
|
||||
"github.com/oragono/oragono/irc/logger"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -3,8 +3,8 @@ package mysql
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"github.com/oragono/oragono/irc/history"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/history"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
// 123 / '{' is the magic number that means JSON;
|
||||
|
@ -9,11 +9,11 @@ import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/ergochat/ergo/irc/history"
|
||||
"github.com/ergochat/ergo/irc/modes"
|
||||
"github.com/ergochat/ergo/irc/sno"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
"github.com/goshuirc/irc-go/ircfmt"
|
||||
"github.com/oragono/oragono/irc/history"
|
||||
"github.com/oragono/oragono/irc/modes"
|
||||
"github.com/oragono/oragono/irc/sno"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -13,10 +13,10 @@ import (
|
||||
|
||||
"github.com/goshuirc/irc-go/ircfmt"
|
||||
|
||||
"github.com/oragono/oragono/irc/custime"
|
||||
"github.com/oragono/oragono/irc/passwd"
|
||||
"github.com/oragono/oragono/irc/sno"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/custime"
|
||||
"github.com/ergochat/ergo/irc/passwd"
|
||||
"github.com/ergochat/ergo/irc/sno"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
// "enabled" callbacks for specific nickserv commands
|
||||
|
@ -7,9 +7,9 @@ import (
|
||||
"runtime/debug"
|
||||
"time"
|
||||
|
||||
"github.com/ergochat/ergo/irc/caps"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
"github.com/goshuirc/irc-go/ircmsg"
|
||||
"github.com/oragono/oragono/irc/caps"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -7,9 +7,9 @@ import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/oragono/oragono/irc/history"
|
||||
"github.com/oragono/oragono/irc/modes"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/history"
|
||||
"github.com/ergochat/ergo/irc/modes"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -5,7 +5,7 @@ package irc
|
||||
import (
|
||||
"runtime"
|
||||
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
// See #237 for context. Operations that might allocate large amounts of temporary
|
||||
|
@ -22,15 +22,15 @@ import (
|
||||
|
||||
"github.com/goshuirc/irc-go/ircfmt"
|
||||
|
||||
"github.com/oragono/oragono/irc/caps"
|
||||
"github.com/oragono/oragono/irc/connection_limits"
|
||||
"github.com/oragono/oragono/irc/flatip"
|
||||
"github.com/oragono/oragono/irc/history"
|
||||
"github.com/oragono/oragono/irc/logger"
|
||||
"github.com/oragono/oragono/irc/modes"
|
||||
"github.com/oragono/oragono/irc/mysql"
|
||||
"github.com/oragono/oragono/irc/sno"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/caps"
|
||||
"github.com/ergochat/ergo/irc/connection_limits"
|
||||
"github.com/ergochat/ergo/irc/flatip"
|
||||
"github.com/ergochat/ergo/irc/history"
|
||||
"github.com/ergochat/ergo/irc/logger"
|
||||
"github.com/ergochat/ergo/irc/modes"
|
||||
"github.com/ergochat/ergo/irc/mysql"
|
||||
"github.com/ergochat/ergo/irc/sno"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
"github.com/tidwall/buntdb"
|
||||
)
|
||||
|
||||
@ -356,9 +356,9 @@ func (server *Server) tryRegister(c *Client, session *Session) (exiting bool) {
|
||||
func (server *Server) playSTSBurst(session *Session) {
|
||||
nick := utils.SafeErrorParam(session.client.preregNick)
|
||||
session.Send(nil, server.name, RPL_WELCOME, nick, fmt.Sprintf("Welcome to the Internet Relay Network %s", nick))
|
||||
session.Send(nil, server.name, RPL_YOURHOST, nick, fmt.Sprintf("Your host is %[1]s, running version %[2]s", server.name, "oragono"))
|
||||
session.Send(nil, server.name, RPL_YOURHOST, nick, fmt.Sprintf("Your host is %[1]s, running version %[2]s", server.name, "ergo"))
|
||||
session.Send(nil, server.name, RPL_CREATED, nick, fmt.Sprintf("This server was created %s", time.Time{}.Format(time.RFC1123)))
|
||||
session.Send(nil, server.name, RPL_MYINFO, nick, server.name, "oragono", "o", "o", "o")
|
||||
session.Send(nil, server.name, RPL_MYINFO, nick, server.name, "ergo", "o", "o", "o")
|
||||
session.Send(nil, server.name, RPL_ISUPPORT, nick, "CASEMAPPING=ascii", "are supported by this server")
|
||||
session.Send(nil, server.name, ERR_NOMOTD, nick, "MOTD is unavailable")
|
||||
for _, line := range server.Config().Server.STS.bannerLines {
|
||||
@ -1053,16 +1053,17 @@ func (matcher *elistMatcher) Matches(channel *Channel) bool {
|
||||
}
|
||||
|
||||
var (
|
||||
infoString1 = strings.Split(` ▄▄▄ ▄▄▄· ▄▄ • ▐ ▄
|
||||
▪ ▀▄ █·▐█ ▀█ ▐█ ▀ ▪▪ •█▌▐█▪
|
||||
▄█▀▄ ▐▀▀▄ ▄█▀▀█ ▄█ ▀█▄ ▄█▀▄▪▐█▐▐▌ ▄█▀▄
|
||||
▐█▌.▐▌▐█•█▌▐█ ▪▐▌▐█▄▪▐█▐█▌ ▐▌██▐█▌▐█▌.▐▌
|
||||
▀█▄▀▪.▀ ▀ ▀ ▀ ·▀▀▀▀ ▀█▄▀ ▀▀ █▪ ▀█▄▀▪
|
||||
|
||||
https://oragono.io/
|
||||
https://github.com/oragono/oragono
|
||||
https://crowdin.com/project/oragono
|
||||
`, "\n")
|
||||
infoString1 = []string{
|
||||
" ___ _ __ __ _ ___ ",
|
||||
" / _ \\ '__/ _` |/ _ \\ ",
|
||||
" | __/ | | (_| | (_) |",
|
||||
` \___|_| \__, |\___/ `,
|
||||
" __/ | ",
|
||||
" |___/ ",
|
||||
"",
|
||||
" https://ergo.chat/",
|
||||
"https://github.com/ergochat/ergo ",
|
||||
}
|
||||
infoString2 = strings.Split(` Daniel Oakley, DanielOaks, <daniel@danieloaks.net>
|
||||
Shivaram Lingamneni, slingamn, <slingamn@cs.stanford.edu>
|
||||
`, "\n")
|
||||
|
@ -11,9 +11,9 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
"github.com/goshuirc/irc-go/ircfmt"
|
||||
"github.com/goshuirc/irc-go/ircmsg"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
)
|
||||
|
||||
// defines an IRC service, e.g., NICKSERV
|
||||
|
@ -4,8 +4,8 @@ import (
|
||||
"fmt"
|
||||
"sync"
|
||||
|
||||
"github.com/ergochat/ergo/irc/sno"
|
||||
"github.com/goshuirc/irc-go/ircfmt"
|
||||
"github.com/oragono/oragono/irc/sno"
|
||||
)
|
||||
|
||||
// SnoManager keeps track of which clients to send snomasks to.
|
||||
|
@ -9,7 +9,7 @@ import (
|
||||
"io"
|
||||
"sync"
|
||||
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -16,7 +16,7 @@ import (
|
||||
"golang.org/x/text/unicode/norm"
|
||||
"golang.org/x/text/width"
|
||||
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -8,7 +8,7 @@ package irc
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/oragono/oragono/irc/modes"
|
||||
"github.com/ergochat/ergo/irc/modes"
|
||||
)
|
||||
|
||||
type empty struct{}
|
||||
|
@ -11,10 +11,10 @@ import (
|
||||
|
||||
"github.com/goshuirc/irc-go/ircmsg"
|
||||
|
||||
"github.com/oragono/oragono/irc/custime"
|
||||
"github.com/oragono/oragono/irc/flatip"
|
||||
"github.com/oragono/oragono/irc/sno"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/custime"
|
||||
"github.com/ergochat/ergo/irc/flatip"
|
||||
"github.com/ergochat/ergo/irc/sno"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
func consumeDuration(params []string, rb *ResponseBuffer) (duration time.Duration, requireSASL bool, remainingParams []string, err error) {
|
||||
|
@ -13,7 +13,7 @@ import (
|
||||
"time"
|
||||
"unsafe"
|
||||
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
type MaskInfo struct {
|
||||
|
@ -6,13 +6,13 @@ package irc
|
||||
import "fmt"
|
||||
|
||||
const (
|
||||
// SemVer is the semantic version of Oragono.
|
||||
// SemVer is the semantic version of Ergo.
|
||||
SemVer = "2.7.0-unreleased"
|
||||
)
|
||||
|
||||
var (
|
||||
// Ver is the full version of Oragono, used in responses to clients.
|
||||
Ver = fmt.Sprintf("oragono-%s", SemVer)
|
||||
// Ver is the full version of Ergo, used in responses to clients.
|
||||
Ver = fmt.Sprintf("ergo-%s", SemVer)
|
||||
// Commit is the full git hash, if available
|
||||
Commit string
|
||||
)
|
||||
@ -21,8 +21,8 @@ var (
|
||||
func SetVersionString(version, commit string) {
|
||||
Commit = commit
|
||||
if version != "" {
|
||||
Ver = fmt.Sprintf("oragono-%s", version)
|
||||
Ver = fmt.Sprintf("ergo-%s", version)
|
||||
} else if len(Commit) == 40 {
|
||||
Ver = fmt.Sprintf("oragono-%s-%s", SemVer, Commit[:16])
|
||||
Ver = fmt.Sprintf("ergo-%s-%s", SemVer, Commit[:16])
|
||||
}
|
||||
}
|
||||
|
@ -9,8 +9,8 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/oragono/oragono/irc/history"
|
||||
"github.com/oragono/oragono/irc/utils"
|
||||
"github.com/ergochat/ergo/irc/history"
|
||||
"github.com/ergochat/ergo/irc/utils"
|
||||
)
|
||||
|
||||
const (
|
||||
|
2
irctest
2
irctest
@ -1 +1 @@
|
||||
Subproject commit f3b53b00483e0504bdc6bca5701fa98025ea8acf
|
||||
Subproject commit 6bdfdf58b2c1580a4d7962d54b93f50b934b6f80
|
@ -1,17 +1,17 @@
|
||||
# This is the "traditional" or "mainstream" config file for Oragono.
|
||||
# This is the "traditional" or "mainstream" config file for Ergo.
|
||||
# It tries to replicate the behavior of other ircds, at the cost of not
|
||||
# taking full advantage of Oragono's features. This config is suitable for use
|
||||
# taking full advantage of Ergo's features. This config is suitable for use
|
||||
# in IRCv3 conformance testing.
|
||||
|
||||
# network configuration
|
||||
network:
|
||||
# name of the network
|
||||
name: OragonoTest
|
||||
name: ErgoTest
|
||||
|
||||
# server configuration
|
||||
server:
|
||||
# server name
|
||||
name: oragono.test
|
||||
name: ergo.test
|
||||
|
||||
# addresses to listen on
|
||||
listeners:
|
||||
@ -36,12 +36,12 @@ server:
|
||||
# min-tls-version: 1.2
|
||||
|
||||
# Example of a Unix domain socket for proxying:
|
||||
# "/tmp/oragono_sock":
|
||||
# "/tmp/ergo_sock":
|
||||
|
||||
# Example of a Tor listener: any connection that comes in on this listener will
|
||||
# be considered a Tor connection. It is strongly recommended that this listener
|
||||
# *not* be on a public interface --- it should be on 127.0.0.0/8 or unix domain:
|
||||
# "/hidden_service_sockets/oragono_tor_sock":
|
||||
# "/hidden_service_sockets/ergo_tor_sock":
|
||||
# tor: true
|
||||
|
||||
# Example of a WebSocket listener:
|
||||
@ -94,14 +94,14 @@ server:
|
||||
|
||||
websockets:
|
||||
# Restrict the origin of WebSocket connections by matching the "Origin" HTTP
|
||||
# header. This setting causes oragono to reject websocket connections unless
|
||||
# header. This setting causes ergo to reject websocket connections unless
|
||||
# they originate from a page on one of the whitelisted websites in this list.
|
||||
# This prevents malicious websites from making their visitors connect to your
|
||||
# oragono instance without their knowledge. An empty list means there are no
|
||||
# ergo instance without their knowledge. An empty list means there are no
|
||||
# restrictions.
|
||||
allowed-origins:
|
||||
# - "https://oragono.io"
|
||||
# - "https://*.oragono.io"
|
||||
# - "https://ergo.chat"
|
||||
# - "https://*.ergo.chat"
|
||||
|
||||
# casemapping controls what kinds of strings are permitted as identifiers (nicknames,
|
||||
# channel names, account names, etc.), and how they are normalized for case.
|
||||
@ -137,13 +137,12 @@ server:
|
||||
# the value must begin with a '~' character. comment out / omit to disable:
|
||||
#coerce-ident: '~u'
|
||||
|
||||
# password to login to the server
|
||||
# generated using "oragono genpasswd"
|
||||
#password: ""
|
||||
# password to login to the server, generated using `ergo genpasswd`:
|
||||
#password: "$2a$04$0123456789abcdef0123456789abcdef0123456789abcdef01234"
|
||||
|
||||
# motd filename
|
||||
# if you change the motd, you should move it to ircd.motd
|
||||
motd: oragono.motd
|
||||
motd: ergo.motd
|
||||
|
||||
# motd formatting codes
|
||||
# if this is true, the motd is escaped using formatting codes like $c, $b, and $i
|
||||
@ -179,7 +178,7 @@ server:
|
||||
# (comment this out to use passwords only)
|
||||
certfp: "abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789"
|
||||
|
||||
# password the gateway uses to connect, made with oragono genpasswd
|
||||
# password the gateway uses to connect, made with `ergo genpasswd`
|
||||
password: "$2a$04$abcdef0123456789abcdef0123456789abcdef0123456789abcde"
|
||||
|
||||
# IPs/CIDRs that can use this webirc command
|
||||
@ -201,7 +200,7 @@ server:
|
||||
compatibility:
|
||||
# many clients require that the final parameter of certain messages be an
|
||||
# RFC1459 trailing parameter, i.e., prefixed with :, whether or not this is
|
||||
# actually required. this forces Oragono to send those parameters
|
||||
# actually required. this forces Ergo to send those parameters
|
||||
# as trailings. this is recommended unless you're testing clients for conformance;
|
||||
# defaults to true when unset for that reason.
|
||||
force-trailing: true
|
||||
@ -214,7 +213,7 @@ server:
|
||||
|
||||
# traditionally, IRC servers will truncate and send messages that are
|
||||
# too long to be relayed intact. this behavior can be disabled by setting
|
||||
# allow-truncation to false, in which case Oragono will reject the message
|
||||
# allow-truncation to false, in which case Ergo will reject the message
|
||||
# and return an error to the client. (note that this option defaults to true
|
||||
# when unset.)
|
||||
allow-truncation: true
|
||||
@ -282,7 +281,7 @@ server:
|
||||
# IP cloaking hides users' IP addresses from other users and from channel admins
|
||||
# (but not from server admins), while still allowing channel admins to ban
|
||||
# offending IP addresses or networks. In place of hostnames derived from reverse
|
||||
# DNS, users see fake domain names like pwbs2ui4377257x8.oragono. These names are
|
||||
# DNS, users see fake domain names like pwbs2ui4377257x8.irc. These names are
|
||||
# generated deterministically from the underlying IP address, but if the underlying
|
||||
# IP is not already known, it is infeasible to recover it from the cloaked name.
|
||||
ip-cloaking:
|
||||
@ -323,10 +322,10 @@ server:
|
||||
secure-nets:
|
||||
# - "10.0.0.0/8"
|
||||
|
||||
# oragono will write files to disk under certain circumstances, e.g.,
|
||||
# Ergo will write files to disk under certain circumstances, e.g.,
|
||||
# CPU profiling or data export. by default, these files will be written
|
||||
# to the working directory. set this to customize:
|
||||
#output-path: "/home/oragono/out"
|
||||
#output-path: "/home/ergo/out"
|
||||
|
||||
# the hostname used by "services", e.g., NickServ, defaults to "localhost",
|
||||
# e.g., `NickServ!NickServ@localhost`. uncomment this to override:
|
||||
@ -469,7 +468,7 @@ accounts:
|
||||
# nickname after the initial connection is complete
|
||||
forbid-anonymous-nick-changes: false
|
||||
|
||||
# multiclient controls whether oragono allows multiple connections to
|
||||
# multiclient controls whether Ergo allows multiple connections to
|
||||
# attach to the same client/nickname identity; this is part of the
|
||||
# functionality traditionally provided by a bouncer like ZNC
|
||||
multiclient:
|
||||
@ -630,7 +629,7 @@ opers:
|
||||
# operators can be authenticated either by password (with the /OPER command),
|
||||
# or by certificate fingerprint, or both. if a password hash is set, then a
|
||||
# password is required to oper up (e.g., /OPER dan mypassword). to generate
|
||||
# the hash, use `oragono genpasswd`.
|
||||
# the hash, use `ergo genpasswd`.
|
||||
password: "$2a$04$0123456789abcdef0123456789abcdef0123456789abcdef01234"
|
||||
|
||||
# if a SHA-256 certificate fingerprint is configured here, then it will be
|
||||
@ -691,7 +690,7 @@ logging:
|
||||
|
||||
# debug options
|
||||
debug:
|
||||
# when enabled, oragono will attempt to recover from certain kinds of
|
||||
# when enabled, Ergo will attempt to recover from certain kinds of
|
||||
# client-triggered runtime errors that would normally crash the server.
|
||||
# this makes the server more resilient to DoS, but could result in incorrect
|
||||
# behavior. deployments that would prefer to "start from scratch", e.g., by
|
||||
@ -722,9 +721,9 @@ datastore:
|
||||
port: 3306
|
||||
# if socket-path is set, it will be used instead of host:port
|
||||
#socket-path: "/var/run/mysqld/mysqld.sock"
|
||||
user: "oragono"
|
||||
user: "ergo"
|
||||
password: "hunter2"
|
||||
history-database: "oragono_history"
|
||||
history-database: "ergo_history"
|
||||
timeout: 3s
|
||||
max-conns: 4
|
||||
# this may be necessary to prevent middleware from closing your connections:
|
||||
@ -937,5 +936,5 @@ history:
|
||||
# - "typing"
|
||||
|
||||
# whether to allow customization of the config at runtime using environment variables,
|
||||
# e.g., ORAGONO__SERVER__MAX_SENDQ=128k. see the manual for more details.
|
||||
# e.g., ERGO__SERVER__MAX_SENDQ=128k. see the manual for more details.
|
||||
allow-environment-overrides: true
|
||||
|
Loading…
Reference in New Issue
Block a user