Difference between revisions of "Archiveteam:IRC"

From Archiveteam
Jump to navigation Jump to search
(→‎Creating a channel: Explain #archiveteam ops requirement for ban)
(13 intermediate revisions by 6 users not shown)
Line 1: Line 1:
'''IRC''' (Internet Relay Chat) is an internet protocol that allows multiple users to connect to a server and chat. Each IRC "server" can be connected to by a person, then someone joins a "channel" with the particular subject they are interested in.
'''[[IRC]]''' (Internet Relay Chat) is an internet protocol that allows multiple users to connect to a server and chat. Each IRC "server" can be connected to by a person, then someone joins a "channel" with the particular subject they are interested in.


ArchiveTeam uses IRC as its one-stop shop for coordinating projects.
ArchiveTeam uses IRC as its one-stop shop for coordinating projects.
Line 7: Line 7:
== How do I chat on IRC? ==
== How do I chat on IRC? ==


You will need an IRC client, or you can use a web interface.
You will need an IRC client, or you can use a web interface. Enter a nickname (such as your first name, your pet's name, or a cool pseudonym of your choice) and then the channel's name, ie <code>#archiveteam</code>.


EFnet, one of the networks that ArchiveTeam uses, provides a [http://www.efnet.org/ web interface called Webchat]. Enter a nickname (such as your first name, your pet's name, or a cool pseudonym of your choice) and then the channel's name, ie <code>#archiveteam</code>.
Most channels are hosted on the [https://www.hackint.org/ hackint IRC network] due to desires like less netsplits, channel/nickname registration, secure IRC by default, etc. In addition to IRC clients, it can also be connected to through its [https://webirc.hackint.org/#irc://irc.hackint.org/#archiveteam web interface].


Since September 2019, most project-specific channels have been hosted on the [https://www.hackint.org/ hackint IRC network] due to desires like less netsplits, channel/nickname registration, secure IRC by default, etc. It too also has a [https://webirc.hackint.org/#irc://irc.hackint.org/#archiveteam web interface]. A comprehensive comparison between the two networks by JAA can be found under [[User:JustAnotherArchivist/hackint vs EFnet]].
A few older, mostly inactive channels created before September 2019 are still on the EFnet IRC network. EFnet also provides a [http://www.efnet.org/ web interface called Webchat]. A comprehensive comparison between the two IRC networks by JAA can be found under [[User:JustAnotherArchivist/hackint vs EFnet]].


{{notice|1=Please learn IRC '''netiquette'''.
{{notice|1=Please learn IRC '''netiquette'''.
Line 69: Line 69:
== ArchiveTeam on IRC ==
== ArchiveTeam on IRC ==


Below is a list of ArchiveTeam's '''general-purpose''' IRC channels. '''Project-specific''' channels can be found in the [[Projects]]' list. All the channels listed below are on the [http://www.efnet.org/ EFnet] network.  
Below is a list of ArchiveTeam's '''general-purpose''' IRC channels. '''Project-specific''' channels can be found in the [[Projects]] list. All the channels listed below are on the [https://www.hackint.org/ hackint] network.  


(Back then we had a separate list of project-specific IRC channels, under the general channels. For historical interest, you can find them on the [[IRC/Old]] page.)
(Back then we had a separate list of project-specific IRC channels, under the general channels. For historical interest, you can find them on the [[IRC/Old]] page.)
Line 76: Line 76:
! Channel name !! Channel hashtag !! Channel description
! Channel name !! Channel hashtag !! Channel description
|-
|-
| ArchiveTeam || [irc://irc.efnet.org/archiveteam #archiveteam] || The main ArchiveTeam channel, mainly used for news, announcement and early project planning.
| ArchiveTeam || [ircs://irc.hackint.org:6697/archiveteam #archiveteam] || News and announcements '''''only'''''.
|-
|-
| -bs || [irc://irc.efnet.org/archiveteam-bs #archiveteam-bs] || Lengthy discussion for general archival and projects which don't have a separate channel.
| -bs || [ircs://irc.hackint.org:6697/archiveteam-bs #archiveteam-bs] || The main ArchiveTeam channel, for discussion of general archival, early project planning and projects which don't have a separate channel.
|-
|-
| -dev || [irc://irc.efnet.org/archiveteam-dev #archiveteam-dev] || Discussion about general (i.e. not project-specific) ArchiveTeam software development
| -dev || [ircs://irc.hackint.org:6697/archiveteam-dev #archiveteam-dev] || Discussion about general (i.e. not project-specific) ArchiveTeam software development
|-
|-
| -ot || [irc://irc.efnet.org/archiveteam-ot #archiveteam-ot] || Off-topic discussion
| -ot || [ircs://irc.hackint.org:6697/archiveteam-ot #archiveteam-ot] || Off-topic discussion
|-
|-
| -twitter || [irc://irc.efnet.org/archiveteam-twitter #archiveteam-twitter] || <s>We have a twitter bot and it owns you.</s> All tweets by us, to us, or about us used to be displayed here by swebb bot, until twitter killed API v1.
| Warrior || [ircs://irc.hackint.org:6697/warrior #warrior] || Channel for the discussion and development of the ArchiveTeam Warrior
|-
|-
| Warrior || [irc://irc.efnet.org/warrior #warrior] || Channel for the discussion and development of the ArchiveTeam Warrior
| ArchiveBot || [ircs://irc.hackint.org:6697/archivebot #archivebot] || Channel for controlling [[ArchiveBot]].  Discussions about ArchiveBot development also take place here.
|-
| ArchiveBot || [irc://irc.efnet.org/archivebot #archivebot] || Channel for controlling [[ArchiveBot]].  Discussions about ArchiveBot development also take place here.
|}
|}


Line 95: Line 93:
You can log the channels where you are using your client, generally. But if you want a 24/7 bot logging your channel, you can use a script like [https://web.archive.org/web/20100323000206/http://toolserver.org/~bryan/TsLogBot/TsLogBot.py this] (change the server and channel variables).
You can log the channels where you are using your client, generally. But if you want a 24/7 bot logging your channel, you can use a script like [https://web.archive.org/web/20100323000206/http://toolserver.org/~bryan/TsLogBot/TsLogBot.py this] (change the server and channel variables).


=== hackint ===
Logs for common hackint channels are hosted by [[User:Kiska|kiska]], and are available at [https://logs.kiska.pw/ logs.kiska.pw]. Some channels are also logged at [https://hackint.logs.kiska.pw/ hackint.logs.kiska.pw].
=== EFnet ===
[[User:Chfoo|chfoo]] is hosting chat logs of some channels at https://archive.fart.website/bin/irclogger_logs. It also has a search function.
[[User:Chfoo|chfoo]] is hosting chat logs of some channels at https://archive.fart.website/bin/irclogger_logs. It also has a search function.


Line 108: Line 110:
: <code>/save</code>
: <code>/save</code>
: <code>/connect hackint</code>
: <code>/connect hackint</code>
==== Mobile ====
Please use a bouncer to avoid spamming channels with join/leave messages. hackint also lets you [https://hackint.org/transport/xmpp connect via XMPP].


=== Services & authentication ===
=== Services & authentication ===
Line 118: Line 123:
A verification email is sent to the email address entered here; this email address is needed for recovery in case you ever lose the authentication data for your nick.
A verification email is sent to the email address entered here; this email address is needed for recovery in case you ever lose the authentication data for your nick.


After registration, you need to authenticate on every connection. There are several ways how you can do that: CertFP (see below), different SASL methods, or the traditional but least reliable <code>/msg NickServ IDENTIFY password</code>.
After registration, you need to authenticate on every connection. There are several ways how you can do that: SASL PLAIN, SASL EXTERNAL, SASL ECDSA-NIST256P, CertFP, or the traditional but least reliable <code>/msg NickServ IDENTIFY password</code>. It is recommended to use SASL since this will authenticate you immediately during the initial connection establishment; CertFP and messaging NickServ may have a delay, which can cause joins to protected channels to fail, for example.
 
==== Auto Login with SASL (weechat) ====


==== SASL PLAIN (weechat) ====
After you've followed the instructions to register an account you can setup weechat to automatically log you in when connecting to the irc network. Issue the following commands to configure your account, save the config and then reconnect to test it:
After you've followed the instructions to register an account you can setup weechat to automatically log you in when connecting to the irc network. Issue the following commands to configure your account, save the config and then reconnect to test it:


Line 130: Line 134:
: <code>/reconnect hackint</code>
: <code>/reconnect hackint</code>


==== CertFP ====
==== Certificate authentication (SASL EXTERNAL or CertFP) ====
To authenticate using CertFP, you need to generate a client certificate. For example:
To authenticate using a certificate through either CertFP or SASL EXTERNAL, you need to generate a client certificate. For example:


: <code>openssl req -nodes -newkey rsa:4096 -keyout /secure/path/nick.key -x509 -days 36500 -out /secure/path/nick.cer</code>
: <code>openssl req -nodes -newkey rsa:4096 -keyout /secure/path/nick.key -x509 -days 36500 -out /secure/path/nick.cer</code>
Line 140: Line 144:
: <code>chmod 600 /secure/path/nick.pem</code>
: <code>chmod 600 /secure/path/nick.pem</code>


Then, instruct your client to use this certificate on connecting to hackint. For example, on irssi, you need to add the <code>-ssl_cert /secure/path/nick.pem</code> option to the <code>/server add</code> command. Instructions for other clients can be found on the [https://www.oftc.net/NickServ/CertFP/ CertFP documentation by OFTC].
Then, instruct your client to use this certificate on connecting to hackint. Instructions for various clients can be found on the [https://www.oftc.net/NickServ/CertFP/ CertFP documentation by OFTC].


On the first connection using this certificate, you need to add its fingerprint to NickServ (after authenticating with <code>IDENTIFY</code>):
On the first connection using this certificate, you need to add its fingerprint to NickServ (after authenticating with <code>IDENTIFY</code>):
Line 146: Line 150:
: <code>/msg NickServ CERT ADD</code>
: <code>/msg NickServ CERT ADD</code>


On any later connections, you will get authenticated automatically and immediately.
On any later connections, you will get authenticated automatically.
 
It is recommended to use SASL EXTERNAL rather than relying on CertFP; only the former will ensure that the authentication happens immediately on connecting and you will be able to join access-restricted channels without issues.


=== Creating a channel ===
=== Creating a channel ===
If you're opening a channel for ArchiveTeam usage, it is recommended to register it and set the right flags for the <code>!archiveteam-core</code> group. Make sure you're identified with NickServ.
If you're opening a channel for ArchiveTeam usage, it is recommended to register it and set the right flags for the <code>!archiveteam-core</code> group. Make sure you're identified with NickServ.


Registering the channel is done with:
# Register the channel with: <br><code>/msg ChanServ REGISTER #example</code>
 
# Enable automatic syncing of the ChanServ access list: <br><code>/msg ChanServ SET #example NOSYNC OFF</code>
: <code>/msg ChanServ REGISTER #example</code>
# Grant everyone in the AT group full control over the channel: <br><code>/msg ChanServ FLAGS #example !archiveteam-core +*SF</code>
# Grant op status and topic control to global ops: <br><code>/msg ChanServ FLAGS #example !archiveteam-ops +Ot</code>
# Set an extban to mirror the ban list from #archiveteam: <br><code>/mode #example +b $j:#archiveteam$#archiveteam</code><br>If you don't have ops in #archiveteam, you can't do this. In that case, just continue on with the rest of the setup and ping an appropriate person (in the new channel, not in #archiveteam) to set the ban for you (when they join).
# Set a mode lock to enforce certain channel options:<br><code>/msg ChanServ SET #example MLOCK +ntcC-lk</code><br>Explanation:
#* <code>+n</code>: people must be in the channel to send messages to it
#* <code>+t</code>: only ops can set the topic
#* <code>+c</code>: strip colours
#* <code>+C</code>: disable CTCP messages
#* <code>-l</code>: disable channel limits
#* <code>-k</code>: disable channel key
# Disable verbosity to avoid spam whenever there are changes to the GroupServ group:<br><code>/msg ChanServ SET #example VERBOSE OFF</code>
# Set a reasonable topic that ideally links to the corresponding wiki page (if one exists), and possibly to other highly relevant links:<br><code>/topic #example Archiving stuff | https://www.archiveteam.org/index.php?title=Page</code>


And setting the flags is done with:
==== Private channels ====
For private, access-restricted channels, add to the mode lock +i (only invited users can join), +s (hide channel from whois and list), and if desired +p (disable /knock). Grant all people that should be able to join the channel at least the +i flag (i.e. <code>/msg ChanServ FLAGS #example robert +i</code>), and to make rejoining easier, add an invite exemption on the account (<code>/mode #example +I $a:robert</code>). Note that <code>robert</code> is the name of the NickServ account, which may be different from the nickname currently used by that user; if <code>robert</code> is currently connected as <code>bob</code>, you can <code>/whois bob</code>, and the server's response will include a line <code>account: robert</code> if the user is registered and authenticated.


: <code>/msg ChanServ FLAGS #example !archiveteam-core +*SF</code>
==== Granting permissions ====
To grant a person permanent op or voice, make them register with NickServ if they haven't already, then do <code>/msg ChanServ AOP #example ADD account</code> for op or <code>/msg ChanServ VOP #example ADD account</code> for voice. Note that <code>account</code> is the NickServ account name, not the current nickname (see the bob/robert example above).


This grants everyone in that group full control over the channel.
For other permissions you can grant, check the more powerful <code>FLAGS</code>: <code>/msg ChanServ HELP FLAGS</code>


=== Virtual hosts (vhosts) ===
=== Virtual hosts (vhosts) ===

Revision as of 21:05, 25 August 2022

IRC (Internet Relay Chat) is an internet protocol that allows multiple users to connect to a server and chat. Each IRC "server" can be connected to by a person, then someone joins a "channel" with the particular subject they are interested in.

ArchiveTeam uses IRC as its one-stop shop for coordinating projects.

Before you go ahead and jump in, if there's nothing else you read on this page please at least take a moment to review the Special ArchiveTeam IRC rules section below.

How do I chat on IRC?

You will need an IRC client, or you can use a web interface. Enter a nickname (such as your first name, your pet's name, or a cool pseudonym of your choice) and then the channel's name, ie #archiveteam.

Most channels are hosted on the hackint IRC network due to desires like less netsplits, channel/nickname registration, secure IRC by default, etc. In addition to IRC clients, it can also be connected to through its web interface.

A few older, mostly inactive channels created before September 2019 are still on the EFnet IRC network. EFnet also provides a web interface called Webchat. A comprehensive comparison between the two IRC networks by JAA can be found under User:JustAnotherArchivist/hackint vs EFnet.

Archiveteam1.png Please learn IRC netiquette.

Do not barge into an IRC channel demanding help or disparage installation instructions.

Archive Team is not a professional support team.

Do I have to use IRC?

We prefer IRC because there is no central point of failure, but see the question about social media on Frequently Asked Questions.

Why does IRC need chat logs?

Unlike a bulletin board or SMS, IRC is a transient medium of communication. As a result, if you aren't there to receive the message, you will never receive it at all.

If you check the chat logs, your question may already be answered. Unfortunately, some channels are not logged. Don't worry if you accidentally interrupt someone's conversation or repeat a question.

See the section IRC Logs.

I asked a question and waited but it scrolled off the window and was ignored.

Don't get discouraged; do ask again. Topics get intermixed and timezones break up normal conversations. Be persistent but friendly.

How do I get someone's attention in a public channel?

Some chat clients will alert the user if you say their nickname.

Some clients support nickname auto-completion. Start typing the first few letters of their nickname and press tab.

Why won't anyone respond?

If no one answers, please be patient. We're volunteers so we can't always respond immediately. We eat, drink, sleep, and archive just like you! Note that IRC channels are not like Discord, Telegram, Slack, or similar channels - do not expect real-time responses the next second. Wait a few minutes, but be prepared to stay around for a little bit.

Sometimes it may be the bystander effect. Try an icebreaker to get the conversation going.

I can't wait; I need immediate attention. Who's in charge?

See Who We Are.

Special ArchiveTeam IRC rules

Besides the expectation of being civilized, patient and tactful, there are some rules you should follow when in ArchiveTeam IRC channels. Breaking them makes you become annoying in the community and you can easily find yourself banned. The most pertinent of these are as follows:

  • #archiveteam is generally reserved for short and important information exchange, e.g. concise announcements about websites shutting down, project status updates, easily answerable important questions, etc. All general and in-depth archiving-related discussion happens in #archiveteam-bs (this channel is monitored and you will very likely not need to wait hours for an answer). Project-specific discussions go in their respective channels. General topics not related to computers and/or archiving at all are not welcome even in #archiveteam-bs (try #archiveteam-ot for such topics instead).[1]
  • Don't ask too many questions, don't demand answers from others. Sometimes you can look it up yourself, sometimes you need to filter your questions for important ones. You can also search the logs.[2]
  • Don't maliciously/demandingly criticize Archive Team, its members, nor the Internet Archive, especially in general, empty phrases.[3][4] If you have a remark/idea, be concrete and constructive (and polite and patient), and if you can, realize it yourself (we're volunteers otherwise busy). Remember the money-back guarantee![5]
  • Don't try to convince ArchiveTeam about that archiving is bad. We make very few exceptions when it's about archiving. Also, our rule of thumb is "archive first, ask questions later".[6][7][8] Our IRC channels are the #1 worst place to ask "why we are keeping this"![9]
  • Don't be childish.[10][11][5]
  • Don't feed the trolls. (Don't engage into arguments with people not behaving appropriately.)[12]
  • Don't explain us evident things in detail.[13]
  • Don't let your IRC client flood the channels with join/leave notifications due to you unstable connection.[14][15]

ArchiveTeam on IRC

Below is a list of ArchiveTeam's general-purpose IRC channels. Project-specific channels can be found in the Projects list. All the channels listed below are on the hackint network.

(Back then we had a separate list of project-specific IRC channels, under the general channels. For historical interest, you can find them on the IRC/Old page.)

Channel name Channel hashtag Channel description
ArchiveTeam #archiveteam News and announcements only.
-bs #archiveteam-bs The main ArchiveTeam channel, for discussion of general archival, early project planning and projects which don't have a separate channel.
-dev #archiveteam-dev Discussion about general (i.e. not project-specific) ArchiveTeam software development
-ot #archiveteam-ot Off-topic discussion
Warrior #warrior Channel for the discussion and development of the ArchiveTeam Warrior
ArchiveBot #archivebot Channel for controlling ArchiveBot. Discussions about ArchiveBot development also take place here.

IRC Logs

You can log the channels where you are using your client, generally. But if you want a 24/7 bot logging your channel, you can use a script like this (change the server and channel variables).

hackint

Logs for common hackint channels are hosted by kiska, and are available at logs.kiska.pw. Some channels are also logged at hackint.logs.kiska.pw.

EFnet

chfoo is hosting chat logs of some channels at https://archive.fart.website/bin/irclogger_logs. It also has a search function.

hackint specifics

This section is documenting how to properly and successfully run ArchiveTeam channels on the hackint IRC network.

Connecting

hackint enforces secure connections with TLS (aka "SSL"). The servers have valid certificates, so do not disable certificate verification in your client when connecting to hackint (or enable it if disabled by default, e.g. use -ssl_verify on irssi and WeeChat).

Weechat

/server add hackint irc.hackint.org/6697 -ssl -autoconnect
/save
/connect hackint

Mobile

Please use a bouncer to avoid spamming channels with join/leave messages. hackint also lets you connect via XMPP.

Services & authentication

hackint has the usual services one would expect from a sensible IRC network: NickServ to register user accounts, ChanServ to manage channels, HostServ for hostmasks, MemoServ for sending messages (memos) to users currently offline or groups, and GroupServ for groups of people.

The most important part for most users is registering and authenticating a user account. To register, issue:

/msg NickServ REGISTER password email@example.org

A verification email is sent to the email address entered here; this email address is needed for recovery in case you ever lose the authentication data for your nick.

After registration, you need to authenticate on every connection. There are several ways how you can do that: SASL PLAIN, SASL EXTERNAL, SASL ECDSA-NIST256P, CertFP, or the traditional but least reliable /msg NickServ IDENTIFY password. It is recommended to use SASL since this will authenticate you immediately during the initial connection establishment; CertFP and messaging NickServ may have a delay, which can cause joins to protected channels to fail, for example.

SASL PLAIN (weechat)

After you've followed the instructions to register an account you can setup weechat to automatically log you in when connecting to the irc network. Issue the following commands to configure your account, save the config and then reconnect to test it:

/set irc.server.hackint.sasl_mechanism PLAIN
/set irc.server.hackint.sasl_username <login>
/set irc.server.hackint.sasl_password <password>
/save
/reconnect hackint

Certificate authentication (SASL EXTERNAL or CertFP)

To authenticate using a certificate through either CertFP or SASL EXTERNAL, you need to generate a client certificate. For example:

openssl req -nodes -newkey rsa:4096 -keyout /secure/path/nick.key -x509 -days 36500 -out /secure/path/nick.cer

Depending on the client and/or its SSL/TLS library, you may need to combine the two into one file:

cat /secure/path/nick.cer /secure/path/nick.key >/secure/path/nick.pem
chmod 600 /secure/path/nick.pem

Then, instruct your client to use this certificate on connecting to hackint. Instructions for various clients can be found on the CertFP documentation by OFTC.

On the first connection using this certificate, you need to add its fingerprint to NickServ (after authenticating with IDENTIFY):

/msg NickServ CERT ADD

On any later connections, you will get authenticated automatically.

It is recommended to use SASL EXTERNAL rather than relying on CertFP; only the former will ensure that the authentication happens immediately on connecting and you will be able to join access-restricted channels without issues.

Creating a channel

If you're opening a channel for ArchiveTeam usage, it is recommended to register it and set the right flags for the !archiveteam-core group. Make sure you're identified with NickServ.

  1. Register the channel with:
    /msg ChanServ REGISTER #example
  2. Enable automatic syncing of the ChanServ access list:
    /msg ChanServ SET #example NOSYNC OFF
  3. Grant everyone in the AT group full control over the channel:
    /msg ChanServ FLAGS #example !archiveteam-core +*SF
  4. Grant op status and topic control to global ops:
    /msg ChanServ FLAGS #example !archiveteam-ops +Ot
  5. Set an extban to mirror the ban list from #archiveteam:
    /mode #example +b $j:#archiveteam$#archiveteam
    If you don't have ops in #archiveteam, you can't do this. In that case, just continue on with the rest of the setup and ping an appropriate person (in the new channel, not in #archiveteam) to set the ban for you (when they join).
  6. Set a mode lock to enforce certain channel options:
    /msg ChanServ SET #example MLOCK +ntcC-lk
    Explanation:
    • +n: people must be in the channel to send messages to it
    • +t: only ops can set the topic
    • +c: strip colours
    • +C: disable CTCP messages
    • -l: disable channel limits
    • -k: disable channel key
  7. Disable verbosity to avoid spam whenever there are changes to the GroupServ group:
    /msg ChanServ SET #example VERBOSE OFF
  8. Set a reasonable topic that ideally links to the corresponding wiki page (if one exists), and possibly to other highly relevant links:
    /topic #example Archiving stuff | https://www.archiveteam.org/index.php?title=Page

Private channels

For private, access-restricted channels, add to the mode lock +i (only invited users can join), +s (hide channel from whois and list), and if desired +p (disable /knock). Grant all people that should be able to join the channel at least the +i flag (i.e. /msg ChanServ FLAGS #example robert +i), and to make rejoining easier, add an invite exemption on the account (/mode #example +I $a:robert). Note that robert is the name of the NickServ account, which may be different from the nickname currently used by that user; if robert is currently connected as bob, you can /whois bob, and the server's response will include a line account: robert if the user is registered and authenticated.

Granting permissions

To grant a person permanent op or voice, make them register with NickServ if they haven't already, then do /msg ChanServ AOP #example ADD account for op or /msg ChanServ VOP #example ADD account for voice. Note that account is the NickServ account name, not the current nickname (see the bob/robert example above).

For other permissions you can grant, check the more powerful FLAGS: /msg ChanServ HELP FLAGS

Virtual hosts (vhosts)

If you are part of the !archiveteam-core group in GroupServ, you can use an ArchiveTeam vhost with:

/msg HostServ TAKE archiveteam/$account

($account is not a placeholder; enter it literally.)

If you are not part of the group, you can use the general hackint vhost:

/msg HostServ TAKE hackint/user/$account

The vhost is activated automatically when you authenticate. Note that your actual host address may still be visible to others.