about summary refs log tree commit diff
path: root/README.adoc
diff options
context:
space:
mode:
authorV <v@anomalous.eu>2021-08-27 06:08:09 +0200
committerV <v@anomalous.eu>2021-08-27 06:08:09 +0200
commitd49fe57776e6d19181c8ccb8d5332ed2c62d5ca8 (patch)
treee3036d32e318bfaef519c316de7e7f44b9351fef /README.adoc
downloadloxy-trunk.tar.zst
Root commit HEAD v0.2.0 trunk
Co-authored-by: edef <edef@edef.eu>
Diffstat (limited to 'README.adoc')
-rw-r--r--README.adoc64
1 files changed, 64 insertions, 0 deletions
diff --git a/README.adoc b/README.adoc
new file mode 100644
index 0000000..6f74045
--- /dev/null
+++ b/README.adoc
@@ -0,0 +1,64 @@
+// SPDX-FileCopyrightText: V <v@anomalous.eu>
+// SPDX-FileCopyrightText: edef <edef@edef.eu>
+// SPDX-License-Identifier: OSL-3.0
+
+= loxy
+
+...a __lo__gging IRC pr__oxy__.
+
+It sits between your IRC client and the IRC servers you connect to, and saves timestamped raw IRC protocol lines to an SQLite database.
+It is implemented as an HTTP proxy server, making it compatible with most modern IRC clients.
+
+It supports systemd socket activation.
+
+== Configuration
+
+Note: since loxy is a transparent proxy, you must ensure your client is set to use insecure connections.
+loxy will only make secure outgoing connections.
+All outgoing connections are currently made to the hardcoded port 6697.
+
+=== Irssi
+
+If your servers are configured to use TLS,footnote:[as they should be!] you will need to either recreate them without it enabled, or remove the `use_tls` flag in your `~/.irssi/config`, since it does not support removing TLS with `/SERVER MODIFY`.
+
+[source,irssi]
+/SET use_proxy ON
+/SET proxy_address <loxy host>
+/SET proxy_port <loxy port>
+/SET -clear proxy_password
+/EVAL SET proxy_string CONNECT %s HTTP/1.0\n\n
+
+=== Quassel
+
+In the network configuration dialogue, for each server in the 'Servers' tab, select 'Edit...'.
+Under the 'Server Info' tab, ensure that the 'Use encrypted connection' option is disabled.
+Under the 'Advanced' tab, select 'Use a Proxy', set the type to 'HTTP', and fill in the host and port as appropriate.
+For an instance of loxy running on the same machine with default options, 'localhost' and '3893' should be good.
+
+== Files
+
+* `listener.go` - listener gathering
+* `main.go` - program entry point
+* `proxy.go` - IRC protocol parsing and proxy server
+* `session.go` - encapsulates a 'session', buffering writes
+* `store.go` - database schema and routines
+
+== Caveats
+
+* doesn't support insecure connections
+* doesn't support invalid certificates (self-signed, expired, etc)
+* only supports one client certificate per instance
+* doesn't support SOCKS, only the HTTP proxy protocol
+
+== TODO
+
+* make loxy serve its own source code over HTTP
+* inject server notices (or numerics) into the proxied connection, to provide license notices and source code links
+* eliminate the caveats
+
+== License
+
+loxy is licensed under the Open Software License, version 3.0.
+
+If you let other people use your loxy instance, you're in charge of fulfilling the license requirements.
+This includes (but is not limited to) informing them of the license and making source code available to them.