{"id":13715490,"url":"https://github.com/chrisdone-archive/hulk","last_synced_at":"2025-05-07T04:30:48.670Z","repository":{"id":1351128,"uuid":"1298455","full_name":"chrisdone-archive/hulk","owner":"chrisdone-archive","description":"Haskell IRC daemon.","archived":true,"fork":false,"pushed_at":"2017-02-17T14:24:19.000Z","size":179,"stargazers_count":141,"open_issues_count":1,"forks_count":15,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-05-02T05:33:45.472Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chrisdone-archive.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-01-27T09:19:37.000Z","updated_at":"2024-04-29T11:12:31.000Z","dependencies_parsed_at":"2022-07-29T09:09:12.035Z","dependency_job_id":null,"html_url":"https://github.com/chrisdone-archive/hulk","commit_stats":null,"previous_names":["chrisdone-archive/hulk","chrisdone/hulk"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisdone-archive%2Fhulk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisdone-archive%2Fhulk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisdone-archive%2Fhulk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrisdone-archive%2Fhulk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrisdone-archive","download_url":"https://codeload.github.com/chrisdone-archive/hulk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252813669,"owners_count":21808367,"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":[],"created_at":"2024-08-03T00:00:59.710Z","updated_at":"2025-05-07T04:30:48.355Z","avatar_url":"https://github.com/chrisdone-archive.png","language":"Haskell","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"readme":"# Hulk IRC Server Guide\n\n## Installation\n\n### From Hackage\n\n    $ cabal install hulk\n\n### From Github\n\n    $ git clone git://github.com/chrisdone/hulk.git\n    $ cd hulk\n    $ cabal install\n\n## Usage\n\nSee a complete example in the `example/` directory in the root of the\nproject. You can go into that directory and run `hulk -chulk.conf` to\nhave an immediate server running on localhost port 6667.\n\n### Configuration\n\n    $ cp example/hulk.conf hulk.conf\n\nYou can edit the port, server name and MOTD file in here.\n\nDetailed instructions follow.\n\n### Auth\n\n    $ mkdir auth\n\nPut a salt for your passwords in auth/passwd. For example:\n\n    $ head -c 128 /dev/random | sha1sum \u003e auth/passwd-key\n\nThen generate a password for your IRC user:\n\n    $ hulk-generate-pass -u demo -c=hulk.conf \u003e\u003e auth/passwd\n\n(It will wait for a single line containing a pass and output the user\nand sha1 sum.)\n\n### Start the server\n\n    $ hulk -chulk.conf\n\nLogs / events will be outputted to stdout. This will be a\nconfiguration option later. (Send me a patch if you already did this!)\n\nClients *must* connect with a password and user that matches the users\nand passwords in your `auth/passwd` file.\n\n## Using with SSL\n\nYou can use it with stunnel.\n\nChange the port setting in hulk.conf:\n\n    port = 6666\n\nGenerate an SSL certificate:\n\n    $ openssl req -new -out hulk.pem -keyout hulk.pem -nodes -x509 -days 365\n\nMake a stunnel.conf file:\n\n    pid = /path/to/wherever/stunnel.pid\n    client = no\n    foreground = yes\n    output = /dev/stdout\n    cert = hulk.pem\n    [hulk]\n    connect = 127.0.0.1:6666\n    accept = 6667\n\nThen run it:\n\n    stunnel stunnel.conf\n\n(It may be in `/usr/sbin/stunnel` depending on your system.)\n\nThen run hulk:\n\n    hulk -chulk.conf\n\n## Logging\n\nHulk doesn't support specific channel logging yet, but you can use a\nlogger bot.\n\n    $ cabal install hog\n    $ hog -h=127.0.0.1 --port=6666 -n=hog -u=hog --pass=mypassword --channels=#dev,#x -l/directory/of/logs -d5\n\n`-d5` is the timeout before reconnect.\n\n## Using an announcer bot\n\nIf you're using a private IRC server you're probably using it at a dev\ncompany, and you probably want to make announcements about commits,\ntickets, etc. from a feed.\n\nYou can use rss2irc. But you need a patched version which supports\nsending the PASS command:\n\n    $ git clone git://github.com/chrisdone/rss2irc.git\n    $ cd rss2irc\n    $ cabal install\n\nThen run it:\n\n    $ rss2irc http://myserver/foo.atom announce@127.0.0.1/#dev \\\n      -p 6667 -i 1 -l  --pass myannouncepass\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisdone-archive%2Fhulk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchrisdone-archive%2Fhulk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrisdone-archive%2Fhulk/lists"}