{"id":17537531,"url":"https://github.com/zenhack/irc-idler","last_synced_at":"2025-04-23T21:08:04.757Z","repository":{"id":57522728,"uuid":"58681710","full_name":"zenhack/irc-idler","owner":"zenhack","description":"IRC idler app for sandstorm","archived":false,"fork":false,"pushed_at":"2017-11-12T19:27:15.000Z","size":271,"stargazers_count":4,"open_issues_count":11,"forks_count":2,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-23T21:07:56.793Z","etag":null,"topics":["irc-client","sandstorm"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zenhack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-05-12T22:33:33.000Z","updated_at":"2019-05-25T20:21:51.000Z","dependencies_parsed_at":"2022-09-26T18:00:58.498Z","dependency_job_id":null,"html_url":"https://github.com/zenhack/irc-idler","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zenhack%2Firc-idler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zenhack%2Firc-idler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zenhack%2Firc-idler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zenhack%2Firc-idler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zenhack","download_url":"https://codeload.github.com/zenhack/irc-idler/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250514785,"owners_count":21443209,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["irc-client","sandstorm"],"created_at":"2024-10-20T20:42:07.937Z","updated_at":"2025-04-23T21:08:04.741Z","avatar_url":"https://github.com/zenhack.png","language":"Go","readme":"[![Travis CI Build Status][ci-img]][ci]\n[![Go Report Card][go-rep-img]][go-rep]\n\n# DEPRECATED\n\nIRC Idler is unmaintained and deprecated in favor of sandstorm-znc:\n\n\u003chttps://github.com/zenhack/sandstorm-znc\u003e\n\nPlease use that instead; I'll leave this here for posterity.\n\n---\n\nIRC Idler is a program which idles in IRC for you. [Sandstorm][1] will\nbe the preferred way of running it, though it will work in traditional\nenvironments as well.\n\nThis is very much a work in progress. I'm currently dogfooding the\nsandstorm version, but it's not exactly polished.\n\n# Why\n\nLots of folks prefer to be persistently online on IRC. A common\nsolution to this is to be logged in via a console IRC client on a server\nsomewhere, running in tmux or GNU screen. This works, but is less than\nideal.\n\n# What\n\nIRC Idler connects to the IRC server for you, and then acts as an IRC\nserver itself -- you connect to IRC Idler, and it proxies the\nconnection. When you disconnect, it stays connected, and flags you as\naway until you reconnect, at which point it replays any messages you\nmissed while you were gone.\n\n## Sandstorm Design Notes\n\nIRC isn't a web-app so building a sandstorm app that offers it is\nslightly more complicated. We still want leverage sandstorm for\nauthentication and authorization. We do this by listening on a websocket\ninstead of a raw TCP port, and have users use [websocket-proxy][2] to\nconnect. This scheme also translates decently to the non-sandstorm case.\n\nOn sandstorm, each IRC connection runs in its own grain. The websocket\ntrick means we don't need to allocate a separate port to each network.\n\n# Building\n\nThe sandstorm version is in `cmd/sandstorm-irc-idler`, the non-sandstorm\nversion is in `cmd/irc-idler`. Either executable can be built via\nstandard go build.\n\nNote that we link in sqlite3 via CGO. This makes cross-compilation\nnon-trivial, so we do our sandstorm builds in the vagrant vm like\neverybody else. During these builds `GOPATH` is set to\n${srcdir}/.sandstorm/gopath -- bear this in mind, as it won't look in\nyour host's `GOPATH` for packages.\n\n# Using (sandstorm)\n\nTo use the sandstorm version, you must be an administrator for your\nsandstorm installation. This is because IRC Idler requires raw network\naccess, which only an administrator can grant.\n\nEach irc network you want to connect to must run in its own grain. To\nset up a new network:\n\n* Create a new IRC Idler grain\n* Fill out the settings for the IRC server on IRC Idler's web\n  interface. For example, to connect to freenode, you would supply:\n  * Host: irc.freenode.net\n  * Port: 6667 for unencrypted, 6697 for TLS\n  * Check the TLS box or not, depending on whether you want to use it\n    (recommended).\n* Click on the \"Request Network Access\" button, and grant network access\n  in the dialog that sandstorm presents\n* You will be presented with a websocket URL you can use to connect. You\n  can get a traditional IRC client to connect to this by using\n  [websocket-proxy][2]:\n\n      websocket-proxy -listen :6000 -url ${websocket_url}\n\n...and then pointing your IRC client at localhost port 6000.\n\n# Using (non-sandstorm)\n\nAs an example, to connect to Freenode via TLS:\n\n    ./irc-idler -tls -raddr irc.freenode.net:6697 -laddr :6667\n\nThen, point your irc client at port 6667 on the host running irc-idler.\n\nNote well: irc-idler does not support accepting client connections via\nTLS, and it preforms no authentication. As a consequence, you should run\nit on a trusted network. One solution is to have it only listening on\nlocalhost on the server that's running it (and have port 6667 firewalled\noff for good measure), and use ssh port forwarding to connect from your\nlaptop/desktop.\n\nThis will hopefully be more streamlined in the future; one possibility\nis to make the websocket solution used by the sandstorm version\navailable for the non-sandstorm version as well.\n\n# License\n\n    Copyright (C) 2016  Ian Denhardt \u003cian@zenhack.net\u003e\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n\n(See COPYING for a copy of the license).\n\n[1]: https://sandstorm.io\n[2]: https://github.com/zenhack/websocket-proxy\n[3]: https://github.com/zenhack/go.sandstorm\n[ci-img]: https://api.travis-ci.org/zenhack/irc-idler.svg?branch=master\n[ci]: https://travis-ci.org/zenhack/irc-idler\n[go-rep-img]: https://goreportcard.com/badge/github.com/zenhack/irc-idler\n[go-rep]: https://goreportcard.com/report/github.com/zenhack/irc-idler\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzenhack%2Firc-idler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzenhack%2Firc-idler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzenhack%2Firc-idler/lists"}