Archiveteam:IRC

From Archiveteam
Jump to navigation Jump to search

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.

Archive Team 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 Archive Team 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-bs.

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 Archive Team IRC rules

Besides the expectation of being civilized, patient and tactful, there are some rules you should follow when in Archive Team 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 Archive Team 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 evident things to us in detail.[13]
  • Don't let your IRC client flood the channels with join/leave notifications due to your unstable connection.[14][15]

Archive Team on IRC

Below is a list of Archive Team'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
Archive Team #archiveteam News and announcements only.
-bs #archiveteam-bs The main Archive Team 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) Archive Team software development
-ot #archiveteam-ot Off-topic discussion
Warrior #warrior Channel for the discussion and development of the Archive Team 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 including #//, #archiveteam, #archiveteam-bs, and #archiveteam-ot, are hosted by kiska, and are available at hackint.logs.kiska.pw.

EFnet (mostly historical, October 2020 and prior)

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 Archive Team 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 or Matrix.

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 Archive Team 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. Be sure to also include any pertinent information such as project status, a recommended concurrency limit (if known), or other things to watch out for:
    /topic #example Archiving stuff | upcoming/in progress/on hiatus | https://wiki.archiveteam.org/index.php/Page | deadline: 9999-01-01. Keep the topic updated as the archiving situation changes, such as concurrency dipping or when errors are expected. When the project is deemed finished or on hiatus, please update the topic as well for those who join in the future.

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 Archive Team 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.