File Uploads
Halloy supports file uploads via the soju.im/filehost IRC extension. When a file is uploaded, the resulting URL is inserted into the message input.
Uploads can be triggered by:
- Using the + button in the buffer
- Dragging and dropping a file into the window
- Pasting a file into the window
- The
/uploadcommand
💡 Info
Filehost requires your server to advertise support for it according to the spec. Alternatively, filehost.override_url can be set to override with any filehost.
Server support
A server can set an ISUPPORT token to provide a filehost.
Ergo
Ergo supports filehost natively via additional-isupport. Add the following to your ircd.yaml:
server:
additional-isupport:
"soju.im/filehost": "https://your-filehost-url/upload"soju
soju supports filehost via its own soju.im/FILEHOST token. Configure filehost in your soju configuration.
soju will advertise the configured URL to clients via soju.im/FILEHOST. For networks provided by bouncer, Halloy will use the bouncer's filehost.
ircv3-filehost-server
ircv3-filehost-server can be used to complement an IRCd/bouncer, providing filehost functionality that the IRCd/bouncer can then advertise to clients.
convoyeur
convoyeur can act as a proxy to external file upload services.
Others
If your server does not allow advertising a filehost token, or you do not control the IRC server, you can configure a URL manually via filehost.override_url.
Authentication
filehost.credentials controls whether and what Halloy sends credentials with upload requests. It defaults to "server", which sends the SASL credentials used to connect to the server (if they have been specified).
- SASL PLAIN — sends an
Authorizationheader with serverusername:password - SASL EXTERNAL — presents the client certificate
[servers.<name>]
server = "irc.example.com"
nickname = "you"
# credentials that will be sent to filehost
[servers.<name>.sasl.plain]
username = "you"
password = "hunter2"
# alternatively, disable sending credentials when uploading
[servers.<name>.filehost]
credentials = "none"Limitations
- Drag and drop is not supported on Wayland.
- Drag and drop only works in the active buffer.
- When connecting through soju, downstream server filehosts are not passed through to child networks. Soju does not support forwarding
FILEHOSTISUPPORT tokens from downstream servers (see soju#374). You can setfilehost.override_urlto work around this.
Configuration reference
- Servers — filehost — per-server filehost configuration
- File Upload — global filehost settings
