commit 368b21a0ea765390162d99697767964f67687023 from: jrmu date: Sat Jan 21 05:00:21 2023 UTC Daily backup commit - a7b10007a09c0b0d94a28b1759aaa793371f6c28 commit + 368b21a0ea765390162d99697767964f67687023 blob - 9b21a870c34237730472d0116864ac2967fae5f8 blob + 7411f19b62ff631da16df5f6983652cb86a12e1c --- wiki.d/.pageindex +++ wiki.d/.pageindex @@ -1,3 +1,39 @@ +Ircnow.Milestones:1674273543: : representatives transferring constitution oddprotocol declaration recruitment alternative transferred planetofnix ircforever registered thunderirc milestones publishing sustaining shelltalk ownership nastycode teammates bsdforall welcoming operating lecturify september netizens training archives accounts ircology creating research networks domains finance systems january servers mailing freeirc october drafted course ircfun ircnow formed issued future number jujube define public begin repos teams elect march break 2021 even fork into list 2023 self july 2020 yyyy 2019 open june 2018 mmm org and nov set cvs up +NodeJS.RecentChanges:1674256825: : recentchanges install january nodejs 2023 mkf at 06 27 pm by +Mkf.RecentChanges:1674253914: : recentchanges january wikiv1 2023 mkf at 08 12 pm by +Openbsd.Xfce:1674253810: : startxfce4 underneath programs xsession geometry xconsole restart comment openbsd desktop command systems xinitrc editing pkg_add xenodm launch xclock attach iconic rcctl false local ifend xterm these 80x24 lines 50x50 work does seem doas this then echo with some nice fvwm note etc png x11 out for usr but bin +Openbsd.NodeJS:1674253810: : installation node_modules contributors upgrading packages openbsd updated removed pkg_add nodejs latest local added doas 467s from bin usr npm 290 and 148 cli npx lib 33 18 70 +Openbsd.TigerVNC:1674253810: TigerVNC.SSH : installation incomplete everything vncviewer vncpasswd including passwords keylogged vncserver tigervnc security pkg_add desktop openbsd warning tunnel called xenodm enable client attach itself rcctl setup start ships doas type xfce with this zero can ssh has for ssl how you png be +Openbsd.Prosody:1674253810: Mercurial.Usage : mod_auto_accept_subscriptions mod_throttle_unsolicited mod_captcha_registration mod_block_registrations mod_filter_chatstates mod_throttle_presence mod_support_contact mod_group_bookmarks mod_message_logging mod_roster_allinall mod_roster_command mod_cloud_notify mod_support_room mod_http_upload mod_muc_limits mod_muc_ban_ip mod_deny_omemo mod_bookmarks mod_firewall mod_muc_log mod_smacks mercurial _prosody download example modules mod_csi private openbsd written readmes pkg_add extras server simple client jabber mkdir clone https local using usage share certs chown doas xmpp echo acme cron tabs fast that aims root usr lua doc aka lib crt var ssl the etc key cp hg +Openbsd.Fiche:1674253810: : troubleshooting installation certificate segfaults solusipse directory challenge fullchain location argument pastebin request cronjob crontab usermod private adduser openbsd warning 1048576 ircnow htdocs listen server daemon causes egress github flush httpd block known strip quick index fiche proto mkdir chown https clone chmod port well doas root drop acme 7777 make pass this conf line www com the var txt org key 443 get tls for ip6 ip4 etc tcp log ssl pem cd 20 +Openbsd.Webnews:1674253810: Openhttpd.Perl : pack_sockaddr_in troubleshooting requirements installation oddprotocol quotedprint nntpclient unexpected installdir configured libraries openhttpd site_perl hostname approach solution conffile webnews intspan baseurl example libdata changes openbsd htdocs server daemon choose create resolv base64 normal newsrc should length socket manual closed local sock1 perl5 lines wndir begin mkdir needs dgate chown been doas make then tars copy cpan want mime text wrap sudo date user next what var cgi www etc for set you has eof 169 bad arg 102 usr org few two 147 119 ftp is gz up mv pm cf 3 +Openbsd.Gomuks:1674253810: : installation cgo_enabled recommended encryption packages compile pkg_add openbsd archive written support gomuks source github export simple client matrix build tulir https from doas tags refs with tar ftp tui xzf olm e2e you can not cd gz v0 is 3 +Openbsd.Plermoa:1674253810: : authorized_ssh_clients generated_config pleroma_server administrative configuration microblogging dependencies interruption httpd_server certificates installation emailaddress server_addr configuring recommended _postgresql activitypub succesfully server_port request_uri imagemagick information remote_addr performance compilation configured connection correction initialize sufficient everything repository forwarded directory args_file retrieved dedicated uncomment following listening openfiles ext_inet6 paramprob describes implement interface challenge installed friendica http_host replacing datasize features _pleroma ifconfig consider security variable attempts sbwtdcpu behavior protocol enabling mix_prod instance starting username required database loopback multiple messages fuctions redirect location requests disallow yourself upstream properly software pixelfed identity peertube mastodon hubzilla federate exchange exiftool creating setup_db strictly libmagic options content command echoreq reverse unreach setting traffic disable default started network follows respond headers datadir upgrade example specify sitting encrypt nodelay backlog keypair plermoa servers useradd contrib pkg_add mix_env because running another openbsd prevent profile migrate waiting friends creates current version control sbwtdio replace misskey crontab working support session improve enable starts relayd return reboot adding before output trying append lc_all ircnow insert window single secret script social domain robots adjust plerup should elixir online source ffmpeg buffer double erlang socket latest people rights during htdocs macros highly syslog initdb policy bottom icmpv6 toobig forget export family failed random pgdata larger values higher update having rebar3 needed assign first check proxy en_us https index rcctl write while agent front pfctl quick block avoid match enter shell scrub asked timex icmp6 trace rules doing paths bunch might local 65536 table press again seems which login class cmake gmake using there guide lines still after three title crash false means 1536m clone strip alias known when ipv6 this done then with root 4000 flag some fedi them 4096 that edit have will sets than ipv4 copy www6 hurt type save pass home drop none skip from urpf next deps once load busy doas exit acme used wiki tmux json like true what only stay well didn sack psql grep into want pick over phx can max tcp utf new exs mvo etc gnu hex its api 127 but bit ftp git won fit tls aux 128 let txt url php 302 any cd wx by v1 80 p5 ok df vm +Openbsd.Pleroma:1674253810: : authorized_ssh_clients generated_config administrative pleroma_server configuration microblogging installation dependencies httpd_server certificates interruption emailaddress _postgresql configuring performance information imagemagick succesfully activitypub remote_addr compilation server_port server_addr request_uri recommended connection everything sufficient installing initialize repository correction configured following interface forwarded paramprob directory args_file retrieved listening replacing openfiles ext_inet6 installed dedicated uncomment describes challenge http_host implement friendica _pleroma identity federate exchange messages protocol starting datasize instance username required mix_prod enabling location sbwtdcpu ifconfig consider software features security behavior attempts loopback database disallow yourself setup_db peertube pixelfed redirect requests strictly mastodon upstream properly libmagic exiftool creating multiple variable fuctions hubzilla unreach traffic content echoreq command backlog options respond started nodelay example default encrypt setting keypair upgrade disable sitting datadir follows network headers reverse specify another mix_env openbsd because running session prevent waiting support friends working contrib control migrate pkg_add version profile useradd improve creates current servers replace crontab misskey sbwtdio ircnow script return erlang append starts relayd latest secret lc_all enable adding before ffmpeg insert plerup should output online double reboot robots social domain larger window elixir trying adjust source buffer socket single values initdb syslog pgdata needed htdocs highly failed random family policy rights during macros higher forget update export people assign bottom having rebar3 toobig icmpv6 en_us first rcctl https index while write check agent proxy doing pfctl quick avoid block scrub enter shell match which icmp6 timex trace table rules asked front local bunch might paths 65536 press again seems title 1536m login clone alias cmake gmake guide after three false lines using there class crash known still means strip this 4000 none then edit from save pass fedi with flag busy home www6 done ipv6 will root doas urpf drop skip type ipv4 deps like that tmux json what stay true when some once load pick into psql copy exit 4096 sets than hurt didn next over them used acme wiki sack grep have only want well tls aux exs let etc can fit tcp 128 url txt 127 hex bit its new but gnu utf phx 302 api php max mvo ftp git won any p5 by cd wx 80 v1 ok vm df +Mkf.Wikiv1:1674245554: Gotweb.Install Pmwiki.Install Achurch.Install Hopm.Install Prosody.Install Biboumi.Install Bitlbee.Install Mlmmj.Install Dovecot.Install Ngircd.Install TigerVNC.Install Unrealircd.Install NodeJS.Install Webnews.Install Fiche.Install Php.Install Xfce.Install Gomuks.Install Pleroma.Install : lilywhitebot squirrelmail unrealircd eggdrop191 eggdrop193 eggdrop184 wordpress archivist redirect tigervnc leafnode sshwifty asterisk install oidentd biboumi achurch prosody openbsd pleroma webnews bitlbee dovecot texlive newsnow rbldnsd synapse mariadb nodejs gomuks ngircd wikiv1 pmwiki kissmo gotweb nitter pylink fdroid paster debian botnow psybnc akkoma status anope fiche mlmmj soju xfce i2pd hopm vmm php znc 301 mkf +Openbsd.Biboumi:1674245485: Openbsd.Ddos Prosody.Install : require_cert_revocation_info use_ecc_point_compression realname_customization target_link_libraries realname_from_jid component_secret fixed_irc_server identification xmpp_server_ip outgoing_bind configuration dependencies project_name connections sourceforge invitations discussions configuring participate cmakelists installing postgresql management persistent unlimited configure automatic e2fsprogs compiling dwithout_ otherwise installed sometimes continue requires password hostname favorite snapshot pervious embedded filtered supports features nickserv log_file building programs download required biboumi tarball example libuuid systemd extract compile sqlite3 pkg_add linking address listing channel setting notices getting private bouncer servers prosody replace running gateway openbsd version however ca_file modify during actual policy ircnow number sample client adding method public libidn update botan2 errors colors identd unzip admin false local mkdir louiz https about flags first above users using there chats basic doesn their will ddos also this doas true udns 5347 only xvzf then need goal your like ctcp ping sure next unxz 192 pem xvf ssl can etc git var tls ftp usr txt and 127 net let sed its cfg of dl gz cd by 0 +Biboumi.Install:1674245447: : redirect openbsd biboumi install status 301 +Texlive.Install:1674245117: : texlive_texmf insecure install libexec creates default pkg_add helper launch daemon setuid remove system binary 2020p1 false chmod local makes endif _dbus latex doas this full 0750 rwxr root used rwsr apr usr bit the lha 12 36 19 9k 73 to so by we +Rcctl.Rcctl:1674244830: : redirect openbsd status rcctl 301 +Vmm.Configure:1674244772: : networking sufficient forwarding interfaces configure install69 broadcast signature install70 fw_update machines groupadd download vmdusers increase verified software hostname firmware virtual appears address openbsd signify user123 switch0 bridge0 routing nologin useradd tcpdump packets prevent devices console warning however proceed default crontab because makedev random number create socket issues memory sysctl locked choose lladdr longer maxlen sha256 reboot timing serial access result enable verify permit first cdrom qcow2 entry https while owner vmctl using wrong image octet amd64 chown rcctl start title there where inet6 which doas done next will need echo each they root 1024 disk such four only ipv6 want arpq base same many home sbin have ipv4 does html true sure with free your from must tmux ping some this edit show pick 512m flag iso may vmm ips can run jot var tap 20g not 162 new usr etc pub ip6 uid ftp org odd cdn if0 f1 to by pl 38 aa bb 01 xx 87 i5 50 mv f3 ok +Hopm.Install:1674243157: : redirect openbsd install status hopm 301 +Openbsd.Unrealircd:1674242827: : ares_process dependencies libcares_la unrealircd questions downloads recommend examples versions settings writeing changing makefile install tarball openbsd extract pkg_add default makeing useradd command storage inside source latest config folder recent should errors delete people called switch acures whoami verify might clean https click build rerun fixed sauce issue bunch sadly enter gmake known newer basic using start guide code doas this when will edit that just want from done also fine 1084 need have most curl lets then them home same here find over copy hope gets soon exit time you has too low for www dir ask org can xzf but be up of cp go gz 5 9 +Unrealircd.Install:1674242686: : unrealircd redirect openbsd install status 301 +Pleroma.Install:1674242290: : redirect openbsd pleroma install status 301 +Gomuks.Install:1674241704: : redirect openbsd install gomuks status 301 +Gotweb.Install:1674241356: : redirect openbsd install gotweb status 301 +Webnews.Install:1674241079: : redirect openbsd webnews install status 301 +Php.Install:1674240725: : redirect openbsd install status php 301 +Mlmmj.Install:1674240494: : redirect openbsd install status mlmmj 301 +Fiche.Install:1674240271: : redirect openbsd install status fiche 301 +Prosody.Install:1674240150: : redirect openbsd prosody install status 301 +Bitlbee.Install:1674239761: : redirect openbsd bitlbee install status 301 +TigerVNC.Install:1674239456: : redirect tigervnc openbsd install status 301 +NodeJS.Install:1674239249: : redirect openbsd install nodejs status 301 +Pmwiki.Install:1674238765: : redirect openbsd install pmwiki status 301 +Xfce.Install:1674238657: : redirect openbsd install status xfce 301 +Ngircd.Install:1674238080: : redirect openbsd install ngircd +9.9gridchan:1674217024: : plan9port 9gridchan username gridchat cloud9p compile pkg_add openbsd install replace source github false guest https while 9fans linux ifend write from with done doas read echo have your unix tcp org 900 srv → sed 9fs cat may 1s to io Main.HomePage:1674139488: Freedom.Federation Ircnow.Goals Freedom.Freedom Ircnow.Servers Gry.Bio Baytuch.Bio Profiles.Yonle AncientWisdom.Bio Error.Bio Jrmu.Bio Vps.Vps Lecturify.Hardware Oddprotocol.Hardware Bsdforall.Hardware Izzyb.Bio Thunderirc.Hardware Ircnow.Hardware MisterE.Bio Freeirc.Hardware Jlj.Bio Nastycode.Hardware ThorOfAngels.Bio Ircforever.Hardware Minutemin.Bootcamp : minigamesgalore thor_of_angels ancientwisdom thorofangels disconnected simpletable oddprotocol debiankaios planetofnix ircforever thunderirc pyritepyro luxembourg hydragyrum miniontoby federation themselves interested lecturify improving bsdforall excellent community minutemin protocols ecosystem nastycode noisytoot currently shelltalk anonymity following different sysadmins hardware suzerain splinter bouncers messages minetest security download telegram libredev multiple bootcamp combined whenever examples services networks governor hostname location sortable profiles homepage provides akoizumi internet mistere covered hosting freeirc openbsd cloud9p storage reading baytuch bridges gandalf shokara working account support freedom reasons parties hotspot liberty discord servers ensures mohnish receive naglfar request offline channel client ircnow border europe monaco export almajd useful ircfun access tcache source relays kilroy create others matrix lutzke topics forero guides cloaks dennis while sites email https vpses total texas users width class vegas izzyb later hides bible goals since title helps error rpblc yonle roost rsync miami learn about third pages pyr3x bots from lets main once jrmu also chat your with even more that such here want give wifi data sell news smtp imap each ircs join team this sftp save list will york full type xfnw jan6 siva znc org usa its git cvs how mkf can scp get who not gry bio ops add 1gb 100 zen r1k jlj g1n man one aim ran quo vpn log any pop we uk Almanack.Almanack:1674133529: Minutemin.Code Minutemin.Server Minutemin.Duty Minutemin.Questions Minutemin.Progress Medals.Intro Team.Welcome Team.Testing Servers.Rights Team.Announce Ircnow.Dogfood Team.Networks Congress.Procedure Congress.Documents Ircnow.Milestones Ircnow.Roadmap2021 Ircnow.Roadmap2022 Ircnow.Status2022 CodeForce.Deploy Abuse.Code Ambassador.Markets Ircnow.Metrics Ircnow.Nsf Ircnow.Newdeal Ircnow.Daughtersofliberty Netizen.Ellisisland User.Welcome Netizen.Become Netizen.Rights Freedom.Selfadmin Freedom.Independence Freedom.Fork Ircnow.Constitution Freedom.Religion Freedom.Firstamendment Freedom.Software Freedom.Privacy Freedom.Homestead Freedom.Madeonirc Freedom.Unix Freedom.Startupdream Freedom.Openforeveryone Freedom.Dueprocess Freedom.Checks Freedom.Rulebylaw Freedom.Federation Freedom.Union Freedom.Universal Openbsd.Intro Vmm.Configure Vmm.Install Vmctl.Usage Vmm.Linux Vmm.DebianIso Vmm.DebianInstall Vmm.Debian Vmm.Optimize Vmm.Ubuntu Openbsd.Buyvm Vmm.DevuanIso Vmm.Devuan-ISO Vmm.Alpine Vmm.Arch Vmm.Plan9 Vmm.Router Vmm.Homerouter Openbsd.BBB Openbsd.Upgrade67 Openbsd.Upgrade68 Openbsd.Upgrade69 Openbsd.Sysupgrade68 Openbsd.Sysupgrade69 Openbsd.Sysupgrade70 Openbsd.Sysupgrade71 Openbsd.Install67 Openbsd.Install68 Openbsd.Install69 Openbsd.Install70 Openbsd.Install71 Openbsd.Bsdrd Openbsd.Singleuser Openbsd.Books OpenBSD.ResetPassword License.Publicdomain Gpl.Flaws Bsd.Hope Bsd.Labor License.Discriminatory Tcpip.Overview IPv4.Overview IPv6.Overview Tcpip.Sockets Openbsd.Netmask Tcpip.Ports Buyvm.Ipv6 Openbsd.Anycast Hostnameif.Static Hostnameif.Static-v2 Ifconfig.Change IP.Myaddress Almanack.Ifconfig Almanack.Route Openbsd.Wifi Route.Usage Dhcpd.Configure Openbsd.Npppd Openbsd.Pppoe Ntpd.Configure Dhclient.Configure Openbsd.Pf Pf.Guide Openbsd.PFStable Openbsd.PFTesting Openbsd.Pfbadhost Ddos.Intro Openbsd.SSDP Openbsd.ACKFlood Openbsd.RSTFlood Openbsd.SYNFlood Openbsd.HTTPFlood Openbsd.NTPAmplification Openbsd.UDPFlood Openbsd.Amplification Openbsd.Ping Openbsd.Tcpdump Netcat.Usage Netcat.Irc Netcat.Http Netcat.SMTP Telnet.Http Openssl.Http Openssl.Imap Openssl.Smtp Openssl.Check Openssl.Encryptfile Bgpd.Configure Dns.Overview Dns.Records Dns.FQDN Dns.Registrars Dns.Vhost Vhost.Freedns Vhost.Ircnow Nsd.Configure Nsd.Masterslave Nsd.Troubleshoot DNS.RDNS Dns.Zonefile Nsd.Zone Openbsd.Delphinusdnsd DNS.Mail DNS.SPF DNS.DKIM DNS.DMARC DNS.Ipv6rDNS DNS.Ipv4rDNS Unbound.Configure Host.Usage Dig.Usage Openbsd.Unboundadblock Unbound.Blacklists Rbldnsd.Install Dns.BindResolver Gpg.Verify Signify.Verify Duplicity.Usage Iked.Configure Vpn.Vpn Iked.Newconfig Vpn.Myipaddress Tor.Torsocks Tor.Hidden Tor.Irc Tls.Overview Tls.Intro Tls.CA Acme-client.Configure Acme-client.Cron Relayd.Acceleration Relayd.TLSMulti Letsencrypt.Expired Acme-client.AutoRenew Dehydrated.Configure Acmesh.Configure Sshd.Configure Ssh.Client Ssh.Fingerprints Openbsd.Sshbackdoor Sshd.Disablepassword OpenSSH.Keygen Openssh.Skey Openbsd.Drawtermssh Openbsd.Two-FactorAuth Openbsd.Sftp Ftpd.Configure Torrent.Configure Cvs.Anoncvs Cvs.Intro Cvs.Cvsweb Cvs.Repo Cvs.Guide Paster.Install Fiche.Install Openbsd.Www Openhttpd.Configure Openhttpd.Hosting Openbsd.Httpopenproxy Openhttpd.Perl Openbsd.Php Openhttpd.Tls Openhttpd.Website Openhttpd.CGI Openhttpd.Chroot Openbsd.Dokuwiki Pmwiki.Install Pmwiki.Simpleurl Squirrelmail.Install Roundcube.Install Wordpress.Install Openbsd.Oscommerce Openbsd.Cumulusclips Openbsd.Fluxbb Openbsd.Question2answer Openbsd.H5ai Openbsd.Easyapp Openbsd.Manna NodeJS.Install Openbsd.Cgit Stagit.Install Got.Repo Gotweb.Install Got.Usage Got.Server Got.Mirror Mariadb.Install Irc.Guide Irc.Chanop Ngircd.Oper Irc.Services Irc.Clients Irc.Easy HostServ.Rules Unrealircd.Install Znc.Install Znc.Chroot ZNC.Admin ZNC.Support Openbsd.ZNCModules Znc.Patch Znc.Usage Znc.Relayd Znc.I18n ZNC.Troubleshoot Znc.Debug Debate.Zncdefense Debate.Zncflaws Soju.Install Openbsd.Psybnc Openbsd.Ilines Ambassador.Ilines Debate.Ircv3defense Openbsd.Identd Oidentd.Install Oidentd.ZNC Openbsd.Ii Openbsd.Sic Ngircd.Install Ngircd.Link Ngircd.Ssl Hopm.Install Openbsd.Acopm Hopm.Telnet Achurch.Install Anope.Install Atheme.Install Pylink.Install Pylink.Chroot Bitlbee.Install Openbsd.Matterbridge Eggdrop193.Install Eggdrop191.Install Openbsd.Tcltls Eggdrop184.Install Eggdrop.Nickserv Wraith.Chroot Openbsd.Biblebot Botnow.Install Openbsd.Ircrelayd Openbsd.CPAN Unix101.Unix101 Unix101.Wechall C101.C101 Debate.WhyNotC Opensmtpd.Configure Openbsd.Opensmtpd-relay Openbsd.Opensmtpd-2 Openbsd.Mailopenproxy Opensmtpd.Troubleshoot Opensmtpd.Openrelay Opensmtpd.Test Rspamd.Configure Dovecot.Install Mlmmj.Install Mlmmj-archivist.Install Mutt.Connect Openbsd.Fdm Openbsd.Newdisk Openbsd.Fdisk Openbsd.Disklabel Openbsd.Growfs Openbsd.Pkg Openbsd.Ports Pkgadd.CheckUpdates Doas.Configure Syspatch.Syspatch Openbsd.Cron Rcctl.Rcctl Openbsd.Adduser Ln.Intro Tmux.Config Tmux.Share Openbsd.XTerm Openbsd.Backups Openbsd.Dump Openbsd.Restore Openrsync.Usage Rsync.Usage Fdisk.Usage Openbsd.Iplookup Openbsd.Vi Openbsd.Mg Openbsd.Base64 Openbsd.Uim Crontab.Edit Ps.Usage Kill.Usage Vi.Intro Openbsd.Vipw Tar.Usage Openbsd.Rcctl Syslogd.Configure Syslogd.Remote Ksh.Bash Ksh.Redirection Ksh.Autocomplete Openbsd.Freeciv Openbsd.Openttd Olympics.Games Chess.Reading Math.Reading Shelllabs.Intro Camping.Gear Openbsd.Minetest Minetest.Addingarenas Minetest.Serverlocations Minetest.Texturestyle Minetest.Updating Minetest.Worldbackup Texlive.Install Texlive.Sinhala Asterisk.Install Sox.Concat Openbsd.Ffmpeg Parec.Record Openbsd.Recordaudio Ffmpeg.Recordscreen Leafnode.Install Webnews.Install Gazette.Gazette Openbsd.INN Openbsd.Gopher Openbsd.Gophernicus Openbsd.Geomyidae Bucky.Install Prosody.Install Biboumi.Install Gomuks.Install Akkoma.Install Openbsd.Misc ISCABBS.ISCABBS Hosting.Hosting Hosting.Providers Openbsd.Security Chroot.Intro Password.Management MITM.Intro Openbsd.Phishing Openbsd.Dos Openbsd.Spam Openbsd.0days Openbsd.Rootkits Pledge.Intro Unveil.Intro Openbsd.Databaseperms Openbsd.Secureweb Openbsd.Trust Openbsd.Defaultdeny Openbsd.Loginconf Openbsd.Ids Openbsd.Setuid Openbsd.Sa Openbsd.Quota Openbsd.Shell Police.Intro Police.Fingerprints Openbsd.FilePermissions Openbsd.Oath-toolkit Doxing.Defense Team.Security Sheriff.Intro Xfce.Install Fvwm.Configure Xdefaults.Configure Synclient.Configure TigerVNC.Install TigerVNC.SSH Fdroid.Install 9.9 9.Shell 9.Install 9.Partdisk 9.Plan9ini 9.Links 9.Shocase 9.Rcpu 9.Drawterm 9.JSDrawterm 9.101 9.Bootcamp 9.9paste 9.Independent 9.Sysupdate 9.Packages Rio.Customize 9.Chording 9.Ssh 9.Netcat 9.9gridchan 9.Ideas Cloud9p.Roadmap 9.Audio Linux.Reading Unix.Intro Unix.History Unix.Exhibit Unix.Reading SIMH.Install Openbsd.Dkimproxy Openbsd.Opensmtpd Opsofliberty.Bootcamp Openbsd.Rbldns : daughtersofliberty ntpamplification question2answer serverlocations troubleshooting filepermissions openforeveryone disablepassword unboundadblock firstamendment discriminatory delphinusdnsd httpopenproxy resetpassword debianinstall databaseperms mailopenproxy bind_resolver authoritative configuration constitution sysupgrade68 texturestyle startupdream addingarenas matterbridge sysupgrade69 applications sysupgrade70 autocomplete sysupgrade71 cumulusclips squirrelmail fingerprints acceleration opsofliberty dragonflybsd recordscreen independence ircv3defense checkupdates publicdomain cryptography bindresolver redirection independent simpletable sshbackdoor ellisisland worldbackup drawtermssh roadmap2022 recordaudio letsencrypt roadmap2021 declaration gophernicus defaultdeny illustrated myipaddress certificate encryptfile opportunity masterslave pkglocatedb netizenship authorities imagemagick hostnameif dueprocess singleuser status2022 ambassador administer homerouter federation unrealircd eggdrop184 temperance jsdrawterm oscommerce philosophy eggdrop191 eggdrop193 zncdefense zncmodules networking factorauth automating historical automation dehydrated plan9front accounting bittorrent management supermicro beaglebone milestones deployment signatures blacklists registrars themselves encryption opensmtpd configure frugality addresses openhttpd ircrelayd shelllabs myaddress documents geomyidae hardening providers fediverse simpleurl procedure roundcube wordpress upgrade67 9gridchan openrsync minutemin challenge disklabel languages dkimproxy sysupdate debugging httpflood questions partition install67 utilities install68 openrelay install69 archivist install70 install71 secureweb pfbadhost rulebylaw synclient madeonirc homestead selfadmin codeforce loginconf duplicity newconfig universal debianiso pftesting religious xdefaults devuaniso customize detection intrusion autorenew zonefile dokuwiki overview pastebin creating bootcamp almanack services ipv4rdns torsocks transfer chrooted packages ipv6rdns chording tlsmulti hostserv software rstflood ackflood pfstable dhclient ifconfig optimize tigervnc security religion congress networks announce progress articles synflood udpflood syspatch leafnode asterisk minetest updating olympics iplookup phishing biblebot nickserv zncflaws rootkits showcase symbolic identify webpanel bouncers accounts partdisk plan9ini touchpad policing binaries training sortable machines firewall sysadmin balances industry netmasks backups openbsd camping anoncvs without science reading openssh welcome freedom website license hosting expired markets freeciv servers metrics privacy justice clients openttd oidentd central support sinhala mariadb dogfood texlive sockets easyapp adduser newdeal channel ramdisk tcpdump openssl newdisk restore anycast dovecot connect bitlbee syslogd rbldnsd digital achurch signify pkg_add unix101 crontab editing freedns wechall chinese whynotc signals sending signing webnews biboumi prosody shocase caching gazette history exhibit cloud9p mailing lessons android toolkit sheriff desktop iscabbs routing version control icecast proxies virtual fdroid ffmpeg ircnow denial checks censor ubuntu vorbis doxing middle concat rights sndiod alpine system pledge unveil setuid become access base64 netcat 9paste social matrix akkoma shells remote police netbsd gomuks united quotas medals pmwiki ilines debate stagit nodejs psybnc fluxbb gotweb ngircd telnet static atheme mirror chanop irc101 guides pylink verify netpgp packet filter border hidden acmesh pkgadd wraith change paster tcltls create attack cvsweb growfs botnow rspamd keygen civics target vhosts relays ideas usage vmctl width mouse bucky linux intro wheel links trust users young 0days party parec bsdrd chess buyvm dmarc union ethic abuse manna books labor tcpip ports dhcpd npppd pppoe fiche games share xterm fdisk rcctl class acopm rules anope mlmmj honor title media metal using setup false pipes files video latex ipsec ifend repos disks layer certs mutt mode wifi ntpd perl imap kill vipw cpan fqdn korn bash ddos ssdp bgpd fvwm h5ai i18n team hope ftpd sftp cgit soju oper hopm keys iked sshd bots doas tmux duty skey bncs good call fork bare misc room chat simh mgmt mitm dell math gear oath xfce poor apps rcpu ircs sudo vpns bill org old www 100 php ksh run rio sic fdm inn 2fa spf our sox gpg ids uim vmm gpl vps bbb 3rd sip alt v2 ii Grep.RecentChanges:1674107017: : recentchanges january usage grep 2023 zen 18 at 10 54 pm by @@ -24,11 +60,9 @@ Dovecot.Pigeonhole:1672417467: : imapsieve_mailbox2_c Opensmtpd.Configure:1672417020: Dns.Overview Nsd.Configure DNS.Mail Acme-client.Configure Opensmtpd.Openrelay Dovecot.Install DNS.DKIM Opensmtpd.Troubleshoot : h5itbhzs73t4jshaj9yx6tf63yrataqugbxocx67wyekhch4zqiod6lkh userdb_quota_rule 83bd6b3b1669649f misconfiguration a8d16cd2144222fa troubleshooting authentication authenticated automatically check_fcrdns alphanumeric inconsistent recommended temporarily permissions mtaproxy511 information credentials configuring california characters check_rdns connection interfaces translated optionally encryption abnormally postmaster submission reputation addresses receiving opensmtpd important separated configure mtaproxy2 localhost whitelist confirmed authcheck identical following assurance temporary connected explained passwords specifies disabling usernames firewalls mtaproxy1 available including fullchain sunnyvale openrelay listeners supported plaintext exploited recipient forwarded matching indicate outbound sections enabling virtuals dkimsign filtered outgoing messages possible contains yahoodns programs starttls s_client transfer provider protocol response hostname 00000003 generate replaced fallback multiple mailname loopback variable checking selector properly complete received _dovecot gigabyte security increase requires required receives hundreds digicert poolporg delivery overview ifconfig starting tempfail packages defines managed folders example openbsd install records limited similar include because domains logging private maildir storage signing relayed default express useradd happens trusted smtpctl nologin without specify special warning allowed spammer senders account pkg_add filters reverse passing aliases instead sending related finally entries request network actions earlier defined already packets maillog timeout further returns dealing nothing showing running openssl dropped written working blocked suppose offline labeled symptom servers tables passwd except socket _smtpd single blocks linked macros author emails create forced adding marked checks github victim source result second unable trying letter errors please finish signed delete inside handed actual verify should handle headed entire reason before answer public ircnow decide header extras egress length exited having issues delay third users using hosts setup https first phase guide 16h2s queue being depth group state spool rcctl files times chmod chown child field might enter fruit esmtp reply often route point vmail smtps store rules 39035 evpid admin tells colon these lines known which other daily avoid offer apply valid basic value entry pages pairs begin ports whose shows also high good anti into that goes sha2 2001 disk test real your want from mask part root this mta5 pony lost what many sent will next sbin says used have ipv6 lmtp when plus bind ipv4 oath keys each need must hang else more proc here junk much exec make sure doas data sets free safe only path last case stop imap pop3 mta7 note they quit does same type both like ctrl mta6 hash easy done base some s843 acme been book take rcpt vio0 mean fccf 2602 unix gq1 168 192 195 451 204 650 pki 228 bf1 too vip src due etc nsd fix can see but get are 587 may pem 465 am0 220 ne1 250 vps 106 www 163 lo0 143 15s way 104 jan 395 db8 127 via new 29 81 38 1g mx 2b rx 33 55 47 77 17 Openbsd.Quota:1672339883: : configuration allocating groupquota userquota options reached edquota openbsd amount quotas allows either change space until fstab doesn grace limit types disk hard into more them time then with soft per set are and etc add two wip Minutemin.Bootcamp:1672331888: Openbsd.Intro Doas.Configure Civics.Intro Syspatch.Syspatch Openbsd.Pkg Minutemin.Questions Freedom.Selfadmin Ngircd.Install Openbsd.Loginconf Ngircd.Loginconf Ngircd.Oper Netcat.Usage Netcat.Irc Openbsd.Rcctl Freedom.Fork Chroot.Intro Openhttpd.Configure Netcat.Http Telnet.Http Acme-client.Configure Openhttpd.Tls Openssl.Http Openbsd.Php Pmwiki.Install Openhttpd.Hosting Openbsd.Httpopenproxy Openhttpd.Perl Freedom.Firstamendment Ngircd.Ssl Ngircd.Link Hopm.Install Hopm.Telnet Anope.Install Freedom.Software Znc.Chroot Relayd.Acceleration Znc.Relayd Relayd.TLSMulti Letsencrypt.Expired Freedom.Religion Tcpip.Overview IPv4.Overview IPv6.Overview IP.Myaddress Openbsd.Ping Openbsd.Dig Minutemin.Ifconfig Hostnameif.Static Route.Usage Freedom.Openforeveryone Pf.Guide Openbsd.Ddos Openbsd.Tcpdump Openbsd.SSDP Openbsd.ACKFlood Openbsd.RSTFlood Openbsd.UDPFlood Openbsd.Amplification Openbsd.PFStable Openbsd.PFTesting Openbsd.Pf Dns.Overview Unbound.Configure Dig.Usage Host.Usage Netizen.Become Netizen.Rights Dns.Records Dns.Registrars Dns.FQDN Nsd.Configure Dns.Zonefile Nsd.Zone Nsd.Masterslave DNS.RDNS DNS.Ipv4rDNS DNS.Ipv6rDNS Freedom.Unix Dns.Vhost Oidentd.Install Oidentd.ZNC Ambassador.Ilines Freedom.Federation Opensmtpd.Configure DNS.Mail DNS.SPF DNS.DKIM DNS.DMARC Netcat.SMTP Opensmtpd.Test Opensmtpd.Openrelay Dovecot.Install Openssl.Imap Squirrelmail.Install Mlmmj.Install Servers.Rights Minutemin.Code Openbsd.Botnow Bouncer.ZNC ZNC.Admin ZNC.Support Minutemin.Duty Cvs.Intro Cvs.Commit Cvs.Anoncvs Cvs.Cvsweb Got.Usage Got.Repo Got.Server Got.Mirror Gotweb.Install Minutemin.Server Openbsd.Dump Openrsync.Usage Openbsd.Fdisk Openbsd.Disklabel Openbsd.Newdisk Openbsd.Growfs Vmctl.Usage Vmm.Install Openbsd.Vmmlinux Openbsd.Install71 Openbsd.Upgrade71 Openbsd.Sysupgrade71 Hosting.Providers Openbsd.Bsdrd OpenBSD.ResetPassword Dhcpd.Configure Openbsd.Buyvm Vmm.Linux Freedom.Independence Ircnow.Constitution Freedom.Union Freedom.Privacy Freedom.Homestead Freedom.Madeonirc Freedom.Startupdream Freedom.Dueprocess Freedom.Checks Freedom.Rulebylaw Openbsd.Sftp Openbsd.Ports Ntpd.Configure Police.Intro Police.Fingerprints Team.Security Password.Management Openssl.Encryptfile Gnupg.Create Gpg.Verify Signify.Verify Openbsd.FilePermissions Iked.Configure Vpn.Vpn Tor.Torsocks Tor.Irc Tor.Hidden Openbsd.Sshd OpenSSH.Connect OpenSSH.Keygen Openbsd.Sshkeys Openbsd.Sshbackdoor Openbsd.Books Unix.Reading Ircnow.Dogfood Team.Welcome Team.Testing Ircnow.Networks Ircnow.Roadmap Team.Announce : responsibilities filepermissions openforeveryone firstamendment fingerprinting httpopenproxy automatically resetpassword investigation amplification miscellaneous announcements troubleshoot startupdream independence constitution sysupgrade71 fingerprints acceleration introduction squirrelmail certificates applications description declaration letsencrypt simpletable encryptfile recommended masterslave sshbackdoor federation registrars dueprocess techniques blacklists management ambassador connection networking installing understand hostnameif dogfooding nameserver configure criminals minutemin openhttpd webserver signature selfadmin loginconf opensmtpd myaddress questions openrsync pftesting procedure openrelay passwords religious hostmasks anonymous rulebylaw providers partition install71 homestead madeonirc disklabel jumpstart insecure software tlsmulti ipv6rdns security networks services webpanel overview ifconfig multiple torsocks securely religion vmmlinux firewall syspatch ackflood sortable downtime rstflood commands udpflood pfstable bootcamp generate ipv4rdns packages zonefile bouncers webpages spammers stopping phishing chrooted increase balances prereqs reading netizen openbsd records openssl dovecot freedom channel further newdisk servers mailing support hosting unbound virtual roadmap webmail welcome control caching abusers oidentd anoncvs version request proxies signify clients domains openssh sending sshkeys privacy reverse backups machine prevent expired removed liberty closing chroots classes traffic monitor tcpdump packets attacks against updates execute defense private mirror recite civics checks telnet shells netcat rights lesson growfs botnow gotweb ircnow police access border choose ngircd repair create keygen verify system hidden united commit limits cvsweb relayd filter custom static ilines higher defend origin pmwiki become vhosts basics detect letter inside speech sample report folder lookup claim topic books learn gnupg vmctl guide usage dhcpd bsdrd email files leaks ports mlmmj fdisk buyvm avoid rcctl anope cloak ipsec tcpip union route dmarc title paths setup block about repos local using press types clone width honor ethic doas ssdp team ddos with plan unix sshd duty vpns iked from your fqdn link oper acme fork code good ntpd sftp imap perl hopm what dkim hard bill tree only znc vps dig ban 100 php nsd git spf gpg pgp fix pkg how -Biboumi.Install:1672251989: Openbsd.Ddos Prosody.Install : require_cert_revocation_info use_ecc_point_compression realname_customization target_link_libraries realname_from_jid component_secret fixed_irc_server xmpp_server_ip identification outgoing_bind configuration project_name dependencies discussions connections sourceforge configuring invitations participate installing cmakelists postgresql management persistent otherwise compiling unlimited configure e2fsprogs installed sometimes dwithout_ automatic snapshot embedded log_file requires programs biboumbi password pervious hostname continue supports building nickserv features filtered download favorite required biboumi compile libuuid systemd sqlite3 extract tarball linking pkg_add prosody notices private channel address bouncer setting servers getting version example replace running gateway openbsd ca_file however listing actual sample libidn during adding policy ircnow update public modify errors botan2 method colors identd number client https flags local users louiz their unzip false about first using admin basic chats doesn mkdir above xvzf unxz then ddos ctcp this also will need your like here doas udns true 5347 only next ping sure goal 127 txt sed tls and usr var 192 pem ssl etc git can xvf cfg ftp its let net of dl gz cd by 0 Profiles.Miniontoby:1672082816: : programming miniontest3 miniontoby programmer translator languages profiles without english python called dutch shell gamer talk many more html bash and but irc css ksh php can js Minetest.Minetest:1672082711: Openbsd.Minetest : installation multiplayer miniontoby functional available unzipping dragonfly copyright downloads minetest releases features password nickname yourself building checkout windows servers joining pasword address openbsd pkg_add distros android freebsd source called better double ircnow github liking ubuntu debian folder client mostly engine linux https later again there click based start about first enter other grape games usage voxel after win32 intro macos win64 have port mods many site will make more list tabs doas type need from sudo time some like 2021 2022 ways run can for com www apt bit org bin one gnu exe we mt of 8 5 Openbsd.Minetest:1672082630: : 95d7fcb9499d7f51a660847a5b5671925206883f dbuild_shared_libs denable_postgresql dcmake_prefix_path server_description denable_spatial server_announce denable_gettext denable_leveldb ircnow_messages server_address send_join_part denable_curses implementation minetestserver serverlist_url drun_in_place dbuild_client creative_mode denable_sound enable_damage dbuild_server denable_redis minetest_game trusted_mods dependencies compatiblity load_mod_irc bind_address reconnecting ipv6_server ircnow_game confusingly instruction server_name planetofnix recompiling miniontoby installing submodules connection additional characters ircforever server_url irrlichtmt viewtopic directory installed submitted following modifying available confirmed something max_users recursive providing luasocket minecraft automated worldname handling actually required codeberg uploader realname settings interval included produces optional includes anything nickname commands specific checking multiple prompted yourself building releases updating relating sqlite3 openbsd channel example doxygen attempt english pkg_add seconds version default details updated resolve editing another running disable section created already servers invalid options finally special several welcome related p412885 working worlds engine github merged should builds system string needed mantar issues commit edugit config hosted folder secure before luajit easier called target readme stable errors ingame checks exile clone https games false there mtdev where mtctl usage local forum first which value 28483 index iconv found hooks again 64x64 unzip above known since based below with into also head chat form pull like this uses made then home that true line have port find file when wide null from motd wiki page just note more they wget doas than skin pack lets want jpeg full few try 600 174 can nil its but png was org how off isn non php way vps cd 11 my md -Hopm.Install:1672068766: Stopm.Stopm Rcd.Configure : command_queue_size your_network_name reconnectinterval command_interval negcache_rebuild troubleshooting command_timeout address_family lookup_branded dropbear_2012 target_string disadvantages automatically configuration dropbear_2014 uncategorized dropbear_2013 occasionally experimental installation reconnecting issuecomment instructions dns_timeout readtimeout dns_fdlimit statistical connections target_port compromised autorooting heuristical ban_unknown information spamtrap666 blacklisted advertising privileges particular proxychain cacheflows ssh_server dropbear_0 bcfiioqrsw blacklists spamtrap50 determined dictionary compatible foreground hopm_user configure 301276082 hostmasks encodings reference recommend addresses target_ip openssh_5 parameter installed openssh_4 indicated uncomment httpspost connregex automated httppost password protocol nickserv identify versions analysis extended realname username dreambox messages efnetrbl operator scanning modified cloaking brackets flooding previous requires supports howtouse compared executed detected hostname possibly resolver checking chanserv innocent max_read download autohopm hopmpath torsocks 16fb7987 template upgrades contains channel coconut prevent warning useradd seconds archive ignored toruser monitor wingate example replace looking appears expects release extract somekey scanner cronjob missing contact crontab refused another suffice specify hopmpid proxies default checked pattern through because spambot dronebl running gateway section bottler perform scanlog pkg_add service replies instead options pidfile scratch minutes created attacks github follow hybrid master botnet ngircd change invite record litmus ircnow router sample should unique before drones needed please actual myhopm issues listen abused threat dronbl failed broken define trying socks5 result readme daemon squery cannot rosssh script append syntax system latest exempt kbytes client notice nobody blocks errors socks4 either stored folder switch public where kline 38884 visit ircbl class dnsbl found again 18844 17771 reply onion 23t09 10000 64101 stopm email worms owned start 29992 fails first since squid chmod ifend 31121 types local after using title order match users april which begin allow 16667 these short modes setup sdbot kills hours thing guide every 4480 from 8081 9578 8080 8001 8000 6588 4914 6552 keep 4438 6561 that only 5262 have 7464 5113 7810 8130 8148 5104 9447 9036 8520 8814 will 7366 9100 home 7198 9186 5634 6826 next uses with want sent then data note this must blob oftc exit 3600 8443 bind more away ipv4 1080 3128 docs also zone doas 2021 0600 ipv6 aaaa does page make when sure come bans fast pure bots xvzf tags null mass been team same both join ddos fyle 2020 node var etc org put dev new 5p1 www 400 may ftp ips 255 241 ovh vps few vpn see web was has let don ksh its 754 but via due tls 512 yes 180 txt 59 22 mx 15 32 69 md 42 gz 53 9a Dns.RecentChanges:1672067214: : recentchanges bindresolver registrars providers february overview zonefile nixdork january records august draft vhost howto april first 2022 2021 jrmu fqdn june typo july dns fix at 05 03 19 28 44 am by 45 04 27 09 07 30 39 of 10 pm 15 16 Hosting.RecentChanges:1672067214: : recentchanges providers december hosting april 2022 jrmu 2021 at 01 52 pm by 08 Gry.RecentChanges:1672067214: : recentchanges september 2021 jrmu gry bio 11 at 49 am by @@ -49,7 +83,6 @@ Yonle.Bio:1670951890: : redirect profiles yonle bio Camping.Gear:1670819972: : cm_cr_arp_d_product_top cm_cr_arp_d_viewpnt_rgt twister_b09fqw5ncg twister_dp_update multifunctional frontiersman sr_1_12_sspa backpackers sr_1_1_sspa backpacking b081cnklyf sharpening geniuslink b00zun5pa2 containers b000sjlpuc waterproof b079xv1dmv b08mhgkmbh b082jysgl6 b01at3lms6 microfiber b002pa6v0g b010r9bd54 rubberized b07s4djtzg b09dr8wd4g b09xxfq866 flashlight b073wmdrfx b01ho15dgs underwater b00t3dy8xk b004j2gup4 b08kwmdq39 b07r9mcrgz b088p9z562 b0002zb5y8 b00f9gis1s 3000003654 emergency stainless sportster craftline parachute universal mountain practice morakniv tactical paracord canister headlamp survival outdoors aluminum notebook victoper sheeting allround redirect whistles trekking portable movement 31200mah external sleeping blankets coghlans painters cascade compass bottles starter plastic vicmore special reviews sawback cutting thermal soldier canteen coleman running sundome camping sr_1_13 burner rothco hiking amazon towels sheath sr_1_2 travel forest sr_1_4 sr_1_3 stream sr_1_9 https poles adult cloth setup store style swiss stone 750lb power tough knife spray cache stove silva white small board combi bear alls utf8 true tent tech kids bank grid rain tarp free safe gear high www ref gas bag psc gp Vhost.Vhost:1670816208: Bouncer.Bouncer Vhost.Ircnow Dns.Vhost Vhost.Freedns : specifically requesting permitted messaging multiple hostserv existent network domains freedns example because however bouncer ircnow verify either unless vhost since there which setup that note rdns with help oper meow poke must also ways will real you own non get tld for one cat can bnc see are and nsd any msg by to im of Vhost.Ircnow:1670814835: : oddprotocol planetofnix ircforever thunderirc nastycode following lecturify shelltalk bsdforall freeirc ircnow vhosts offer org com the we -Pleroma.Install:1670765677: : authorized_ssh_clients generated_config pleroma_server administrative configuration microblogging installation httpd_server dependencies interruption emailaddress certificates server_addr server_port configuring _postgresql request_uri remote_addr information compilation succesfully performance activitypub imagemagick recommended everything configured sufficient connection initialize repository correction following interface ext_inet6 openfiles listening retrieved installed uncomment http_host directory replacing challenge ajacoutot forwarded describes friendica dedicated implement paramprob args_file variable instance security protocol datasize _pleroma location exchange requests behavior loopback software multiple starting required properly federate mix_prod messages disallow database consider ifconfig yourself strictly fuctions pixelfed peertube identity mastodon hubzilla setup_db username features enabling creating attempts sbwtdcpu exiftool redirect libmagic upstream setting default datadir command migrate current started mix_env follows specify encrypt headers replace unreach network respond example upgrade backlog traffic options echoreq disable keypair nodelay openbsd content claudio running sitting reverse profile version contrib pkg_add working misskey servers crontab because useradd prevent improve waiting creates sbwtdio another friends support control session return forget enable reboot random should relayd policy values insert higher family source failed robots htdocs trying rebar3 domain macros assign syslog highly having needed larger rights single append adding icmpv6 toobig plerup online social people elixir ircnow lc_all before adjust erlang latest double ffmpeg socket buffer secret output script during starts window update initdb export bottom pgdata alias 1536m https shell rcctl check timex agent match icmp6 quick still block enter class login first asked write index might table bunch 65536 cmake local gmake paths which en_us while guide using lines pfctl title proxy front avoid three false clone doing after scrub means crash trace press there rules seems strip again known from some with then edit next pass root save want home into what this them that psql will www6 type ipv4 drop 4000 stay fedi tmux skip ipv6 hurt urpf like busy acme well once when 4096 exit sets deps only than copy grep over json have didn 2017 done 2018 none true sack flag pick load wiki used but new api phx can exs utf 127 tcp hex etc mvo ftp let 302 txt url aux git gnu php max bit its won tls any fit 128 cd p5 wx vm v1 by ok df 06 23 03 80 04 49 50 08 16 Akkoma.Install:1670765044: : authorized_ssh_clients generated_config administrative configuration akkoma_server installations dependencies emailaddress httpd_server distribution interruption certificates imagemagick configuring succesfully information recommended _postgresql compilation request_uri performance remote_addr server_port server_addr additional initialize repository functional everything sufficient installing connection correction configured akkomagang listening paramprob interface ext_inet6 directory following openfiles uncomment args_file challenge forwarded describes http_host installed frontends ajacoutot dedicated replacing retrieved setup_db properly exiftool enabling instance starting location protocol fuctions creating features probably redirect database ifconfig libmagic multiple requests consider required datasize upstream disallow loopback strictly attempts behavior username mix_prod security sbwtdcpu variable software _akkoma mix_env example migrate command options content started openbsd encrypt replace running disable datadir follows network default unreach setting current echoreq pleroma specify nodelay keypair creates backlog backend useradd claudio respond upgrade project suffice pkg_add contrib headers bundled version profile session sitting waiting crontab working prevent improve reverse traffic because sbwtdio another highly append should insert robots ircnow random enable policy adding trying macros family plerup relayd htdocs change icmpv6 toobig syslog needed domain failed forget adjust return buffer socket output elixir secret pgdata lc_all values reboot having initdb rights higher rebar3 source update export window bottom double during assign longer stable erlang latest single ffmpeg starts script before check index agent https false first match extra rcctl guide en_us alias added cmake avoid quick block after crash might 65536 asked login class local 1536m again proxy gmake doing paths bunch while shell enter these clone title using press timex icmp6 seems known which strip lines pfctl there three trace scrub rules write your ipv4 deps that once when psql want then also 4000 with urpf pass www6 exit into from tmux skip drop load will most root home ipv6 edit done type true this json fedi copy used hurt 2018 pick have acme well grep over than sets didn only 4096 some save wiki 2017 next them none fork busy flag sack etc ftp api let mvo txt url can 127 utf exs phx aux git dev hex new bit any max php ref tls won fit tcp 128 its 302 vm cd by wx v1 p5 23 03 80 08 50 06 49 16 ok df 04 Shelllabs.Openaccess:1670536976: : datascienceatthecommandline trustworthymachinelearning probability4datascience implementations paperswithcode bradleyboehmke bayesrulesbook visualization psychologists circlize_book introduction quantitative applications reproducible information statistical mathematics engineering electronics pdr_higgins structures ieeeaccess publishers algorithms collection openaccess electrical scientific submission statistics economics inference selection practical unpaywall available engineers published shelllabs europepmc runestone preprints resources institute retrieval sciences pythonds bookdown journals bayesian stanford clinical circular jokergoo handbook modeling sematech mattansb computer research archive biorxiv applied feature physics biology finance systems reports medrxiv methods details medical solving problem academy github mdsr2e mackay div898 theory fields health modern books https study r4csr hands using index title arxiv rmrwr itila life link many homl from than more mdpi html such nist org www edu nlp mml gov 100 osf of uk I2Pd.Install:1670375785: : communications introduction participants https_proxy http_proxy installing configured operating anonymous listening encrypted localhost purplei2p installed addresses depending foxyproxy universal invisible releases visiting packages protocol internet android pkg_add openbsd website browser firefox network suggest reveal export launch system daemon github other guide which addon start rcctl using users sites title their layer doas i2pd 4444 your real like need this have with will tell over from case are can nix how for via app may now tag org if 0 @@ -73,11 +106,9 @@ Lemon.Lemon:1668088118: Lemon.Todo : 0x7303a746e98626e Opensmtpd.RecentChanges:1668045899: : recentchanges troubleshoot opensmtpd openrelay nastycode configure november resolved fossdev errors added about notes first 2022 july test 2021 the two mkf how jlj am 37 by 10 at 11 pm 04 13 03 12 46 58 Unbound.RecentChanges:1668032016: : recentchanges blacklists configure october unbound june jrmu 2022 at 29 25 pm 06 am by 30 Bouncer.JmIRC:1667585932: : automatically configuration highlighting alternative explanation regardless backbuffer connecting correctly character timestamp codepages debugging separated unhandled otherwise password jmirc_04 advanced jmirc_03 jmirc_01 channels encoding jmirc_02 features validate bouncers jmirc_05 motorola fallback nickname jmirc_06 jmirc_08 hostname jmirc_09 jmirc_07 usually reasons default servers colours windows maximum samsung options uploads memory unique ircnow output always choose status socket detect useful chosen string header screen simple print https input lines large value phone first tried after users empty nokia doesn shown comma safe wiki 8859 with 6667 used port this will work that sets want also real your make need from have join poll v525 6800 6810 text 7200 just left only c100 jpg for org can tcp bet top not utf two iso run per who too but ask if of by -Ngircd.Install:1667565713: Irc.Guide IP.Myaddress Ddos.Intro Chroot.Intro Netcat.Irc Hopm.Install Ngircd.Ssl Password.Management Dns.Vhost Ngircd.Link Syslogd.Configure Openbsd.Rcctl Anope.Install Acopm.Install : abcdefghijklmnopqrstuvwxyz noticebeforeregistration maxconnectionsip allowremoteopers defaultusermodes troubleshooting requireauthping operchanpautoop opercanusemode cloakhostmodex syslogfacility implementation configuration alternatively documentation automatically maxnicklength cloakhostsalt service_name service_user installation unexpectedly instructions eavesdropper service_pid pingtimeout maxlistsize recommended lightweight pongtimeout uncommented infrigement configuring information permissions connecting uncloaking disconnect impossible understand adminemail installing admininfo2 admininfo1 restarting management maintained motdphrase harassment examplenet advantages compromise production nullrouted minimalist unfiltered terminated absolutely encryption automation techniques references described servergid installed essential otherwise sensitive configure necessary debugging receiving invisible generally chrootdir identical serveruid unlimited firewalls sparingly interfere typically copyright suggested different character operation localhost myaddress addresses passwords untouched somewhere developer listening reloading including platforms actively precedes operator cracking gambling violence messages logfiles motdfile sysadmin building function properly download security services software comments generate upgraded template straight secondly channels finished contains features username existing includes portable chatting compiles enabling commands moderate stalking validate helpfile spammers multiple connects hostmask probably familiar rejected remember official standard examples provided solution packages maxjoins overview intended network periods servers lookups another written warning hosting usually _ngircd listing outside editing however openbsd perform besides pkg_add filters friends pidfile because consult replace mistake ability syslogd cronjob instead differs crontab libexec enabled illegal options contact ircnowd linking appears correct monitor created without symlink process working scripts careful heavily prevent extract already clients support privacy running scratch slander threats expects directs cloaked ignored nobody netcat limits needed joined glines unique random remove custom reduce handle secure ensure daemon should inside verify resolv errors invite unable please stable tested single string entire events issues causes normal become insert policy blocks modern source domain ddosed global planet sample barton easily public bypass simple actual writes speak rcctl three share terms first since would pages keeps agree whois while hello until helps https index world staff intro chown using mkdir owner going every above avoid below which pgrep ports chmod users these power after title begin needs drugs libel being linux crash anope order leave match 16667 guide acopm setup vhost proxy abuse aware short earth hangs check those pkill exact clean that been your porn doas have must note will this used turn from make wiki only logs code does xvzf easy lead such also docs send text stop hopm free fork when bsds many into sets want next then once long 2001 runs each ipv6 ipv4 real data 7000 best 3000 show 6660 6661 6662 6663 6664 6665 6669 they 6668 6666 dns few via var has 192 may one get usr was yes v26 ips bin try new hup ssl php see had don but 168 tls org db8 127 tgz txt day let ftp ix ln cp Anope.Install:1667070740: Ngircd.Install IPv6.Overview IPv4.Overview Ngircd.Link Ident.Intro Anope.HostServ Anope.Chanserv Anope.Operserv Anope.Botserv Anope.Memoserv Anope.Global Opensmtpd.Intro Opensmtpd.Configure Opensmtpd.Test Crontab.Usage : abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789 ed3383b3f7d74e89433ddaa4a6e5b2d7 use_server_side_topiclock disallow_start_or_end allow_undotted_vhosts use_server_side_mlock internationalization registration_subject registration_message emailchange_subject emailchange_message ngircdpeerpassword restrictopernicks ngircdmypassword troubleshooting administrators reset_message reset_subject automatically configuration confirmation sendmailpath memo_subject memo_receive configurable require_oper operpassword modelistsize memo_message servicemask networkname simpletable killprotect description unnecessary configuring vhost_chars recommended networkinfo restarting hide_email configured ns_private registered connection parameters proceeding sslconnect thoroughly serverinfo examplenet executable installing automation connecting ns_secure according passwords untouched requested generally operators opensmtpd hide_mask questions localhost directory nicknames approves hostserv services commands chanserv operserv memoserv provides overview hostname platform networks whatever sendfrom sensible defaults comments nickserv silently channels received downtime releases drawback properly enabling download initiate identify building remember complete settings _signon botserv warning anopath nicklen userlen hostlen chanlen finally defined passive because crontab anodata usemail replace running matches seconds already maximum changes anoargs anopidf results anoprog address anoperc cronjob follows pkg_add gettext support written disable variety useradd archive module belong global please ignore before uplink should admins reload actual adding allows create certfp logged helper border expect levels binary within readme ircnow length squery folder double number github decide sample latest option barton listen likely autoop killed issues first quote value lines while users these width chmod class block looks tools fails login https false cmake 16667 again group their title delay using asked every check enter press rcctl intro cross ircds debug setup guide entry linux usage other mynet this know will same refs sent uses left logs runs just home doas must into type note that most they have your sure want tags next bind plan edit motd ipv6 give ipv4 many need only does root sbin such both docs much more main caps some each none file lets turn well real four chk are new yes org 127 off has bsd 192 168 usr 100 can was why don msg zxf ksh ftp gz 64 32 60 cp 5m md Ambassador.Ilines:1666413608: : connections planetofnix oddprotocol configured thunderirc exemptions ircforever ambassador nastycode authorize addresses exception greetings shelltalk lecturify bsdforall currently providing sometimes possible bouncers accounts networks contact support request freeirc because details website ircnow jujube ircfun around unique coming ilines needed adding relays called public sample ident order https users rpblc other limit email opers these using 6400 0bb8 2605 0020 faa1 0030 0010 1290 069d bots 05bf have 05cc team f8de f633 fc15 071b 00b4 0434 00fe spam ipv6 case each must from ipv4 many like week this here look org 198 183 251 our you 229 too 209 173 141 119 and are new may can 158 ask 137 133 800 ips 130 228 184 240 at 39 89 81 38 44 91 Bouncer.XChat:1665961784: Freedom.Freedom Bouncer.Bouncer Bouncer.Hexchat : unmaintained proprietary information showdetails networklist essentially abcde12345 registered connecting connected password consider username software hostname addition servers example startup general uncheck bouncer address hexchat minutes protect windows message freedom select client attach corner source button ircnow insist decade should bottom saying global title click 31337 blank linux using file port this auto open from menu nick your left john with http been wait type used fill like then want such fork look has bnc and new org see not yet znc few png tab mac → ssl if -Rcctl.Rcctl:1665580036: Openbsd.Rcctl : openbsd rcctl Ircnow.Servers:1665532402: Ircnow.Servers : 4ufrikyorlatp5ekgz6tlre22v6b5jxqbiid6cp7nuhemklukiohidqd ksr52n2hs3g2mxbi3rkwd6knm7ow4mv5kryyqsgikjegn7emel3555id bsdnetoezbtsbrzlnrgxn7iv6qokouuyr4dkd7f2xt6fmmacvi2kjjad ircnowww2n24aluccfzydqelohej55yrgfkpnp6jc6geijmqht6w77yd 6sntav3syf2yls5a thor_of_angels alphabetical simpletable oddprotocol planetofnix ambassadors ircforever committers federation thunderirc shelltalk lecturify bsdforall nastycode encrypted associate governing codeforce different fediverse sysadmins fosstodon sortable bountyht ircology hostname almanack outreach internet services servers provide project freeirc network mistere silence jujube ircfun attach duties border matrix error class onion width email rpblc plain 6667 6697 team irc6 ipv6 port text jrmu full list ipv4 nfld nick self xmpp 100 who gry org own tor run its jlj map png by Eggdrop.VHost:1664715901: : vhosttcl eggdrop ircnow https index wiki see org php Eggdrop.VhostTCL:1664694397: : autoapproved yourwebsite registered tclarchive unregister permanent somewhere following acomodate temporary download hostserv settings complete vhosttcl command connect accsess botnick eggdrop network restart scripts working request channel extract stepts source device folder server rehash change files first found https still have that edit conf will must oper wget user they when this than good luck org now tgz can are msg php ssh zip for 794 put v1 be cd by if id 0 2 5 6 3 @@ -119,11 +150,8 @@ Squirrelmail.RecentChanges:1660527531: : recentchange Eggdrop193.RecentChanges:1660525386: : recentchanges eggdrop193 install august 2022 ran 14 at 05 17 pm by Ircnow.Pioneer:1660453560: Freedom.Freedom Vps.Vps Minutemin.Bootcamp Shell.Shell Unix101.Unix101 Ircnow.Servers Ircnow.Goals Ircnow.Minutemin : requirements applications independence oregontrail billionaire supporting controlled contribute monopolies nameserver marketing minutemin volunteer corporate homestead configure webserver material platform monopoly verified purchase pioneers learning proceeds business tutorial personal bootcamp articles bouncers firewall security services includes offering sysadmin network private openbsd startup project digital unix101 welcome against servers sharing created account virtual upgrade freedom minimum contact regular towards website domain ircnow elites custom months charge become answer social center course attach finish rigged worked friend mutual method future rfloat system shell goals media share write staff refer below apply three email using title width users train their today there dream claim equal 50pct build keep your ceos blog made bots this 5hrs tech with code into week life file they want send over join what find 5usd help will get can and vps who don png any how run own put org was tls new set vpn lan by 4 Ircnow.Minutemin:1660453478: Vps.Vps Minutemin.Bootcamp Ircnow.Goals Freedom.Freedom Shell.Shell Unix101.Unix101 Ircnow.Servers Ircnow.Roadmap Ircnow.Finances : administration documentation interviewed contribute experience minutemin homestead improving sysadmins currently marketing bootcamp finances articles tutorial personal progress internet position customer training verified contact support regular unix101 willing roadmap respond account freedom improve website servers minimum qualify promote friends network threats project ircnow create duties method mutual rfloat become finish social worked commit reward report notice coding within attach unpaid months resume basic media using below shell goals hours staff share after refer write track title learn width 80pct email while apply your hang blog help must keep this week team real join find send oper code over the for png bsd vps who can see out new add and get org how one any of cv 5 3 -Prosody.Install:1660292093: Mercurial.Usage : mod_auto_accept_subscriptions mod_throttle_unsolicited mod_captcha_registration mod_block_registrations mod_filter_chatstates mod_throttle_presence mod_support_contact mod_group_bookmarks mod_message_logging mod_roster_allinall mod_roster_command mod_cloud_notify mod_support_room mod_http_upload mod_muc_limits mod_muc_ban_ip mod_deny_omemo mod_bookmarks mod_firewall mod_muc_log mod_smacks mercurial _prosody download example modules mod_csi private install written readmes pkg_add extras server simple client jabber mkdir clone https local using usage share certs chown doas xmpp echo acme cron tabs fast that aims root usr lua doc aka lib crt var ssl the etc key cp hg -Vmm.Configure:1660205276: : forwarding networking interfaces sufficient install69 broadcast configure install70 signature download vmdusers verified firmware machines increase hostname groupadd software virtual warning crontab routing appears prevent address however default switch0 user123 openbsd bridge0 tcpdump packets signify console devices proceed pkg_add useradd makedev nologin because sha256 enable socket access create reboot serial sysctl lladdr longer verify random choose locked number issues timing memory result maxlen permit chown rcctl cdrom owner there start qcow2 using amd64 https first octet image title which entry while where inet6 wrong vmctl some need done arpq sbin ping home doas base have html many will next same with flag show such disk each root only four they this from tmux want does true free echo pick sure 1024 must your edit 512m ipv6 ipv4 iso etc new not jot tap pub 20g if0 vmm var run odd ftp org 162 ip6 may can ips cdn usr uid i5 to 38 by pl 87 xx f1 f3 mv 50 01 bb aa ok Openbsd.VsFTP:1660144695: : data_connection_timeout anon_mkdir_write_enable allow_writeable_chroot ascii_download_enable rsa_private_key_file connect_from_port_20 idle_session_timeout ascii_upload_enable chroot_list_enable anon_upload_enable xferlog_std_format dirmessage_enable secure_chroot_dir chroot_local_user text_userdb_names anonymous_enable userlist_enable xferlog_enable userlist_deny userlist_file pasv_max_port pasv_min_port rsa_cert_file ftp_data_port local_enable xferlog_file tcp_wrappers listen_ipv6 listen_port pasv_enable ftpd_banner nopriv_user local_umask ssl_enable installing rcscripts installed xdefaults hide_file extracted following deny_file ftpusers profile _vsftpd example virtual details openbsd service pkg_add welcome machine mailrc server 230991 ircnow 230533 cvsrc empty login cshrc 10800 60020 60011 rcctl 1800 were conf doas etc ssh see yes new the var net 022 crt ok to 21 C.Scanf:1660125080: : scanf -Pmwiki.Install:1660122023: Nsd.Configure Nsd.Zone Php.Install Relayd.Acceleration Openhttpd.Tls : typeyourpasswordthenpressctrl yc9qehuv0whgu19qqvhonhw1zutmc file_get_contents defaultpasswords enablepathinfo automatically configuration accessibility kchfdl42rabog documentation acceleration query_string uploadurlfmt configuring requirement flexibility recommended lightweight permissions got_author connection javascript nameserver challenge siteadmin directory mirroring openrsync 104857600 scripturl uploaddir pubdirurl requested following configure necessary openhttpd installed location creation esvfdfwa blowfish authuser database almanack required familiar evaluate assuming creating overview authform requests cookbook username actually download checkout provide example rewrite uploads fastcgi browser receive limited located restart finally setting include pmcrypt however forlder encrypt command favicon chroots protect crontab syncing working exclude release cronjob regular replace instead forking improve openbsd support sources records either ircnow relayd htdocs pmwiki before daemon delete backup sample making commit simple export stored readme create import domain latest please passwd proper update socket change hashes prompt allows stable listen local match index rcctl clone chown email sleep clean daily using these https ifend rules pages files false helps title 100mb large tells which other guide above lines begin block strip known doesn while will doas with mind that keep edit make repo sure when init want skip xvzf this says body like have trim next zone true urls acme well ends from very host copy only also give text they real grab tls php git nsd not run org www its etc 360 var new 141 tgz ftp can are txt two web max any put fpm 1mb by cd cp 80 of 11 mv 2b 09 13 Vmm.Install:1660118708: Shell.ShellPutty Openbsd.Install71 Openbsd.Bsdrd Openbsd.Staticnet Openbsd.Vi Openbsd.Vmmuser : automatically installation instructions connectivity immediately combination vmminstall particular networking workaround afterwards substitute shellputty hypervisor background lowercase dedicated reinstall install69 staticnet install71 operating installed something sometimes keyboards hostname physical existing assigned username probably accident shutdown terminal machines multiple followed personal bootable console prevent openbsd booting virtual restart message default upgrade unmount instead windows scratch replace address gateway reading execute appears crontab capital vmmuser ignore safely serial period reboot during tildes ensure before bootup likely attach escape failed bottom values prompt system create typing delete scroll editor inside ircnow router subnet screen normal should allows single server vmctl qcow2 linux title boots image works error guest there bsdrd guide which https right while helps alive press quick enter colon first fixes lives index where hours paste order fccf note with sbin from your that mask will want done ipv4 most then tmux 1xxx type this true 2602 ipv6 once stop file save runs doas need away exit disk have lose when ctrl html text faq4 must hard wiki keep also line new usr png few www org 162 man vms php bug 255 see are 20g and can may log ssh any 38 wq i5 87 if by cd of 64 Orange.CertsReissue:1659936917: : automatically certs_reissue certsreissue intermediate certificates challengedir alternative letsencrypt isrgrootx1 repository previously downloaded describes creation solution generate settings document example expired folders private section libexec crontab let’s isrg_x1 client domain relayd script create orange adding reload record names chmod https mkdir store local wheel about rcctl chown with acme this case exit wget task doas sign will from null date tree 2025 2035 use net ssl etc pem crt jun dev the usr sep key 400 gmt org www 700 var bin r3 sh 10 38 04 15 16 11 of fv we Team.Security:1659919983: Doas.Configure Openbsd.Vipw : precautions authorized corruption inactivity teammates passwords configure inactive security accounts example openbsd console prevent present disable serial should panels months master access change passwd remove shared helps leaks users basic their check group title reset every needs after wheel vipw from only file make that sure have take doas each with this root your and web for etc new to of 6 3 @@ -196,7 +224,6 @@ Openbsd.Rcctl:1652075627: : pflogd_timeout configurat Ngircd.Ssl:1652023834: Acme-client.Configure Crontab.Edit Pf.Guide : troubleshooting uncommented connections certificate automation encouraged additional configure reloading necessary establish providing following otherwise openhttpd encrypted dhparams examples optional blocking automate hostname certfile rulesets properly firewall incoming downtime request putting _ngircd restart cronjob because renewed keyfile openssl seconds private replace copying expires process crontab renewal server client longer actual random expect before listen enable signed dhfile unable bottom daemon reread signal allows result simply highly ensure check pkill needs order certs chown 16697 would using which sleep visit after users title 16667 quick guide lines files above ports proto pfctl exist first begin pass make this into note doas with will that your 6660 9999 6669 edit acme must have once then 7000 days 6997 send were 2048 wait does want each see crt etc can log var may hup 300 tcp tls two are pem out let its by 90 of Civics.RecentChanges:1651620707: : recentchanges civics intro 2022 jrmu may 03 at 01 06 am by Codeforce.RecentChanges:1651620707: : recentchanges codeforce training 2022 jrmu may 03 at am by -Php.Install:1651619461: Acme-client.Configure Openhttpd.TLS Relayd.Acceleration : troubleshooting configuration installation acceleration information requesting everything php74_fpm openhttpd challenge php80_fpm following extension configure correctly upgrading location document example browser default replace chroots phpinfo pkg_add purpose located version fastcgi server placed should client relayd folder htdocs screen access guides pmwiki actual update create within minute errors domain enable socket listen choose rcctl start visit files where index title tells strip block known notes check lines first certs space logs your test doas real port sure make full less then will have want path need into else acme that says left ends spam well var www tls got any web are use and run com ssl new see set etc be of 11 if by 10 3 2 Openbsd.Upgrade71:1651559770: Openbsd.Bsdrd Openbsd.Dump Openbsd.Restore Openbsd.Vmmuser Openbsd.Cu Openbsd.Buyvm Openbsd.Pkgadd Openbsd.Ssh Openbsd.Top Openbsd.Syspatch Openbsd.Fwupdate : automatically configuration installation proprietary filesystems downloading bootloader installing particular substitute optionally networking everything ramdisk_cd beginning upgrade71 upgrade68 recommend signature upgrading following reinstall otherwise operating correctly succeeded installer installed fw_update directory something interrupt fwupdate syspatch verified shutdown location possible external probably tutorial messages existing sysmerge downtime skipping firmware required packages continue generic careful openbsd vmmuser pkg_add replace advance default console servers restore process missing details closest patches seconds because however advised running assumes reading signify updated version sha256 should happen attach reboot screen serial bootup repair before either verify normal mirror within during typing ircnow number proper pkgadd notify issues booted amount switch choose buyvm order point bsdrd error after login check uname cores fruit https amd64 guide boots press vt220 which leave enter there proxy force drive clean flash above steps using media allow later title users first sets over make sure that just will back dump done need note from root your base none show list this view such says want doas then used have html hard type find else does must faq and see org www iso png man new can did pub ssh top fix any may ftp out 179 vnc get usb etc way of by 2b cp 98 3b Ircnow.Codeforce:1651551469: Freedom.Freedom Ircnow.Minutemin Codeforce.Training Ircnow.Roadmap Third.Third : experience optionally codeforce minutemin madeonirc marketing warriors complete salaries internet projects software training freedom roadmap improve someday network ircnow afford duties resume cannot deploy reward attach rfloat width apply after corps write elite staff 80pct title third would proud party your that lead join like this help time png the add but pay few new way how and cv be we to as Codeforce.Training:1651546958: Perl101.Perl101 Password.Management Openssl.Encryptfile Cvs.Intro Cvs.Commit Cvs.Anoncvs Cvs.Cvsweb Got.Usage Got.Repo Got.Server Got.Mirror Gotweb.Install Openbsd.Books Unix.Reading : description simpletable encryptfile management minutemin scripting passwords codeforce bootcamp sortable training unlocks openssl prereqs control reading openbsd version anoncvs install provide perl101 commit cvsweb create lesson gotweb access mirror viewer secure server border books bonus about learn usage intro topic title repos files shell class width path more unix with only set 100 up @@ -249,7 +276,6 @@ Ngircd.Link:1649314336: Ngircd.Install Ngircd.Ssl Dns. Ircnow.Explorer:1649277747: Ircnow.Servers 9.Bootcamp 9.Account Vps.Vps Ircnow.Goals Ircnow.Codeforce : contributors independent innovations namespacing development distributed filesystems nameserver integrated completely supporting technology interfaces philosophy contribute everything stroustrup windowing kernighan landscape explorers operating influence community computing dominated resources uncharted volunteer codeforce sacagawea protocols marketing designed invented original internet possible clusters replaced language included keyboard offering thompson services berkeley software bootcamp frontier proceeds purchase personal articles computer verified tutorial chording adopted towards process follows project chroots wayland upgrade special removes network extends created servers creates forever account elegant website desktop compile ritchie lasting sockets ircnow impact finish clones easily before rfloat twenty global charge attach ioctls mutual method easier social domain chance course procfs client appear simply custom friend worked unique thanks thirty change should future simple itself dennis bjarne apply learn about plan9 mouse sound using title union email width train write years today takes linux 50pct first admin brian https goals space weeks media never build share month watch grids staff refer below keep free same next labs team join star make will want pike that open your from unix over like find send blog help with come been 5usd four were what bell more mind live card each idea need this have tour give jrmu host webm demo sees how own ssh set ftp org rio the get all can who new 101 rob x11 jpg vps any was ken utf png by 4 8 Minutemin.Minutemin:1649213757: Vps.Vps Openbsd.Openbsd Ircnow.Goals Freedom.Freedom Shell.Shell Ircnow.Howtoask Openbsd.Training Openbsd.Ongoing Ircnow.Roadmap Third.Third Ircnow.Finances : administration documentation immediately themselves optionally experience commitment references improving following tutorials questions interview homestead sysadmins minutemin marketing training applying finances internet salaries howtoask recruits familiar progress websites projects customer software redirect openbsd willing require joining friends roadmap account promote respond request support freedom improve minimum chatter someday ongoing network threats include servers system resume become ircnow cannot afford number reward finish invite before worked duties defend please rfloat report notice coding attach third email weeks after goals title shell basic phone hours party width their staff seems 80pct track legal learn being while smart would users ready write like time team this help your must real oper unix with code hang good name they have take full new add and org png pay vps got out who but by if cv 5 6 Openhttpd.CGI:1649175728: : accordingly communicate configuring connection accessible references scriptname executable openhttpd interface directory 104857600 challenge yoursite username language location slowcgi already example scripts include content replace writing openbsd request fastcgi website compile printed between gateway browser consult htdocs enable server status simple domain return listen common blocks should ircnow screen create hello https chmod tasks pages still index using start world stdio haven rcctl about known strip this that body like acme will look port root edit well make used must sure note with puts doas html text type void home need want wiki bin are org and php tls the see man run var www but 200 max any add etc for by go if cd mv 80 -Gotweb.Install:1649159581: : got_max_commits_display madeonirc128x128 got_repos_path got_site_owner got_site_link got_site_name got_www_path periodically got_logo_url permissions openrsync marketing directory cronjobs location uploads running slowcgi crontab fastcgi install pkg_add include example public gotweb delete ircnow import daemon htdocs server enable listen inside index chown httpd write mkdir needs https rcctl types daily block share these start root doas user have this html your conf mime misc 1000 wiki var git ftp bin etc usr org png set tmp 80 cd Openbsd.Censord:1649139411: : openbsd censord Openbsd.Hopm:1649138949: Openbsd.Doas : troubleshooting configuration installation reconnecting issuecomment interfacing connections jk_chrootsh adjustments installing workaround instructed foreground usefulness background particular especially configured requisites downloaded decompress instances favourite directory indicated trialling questions typically extracted necessary reference 301276082 encodings compiling recommend navigate username hostname redirect releases brackets executed mistakes compared properly previous required fullname password familiar warnings defaults majority reading running however network nologin getting testing adduser ideally specify initial correct goodbye section disable another openbsd missing assumed pkg_add pulling unbound writing package tarball coconut refused archive daemon within server logins groups editor latest github invite hybrid pbuild authpf silent chance master readme result either before ircnow failed errors syntax ngircd record trying listen system create enable needed issues tricky passwd shells option asking second files where gmake which https 23t09 stops first would debug there right hints phase times after added worry cover staff 65532 enter class about later input check guest hopm want text this will tips some your mode sbin were doas exit bash copy case save suit aren true page have when doku ipv6 does fine that also line from come aaaa unix blob 0600 many 2021 nano must know bgpd home wget into path grab skel then 1002 znc via may org but its won see was and gid php can ran dos due etc uid ksh few vim don zxf let csh of cp 22 my gz kb 14 59 Openbsd.Dns:1649136288: Openbsd.IPv4 Openbsd.Ipv6 CloudFlare.Cons Dns.Domain Dns.Zonefile Dns.Providers Dns.Records Openbsd.Nsd Openbsd.Vhost Openbsd.Dig Openbsd.Host Openbsd.Unbound : astronomical registration coolchatclub distributed represented nameservers information subdomains cloudflare resolution purchasing convention elsewhere resilient authority delegated hostnames computers addresses providers recommend practical registrar somewhere resolver requests zonefile username internet millions probably purchase register services networks designed possible multiple workload referred contains anything redirect overview memorize remember example control imagine setting specify process openbsd offline billion usually instead records achieve working because however another browser storage queries someone perform unbound second system period ircnow single should unless within easier laptop shares across global depend typing client charge spread number robust called center create actual entire these would which forth owner there using makes panel 20usd vhost after might human level offer files title zones scale comes tries their means could needs given every phone about knows root have such will next tlds ipv6 just cons that free when glue data take your this then like they ipv4 year stop were team only once went upon more them find look into mail also base from able part size many want and dns ips dig nsd org can web ns2 see ns1 isp run let too don non 192 far 168 www was pay fee by go @@ -307,7 +333,6 @@ Openbsd.Xonotic:1645343002: : yetanotherxonoticserver Bouncer.Irssi:1645035965: : verification autoconnect abcde12345 tls_cafile tls_verify connecting additional connected username password networks multiple editing use_tls servers example chatnet address message suppose bouncer replace another located openbsd windows command ircnow inside folder notice attach saying client issues config blocks certs irssi 31337 mkdir would right might first title linux https quote that want look what like here john have then your port with real save must type runs this line sure make org pem cas bnc ssl etc mac png yes get znc yet for cp of be PuTTY.PuTTYgen:1644989095: Sshd.Disablepassword PuTTY.Connect : aaaac3nzac1lzdi1nte5aaaaincb6gpcoqpg4byflwqhya2smytv7rjfvw disablepassword authorized_keys editauthorized authentication copyauthorized alternatively keypassphrase conversions additional connection parameters privatekey worthless publickey generated bqo3hftdf described puttygen4 puttygen3 puttygen2 puttygen1 creating hostname optional together securely 20210809 pressing security ed25519 openssh becomes session copying provide logging another warning earlier comment notepad pasting confirm created attach shared forget should ignore browse export adding select bottom random client anyone field never click paste begin shift using title again guide front lines write setup login into ssh2 from with type sshd used ends fill this like look only join file load your hint ctrl webm uses give save menu keep down safe pair will more have gif mp4 png ppk can ins top now of cc go Rcd.Configure:1644943570: Hopm.Install : “services” configuration automatically daemon_flags redirecting reconfigure priviledged pkg_scripts comprising installed arguments directory specified following execution debugging restarted mangement framework shutdown variable programs responds forcibly processs packages creating defaults contains commands continue whatever function “no” reversed perform setting actions running already follows options affects openbsd prevent calling control display disable explain booting stopped utility timeout enabled failed rc_cmd stderr stdout system second called reload simple return launch should create unless editor change status during other title rcctl shell local value lauch usual order refer group first which check shows topic equal names print allow hopm user more will path this line into here with root base doas file home code nano give subr save then also they from null only used tell each such its now are etc can ksh add rcd dev bin not may by be of we 1 0 -9.9gridchan:1644878891: : plan9port 9gridchan username gridchat cloud9p compile pkg_add openbsd install replace source github linux ifend while false 9fans https guest write doas 9000 have from your read echo done with unix 9fs org sed tcp cat srv may → 1s to io Debate.Ircnowd:1644863049: : inexperienced intuitively unrealircd administer needlessly motivation accidental permission confusing chanmodes delayjoin permitted different requires possible inspircd noinvite recently struggle elitists channels innocent services problems settings bouncers platform proxies express connect ircnowd happens because average complex example someone message chanops allowed kicking unusual hundred banning network manuals reading without social almost normal highly delays person higher speaks banned people exempt nokick ulines debate opers daily basis flags users their force until being title solve iline lined were only able spam they gave ways that want here days just also chat used then not ago our own but can few and are ips why too don of by z Stopm.Stopm:1644862595: Openbsd.Rbldns Openbsd.Acopm : authentication fingerprinting automatically unfortunately unregistered holistically authenticate fingerprints residential statistical introducing intelligent blacklisted probability combination determined completely configured motivation reputation attackers customize operators confusing filtering freenode chatting networks sculptor examples assigned properly identify simosnap fighting severely channels flooding outright consider designed memorize prevents username requests innocent realname services openbsd believe require defeats respond purpose cherryh connect evasion address dealing endless updated privacy reduces whether forcing attempt monitor joining minimal factors because ranging default banning install enabled closing present another combine lookup entire system series admins should normal ircnow placed banned limits behind policy easily notice rbldns appear server forced shaped access client statue caused before clumsy public forces users error stopm which acopm needs carve proxy based score scans badly block rough scale might guess build flags often range first their every makes check ircds today also have from than spam with fair must this ways hard done smtp most will some they http been port come vpns fork ends rdns does ctcp 0000 that isps here more sasl over aren good bans only mirc lots quit link and non how ssl has you znc our try did may who via new bot own set won 95 by ip we 16 10 45 50 Police.Fingerprints:1644674959: Police.Intro : i2ageyhy0mka8aembvk3x 99a4jtzu7bnmexocesf5e fingerprints registration controlpanel listnetworks connections expressions discouraged 1026844251 suspicious 1644081761 guest55013 connected customize vacevcu2h detecting criminals available something sometimes signature addresses technique deterring username adminlog addition metadata accounts probably collects matching existing multiple password patterns channels 20220205 hostmask stopping vigilant stealing automate realname disposal phishing example moddata sqlite3 helpful follows compile version dossier similar prevent quickly figures overrun scammer towards letters noticed usually captcha anytime regular botnets perform replace decloak command details capital select called happen inside typing police subnet unique output client person crimes search reveal botnow single always actual credit change server lookup intro first email whois think scams might using tells cards reply users being abuse while ideas where watch about issue their trick table would names shell check likes race ddos doas mirc will grep this once from ctcp only date rows also that home what find then file more want need with show have arms sort scan made such less half just your tool does hash long part good them msg sed see znc one yes say ips but 192 him 168 ire 394 sun feb bnc www var had job don get 5th if of db 34 00 06 by 30 v7 we 2b 11 @@ -358,7 +383,6 @@ Irc.Federation:1642631202: Relay.Relay Census.Census : Opensmtpd.Openrelay:1642631202: Openbsd.Dnsbl Openbsd.Dkimproxy Netcat.SMTP Openbsd.Opensmtpd : misconfiguration configurations unintentional blacklisted destination fakedomain otherplace configured improperly censorship relay_dkim pretending recipient opensmtpd rejection dkimproxy addresses openrelay sometimes external crackers internet messages criminal spammers example invalid configs prevent appears openbsd malware viruses trojans running domains similar receive pleased ruleset privacy testing another because provide chances spoofed reading victim sample allows relays either server action netcat beware notice though sender anyone banned abused forged bypass should likely hello using check flood email trash hosts esmtp local comes never dnsbl title these match often being worms above could only that this here make sure when from hide will your helo with says been rcpt want meet user also don 143 163 250 why 550 and fix how get has 220 but put can see to if we 38 81 ok Dovecot.RecentChanges:1642631202: : recentchanges november dovecot install 2021 hawk 28 at 12 30 pm by TigerVNC.RecentChanges:1642631202: : recentchanges tigervnc december install october 2021 hawk jrmu ssh by at pm 11 56 am 00 12 23 -Mlmmj.Install:1642631202: Opensmtpd.Configure Opensmtpd.Test Crontab.Edit : documentation configuration emailaddress mailinglist lightweight directorys management postmaster installing subscribe delimiter localhost opensmtpd configure downloads external instance required requires normally spooldir licensed creating virtuals handled someone meaning example compile replace consult openbsd aliases special default receive accepts request command crontab initial bangcat manager written located forward servers daemons pkg_add maintd simply create modify _smtpd should domain simple joyful readme change locals emails before action source enough users https mlmmj false files entry owner table needs sends cases ifend which added touch hosts title begin small first below chown mkdir works share with this home also doas made once name then edit most test only docs sent from note sign your have each task make will like that mbox real very what line into get can usr run org etc var bin log see 127 up by of 5 0 ZNC.Troubleshoot:1642631202: : troubleshoot bindhost messages getting records options clear your have znc dns fix two the set not if JuiceSSH.Connect:1642631202: Shell.Shell : hostverification copytoclipboard authorizedkeys connections alternative identities juicessh password identity consider software tutorial details private sonelli attach google manage update logged public export please source import share shell title https store using play free open note apps with main png tap com new is MailWindows.Connect:1642631202: : authentication windowsmail mailwindows information otherwise advanced password incoming username outgoing settings creation accounts internet requires address connect section sending desired choose server ircnow enable attach select needed wizard please manage follow bottom point email imap4 setup there title will same left this show icon smtp type pick fill done with your have any and are ssl png put org see if @@ -448,7 +472,6 @@ Sox.Concat:1640156470: : concatenate audio1 audio2 us Ffmpeg.Recordscreen:1640156448: : recordscreen video_size framerate 1440x900 ffvhuff x11grab display default ffmpeg debian alsai mkv aac on 2 Marketing.Memes:1640004912: : east_and_west_shaking_hands_at_the_laying_of_last_rail_union_pacific_railroad_ california_diamond_jubilee_half_dollar_commemorative_obverse _westward_the_course_of_empire_takes_its_way_ and9gctjrnzpkxfnes2bjdrpn5yzi4b56esqqo78sw john_wilkes_booth_wanted_poster_new spinning_jenny_improved_203_marsden phillis_wheatley_frontpiece_1834 boston_tea_party_currier_colored wright_first_flight_1903dec17_ htb1ww_yosni8kjjsspeq6awipxa1 declaration_of_independence_ raising_the_flag_on_iwo_jima _government_printing_office_ edison_and_phonograph_edit1 27s_first_view_of_kentucky poor_richard_almanack_1739 edison_incandescent_lights international_morse_code fwpnw026hobokennjsa0266 apollo_11_lunar_module_ _boston_public_library_ california_clipper_500 battle_of_new_orleans historyofinformation 28john_gast_painting allthatsinteresting launch_test_flight_ 2c_by_john_trumbull 26_clark_stamp_2004 pearlharborwarbirds ford_assembly_line_ cotton_gin_ewm_2007 american_progress_ 28full_restore_115 improved_no2_wagon edisonphonograph warhistoryonline madeonirc128x128 benjaminfranklin emanuel_leutze_ _ten_years_ago_ j38telegraphkey d3ao8sz5crj5i0 fallofthealamo propoganda_43 propoganda_36 propoganda_12 propoganda_06 propoganda_23 propoganda_38 propoganda_42 propoganda_07 propoganda_31 propoganda_22 propoganda_09 propoganda_26 propoganda_01 unitedweserve propoganda_39 liberty_bond_ propoganda_45 _smithsonian lincolntrain _restoration thanksgiving pennsylvania empirecenter philadelphia brownscombe learntoread confederate antislavery firstflight 2c_larger_ viking_pre propaganda recruiting commanding decorative vegetables cloudfront wikipedia wikimedia wordpress speckyboy overboard encrypted 28cropped marketing rationing engraving freeusers together software greeting regiment congress 1910ford airforce february virginia infantry commons content network uploads nonfree poster2 436x640 gstatic support officer landing 507x640 divided against silicon company charles vintage 209x300 victory workers 205x300 soldier channel instead ringing 212x300 211x300 200x300 gazette eggdrop attach yerkes ddoser avenge coding 281819 theyve 1200px images should garden alicdn county flying states burned murals 1188px lewis_ valley 1182px effort modelt ferris https thumb tread crier 800px fault 00047 480px 504px _1913 679px memes 476px acres comes 675px nazis these books 777px ifend 379px 749px rtalk 179th floyd false wheel throw 558px boone alive doxed efnet mills 2017 2018 2019 save know 1862 jpeg from guts mule what them keep copy 28by 2011 wild moon bill join navy capt your 1840 usqp hero wall each _gpn 2003 2016 tbn0 town unix core 40gb ae01 have www jpg org png got ww2 diy joe ask him not 014 cau svg buy _10 _13 win 29 35 5a fd a7 52 cf kf 98 b4 e9 b0 1a 54 9c 5d 0d f7 6d f9 c9 9.Independent:1640004446: : independent software title minds for 9 -TigerVNC.Install:1640001615: TigerVNC.SSH : incomplete everything keylogged passwords including vncserver vncpasswd security tigervnc warning connect install pkg_add desktop viewer tunnel xenodm enable attach rcctl ssvnc start setup like doas want type xfce zero this for png ssh ssl you how can has use be MacScreenSharing.Connect:1640001466: : macscreensharing autocomplete spotlight password connect attach png 9.Partdisk:1640000382: : installation c5064m4ssd2 partitions subdivided suggested following something overwrite sensible probably continue partdisk sectors layout really second 50000 where table would plan9 count there found start allow first again sde0 will just type then like time zero wipe want that data term this prep were and dev adn try yet can fat see not use be if of go dd q Ircfs.RecentChanges:1639816976: : recentchanges december ircfs intro 2021 jrmu 17 at 11 00 pm by @@ -737,8 +760,6 @@ Adium.RecentChanges:1637405038: : recentchanges novem Vmm.AlmaLinux:1637390861: : administrator installation instruction almasetup12 almasetup11 destination installing screenshot almasetup5 almasetup4 almasetup6 almasetup3 dodocrypto almasetup2 almasetup7 almasetup8 almasetup9 configure installer almalinux different selecting highlight localhost presented pressing finished blinking continue standard software password hostname include editing numbers console through proceed options default vmlinuz network gateway netmask example minimal booting attach reboot lastly forget initrd 115200 cursor remove stage2 prefix follow myself insert should length appear enable change x86_64 choose shrink system please serial after ttys0 enter label enjoy later which crash quiet space below first based entry arrow rocky until need 1188 ipv4 wait fccf disk 2602 ipv6 than have that will want note case lets this root menu user main next grow with fill good back your once when line just full text like read till end the png vmm add don saw new tab can iso dvd img key hit 255 now 162 lvm 38 87 hd 48 we 24 by Vmm.DebianIso:1637357747: : 5f6aed67b159d7ccc1a90df33cc8a314aa278728a6f50707ebf10c02e46664e383ca5fa19163b0a1c6a4cb77a39587881584b00b45f512b4a470f1138eaa1801 df9b9c49eaa9298432589d76da87e80d6294be9b partition_offset installation fingerprint sha512sums indication isofloppy checksums debianiso signature perfectly libraries copyright automated keyserver installed certified interface isolinux generate vesamenu libcom32 mkhybrid 115200n8 critical vnconfig priority username download netinst warning unknown console vmlinuz signing libutil changes belongs support include default trusted version primary current already pkg_add cdimage switch0 attempt provide notrunc mkisofs giocher xorriso openbsd memory create append verify initrd normal serial locked kernel ubuntu umount expert lladdr should modify update follow joliet inodes ircnow search others words diffs adtxt ideas label taken quiet false https ifend ttys0 cache qcow2 cdrom amd64 aaron owner 1024m rqtxt count below tried table title there guide match lists vnd0c these gnupg mkdir steps using must made conv this else stop 2021 1997 root boot info then emul doas true work grep recv zero 2880 path disk that home grub into from 2018 make with size jrmu good sat cfg rsa cdt aug gpg vga bin org vmm new etc ftp and you dev vda for did don 000 220 spi are two old c32 41 gz we cp 56 09 ee 36 bb 05 04 mv Yaxim.RecentChanges:1637319686: : recentchanges november connect yaxim 2021 jrmu 19 at 06 58 am by -NodeJS.Install:1637236923: : node_modules contributors successfully pkglocatedb dependency eopenssl30 configure directory completed assembler ambiguous november packages outdated install version updated pkg_add upgrade removed compile openbsd python3 latest choose quirks stable signed choice nodejs libmpc failed switch normal typing gmake local using found 16t18 added sshpk shell https first built which 2021 want wget user bash 0dev next your port lets last zxvf dist egcc none sure that wish 18p3 mpfr more will give info libs need 1lp0 2up4 this 467s done step from for usr man 0p0 bin 0p9 and npm 6p0 can 1p0 etc may 34z gmp old cli npx the 290 v12 org 148 v16 tar now gas 8p0 per lts ok ln by mv 22 52 11 53 we 17 13 33 so gz 15 70 -NodeJS.RecentChanges:1637162143: : recentchanges dodocrypto november install nodejs 2021 17 at 03 13 pm by Pidgin.Connect:1637144335: Xmpp.Xmpp : registrationsuccessful modifyaccount createaccount password networks checkbox remember accounts username multiple existing protocol already servers example connect details bonjour logging welcome enabled created program attach pidgin choose ircnow select domain manage allows simple click https same much xmpp this gadu save silc your time fill more chat into that been free have list open can the has and org png see add new for of Gajim.RecentChanges:1637143713: : recentchanges november connect gajim 2021 jrmu 17 at 08 01 am by Pidgin.RecentChanges:1637143713: : recentchanges november connect pidgin 2021 jrmu 17 at 08 28 am by @@ -758,7 +779,6 @@ Terms.RecentChanges:1636041317: : recentchanges octob Email.RecentChanges:1636041317: : emailandroidemailapp recentchanges hydragyrum october zouheir january outlook august 2021 mkf 16 30 by pm 13 05 at 01 18 37 am 27 Telnet.Http:1636041317: : background chalkboard connection response location charset openbsd content example similar address prefers doctype foreign border telnet family length bottom dashed eeeff1 scheme closed should bad7ff 1e1f21 media httpd found style color title white black comic serif index below twice https enter press font body sans head neue then date host 2021 dark html meta text key 302 you get gmt one 486 1px utf feb css tue 01 28 hr 80 by 14 h1 23 ms Ambassador.Markets:1636041317: : sufficiently successfully disabilities demographics underserved immediately developers mainstream pseudonyms appreciate dissidents accessible ambassador community marketing currently sysadmins slackware neglected anonymity advocates interface technical fediverse religious political education available bandwidth satellite unwilling continue computer software hardware involves mastodon designed american millions movement requires properly strategy internet tracking clients neither network western african eastern markets outside recycle however invaded english upgrade android because openbsd windows latency parents feature limited readers focused example hearing illegal compete quickly grounds hangout privacy element connect europe middle strict social ircnow policy better matrix easily matter vision speech behind refuse google others unable issues easier screen censor dialup poorer target minded gentoo netbsd should harder cannot where users email world parts niche haiku rural often money still habit these china think there 1mbps skill young south adopt safer speak learn drugs total shine allow with hate best foss this vpns that have text slow home fine very more find they free make kids help half porn know rich live asia some save fast high year many our for has dsl key few set who old but nor run usa far org tor by if 20 xp 10 4 -Xfce.Install:1636041317: : startxfce4 underneath programs geometry xsession xconsole command pkg_add systems restart xinitrc install editing comment desktop attach xenodm xclock iconic launch local 50x50 ifend rcctl xterm lines false 80x24 these does doas then seem work echo this some nice fvwm with note etc png x11 out for usr but bin Letsencrypt.RecentChanges:1636041317: : recentchanges letsencrypt miniontoby expired october added 2021 pem 05 at 46 pm Lua.RecentChanges:1636041317: : recentchanges debiankaios minetest october 2021 lua 24 at 10 30 am by Netcat.Http:1636041317: : troubleshooting background connection networking chalkboard indicates openhttpd responses nhostname possible diagnose location redirect valuable content example charset prefers openbsd doctype address foreign dashed family length errors border closed bottom bad7ff server netcat scheme 1e1f21 eeeff1 https found title index style media color serif comic black white occur print moved swiss knife help will text body this been that page font sans your neue html 2021 head dark tool port with date army meta tue www feb the 302 get can web 486 gmt utf css has few 443 may 1px of 23 28 01 14 80 h1 hr by ms nc @@ -773,7 +793,6 @@ Gnus.RecentChanges:1635588647: : recentchanges hydrag Ircnow.Victorycpus:1635581866: : victorycpus attach ircnow Gnus.Connect:1635557527: : gnusencryptedauthinfo automatically gnusauthinfo appropriate application quickstart newsgroups ‘auth’ following gnusgmail emacswiki replacing password specific brackets smtpmail machine address gnus’ content derived license ignored service connect better select method server domain manual nnimap stream email gnupg angle login which items enjoy imaps https under using found your user text with setq file port from used page this some ‘m well will name full node put was org the ssl www may 587 and yet ret com see gpg run cc 9 0 Ircnow.Settler:1635523415: Freedom.Freedom Vps.Vps Shell.Shell Ircnow.Servers Openbsd.Vmmuser Vmm.Configure Vmm.DebianIso Vmm.DevuanIso Vmm.UbuntuIso Minutemin.Bootcamp Ircnow.Goals Ircnow.Minutemin : responsibilities configuration installation experimental recommended billionaire participate oregontrail hypervisor supporting guarantees occasional contribute configured monopolies controlled debianiso ubuntuiso operating minutemin anonymous corporate volunteer community supported devuaniso homestead portfolio marketing personal bootcamp favorite verified training monopoly platform machines tutorial document purchase business accepted proceeds familiar planning offering software warning website openbsd provide freedom digital against network created welcome startup account unix101 servers payment settler vmmuser towards virtual upgrade running through private ircnow option finish ensure charge answer center rfloat future system rigged attach elites resume social claims guides friend mutual inside method purely source staff users shell month media weeks goals there learn using photo equal refer apply dream below email today admin title guest trial agree width build usage 50pct send test that help blog with tech this keep able your find must will 5usd over make code join read love ceos four made life need add can who any one get how and vps see new was don png org by 4 -Ircnow.Milestones:1635512764: : representatives transferring constitution declaration planetofnix recruitment oddprotocol alternative registered ircforever thunderirc milestones sustaining publishing shelltalk bsdforall welcoming operating ownership september lecturify nastycode creating research training ircology archives accounts networks netizens domains october systems mailing finance freeirc drafted future formed ircnow ircfun course issued define number public jujube march repos begin teams break elect 2021 into fork list even self june july yyyy 2019 open 2018 2020 mmm org and set nov cvs up Debian.Nginxphpfpm:1635510376: : implementation configurations technologies repositories fastcgi_pass performance alternative server_name nginxphpfpm extensions successful processing configured additional following copyright available systemctl installed necessary finished features snippets location packages upstream phpinfo contain related restart running include service command enabled example changes virtual version finally default opcache verify better should debian create output modify useful engine loaded listen reboot easily stored syntax built heavy sites error apply files other mysql group ships index point close lines host once php7 sock save just with need html will root next test then nano does some when zend this json curl time unix 2020 code its are you get etc any can apt var www oct cli not nts new v7 v3 80 56 by ok 47 15 ln Debian.RecentChanges:1635509919: : recentchanges october monaco debian nginx 2021 pm by 18 12 at 29 11 50 am Debian.Nginx:1635509880: : master_process configuration documentation documentacion successfully execstartpre server_name performance commercial ├─3816 ├─3817 └─3818 systemctl try_files installed available location specific required reverse enabled similar default further service example systemd verdana welcome support working running address helpful doctype debian active preset cgroup should memory domain daemon listen please online output vendor status reboot worker tahoma family margin loaded slice arial nginx serif width tasks title limit style index sites refer check names there loged after would first setup proxy thank using since html href root body head curl init http sans will font auto 35em page find copy edit this that give path 2021 sbin cest 49ms 1min docs 3813 2201 3815 sudo high user need usr 22s ago you ssh org uri 404 and apt how ● etc web vim www 127 lib fri var cpu see pid 80 cd ls be 10 ip of br 29 2m 14 24 h1 @@ -782,7 +801,6 @@ Vmm.Homerouter:1635268100: Vmm.Configure : cc504c319a4 9.Plan9ini:1635093029: : 1280x800x32 1024x768x16 resolution customize plan9ini thinkpad vgasize monitor default replace value then x200 edit 9fat with for 9fs of Iked.Newconfig:1635090581: IP.Myaddress Openhttpd.Configure : githubusercontent troubleshooting 4skinskywalker malwaredomains username_here interoperable password_here configuration certificates gazellegames installation stevenblack justdomains client_pool information destination permissions configuring blacklists forwarding client_dns connecting configured alternates nameserver remote_gw blocklist newconfig openhttpd interface installed correctly malformed addresses something different parameter newhosts2 newhosts3 myaddress daemonize necessary verbosely processes hostname included user_vpn manually networks security external reformat gambling valuable unwanted outgoing download probably whatever resolver resolves provided provides solution capitole index_en ifconfig openiked consider depends running caching unified unbound example easiest replace command openbsd servers enabled torrent packets entries mirror1 control clients privacy writing tighten ruleset passive dynamic machine warrior virtual freedom lookup mmotti sysctl vpn_id access picked static ircnow ipcomp pihole ext_if needed ignore tagged isakmp device htdocs piracy system rather reload filter censor allows create errors should native secure master banned simple report ikectl mschap public verify obtain point pfctl value users https cause chmod check their inet6 regex final start rcctl taken using files local debug chown lines first about title proto ipsec quick these clean roadw setup where wants valid match macro ikev2 srcid being that used into porn from this like then peer must your zone have upon dhcp make sure will doas bind only note tail with mode nzbs pros site blob turn than base grep stop once anti 0600 crls enc0 over vio0 type find etc tcp put 203 eap var org any 113 may ftp raw key rsa app esp awk udp php ip6 txt pki 509 crt dsi p2p web get 127 way can www off rdr 202 185 121 239 169 177 dl 53 dv ax 10 ah 24 9.Links:1635056976: : covingtoninnovations plan9_desktop stanleylieber pspodcasting franjballest mirtchovski namespaces complexity unix2plan9 wordpress simplicty research helpful shithub postnix inferno entries awesome felloff michael github henesy s9book 9front newbie papers readme https s9fes books index links swtch guide 2019 html blog 2020 acme wiki orib debu part pdf www org t3x fqa cat dan net dev p9 pw 9p us gs 36 -Unrealircd.Install:1635056747: : dependencies ares_process libcares_la unrealircd downloads questions recommend settings makefile writeing changing versions examples tarball extract openbsd install default pkg_add command storage makeing useradd config whoami folder source called delete latest inside should people verify knowen errors switch acures useing recent basic newer https sauce build might gmake fixed clean rerun bunch guide issue click start enter sadly doas exit then soon most this lets fine 1084 have will from them also gets hope just that curl here find want edit time when done code home need over same copy for you too low has can org www dir ask but xzf go be up cp of gz 5 9 9.Keybindings:1635056121: : keybindings backspace character directory returning begining deletes running program current clears insert window moving border kills files whole moves width first line ctrl hold mode list unix what last home esc end one tab of 80 9 1 Terms.Vps:1635012362: : cryptocurrency responsibility cancellation infringement specifically intellectual pornographic information responsible warranties absolutely authorized permission whatsoever complying copyright terminate violation malicious trademark passwords customers guarantee excessive resources technical software received property required identity activity scanning insecure gambling complete breaking harmless accurate illegal content without backups threats network actions whether damages slander support prevent subject account payment service partial refunds anytime billing contact ircnow before amount please agrees report relays cannot miners except result limits stated under above makes email rules sites local occur death plans terms where theft usage fraud their month abuse nodes drugs using libel from fine fair that must spam exit week date give data loss paid does your hold used law own vps org one tor may set by 50 Xdefaults.RecentChanges:1635011544: : recentchanges xdefaults configure october 2021 jrmu 23 at 40 pm by @@ -1005,13 +1023,11 @@ Vmm.VoidIso:1632736037: : githubusercontent sha256sum Pmwiki.Simpleurl:1632736037: : enablefixedurlredirect resolvepagename initialization configuration grouppattern makepagename preg_replace defaultgroup query_string redirecting defaultpage namepattern request_uri certificate defaultname pagepathfmt preg_match containing pageexists normalizes fullchain reference pagenames http_host redirects challenge condition disabling directory simpleurl isenabled location cookbook requests solution settings ext_addr function variable normally fastcgi disable without private slowcgi rewrite uploads openbsd invalid problem current comment missing partial include working encript leetio listen server htdocs pmwiki ircnow solved return egress header global socket static change during found based files abort httpd setup clean order https block strip known types index share check acme root from html stop used hard well 2018 cgit port reyk exit misc mime loop this fpm dev don ssl run php not 404 key etc pem 443 exp usr tls the 302 bin let any pub and was for css get png sdv 13 06 15 08 of 24 80 Bgpd.RecentChanges:1632736037: : recentchanges configure bgpd 2021 jrmu may 03 at 06 26 am by Dig.RecentChanges:1632736037: : recentchanges sarah usage 2021 dig may 04 at 36 am by -Bitlbee.Install:1632736037: Openbsd.Znc : daemoninterface allowaccountadd configuration matrix_no_e2e operpassword installation cypherpunks encryption rocketchat convenient developers installing daemonport undermined myusername mypassword disconnect forkdaemon protocols libpurple generally supported localhost available following messaging connected intercept plaintext sometimes 11234567 optional telegram mastodon compiled checking supports checkout instance nickserv messages register sysadmin settings security directly moreover identify provided accounts _bitlbee packages multiple perfered hostname my_buddy packaged chatting usually namtsui discord version bouncer openbsd example pkg_add replace working runmode because anoncvs besides instead clients matrix2 written matrix3 default flavors another command gateway chating variety require suggest depends however plugins source sm00th server github enable adding jabber create cvsweb ircnow course people record unlike public acting reason itself gmake avoid title types slack fails clone above https after login later bound known buggy often sense first built using gives there write store helps panel named exist chats false query start which rcctl users root will only does want from used your with ones list them join then core this save doas what plan note into next fact that than most they glib json wiki edit have same code 8171 xmpp when org are znc let off can try otr www had msg jid ask 6p1 two see net ssl cgi bin 127 olm via by cd Bitlbee.RecentChanges:1632736037: : recentchanges bitlbee install july 2021 mkf at 07 12 pm by Ircnowd.RecentChanges:1632736037: : recentchanges ircnowd 2021 jrmu may 07 at 01 46 pm by Census.RecentChanges:1632736037: : recentchanges census 2021 jrmu may 07 at 06 pm by Minetest.Addingarenas:1632736037: : arcadeemulationserver pineapple_server_3 server_manager mtschemcreate tremendously mtschemplace installation addingarenas appropriate unescapable irreparably immediately completely coordinate commercial schematic decorated minetest4 locations worldedit uploading subfolder arena_lib replacing terraform computer practice business anything suitable indicate whatever minigame updating familiar download surround settings license restart careful barrier offline minimum correct backups command corrupt double readme author points gitlab schems player enable either before triple tricky easily access choose should worlds please places reason things making where local first enter nodes wrong thick reset https gives speed other check theme there order worng crash spot pos1 then need name that home sure also make away well find pull near like pos2 have your mess copy with maps very puts some does will when tell area menu easy type from made file just save repo look best want use get can but btw see why now has not non 200 log one to is if cd x z Tmux.Share:1632736037: : sharedgroup sessionname sharegroup howtoforge lightgrey different accounts sessions assuming terminal shareds running bgcolor members already between sharing border attach please called socket access screen chgrp https width chmod start users tmux note only have that with rwx the tmp new and may you two add com www do 80 is -Gomuks.Install:1632736037: : recommended cgo_enabled encryption installing packages building compile pkg_add support written archive source github gomuks export simple matrix client tulir https from with refs tags doas olm you xzf tar e2e not tui can ftp is cd gz v0 3 Gomuks.RecentChanges:1632736037: : recentchanges compiling manually packages install compile gomuks better august mster might using than 2021 mkf not zip by am 26 10 is at Syspatch.RecentChanges:1632736037: : recentchanges syspatch june 2021 jrmu 10 04 23 am by Pf.RecentChanges:1632736037: : recentchanges bejelentkezni guide 2021 may pf 17 at 03 37 am by @@ -1020,7 +1036,6 @@ Freedom.Freenode:1632736037: : everything themselves Openbsd.Wordpress:1632736037: : mysql_secure_installation wp_proxy_bypass_hosts wp_proxy_username wp_proxy_password mysql_install_db configuration wp_proxy_host wp_proxy_port introduction downloading corporation application db_password permissions privileges extensions identified connection directory wordpress forwarded available following recommend statement localhost copyright openfiles dedicated resolving php74_fpm accessing activate database actually required affected chrooted packages commands versions combined although location services software opening openbsd restart example mariadb section initial started daemons browser servers plugins welcome headers archive include fastcgi prepare default db_name db_user db_host current monitor imagick release writing easiest enabled present pkg_add within define sample socket mysqld create values finish client covers themes option change second _mysql should placed folder latest listen append unpack readme choose mysqli assume pecl74 behind oracle egress others index chown grant httpd types mkdir clear fetch which query rcctl enter first https style input flush order needs shows setup login there group pages tells share 1024 2048 home this work that both doas none done want curl find exec help from exit next post your only case into sets busy time make will 2000 last 8080 uses step 0711 sure must mime misc path part 12v1 2018 edit www var can web run net now org ftp new not xzf bye cnf way zip usr may max cd sf ln ok gd cp gz 5 6 3 Freenode.Takeover:1632736037: : themselves everything separation community corporate takeovers petitions madeonirc marketing defending ourselves ancestors protocol internet imperial exercise religion property messages arrogant networks silenced governed freenode freedom monster cruelty royalty embrace tyranny created mankind records silicon suppose natural enslave pursues servers valley common absurd subdue belong others admins mother refuge groups tender prince source banned honest attach friend reigns ircnow family things rfloat secure pleads cries sense tells power https which drove tries right cause first havoc above crown where still users title needs birth equal times these 500px quite width like code upon make data look chat from part duty that same does room even fled this grow soon obey open been have born set not but you and has out are png for men few org tis day yet who of by if HostServ.RecentChanges:1632736037: : recentchanges hostserv rules june 2021 jrmu 01 at 08 11 am by -Fiche.Install:1632736037: : troubleshooting certificate challenge directory solusipse fullchain segfaults location pastebin argument cronjob warning install request adduser usermod 1048576 crontab private ircnow htdocs daemon egress github causes server listen known quick proto clone index strip flush block httpd fiche https mkdir chmod chown doas port acme root make pass 7777 well line drop conf this txt www the org key var ssl etc log tcp ip4 ip6 get tls pem 443 for com 20 cd Fdisk.RecentChanges:1632736037: : recentchanges fdisk usage june 2021 jrmu 04 at 05 am by Fiche.RecentChanges:1632736037: : recentchanges install august almajd fiche 2021 25 at pm by Paster.RecentChanges:1632736037: : recentchanges install paster july 2021 jrmu 16 at 45 pm by @@ -1235,7 +1250,6 @@ Marketing.Freedom:1628920394: : liberty_bell_2017a va Minutemin.RecentChanges:1628920394: : recentchanges minutemin questions bootcamp ifconfig february progress training baytuch august server march creed april 2021 jrmu game code july duty mkf 28 by at pm 35 03 06 42 18 29 12 53 04 11 10 08 59 24 33 40 01 26 16 IPv6.RecentChanges:1628920394: : recentchanges overview february ipv6 2021 jrmu 14 at 11 09 am by Thunderbird.RecentChanges:1628920394: : recentchanges thunderbird february connect jrmu 2021 pgp 19 by at pm 09 36 am 44 04 -Webnews.Install:1628920394: Openhttpd.Perl : pack_sockaddr_in troubleshooting oddprotocol quotedprint nntpclient unexpected installdir libraries openhttpd site_perl approach hostname solution conffile webnews example libdata baseurl intspan changes should htdocs base64 create resolv manual normal choose closed newsrc ircnow socket length server daemon local begin wndir sock1 perl5 lines first mkdir dgate chown next cpan want sudo text wrap make then been what tars doas user mime need copy date has usr var cgi eof org www 169 bad arg 102 for two ftp 147 few set etc see you 119 pm gz is mv up cf 3 PuTTY.RecentChanges:1628920394: : recentchanges puttygen connect august jrmu 2021 05 by pm 23 at 09 24 Leafnode.Install:1628920394: : alpha20081229a description sourceforge newsserver everything otherwise attention following usergroup configure leafnode elements download dortmund maintain example openbsd pkg_add between replace already technik install package instead browser restart program because finally extract folder simple groups create krusty should ircnow inedtd delete indetd errors spaces nowait scroll stream select domain please havent inetd rcctl youre posts these local added touch title first bzip2 shtml https copy then dont this sbin make sure doas back will what into with done from wget file also nano lynx tabs else save nntp exit here easy able edit nees beta came many etc too are and put tcp usr not see bz2 dir xf cd go tu if of Znc.RecentChanges:1628920394: : recentchanges bejelentkezni troubleshoot chroot69 install august real back 2021 jrmu july i18n znc may mkf see 06 57 at 03 by 36 am 01 to 05 12 09 29 52 pm 28 11 @@ -1302,7 +1316,6 @@ Vmm.9front:1628489769: : 9front vmm IP.Myaddress:1628356442: : information 0xffffff00 myaddress interface addresses broadcast localhost reachable resolver1 determine external followed ifconfig publicly username multiple probably likewise example netmask replace without records machine current opendns virtual openbsd number device typing domain letter google driver refers always system itself which using lines might begin learn check about title setup short least once will tell your this find have look made myip vio0 more that such want inet real also 168 run txt few com the ns1 dig man can are not 192 has 127 one 255 and of to 10 by Eggdrop.NickServ:1628148425: : nickserv eggdrop Medals.Intro:1628066087: : simpletable outstanding suffering minutemin finishing lifetime specific benefits criteria sortable training minetest service ribbons serving heroism account veteran general webhost gopher silver medals awards result legion border bronze crypto ircnow purple beyond heart latex shell admin class width merit intro honor above going users valor star duty harm nntp roll mail call year name 100 sip dns the for vps one of -Texlive.Install:1627998686: : texlive_texmf insecure install default libexec creates pkg_add helper daemon launch setuid remove system binary 2020p1 local chmod makes _dbus latex this full root doas 0750 rwxr used rwsr apr usr lha the bit 12 36 19 9k 73 to ls so by we Dns.Zonefile:1627982517: : subdomains debugging restarted hopefully redirect fallback zonefile servers stories careful records problem updated changed trains ircnow serial causes issues number beaaaa should horror likes doesn heard grape thing check empty faa1 come 2605 wait 24c2 1ee7 2d52 6400 0030 with 390d jrmu also turn want same yeah each have this name some that such gry has the you lot bad nsd log dig org ohh and var but brb did dns 12 ok of 11 08 09 10 Minutemin.Ifconfig:1627909143: : installations information interfaces 0xffffff00 autoselect 0xff000000 multicast broadcast something prefixlen mentioned minutemin referring dependent allmulti priority hardware ethernet changing software ifconfig chagning loopback promisc network simplex address netmask getting usually adderss scopeid options without running changed besides virtual maximum openbsd status active llprio groups pflog0 egress packet lladdr adding utilty stack inet6 index local flags 33136 using other 32768 exist times shows about which media this like fe80 vio0 enc0 used they will size most 1500 8b43 8049 ipv6 fedd them ee06 2002 ccff 1040 mtu can nat em0 mac and you but set lo0 0x1 141 any 127 0x3 128 78 56 34 bb aa 48 64 by Eggdrop191.RecentChanges:1627900198: : recentchanges eggdrop191 install august 2021 jrmu at 05 07 am by blob - 8ff53c99dbb27fb9c626e14b7e698aeabb2df642 blob + 0afe7d8000675ca6bbbd13872a79185a04915f5b --- wiki.d/9.9gridchan +++ wiki.d/9.9gridchan @@ -1,15 +1,18 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=w3m/0.5.3+git20210102 -author=jrmu +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:68.0) Gecko/20100101 Firefox/68.0 SeaMonkey/2.53.14 +author=mkf charset=UTF-8 csum= ctime=1635241613 -host=38.87.162.8 +host=38.87.162.242 name=9.9gridchan -rev=13 +rev=14 targets= -text=Replace Guest with your username.%0a%0a[@%0a; 9fs tcp!cloud9p.org!9000 /n/chat%0a; cat /n/chat/chat &%0a; while() read | sed '1s/^/Guest → /' >>/n/chat/chat%0a@]%0a%0a(:if false:)%0a[@%0a; srv tcp!cloud9p.org!9000 gridchat /n/chat%0a; cat /n/chat/chat &%0a; while() read | sed '1s/^/Guest _ /' >> /n/chat/chat%0a@]%0a(:ifend:)%0a%0aFrom UNIX:%0a%0aInstall [[https://9fans.github.io/plan9port/|plan9port]].%0a%0aOn OpenBSD:%0a%0a[@%0a$ doas pkg_add plan9port%0a@]%0a%0aOn Linux, you may have to compile from source.%0a%0a%0a[@%0a$ 9 9p -a 'tcp!cloud9p.org!9000' read chat &%0awhile read l; do echo $USER → "$l"%0adone | 9 9p -a 'tcp!cloud9p.org!9000' write chat%0a@]%0a -time=1644878891 +text=Replace Guest with your username.%0a%0a[@%0a; 9fs tcp!cloud9p.org!900 /n/chat%0a; cat /n/chat/chat &%0a; while() read | sed '1s/^/Guest → /' >>/n/chat/chat%0a@]%0a%0a(:if false:)%0a[@%0a; srv tcp!cloud9p.org!900 gridchat /n/chat%0a; cat /n/chat/chat &%0a; while() read | sed '1s/^/Guest → /' >> /n/chat/chat%0a@]%0a(:ifend:)%0a%0aFrom UNIX:%0a%0aInstall [[https://9fans.github.io/plan9port/|plan9port]].%0a%0aOn OpenBSD:%0a%0a[@%0a$ doas pkg_add plan9port%0a@]%0a%0aOn Linux, you may have to compile from source.%0a%0a%0a[@%0a$ 9 9p -a 'tcp!cloud9p.org!900' read chat &%0awhile read l; do echo $USER → "$l"%0adone | 9 9p -a 'tcp!cloud9p.org!900' write chat%0a@]%0a +time=1674217024 +author:1674217024=mkf +diff:1674217024:1644878891:=4c4%0a%3c ; 9fs tcp!cloud9p.org!900 /n/chat%0a---%0a> ; 9fs tcp!cloud9p.org!9000 /n/chat%0a11c11%0a%3c ; srv tcp!cloud9p.org!900 gridchat /n/chat%0a---%0a> ; srv tcp!cloud9p.org!9000 gridchat /n/chat%0a13c13%0a%3c ; while() read | sed '1s/^/Guest → /' >> /n/chat/chat%0a---%0a> ; while() read | sed '1s/^/Guest _ /' >> /n/chat/chat%0a31c31%0a%3c $ 9 9p -a 'tcp!cloud9p.org!900' read chat &%0a---%0a> $ 9 9p -a 'tcp!cloud9p.org!9000' read chat &%0a33c33%0a%3c done | 9 9p -a 'tcp!cloud9p.org!900' write chat%0a---%0a> done | 9 9p -a 'tcp!cloud9p.org!9000' write chat%0a +host:1674217024=38.87.162.242 author:1644878891=jrmu diff:1644878891:1644878804:=18,28d17%0a%3c %0a%3c Install [[https://9fans.github.io/plan9port/|plan9port]].%0a%3c %0a%3c On OpenBSD:%0a%3c %0a%3c [@%0a%3c $ doas pkg_add plan9port%0a%3c @]%0a%3c %0a%3c On Linux, you may have to compile from source.%0a%3c %0a host:1644878891=38.87.162.8 blob - 3204e88a2fcee0557bef0f515b4900da61bf8b7c blob + e14c88f3e9fc5ee96598958156cf157a3160c9b0 --- wiki.d/9.RecentChanges +++ wiki.d/9.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (Windows NT 6.1; rv:68.0) Gecko/20100101 Firefox/68.0 SeaMonkey/2.53.10.2 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:68.0) Gecko/20100101 Firefox/68.0 SeaMonkey/2.53.14 charset=UTF-8 ctime=1631917902 -host=188.210.111.232 +host=38.87.162.242 name=9.RecentChanges -rev=161 -text=* [[9/Ideas]] . . . February 23, 2022, at 05:19 PM by [[~mkf]]: [==]%0a* [[9/Audio]] . . . February 20, 2022, at 08:07 PM by [[~jrmu]]: [==]%0a* [[9/9gridchan]] . . . February 14, 2022, at 10:48 PM by [[~jrmu]]: [==]%0a* [[9/Install]] . . . January 22, 2022, at 06:57 AM by [[~mkf]]: [==]%0a* [[9/Rcpu]] . . . January 17, 2022, at 10:19 PM by [[~jrmu]]: [==]%0a* [[9/9p]] . . . January 17, 2022, at 08:47 PM by [[~mkf]]: [==]%0a* [[9/Ndb]] . . . January 16, 2022, at 06:46 PM by [[~mkf]]: [==]%0a* [[9/Hostowner]] . . . January 06, 2022, at 11:29 AM by [[~mkf]]: [==]%0a* [[9/Drawterm]] . . . January 06, 2022, at 11:16 AM by [[~jrmu]]: [==]%0a* [[9/Authsrv]] . . . January 05, 2022, at 04:59 AM by [[~mkf]]: [=hmm=]%0a* [[9/Chording]] . . . January 03, 2022, at 02:40 PM by [[~jrmu]]: [==]%0a* [[9/9]] . . . December 22, 2021, at 11:30 AM by [[~xfnw]]: [=fix some grammatical errors=]%0a* [[9/Independent]] . . . December 20, 2021, at 12:47 PM by [[~jrmu]]: [==]%0a* [[9/Partdisk]] . . . December 20, 2021, at 11:39 AM by [[~jrmu]]: [==]%0a* [[9/Todo]] . . . December 03, 2021, at 07:52 PM by [[~mkf]]: [==]%0a* [[9/9pfs]] . . . November 24, 2021, at 02:00 PM by [[~mkf]]: [==]%0a* [[9/Stone]] . . . November 04, 2021, at 04:09 PM by [[~meeekeeef]]: [==]%0a* [[9/Zuke]] . . . November 04, 2021, at 04:01 PM by [[~meeekeeef]]: [==]%0a* [[9/Sysupdate]] . . . October 31, 2021, at 10:21 PM by [[~meeekeeef]]: [==]%0a* [[9/Netcat]] . . . October 25, 2021, at 03:40 PM by [[~jrmu]]: [==]%0a* [[9/Plan9ini]] . . . October 24, 2021, at 04:30 PM by [[~jrmu]]: [==]%0a* [[9/Links]] . . . October 24, 2021, at 06:29 AM by [[~mkf]]: [==]%0a* [[9/Keybindings]] . . . October 24, 2021, at 06:15 AM by [[~mkf]]: [=heheheheheh=]%0a* [[9/Ssh]] . . . October 22, 2021, at 12:54 AM by [[~jrmu]]: [==]%0a* [[9/101]] . . . October 20, 2021, at 04:53 PM by [[~jrmu]]: [==]%0a* [[9/Cvsfs]] . . . October 15, 2021, at 12:58 PM by [[~mkf]]: [==]%0a* [[9/JSDrawterm]] . . . September 30, 2021, at 06:06 PM by [[~jrmu]]: [==]%0a* [[9/Fonts]] . . . September 28, 2021, at 05:13 PM by [[~jrmu]]: [==]%0a -time=1645636752 +rev=162 +text=* [[9/9gridchan]] . . . January 20, 2023, at 12:17 PM by [[~mkf]]: [==]%0a* [[9/Ideas]] . . . February 23, 2022, at 05:19 PM by [[~mkf]]: [==]%0a* [[9/Audio]] . . . February 20, 2022, at 08:07 PM by [[~jrmu]]: [==]%0a* [[9/Install]] . . . January 22, 2022, at 06:57 AM by [[~mkf]]: [==]%0a* [[9/Rcpu]] . . . January 17, 2022, at 10:19 PM by [[~jrmu]]: [==]%0a* [[9/9p]] . . . January 17, 2022, at 08:47 PM by [[~mkf]]: [==]%0a* [[9/Ndb]] . . . January 16, 2022, at 06:46 PM by [[~mkf]]: [==]%0a* [[9/Hostowner]] . . . January 06, 2022, at 11:29 AM by [[~mkf]]: [==]%0a* [[9/Drawterm]] . . . January 06, 2022, at 11:16 AM by [[~jrmu]]: [==]%0a* [[9/Authsrv]] . . . January 05, 2022, at 04:59 AM by [[~mkf]]: [=hmm=]%0a* [[9/Chording]] . . . January 03, 2022, at 02:40 PM by [[~jrmu]]: [==]%0a* [[9/9]] . . . December 22, 2021, at 11:30 AM by [[~xfnw]]: [=fix some grammatical errors=]%0a* [[9/Independent]] . . . December 20, 2021, at 12:47 PM by [[~jrmu]]: [==]%0a* [[9/Partdisk]] . . . December 20, 2021, at 11:39 AM by [[~jrmu]]: [==]%0a* [[9/Todo]] . . . December 03, 2021, at 07:52 PM by [[~mkf]]: [==]%0a* [[9/9pfs]] . . . November 24, 2021, at 02:00 PM by [[~mkf]]: [==]%0a* [[9/Stone]] . . . November 04, 2021, at 04:09 PM by [[~meeekeeef]]: [==]%0a* [[9/Zuke]] . . . November 04, 2021, at 04:01 PM by [[~meeekeeef]]: [==]%0a* [[9/Sysupdate]] . . . October 31, 2021, at 10:21 PM by [[~meeekeeef]]: [==]%0a* [[9/Netcat]] . . . October 25, 2021, at 03:40 PM by [[~jrmu]]: [==]%0a* [[9/Plan9ini]] . . . October 24, 2021, at 04:30 PM by [[~jrmu]]: [==]%0a* [[9/Links]] . . . October 24, 2021, at 06:29 AM by [[~mkf]]: [==]%0a* [[9/Keybindings]] . . . October 24, 2021, at 06:15 AM by [[~mkf]]: [=heheheheheh=]%0a* [[9/Ssh]] . . . October 22, 2021, at 12:54 AM by [[~jrmu]]: [==]%0a* [[9/101]] . . . October 20, 2021, at 04:53 PM by [[~jrmu]]: [==]%0a* [[9/Cvsfs]] . . . October 15, 2021, at 12:58 PM by [[~mkf]]: [==]%0a* [[9/JSDrawterm]] . . . September 30, 2021, at 06:06 PM by [[~jrmu]]: [==]%0a* [[9/Fonts]] . . . September 28, 2021, at 05:13 PM by [[~jrmu]]: [==]%0a +time=1674217024 blob - 382282f20e0cb4d2db895503404247414e761dd2 blob + e8d48634e8a1203dedcec6b03d4a7c09397deead --- wiki.d/Biboumi.Install +++ wiki.d/Biboumi.Install @@ -3,139 +3,16 @@ agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko author=mkf charset=UTF-8 csum= -ctime=1637719383 -host=91.185.128.103 +ctime=1674245435 +host=198.251.82.194 name=Biboumi.Install -rev=41 -targets=Openbsd.Ddos,Prosody.Install -text=[[https://biboumi.louiz.org/|Biboumi]] is an XMPP gateway to IRC. Its goal is to let XMPP users use their favorite client to participate in IRC discussions.%0a%0aFeatures:%0a* Unlimited number of XMPP users can connect to an unlimited number of IRC servers%0a* Persistent connections like an IRC bouncer%0a* Basic channel management features%0a* Private chats, notices, CTCP version and ping, IRC colors, and invitations%0a* Channel listing and automatic nickserv identification%0a* Supports TLS to IRC servers%0a* Embedded identd server%0a%0a! Installing with libuuid%0a%0aThis method requires compiling libuuid. however it doesn't require extra programs like git or e2fsprogs.%0aif you installed biboumbi using pervious method '+no need+' to install it using this method%0a%0a!! Installing Dependencies%0a[@%0a$ doas pkg_add cmake botan2 sqlite3 udns%0a@]%0a%0a!! compiling%0a[@%0a$ ftp https://dl.sourceforge.net/project/libuuid/libuuid-1.0.3.tar.gz%0a$ tar xvzf libuuid-1.0.3.tar.gz%0a$ cd libuuid-1.0.3%0a$ ./configure%0a$ make%0a$ doas make install%0a@]%0aand install biboumi%0a[@%0a$ ftp https://git.louiz.org/biboumi/snapshot/biboumi-9.0.tar.xz%0a$ unxz biboumi-9.0.tar.xz%0a$ tar xvf biboumi-9.0.tar%0a$ cd biboumi-9.0%0a@]%0a%0aModify @@CMakeLists.txt@@ file to add @@-L/usr/lib@@ and @@-L/usr/local/lib@@ flags during linking.%0a%0a[@%0a$ sed -i 's/^target_link_libraries(${PROJECT_NAME}/target_link_libraries(${PROJECT_NAME} -L\/usr\/lib -L\/usr\/local\/lib/' CMakeLists.txt%0a@]%0a%0aThen continue configuring then compile biboumi%0a%0a[@%0a$ cmake . -DWITHOUT_{POSTGRESQL,SYSTEMD}=1 && make%0a$ ./biboumi%0a@]%0a%0a! Installing without libuuid%0a!! Installing Dependencies%0a%0aFirst we install the dependencies:%0a%0a[@%0a$ doas pkg_add cmake e2fsprogs sqlite3 libidn udns botan2 git%0a@]%0a%0a!! Building%0a%0aNext, we download, unzip, and extract the tarball; then we build biboumi:%0a%0a[@%0a$ ftp https://git.louiz.org/biboumi/snapshot/biboumi-9.0.tar.xz%0a$ unxz biboumi-9.0.tar.xz%0a$ tar xvf biboumi-9.0.tar%0a$ cd biboumi-9.0%0a@]%0a%0aModify @@CMakeLists.txt@@ file to add @@-L/usr/lib@@ and @@-L/usr/local/lib@@ flags during linking.%0a%0a[@%0a$ sed -i 's/^target_link_libraries(${PROJECT_NAME}/target_link_libraries(${PROJECT_NAME} -L\/usr\/lib -L\/usr\/local\/lib/' CMakeLists.txt%0a@]%0a%0aThen continue configuring then compile biboumi%0a%0a[@%0a$ cmake . -DWITHOUT_{POSTGRESQL,SYSTEMD}=1 && make%0a@]%0a%0a!! Configuring Biboumi%0a%0aHere is a sample configuration:%0a%0a[@%0ahostname=irc.example.com%0apassword=PASSWORD%0axmpp_server_ip=127.0.0.1%0aport=5347%0aadmin=admin@example.com%0arealname_customization=true%0arealname_from_jid=false%0alog_file=/var/log/biboumi.log%0aca_file=/etc/ssl/cert.pem%0aoutgoing_bind=192.0.2.1%0a@]%0ayou can also make biboumi to connect to *only one* server, by adding:%0a[@%0afixed_irc_server=irc.ircnow.org%0a@]%0a%0aMake sure to replace @@irc.example.com@@ with your actual hostname, and replace @@admin@example.com@@ with the admin's actual jid. Replace @@192.0.2.1@@ with your public ([[openbsd/ddos|ddos-filtered]]) IP address.%0a%0asometimes setting @@policy.txt@@ is also required, otherwise you'll be getting errors about TLS:%0a%0a[@%0arequire_cert_revocation_info = false%0ause_ecc_point_compression = true%0a@]%0a%0a!! Configuring XMPP Server%0a%0a!!! Prosody%0a%0aFor [[prosody/install]], you will need to update @@/etc/prosody/prosody.cfg@@:%0a%0a[@%0aComponent "irc.example.com"%0a component_secret = "PASSWORD"%0a@]%0a%0aReplace @@irc.example.com@@ with the hostname above.%0a%0a!! Running Biboumi%0a%0a[@%0a$ mkdir -p ~/.config/biboumi%0a$ ./biboumi%0a@]%0a%0a%0a -time=1672251989 -author:1672251989=mkf -diff:1672251989:1672239847:minor=19c19%0a%3c $ doas pkg_add cmake botan2 sqlite3 udns%0a---%0a> $ doas pkg_add cmake botan2 sqlite3 udns%0a -host:1672251989=91.185.128.103 -author:1672239847=Yonle -diff:1672239847:1672239512:=39,40c39,40%0a%3c Modify @@CMakeLists.txt@@ file to add @@-L/usr/lib@@ and @@-L/usr/local/lib@@ flags during linking.%0a%3c %0a---%0a> Since we're on OpenBSD, You need to modify the @@CMakeLists.txt@@ to put @@-L/usr/lib@@ and @@-L/usr/local/lib@@ flag since @@ld@@ will not find a required static library at @@/usr/local/lib@@ by default.%0a> %0a72c72%0a%3c Modify @@CMakeLists.txt@@ file to add @@-L/usr/lib@@ and @@-L/usr/local/lib@@ flags during linking.%0a---%0a> Since we're on OpenBSD, You need to modify the @@CMakeLists.txt@@ to put @@-L/usr/lib@@ and @@-L/usr/local/lib@@ flag since @@ld@@ will not find a required static library at @@/usr/local/lib@@ by default.%0a -host:1672239847=182.1.48.232 -author:1672239512=Yonle -diff:1672239512:1672239455:=39,40c39,40%0a%3c Since we're on OpenBSD, You need to modify the @@CMakeLists.txt@@ to put @@-L/usr/lib@@ and @@-L/usr/local/lib@@ flag since @@ld@@ will not find a required static library at @@/usr/local/lib@@ by default.%0a%3c %0a---%0a> Since we're on OpenBSD, You need to modify the `CMakeLists.txt` to put `-L/usr/lib` and `-L/usr/local/lib` flag since `ld` will not find a required static library at `/usr/local/lib` by default.%0a> %0a72c72%0a%3c Since we're on OpenBSD, You need to modify the @@CMakeLists.txt@@ to put @@-L/usr/lib@@ and @@-L/usr/local/lib@@ flag since @@ld@@ will not find a required static library at @@/usr/local/lib@@ by default.%0a---%0a> Since we're on OpenBSD, You need to modify the `CMakeLists.txt` to put `-L/usr/lib` and `-L/usr/local/lib` flag since `ld` will not find a required static library at `/usr/local/lib` by default.%0a -host:1672239512=182.1.48.232 -author:1672239455=Yonle -csum:1672239455=Add a section to modify `CMakeLists.txt` file. -diff:1672239455:1672238482:=36a37,38%0a> $ cmake . -DWITHOUT_{POSTGRESQL,SYSTEMD}=1 && make%0a> $ ./biboumi%0a39,40c41,45%0a%3c Since we're on OpenBSD, You need to modify the `CMakeLists.txt` to put `-L/usr/lib` and `-L/usr/local/lib` flag since `ld` will not find a required static library at `/usr/local/lib` by default.%0a%3c %0a---%0a> ! Installing without libuuid%0a> !! Installing Dependencies%0a> %0a> First we install the dependencies:%0a> %0a42c47%0a%3c $ sed -i 's/^target_link_libraries(${PROJECT_NAME}/target_link_libraries(${PROJECT_NAME} -L\/usr\/lib -L\/usr\/local\/lib/' CMakeLists.txt%0a---%0a> $ doas pkg_add cmake e2fsprogs sqlite3 libidn udns botan2 git%0a45,46c50,53%0a%3c Then continue configuring then compile biboumi%0a%3c %0a---%0a> !! Building%0a> %0a> Next, we download, unzip, and extract the tarball; then we build biboumi:%0a> %0a48,80c55,59%0a%3c $ cmake . -DWITHOUT_{POSTGRESQL,SYSTEMD}=1 && make%0a%3c $ ./biboumi%0a%3c @]%0a%3c %0a%3c ! Installing without libuuid%0a%3c !! Installing Dependencies%0a%3c %0a%3c First we install the dependencies:%0a%3c %0a%3c [@%0a%3c $ doas pkg_add cmake e2fsprogs sqlite3 libidn udns botan2 git%0a%3c @]%0a%3c %0a%3c !! Building%0a%3c %0a%3c Next, we download, unzip, and extract the tarball; then we build biboumi:%0a%3c %0a%3c [@%0a%3c $ ftp https://git.louiz.org/biboumi/snapshot/biboumi-9.0.tar.xz%0a%3c $ unxz biboumi-9.0.tar.xz%0a%3c $ tar xvf biboumi-9.0.tar%0a%3c $ cd biboumi-9.0%0a%3c @]%0a%3c %0a%3c Since we're on OpenBSD, You need to modify the `CMakeLists.txt` to put `-L/usr/lib` and `-L/usr/local/lib` flag since `ld` will not find a required static library at `/usr/local/lib` by default.%0a%3c %0a%3c [@%0a%3c $ sed -i 's/^target_link_libraries(${PROJECT_NAME}/target_link_libraries(${PROJECT_NAME} -L\/usr\/lib -L\/usr\/local\/lib/' CMakeLists.txt%0a%3c @]%0a%3c %0a%3c Then continue configuring then compile biboumi%0a%3c %0a%3c [@%0a---%0a> $ ftp https://git.louiz.org/biboumi/snapshot/biboumi-9.0.tar.xz%0a> $ unxz biboumi-9.0.tar.xz%0a> $ tar xvf biboumi-9.0.tar%0a> $ cd biboumi-9.0%0a> $ cmake . -DWITHOUT_{POSTGRESQL,SYSTEMD}=1 && make%0a -host:1672239455=182.1.48.232 -author:1672238482=Yonle -diff:1672238482:1672237321:=24c24%0a%3c $ ftp https://dl.sourceforge.net/project/libuuid/libuuid-1.0.3.tar.gz%0a---%0a> $ ftp https://phoenixnap.dl.sourceforge.net/project/libuuid/libuuid-1.0.3.tar.gz%0a37c37%0a%3c $ cmake . -DWITHOUT_{POSTGRESQL,SYSTEMD}=1 && make%0a---%0a> $ cmake . -DWITHOUT_POSTGRESQL=1 && make%0a59c59%0a%3c $ cmake . -DWITHOUT_{POSTGRESQL,SYSTEMD}=1 && make%0a---%0a> $ cmake . -DWITHOUT_POSTGRESQL=1 && make%0a -host:1672238482=182.1.48.232 -author:1672237321=Yonle -diff:1672237321:1672235459:=47c47%0a%3c $ doas pkg_add cmake e2fsprogs sqlite3 libidn udns botan2 git%0a---%0a> $ doas pkg_add cmake e2fsprogs sqlite3 libidn udns botan2%0a -host:1672237321=182.1.48.232 -author:1672235459=Yonle -csum:1672235459=There's no `git` commands in this article at all -diff:1672235459:1672127923:=47c47%0a%3c $ doas pkg_add cmake e2fsprogs sqlite3 libidn udns botan2%0a---%0a> $ doas pkg_add cmake e2fsprogs sqlite3 libidn udns botan2 git%0a -host:1672235459=182.1.48.232 -author:1672127923=Yonle -csum:1672127923=Fix installing segment -diff:1672127923:1672127695:=37c37%0a%3c $ cmake . -DWITHOUT_POSTGRESQL=1 && make%0a---%0a> $ cmake .. && make%0a -host:1672127923=182.1.4.34 -author:1672127695=Yonle -csum:1672127695=Extract the file first. So you can get into the folder. -diff:1672127695:1662777280:=25,26c25%0a%3c $ tar xvzf libuuid-1.0.3.tar.gz%0a%3c $ cd libuuid-1.0.3%0a---%0a> $ cd libuuid%0a -host:1672127695=182.1.4.34 -author:1662777280=akoizumi -csum:1662777280=fix typos -diff:1662777280:1658219747:minor=30c30%0a%3c and install biboumi%0a---%0a> and install biboumbi%0a37c37%0a%3c $ ./biboumi%0a---%0a> $ ./biboumbi%0a77c77%0a%3c you can also make biboumi to connect to *only one* server, by adding:%0a---%0a> you can also make biboumbi to connect to *only one* server, by adding:%0a -host:1662777280=138.117.22.57 -author:1658219747=mkf -diff:1658219747:1651521600:=84c84%0a%3c sometimes setting @@policy.txt@@ is also required, otherwise you'll be getting errors about TLS:%0a---%0a> policy.txt:%0a -host:1658219747=2.178.149.149 -author:1651521600=mkf -diff:1651521600:1638189868:minor=110a111,136%0a> ! biboumbi with libuuid%0a> This method requires compiling libuuid. however it doesn't require extra programs git or e2fsprogs%0a> if you installed biboumbi using pervious method '+no need+' to install it using this methid%0a> %0a> !! Installing Dependencies%0a> [@%0a> $ doas pkg_add cmake botan2 sqlite3 udns%0a> @]%0a> %0a> !! compiling%0a> [@%0a> $ ftp https://phoenixnap.dl.sourceforge.net/project/libuuid/libuuid-1.0.3.tar.gz%0a> $ cd libuuid%0a> $ ./configure%0a> $ make%0a> $ doas make install%0a> @]%0a> and install biboumbi%0a> [@%0a> $ ftp https://git.louiz.org/biboumi/snapshot/biboumi-9.0.tar.xz%0a> $ unxz biboumi-9.0.tar.xz%0a> $ tar xvf biboumi-9.0.tar%0a> $ cd biboumi-9.0%0a> $ cmake .. && make%0a> $ ./biboumbi%0a> @]%0a -host:1651521600=91.185.151.161 -author:1638189868=mkf -diff:1638189868:1638189762:=12,40d11%0a%3c ! Installing with libuuid%0a%3c %0a%3c This method requires compiling libuuid. however it doesn't require extra programs like git or e2fsprogs.%0a%3c if you installed biboumbi using pervious method '+no need+' to install it using this method%0a%3c %0a%3c !! Installing Dependencies%0a%3c [@%0a%3c $ doas pkg_add cmake botan2 sqlite3 udns%0a%3c @]%0a%3c %0a%3c !! compiling%0a%3c [@%0a%3c $ ftp https://phoenixnap.dl.sourceforge.net/project/libuuid/libuuid-1.0.3.tar.gz%0a%3c $ cd libuuid%0a%3c $ ./configure%0a%3c $ make%0a%3c $ doas make install%0a%3c @]%0a%3c and install biboumbi%0a%3c [@%0a%3c $ ftp https://git.louiz.org/biboumi/snapshot/biboumi-9.0.tar.xz%0a%3c $ unxz biboumi-9.0.tar.xz%0a%3c $ tar xvf biboumi-9.0.tar%0a%3c $ cd biboumi-9.0%0a%3c $ cmake .. && make%0a%3c $ ./biboumbi%0a%3c @]%0a%3c %0a%3c ! Installing without libuuid%0a -host:1638189868=188.210.114.32 -author:1638189762=mkf -csum:1638189762=small changes -diff:1638189762:1637937266:=44c44%0a%3c log_file=/var/log/biboumi.log%0a---%0a> log_file=%0a47,50d46%0a%3c @]%0a%3c you can also make biboumbi to connect to *only one* server, by adding:%0a%3c [@%0a%3c fixed_irc_server=irc.ircnow.org%0a -host:1638189762=188.210.114.32 -author:1637937266=jrmu -diff:1637937266:1637936531:= -host:1637937266=198.251.82.194 -author:1637936531=jrmu -diff:1637936531:1637935983:=65c65%0a%3c Component "irc.example.com"%0a---%0a> Component "irc.ircnow.org"%0a68,69d67%0a%3c %0a%3c Replace @@irc.example.com@@ with the hostname above.%0a -host:1637936531=198.251.82.194 -author:1637935983=jrmu -diff:1637935983:1637935858:=37c37%0a%3c hostname=irc.example.com%0a---%0a> hostname=irc.ircnow.org%0a41c41%0a%3c admin=admin@example.com%0a---%0a> admin=admin@ircnow.org%0a49c49%0a%3c Make sure to replace @@irc.example.com@@ with your actual hostname, and replace @@admin@example.com@@ with the admin's actual jid. Replace @@192.0.2.1@@ with your public ([[openbsd/ddos|ddos-filtered]]) IP address.%0a---%0a> Replace @@192.0.2.1@@ with your public ([[openbsd/ddos|ddos-filtered]]) IP address.%0a -host:1637935983=198.251.82.194 -author:1637935858=jrmu -diff:1637935858:1637934770:=50,56d49%0a%3c %0a%3c policy.txt:%0a%3c %0a%3c [@%0a%3c require_cert_revocation_info = false%0a%3c use_ecc_point_compression = true%0a%3c @]%0a -host:1637935858=198.251.82.194 -author:1637934770=jrmu -diff:1637934770:1637934697:=50,60d49%0a%3c %0a%3c !! Configuring XMPP Server%0a%3c %0a%3c !!! Prosody%0a%3c %0a%3c For [[prosody/install]], you will need to update @@/etc/prosody/prosody.cfg@@:%0a%3c %0a%3c [@%0a%3c Component "irc.ircnow.org"%0a%3c component_secret = "PASSWORD"%0a%3c @]%0a -host:1637934770=198.251.82.194 -author:1637934697=jrmu -diff:1637934697:1637933116:= -host:1637934697=198.251.82.194 -author:1637933116=jrmu -diff:1637933116:1637931964:=46c46%0a%3c outgoing_bind=192.0.2.1%0a---%0a> outgoing_bind=198.251.82.194%0a48,49d47%0a%3c %0a%3c Replace @@192.0.2.1@@ with your public ([[openbsd/ddos|ddos-filtered]]) IP address.%0a -host:1637933116=198.251.82.194 -author:1637931964=jrmu -diff:1637931964:1637910617:=5c5%0a%3c * Persistent connections like an IRC bouncer%0a---%0a> * Persistent connections, so it behave like an IRC bouncer%0a7c7%0a%3c * Private chats, notices, CTCP version and ping, IRC colors, and invitations%0a---%0a> * Private chats, notices, CTCP version and ping, IRC colors, invitations%0a14,15d13%0a%3c First we install the dependencies:%0a%3c %0a22,23d19%0a%3c Next, we download, unzip, and extract the tarball; then we build biboumi:%0a%3c %0a34,35c30,31%0a%3c Here is a sample configuration:%0a%3c %0a---%0a> !! Running Biboumi%0a> %0a37,52c33,36%0a%3c hostname=irc.ircnow.org%0a%3c password=PASSWORD%0a%3c xmpp_server_ip=127.0.0.1%0a%3c port=5347%0a%3c admin=admin@ircnow.org%0a%3c realname_customization=true%0a%3c realname_from_jid=false%0a%3c log_file=%0a%3c ca_file=/etc/ssl/cert.pem%0a%3c outgoing_bind=198.251.82.194%0a%3c @]%0a%3c %0a%3c !! Running Biboumi%0a%3c %0a%3c [@%0a%3c $ mkdir -p ~/.config/biboumi%0a---%0a> $ doas mkdir /etc/ssl/certs/%0a> $ doas ln -s /etc/ssl/cert.pem /etc/ssl/certs/ca-bundle.crt%0a> $ mkdir -p .config/biboumi%0a> $ ./biboumi%0a -host:1637931964=198.251.82.194 -author:1637910617=jrmu -diff:1637910617:1637909375:=33,34d32%0a%3c $ doas mkdir /etc/ssl/certs/%0a%3c $ doas ln -s /etc/ssl/cert.pem /etc/ssl/certs/ca-bundle.crt%0a -host:1637910617=38.87.162.8 -author:1637909375=jrmu -diff:1637909375:1637756267:=33d32%0a%3c $ mkdir -p .config/biboumi%0a -host:1637909375=38.87.162.8 -author:1637756267=mkf -diff:1637756267:1637756049:=42c42%0a%3c $ doas pkg_add cmake botan2 sqlite3 udns%0a---%0a> $ doas pkg_add cmake botan2 %0a -host:1637756267=198.251.81.133 -author:1637756049=mkf -diff:1637756049:1637754910:=35,62d34%0a%3c %0a%3c ! biboumbi with libuuid%0a%3c This method requires compiling libuuid. however it doesn't require extra programs git or e2fsprogs%0a%3c if you installed biboumbi using pervious method '+no need+' to install it using this methid%0a%3c %0a%3c !! Installing Dependencies%0a%3c [@%0a%3c $ doas pkg_add cmake botan2 %0a%3c @]%0a%3c %0a%3c !! compiling%0a%3c [@%0a%3c $ ftp https://phoenixnap.dl.sourceforge.net/project/libuuid/libuuid-1.0.3.tar.gz%0a%3c $ cd libuuid%0a%3c $ ./configure%0a%3c $ make%0a%3c $ doas make install%0a%3c @]%0a%3c and install biboumbi%0a%3c [@%0a%3c $ ftp https://git.louiz.org/biboumi/snapshot/biboumi-9.0.tar.xz%0a%3c $ unxz biboumi-9.0.tar.xz%0a%3c $ tar xvf biboumi-9.0.tar%0a%3c $ cd biboumi-9.0%0a%3c $ cmake .. && make%0a%3c $ ./biboumbi%0a%3c @]%0a%3c %0a -host:1637756049=198.251.81.133 -author:1637754910=jrmu -diff:1637754910:1637754608:=25,33c25%0a%3c $ cmake . -DWITHOUT_POSTGRESQL=1 && make%0a%3c @]%0a%3c %0a%3c !! Configuring Biboumi%0a%3c %0a%3c !! Running Biboumi%0a%3c %0a%3c [@%0a%3c $ ./biboumi%0a---%0a> $ cmake . -DWITHOUT_POSTGRESQL=1 && make && ./biboumi%0a -host:1637754910=38.87.162.8 -author:1637754608=jrmu -diff:1637754608:1637754365:=25c25,27%0a%3c $ cmake . -DWITHOUT_POSTGRESQL=1 && make && ./biboumi%0a---%0a> $ mkdir build && cd build/%0a> $ cmake .. -DWITHOUT_POSTGRESQL=1%0a> $ make && ./biboumi%0a -host:1637754608=198.251.82.194 -author:1637754365=jrmu -diff:1637754365:1637754049:=15c15%0a%3c $ doas pkg_add cmake e2fsprogs sqlite3 libidn udns botan2 git%0a---%0a> $ doas pkg_add cmake e2fsprogs sqlite3 libidn udns botan2%0a -host:1637754365=198.251.82.194 -author:1637754049=jrmu -diff:1637754049:1637753659:=25,27c25%0a%3c $ mkdir build && cd build/%0a%3c $ cmake .. -DWITHOUT_POSTGRESQL=1%0a%3c $ make && ./biboumi%0a---%0a> $ cmake . && make && ./biboumi%0a -host:1637754049=198.251.82.194 -author:1637753659=jrmu -diff:1637753659:1637752539:=15c15%0a%3c $ doas pkg_add cmake e2fsprogs sqlite3 libidn udns botan2%0a---%0a> $ doas pkg_add cmake e2fsprogs sqlite3 libidn udns botan%0a -host:1637753659=198.251.82.194 -author:1637752539=jrmu -diff:1637752539:1637752491:=15c15%0a%3c $ doas pkg_add cmake e2fsprogs sqlite3 libidn udns botan%0a---%0a> $ doas pkg_add cmake e2fsprogs sqlite3 libidn botan%0a -host:1637752539=198.251.82.194 -author:1637752491=jrmu -diff:1637752491:1637752419:=15c15%0a%3c $ doas pkg_add cmake e2fsprogs sqlite3 libidn botan%0a---%0a> $ doas pkg_add cmake e2fsprogs sqlite3 libidn%0a -host:1637752491=198.251.82.194 -author:1637752419=jrmu -diff:1637752419:1637752351:=15c15%0a%3c $ doas pkg_add cmake e2fsprogs sqlite3 libidn%0a---%0a> $ doas pkg_add cmake e2fsprogs sqlite3%0a -host:1637752419=198.251.82.194 -author:1637752351=jrmu -diff:1637752351:1637751576:=15c15%0a%3c $ doas pkg_add cmake e2fsprogs sqlite3%0a---%0a> $ doas pkg_add cmake e2fsprogs%0a -host:1637752351=198.251.82.194 -author:1637751576=jrmu -diff:1637751576:1637751567:=12,13d11%0a%3c !! Installing Dependencies%0a%3c %0a15,20d12%0a%3c $ doas pkg_add cmake e2fsprogs%0a%3c @]%0a%3c %0a%3c !! Building%0a%3c %0a%3c [@%0a24,25d15%0a%3c $ cd biboumi-9.0%0a%3c $ cmake . && make && ./biboumi%0a -host:1637751576=198.251.82.194 -author:1637751567=jrmu -diff:1637751567:1637719770:= -host:1637751567=198.251.82.194 -author:1637719770=jrmu -diff:1637719770:1637719755:=4,10c4,10%0a%3c * Unlimited number of XMPP users can connect to an unlimited number of IRC servers%0a%3c * Persistent connections, so it behave like an IRC bouncer%0a%3c * Basic channel management features%0a%3c * Private chats, notices, CTCP version and ping, IRC colors, invitations%0a%3c * Channel listing and automatic nickserv identification%0a%3c * Supports TLS to IRC servers%0a%3c * Embedded identd server%0a---%0a> # Unlimited number of XMPP users can connect to an unlimited number of IRC servers%0a> # Persistent connections, so it behave like an IRC bouncer%0a> # Basic channel management features%0a> # Private chats, notices, CTCP version and ping, IRC colors, invitations%0a> # Channel listing and automatic nickserv identification%0a> # Supports TLS to IRC servers%0a> # Embedded identd server%0a -host:1637719770=198.251.82.194 -author:1637719755=jrmu -diff:1637719755:1637719457:=1,11d0%0a%3c [[https://biboumi.louiz.org/|Biboumi]] is an XMPP gateway to IRC. Its goal is to let XMPP users use their favorite client to participate in IRC discussions.%0a%3c %0a%3c Features:%0a%3c # Unlimited number of XMPP users can connect to an unlimited number of IRC servers%0a%3c # Persistent connections, so it behave like an IRC bouncer%0a%3c # Basic channel management features%0a%3c # Private chats, notices, CTCP version and ping, IRC colors, invitations%0a%3c # Channel listing and automatic nickserv identification%0a%3c # Supports TLS to IRC servers%0a%3c # Embedded identd server%0a%3c %0a -host:1637719755=198.251.82.194 -author:1637719457=jrmu -diff:1637719457:1637719383:=3,4d2%0a%3c $ unxz biboumi-9.0.tar.xz%0a%3c $ tar xvf biboumi-9.0.tar%0a -host:1637719457=198.251.82.194 -author:1637719383=jrmu -diff:1637719383:1637719383:=1,3d0%0a%3c [@%0a%3c $ ftp https://git.louiz.org/biboumi/snapshot/biboumi-9.0.tar.xz%0a%3c @]%0a -host:1637719383=198.251.82.194 +rev=2 +targets= +text=(:redirect Openbsd.Biboumi status=301:) +time=1674245447 +author:1674245447=mkf +diff:1674245447:1674245435:=1c1%0a%3c (:redirect Openbsd.Biboumi status=301:)%0a\ No newline at end of file%0a---%0a> (:redirect Openbsd.Biboumbi status=301:)%0a\ No newline at end of file%0a +host:1674245447=198.251.82.194 +author:1674245435=mkf +diff:1674245435:1674245435:=1d0%0a%3c (:redirect Openbsd.Biboumbi status=301:)%0a\ No newline at end of file%0a +host:1674245435=198.251.82.194 blob - 6188008727cf0ef362dbf7a7c9b1da99e458316e blob + c68ced73d576ec71698976031d70223b2764172f --- wiki.d/Biboumi.RecentChanges +++ wiki.d/Biboumi.RecentChanges @@ -2,8 +2,8 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 charset=UTF-8 ctime=1637719383 -host=91.185.128.103 +host=198.251.82.194 name=Biboumi.RecentChanges -rev=41 -text=* [[Biboumi/Install]] . . . December 28, 2022, at 06:26 PM by [[~mkf]]: [==]%0a -time=1672251989 +rev=43 +text=* [[Biboumi/Install]] . . . January 20, 2023, at 08:10 PM by [[~mkf]]: [==]%0a +time=1674245447 blob - b4d17febc4e9065d6e28d40c54344b4831d333c1 blob + 56d890ea4ad16c88dd687067825ea5e7aef511cc --- wiki.d/Bitlbee.Install +++ wiki.d/Bitlbee.Install @@ -1,30 +1,15 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 author=mkf charset=UTF-8 csum= -ctime=1620357579 -host=188.210.102.116 +ctime=1674239761 +host=198.251.82.194 name=Bitlbee.Install -rev=5 -targets=Openbsd.Znc -text=(:title Install Bitlbee:)%0a%0a[[https://www.bitlbee.org/|Bitlbee]] is a gateway from IRC clients to [[https://wiki.bitlbee.org/|a variety of other protocols]], by acting like a server for IRC clients and a client for other protocols. For example, you can use Bitlbee to connect your perfered IRC client to Telegram, Discord, or Slack.%0a%0aThe core of bitlbee itself is written in C.%0a%0a!! Installation and configuration%0aFirst, let's install the package:%0a[@%0a$ doas pkg_add bitlbee-3.6p1-libpurple%0a@]%0a%0a'''Note''': There are multiple flavors of bitlbee:%0a%0a'''bitlbee-libpurple''' is bitlbee compiled with libpurple support. This is what we want because it supports the most protocols.%0a%0a'''bitlbee-otr''' is bitlbee compiled with Off The Record ('''OTR''') encryption support. However, the developers suggest not installing OTR version of bitlbee if you plan to provide a public bitlbee instance. This is because the encryption provided by [[https://otr.cypherpunks.ca/|OTR]] (Off-the-Record) is undermined by the fact that the sysadmin can intercept the messages in plaintext. It gives a false sense of security. Moreover, OTR messaging is often fails when the same account is used with other XMPP clients besides bitlbee.%0a%0abitlbee-libpurple-otr is bitlbee with OTR and libpurple support. We avoid it for the same reason as above.%0a%0aAfter installation edit /etc/bitlbee/bitlbee.conf:%0a%0a[@%0aRunMode = ForkDaemon%0aUser = _bitlbee%0a# Bitlbee will only be bound to localhost on port 8171%0aDaemonInterface = 127.0.0.1%0aDaemonPort = 8171%0aOperPassword = password%0aAllowAccountAdd 1%0aHostName = example.com%0a@]%0a%0aReplace @@password@@ with your own password. We set bitlbee to be bound to localhost on port 8171, which users of [[openbsd/znc|our bouncer]] will be able to connect to, because there is no SSL support in bitlbee (unlike ZNC).%0a%0aTo start bitlbee:%0a%0a[@%0a$ doas rcctl enable bitlbee%0a$ doas rcctl start bitlbee%0a@]%0a%0a!! Discord Support%0a%0aUse [[https://github.com/sm00th/bitlbee-discord|sm00th's bitlbee-discord]] plugin. Here is a [[https://www.namtsui.com/cgi-bin/cvsweb/ports/net/bitlbee-discord/|convenient port]] provided by namtsui:%0a%0a[@%0a$ cvs -d anoncvs@namtsui.com:/cvs checkout -P ports/net/bitlbee-discord/%0a@]%0a%0a!! Telegram Support%0a%0a$ doas pkg_add telegram-purple%0a%0a!! Matrix Support%0a%0aFrom packages:%0a%0aNote: packaged version of purple-matrix is not working with bitlbee, so we have to install it from source instead.%0a%0a[@%0a$ doas pkg_add purple-matrix%0a@]%0a%0aFrom source:%0a%0a[@%0a$ doas pkg_add olm glib json-glib%0a$ cd ~/%0a$ git clone https://github.com/matrix-org/purple-matrix.git%0a$ cd purple-matrix%0a$ gmake MATRIX_NO_E2E=1%0a$ doas gmake install%0a@]%0a%0a!! RocketChat support%0a[@%0a$ doas pkg_add purple-rocketchat%0a@]%0a%0a!! Mastodon support%0a[@%0a$ doas pkg_add bitlbee-mastodon%0a@]%0a!! Adding accounts%0aconnect with your IRC client to your bitlbee server, this usually will be localhost, then join &bitlbee (not #bitlbee), you can see your buddy list or generally your chats with people in there. by default only 'root' user exist in there. root can used as a configuration panel to bitlbee.%0a%0afirst let's register your account, this will helps to store your settings.%0a[@%0aregister %3cpassword>%0a@]%0athen save it.%0a[@%0asave%0a@]%0a%0anext time you connected into bitlbee, you can login via NickServ or write directly in &bitlbee%0a[@%0aidentify %3cpassword>%0a@]%0a%0acreate your account using following command:%0a[@%0aaccount add %3cprotocol> %3cusername> [password] [server]%0a@]%0apassword and server are optional and depends on the protocol, for example, telegram does not require them by default.%0afor protocol, there are two types of protocols, ones are supported by bitlbee and ones are supported by libpurple.%0afor checking bitlbee built-in protocols:%0a[@%0ahelp plugins%0a@]%0a%0aand for checking available protocols supported by libpurple:%0a[@%0ahelp purple%0a@]%0a%0athe @@add@@ command by default gives a id to your account by the protocol name, for example if you add a matrix account it id will be 'matrix', if you had more than one matrix account, they will be named like matrix2, matrix3 and so on.%0a%0ayou can check your accounts using %0a[@%0aaccount list%0a@] %0a%0alet's add a jabber account:%0a[@%0aaccount add jabber myusername@ircnow.org MyPassword%0a@]%0aof course, replace myusername@ircnow.org with your JID and @@MyPassword@@ with your password%0a%0aanother example for telegram:%0a[@%0aaccount add telegram +11234567%0a@]%0ait will ask for login code later.%0a%0aNote: telegram-purple is known to be buggy and can't connect to telegram sometimes. try to disconnect using following command:%0a%0a[@%0aaccount %3cid> off%0aaccount %3cid> on%0a@]%0a!! chatting%0aafter adding your accounts, you can start chating using msg or query command, for example%0a[@%0a/query my_buddy%0a@]%0awill open a query with my_buddy user. if you want to message your buddy in jabber, do following%0a[@%0a/query JID%0a@] -time=1626894721 -title=Install Bitlbee -author:1626894721=mkf -diff:1626894721:1622788251:minor=3,4c3,4%0a%3c [[https://www.bitlbee.org/|Bitlbee]] is a gateway from IRC clients to [[https://wiki.bitlbee.org/|a variety of other protocols]], by acting like a server for IRC clients and a client for other protocols. For example, you can use Bitlbee to connect your perfered IRC client to Telegram, Discord, or Slack.%0a%3c %0a---%0a> [[https://www.bitlbee.org/|Bitlbee]] is a gateway from IRC clients to [[https://wiki.bitlbee.org/|a variety of other protocols]], by acting like a server for IRC clients and a client for those other networks. For example, you can use Bitlbee to connect your perfered IRC client to many popular protocols, such as Telegram, Discord, or Slack.%0a> %0a13,14c13,14%0a%3c '''Note''': There are multiple flavors of bitlbee:%0a%3c %0a---%0a> '''Note''': There are multiple versions of bitlbee:%0a> %0a34,35c34,35%0a%3c Replace @@password@@ with your own password. We set bitlbee to be bound to localhost on port 8171, which users of [[openbsd/znc|our bouncer]] will be able to connect to, because there is no SSL support in bitlbee (unlike ZNC).%0a%3c %0a---%0a> Replace @@password@@ with your own password. We set bitlbee to be bound to localhost on port 8171, which users of [[openbsd/znc|our bouncer]] will be able to connect to, because remote connections of bitlbee server can't support SSL (unlike ZNC).%0a> %0a102c102%0a%3c create your account using following command:%0a---%0a> create your account using following command%0a113c113%0a%3c and for checking available protocols supported by libpurple:%0a---%0a> and for checking avaliable protocols supported by libpurple:%0a127c127%0a%3c account add jabber myusername@ircnow.org MyPassword%0a---%0a> account add jabber myusername@ircnow.org MyVerySecurePassword%0a129c129%0a%3c of course, replace myusername@ircnow.org with your JID and @@MyPassword@@ with your password%0a---%0a> of course, replace myusername@ircnow.org with your JID and @@MyVerySecurePassword@@ with your password (maybe YourVerySecurePassword? :] )%0a -host:1626894721=188.210.102.116 -author:1622788251=jrmu -diff:1622788251:1621147724:=1,8c1,4%0a%3c (:title Install Bitlbee:)%0a%3c %0a%3c [[https://www.bitlbee.org/|Bitlbee]] is a gateway from IRC clients to [[https://wiki.bitlbee.org/|a variety of other protocols]], by acting like a server for IRC clients and a client for those other networks. For example, you can use Bitlbee to connect your perfered IRC client to many popular protocols, such as Telegram, Discord, or Slack.%0a%3c %0a%3c The core of bitlbee itself is written in C.%0a%3c %0a%3c !! Installation and configuration%0a%3c First, let's install the package:%0a---%0a> bitlbee is a custom irc server that can act a IM (and libpurple) client, you can use it for connecting to XMPP, twitter, discord, Matrix and telegram.%0a> %0a> for installing%0a> %0a10c6,14%0a%3c $ doas pkg_add bitlbee-3.6p1-libpurple%0a---%0a> $ doas pkg_add bitlbee%0a> quirks-3.442 signed on 2021-04-25T17:01:22Z%0a> Ambiguous: choose package for bitlbee%0a> a 0: %3cNone>%0a> 1: bitlbee-3.6p1%0a> 2: bitlbee-3.6p1-libpurple%0a> 3: bitlbee-3.6p1-libpurple-otr%0a> 4: bitlbee-3.6p1-otr%0a> Your choice: 2%0a12,151c16,20%0a%3c %0a%3c '''Note''': There are multiple versions of bitlbee:%0a%3c %0a%3c '''bitlbee-libpurple''' is bitlbee compiled with libpurple support. This is what we want because it supports the most protocols.%0a%3c %0a%3c '''bitlbee-otr''' is bitlbee compiled with Off The Record ('''OTR''') encryption support. However, the developers suggest not installing OTR version of bitlbee if you plan to provide a public bitlbee instance. This is because the encryption provided by [[https://otr.cypherpunks.ca/|OTR]] (Off-the-Record) is undermined by the fact that the sysadmin can intercept the messages in plaintext. It gives a false sense of security. Moreover, OTR messaging is often fails when the same account is used with other XMPP clients besides bitlbee.%0a%3c %0a%3c bitlbee-libpurple-otr is bitlbee with OTR and libpurple support. We avoid it for the same reason as above.%0a%3c %0a%3c After installation edit /etc/bitlbee/bitlbee.conf:%0a%3c %0a%3c [@%0a%3c RunMode = ForkDaemon%0a%3c User = _bitlbee%0a%3c # Bitlbee will only be bound to localhost on port 8171%0a%3c DaemonInterface = 127.0.0.1%0a%3c DaemonPort = 8171%0a%3c OperPassword = password%0a%3c AllowAccountAdd 1%0a%3c HostName = example.com%0a%3c @]%0a%3c %0a%3c Replace @@password@@ with your own password. We set bitlbee to be bound to localhost on port 8171, which users of [[openbsd/znc|our bouncer]] will be able to connect to, because remote connections of bitlbee server can't support SSL (unlike ZNC).%0a%3c %0a%3c To start bitlbee:%0a%3c %0a%3c [@%0a%3c $ doas rcctl enable bitlbee%0a%3c $ doas rcctl start bitlbee%0a%3c @]%0a%3c %0a%3c !! Discord Support%0a%3c %0a%3c Use [[https://github.com/sm00th/bitlbee-discord|sm00th's bitlbee-discord]] plugin. Here is a [[https://www.namtsui.com/cgi-bin/cvsweb/ports/net/bitlbee-discord/|convenient port]] provided by namtsui:%0a%3c %0a%3c [@%0a%3c $ cvs -d anoncvs@namtsui.com:/cvs checkout -P ports/net/bitlbee-discord/%0a%3c @]%0a%3c %0a%3c !! Telegram Support%0a%3c %0a%3c $ doas pkg_add telegram-purple%0a%3c %0a%3c !! Matrix Support%0a%3c %0a%3c From packages:%0a%3c %0a%3c Note: packaged version of purple-matrix is not working with bitlbee, so we have to install it from source instead.%0a%3c %0a%3c [@%0a%3c $ doas pkg_add purple-matrix%0a%3c @]%0a%3c %0a%3c From source:%0a%3c %0a%3c [@%0a%3c $ doas pkg_add olm glib json-glib%0a%3c $ cd ~/%0a%3c $ git clone https://github.com/matrix-org/purple-matrix.git%0a%3c $ cd purple-matrix%0a%3c $ gmake MATRIX_NO_E2E=1%0a%3c $ doas gmake install%0a%3c @]%0a%3c %0a%3c !! RocketChat support%0a%3c [@%0a%3c $ doas pkg_add purple-rocketchat%0a%3c @]%0a%3c %0a%3c !! Mastodon support%0a%3c [@%0a%3c $ doas pkg_add bitlbee-mastodon%0a%3c @]%0a%3c !! Adding accounts%0a%3c connect with your IRC client to your bitlbee server, this usually will be localhost, then join &bitlbee (not #bitlbee), you can see your buddy list or generally your chats with people in there. by default only 'root' user exist in there. root can used as a configuration panel to bitlbee.%0a%3c %0a%3c first let's register your account, this will helps to store your settings.%0a%3c [@%0a%3c register %3cpassword>%0a%3c @]%0a%3c then save it.%0a%3c [@%0a%3c save%0a%3c @]%0a%3c %0a%3c next time you connected into bitlbee, you can login via NickServ or write directly in &bitlbee%0a%3c [@%0a%3c identify %3cpassword>%0a%3c @]%0a%3c %0a%3c create your account using following command%0a%3c [@%0a%3c account add %3cprotocol> %3cusername> [password] [server]%0a%3c @]%0a%3c password and server are optional and depends on the protocol, for example, telegram does not require them by default.%0a%3c for protocol, there are two types of protocols, ones are supported by bitlbee and ones are supported by libpurple.%0a%3c for checking bitlbee built-in protocols:%0a%3c [@%0a%3c help plugins%0a%3c @]%0a%3c %0a%3c and for checking avaliable protocols supported by libpurple:%0a%3c [@%0a%3c help purple%0a%3c @]%0a%3c %0a%3c the @@add@@ command by default gives a id to your account by the protocol name, for example if you add a matrix account it id will be 'matrix', if you had more than one matrix account, they will be named like matrix2, matrix3 and so on.%0a%3c %0a%3c you can check your accounts using %0a%3c [@%0a%3c account list%0a%3c @] %0a%3c %0a%3c let's add a jabber account:%0a%3c [@%0a%3c account add jabber myusername@ircnow.org MyVerySecurePassword%0a%3c @]%0a%3c of course, replace myusername@ircnow.org with your JID and @@MyVerySecurePassword@@ with your password (maybe YourVerySecurePassword? :] )%0a%3c %0a%3c another example for telegram:%0a%3c [@%0a%3c account add telegram +11234567%0a%3c @]%0a%3c it will ask for login code later.%0a%3c %0a%3c Note: telegram-purple is known to be buggy and can't connect to telegram sometimes. try to disconnect using following command:%0a%3c %0a%3c [@%0a%3c account %3cid> off%0a%3c account %3cid> on%0a%3c @]%0a%3c !! chatting%0a%3c after adding your accounts, you can start chating using msg or query command, for example%0a%3c [@%0a%3c /query my_buddy%0a%3c @]%0a%3c will open a query with my_buddy user. if you want to message your buddy in jabber, do following%0a%3c [@%0a%3c /query JID%0a%3c @]%0a\ No newline at end of file%0a---%0a> bitlbee-libpurple is the bitlbee compiled with libpurple support, this is what you likely want, supports more protocols in cost of more ram/cpu usage and less stablity.%0a> %0a> bitlbee-otr is the bitlbee compiled with Off the Road encryption support, it was quite popular on XMPP. however it's now replaced with OMEMO in most clients, you may not want this.%0a> %0a> bitlbee-libpurple-otr is bitlbee with otr and libpurple support%0a -host:1622788251=125.231.28.9 -author:1621147724=mkf -diff:1621147724:1620357603:minor=5,15c5,14%0a%3c [@%0a%3c $ doas pkg_add bitlbee%0a%3c quirks-3.442 signed on 2021-04-25T17:01:22Z%0a%3c Ambiguous: choose package for bitlbee%0a%3c a 0: %3cNone>%0a%3c 1: bitlbee-3.6p1%0a%3c 2: bitlbee-3.6p1-libpurple%0a%3c 3: bitlbee-3.6p1-libpurple-otr%0a%3c 4: bitlbee-3.6p1-otr%0a%3c Your choice: 2%0a%3c @]%0a---%0a> @@# pkg_add bitlbee@@%0a> @@quirks-3.442 signed on 2021-04-25T17:01:22Z @@%0a> @@Ambiguous: choose package for bitlbee @@%0a> @@a 0: %3cNone> @@%0a> @@ 1: bitlbee-3.6p1 @@%0a> @@ 2: bitlbee-3.6p1-libpurple @@%0a> @@ 3: bitlbee-3.6p1-libpurple-otr @@%0a> @@ 4: bitlbee-3.6p1-otr @@%0a> @@Your choice: 2@@%0a> %0a -host:1621147724=198.251.81.133 -author:1620357603=mkf -csum:1620357603=made the page -diff:1620357603:1620357579:= -host:1620357603=2.178.139.253 -author:1620357579=mkf -csum:1620357579=made the page -diff:1620357579:1620357579:=1,19d0%0a%3c bitlbee is a custom irc server that can act a IM (and libpurple) client, you can use it for connecting to XMPP, twitter, discord, Matrix and telegram.%0a%3c %0a%3c for installing%0a%3c %0a%3c @@# pkg_add bitlbee@@%0a%3c @@quirks-3.442 signed on 2021-04-25T17:01:22Z @@%0a%3c @@Ambiguous: choose package for bitlbee @@%0a%3c @@a 0: %3cNone> @@%0a%3c @@ 1: bitlbee-3.6p1 @@%0a%3c @@ 2: bitlbee-3.6p1-libpurple @@%0a%3c @@ 3: bitlbee-3.6p1-libpurple-otr @@%0a%3c @@ 4: bitlbee-3.6p1-otr @@%0a%3c @@Your choice: 2@@%0a%3c %0a%3c bitlbee-libpurple is the bitlbee compiled with libpurple support, this is what you likely want, supports more protocols in cost of more ram/cpu usage and less stablity.%0a%3c %0a%3c bitlbee-otr is the bitlbee compiled with Off the Road encryption support, it was quite popular on XMPP. however it's now replaced with OMEMO in most clients, you may not want this.%0a%3c %0a%3c bitlbee-libpurple-otr is bitlbee with otr and libpurple support%0a -host:1620357579=2.178.139.253 +rev=1 +targets= +text=(:redirect Openbsd.Bitlbee status=301:) +time=1674239761 +author:1674239761=mkf +diff:1674239761:1674239761:=1d0%0a%3c (:redirect Openbsd.Bitlbee status=301:)%0a\ No newline at end of file%0a +host:1674239761=198.251.82.194 blob - 1bfbfdbbd6fa889d5228451ac336e489cda858a7 blob + 1bf4b6088dc524d01f6ca34e996f3726d48aa6f9 --- wiki.d/Bitlbee.RecentChanges +++ wiki.d/Bitlbee.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 charset=UTF-8 ctime=1620357579 -host=188.210.102.116 +host=198.251.82.194 name=Bitlbee.RecentChanges -rev=5 -text=* [[Bitlbee/Install]] . . . July 21, 2021, at 07:12 PM by [[~mkf]]: [==]%0a -time=1626894721 +rev=6 +text=* [[Bitlbee/Install]] . . . January 20, 2023, at 06:36 PM by [[~mkf]]: [==]%0a +time=1674239761 blob - 3973a662cb2da9232351f4ae0dda1dbde680834d blob + 0da3fb16e60020c5fe9bedafbb6913efc8198c1a --- wiki.d/Fiche.Install +++ wiki.d/Fiche.Install @@ -1,39 +1,15 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 -author=Almajd +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 +author=mkf charset=UTF-8 csum= -ctime=1622643237 -host=80.79.148.19 +ctime=1674240271 +host=198.251.82.194 name=Fiche.Install -rev=9 +rev=1 targets= -text=[@%0a$ git clone https://github.com/solusipse/fiche.git%0a$ cd fiche%0a$ doas make%0a$ doas make install%0a%0a$ doas adduser paste%0a$ doas usermod -G daemon paste%0a%0a$ doas mkdir /var/www/htdocs/ircnow/paste%0a$ doas chown www:daemon /var/www/htdocs/ircnow/paste%0a$ doas chmod g+w /var/www/htdocs/ircnow/paste%0a%0a$ doas -u paste fiche -o /var/www/htdocs/ircnow/paste/ -d paste.ircnow.org -s 20 -S -p 7777%0a@]%0a%0apass in log quick proto tcp to {$IP4 $IP6} port 7777 $Flush #pastebin%0a%0aget a tls cert for paste.ircnow.org%0a%0ain /etc/httpd.conf:%0a%0a[@%0aserver "paste.ircnow.org" {%0a listen on egress tls port 443%0a tls {%0a certificate "/etc/ssl/paste.ircnow.org.fullchain.pem"%0a key "/etc/ssl/private/paste.ircnow.org.key"%0a }%0a location "/.well-known/acme-challenge/*" {%0a root "/acme"%0a request strip 2%0a }%0a location "*~" {%0a block drop%0a }%0a root "/htdocs/ircnow/paste/"%0a directory {%0a index "index.txt"%0a }%0a}%0a@]%0a%0a!! Cronjob%0a%0a[@%0a$ doas crontab -e -u paste%0a@]%0a%0aAdd this line:%0a%0a[@%0a*/5 * * * * fiche -o /var/www/htdocs/ircnow/paste/ -d paste.ircnow.org -s 20 -S -p 7777%0a@]%0a%0a%0a!! Troubleshooting%0a%0a'''WARNING''': the argument -B 1048576 causes segfaults.%0a -time=1629901264 -author:1629901264=Almajd -diff:1629901264:1629372303:=3d2%0a%3c $ cd fiche%0a -host:1629901264=80.79.148.19 -author:1629372303=jrmu -diff:1629372303:1629371506:=13c13%0a%3c $ doas -u paste fiche -o /var/www/htdocs/ircnow/paste/ -d paste.ircnow.org -s 20 -S -p 7777%0a---%0a> $ doas -u paste fiche -o /var/www/htdocs/ircnow/paste/ -d paste.ircnow.org -s 20 -S -p 9999%0a16,17c16,17%0a%3c pass in log quick proto tcp to {$IP4 $IP6} port 7777 $Flush #pastebin%0a%3c %0a---%0a> pass in log quick proto tcp to {$IP4 $IP6} port 9999 $Flush #pastebin%0a> %0a52c52%0a%3c */5 * * * * fiche -o /var/www/htdocs/ircnow/paste/ -d paste.ircnow.org -s 20 -S -p 7777%0a---%0a> */5 * * * * fiche -o /var/www/htdocs/ircnow/paste/ -d paste.ircnow.org -s 20 -S -p 9999%0a -host:1629372303=38.87.162.8 -author:1629371506=jrmu -diff:1629371506:1629371366:=13c13%0a%3c $ doas -u paste fiche -o /var/www/htdocs/ircnow/paste/ -d paste.ircnow.org -s 20 -S -p 9999%0a---%0a> $ doas -u paste fiche -o /var/www/htdocs/ircnow/paste/ -d paste.ircnow.org -s 20 -S -p 7777%0a16,17c16,17%0a%3c pass in log quick proto tcp to {$IP4 $IP6} port 9999 $Flush #pastebin%0a%3c %0a---%0a> pass in log quick proto tcp to {$IP4 $IP6} port 7777 $Flush #pastebin%0a> %0a52c52%0a%3c */5 * * * * fiche -o /var/www/htdocs/ircnow/paste/ -d paste.ircnow.org -s 20 -S -p 9999%0a---%0a> */5 * * * * fiche -o /var/www/htdocs/ircnow/paste/ -d paste.ircnow.org -s 20 -S -p 7777%0a -host:1629371506=38.87.162.8 -author:1629371366=jrmu -diff:1629371366:1629278618:=42,54d41%0a%3c %0a%3c !! Cronjob%0a%3c %0a%3c [@%0a%3c $ doas crontab -e -u paste%0a%3c @]%0a%3c %0a%3c Add this line:%0a%3c %0a%3c [@%0a%3c */5 * * * * fiche -o /var/www/htdocs/ircnow/paste/ -d paste.ircnow.org -s 20 -S -p 7777%0a%3c @]%0a%3c %0a -host:1629371366=38.87.162.8 -author:1629278618=jrmu -diff:1629278618:1628087963:=2,7c2,7%0a%3c $ git clone https://github.com/solusipse/fiche.git%0a%3c $ doas make%0a%3c $ doas make install%0a%3c %0a%3c $ doas adduser paste%0a%3c $ doas usermod -G daemon paste%0a---%0a> git clone https://github.com/solusipse/fiche.git%0a> make%0a> doas make install%0a> %0a> adduser paste%0a> usermod -G daemon paste%0a -host:1629278618=125.231.37.248 -author:1628087963=jrmu -diff:1628087963:1623572600:=42,45d41%0a%3c %0a%3c !! Troubleshooting%0a%3c %0a%3c '''WARNING''': the argument -B 1048576 causes segfaults.%0a -host:1628087963=38.87.162.8 -author:1623572600=jrmu -diff:1623572600:1622644206:=13c13%0a%3c $ doas -u paste fiche -o /var/www/htdocs/ircnow/paste/ -d paste.ircnow.org -s 20 -S -p 7777%0a---%0a> $ doas -u paste fiche -o /var/www/htdocs/ircnow/paste/ -d paste.ircnow.org -s 10 -S -p 7777%0a -host:1623572600=38.81.163.143 -author:1622644206=jrmu -diff:1622644206:1622643237:=1d0%0a%3c [@%0a14,15c13%0a%3c @]%0a%3c %0a---%0a> %0a17,41d14%0a%3c %0a%3c get a tls cert for paste.ircnow.org%0a%3c %0a%3c in /etc/httpd.conf:%0a%3c %0a%3c [@%0a%3c server "paste.ircnow.org" {%0a%3c listen on egress tls port 443%0a%3c tls {%0a%3c certificate "/etc/ssl/paste.ircnow.org.fullchain.pem"%0a%3c key "/etc/ssl/private/paste.ircnow.org.key"%0a%3c }%0a%3c location "/.well-known/acme-challenge/*" {%0a%3c root "/acme"%0a%3c request strip 2%0a%3c }%0a%3c location "*~" {%0a%3c block drop%0a%3c }%0a%3c root "/htdocs/ircnow/paste/"%0a%3c directory {%0a%3c index "index.txt"%0a%3c }%0a%3c }%0a%3c @]%0a -host:1622644206=38.81.163.143 -author:1622643237=jrmu -diff:1622643237:1622643237:=1,14d0%0a%3c git clone https://github.com/solusipse/fiche.git%0a%3c make%0a%3c doas make install%0a%3c %0a%3c adduser paste%0a%3c usermod -G daemon paste%0a%3c %0a%3c $ doas mkdir /var/www/htdocs/ircnow/paste%0a%3c $ doas chown www:daemon /var/www/htdocs/ircnow/paste%0a%3c $ doas chmod g+w /var/www/htdocs/ircnow/paste%0a%3c %0a%3c $ doas -u paste fiche -o /var/www/htdocs/ircnow/paste/ -d paste.ircnow.org -s 10 -S -p 7777%0a%3c %0a%3c pass in log quick proto tcp to {$IP4 $IP6} port 7777 $Flush #pastebin%0a -host:1622643237=38.81.163.143 +text=(:redirect Openbsd.Fiche status=301:) +time=1674240271 +author:1674240271=mkf +diff:1674240271:1674240271:=1d0%0a%3c (:redirect Openbsd.Fiche status=301:)%0a\ No newline at end of file%0a +host:1674240271=198.251.82.194 blob - 0c9f107ac9284d756623e2d85343470a76add4b4 blob + dd1857c333856bfdb56644c8ff75ac8d85e2f781 --- wiki.d/Fiche.RecentChanges +++ wiki.d/Fiche.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 charset=UTF-8 ctime=1622643237 -host=80.79.148.19 +host=198.251.82.194 name=Fiche.RecentChanges -rev=9 -text=* [[Fiche/Install]] . . . August 25, 2021, at 02:21 PM by [[~Almajd]]: [==]%0a -time=1629901264 +rev=11 +text=* [[Fiche/Install]] . . . January 20, 2023, at 06:44 PM by [[~mkf]]: [==]%0a +time=1674240271 blob - 5f9515a219ea7a61fbeaf5aed7983490853f9a9a blob + 4dfe7cf18c910259b7cf28cd82b4a16d355e6205 --- wiki.d/Gomuks.Install +++ wiki.d/Gomuks.Install @@ -1,25 +1,15 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 author=mkf charset=UTF-8 -csum=mster.zip might not compile, using packages is better than compiling manually -ctime=1621167627 -host=38.87.162.40 +csum= +ctime=1674241704 +host=198.251.82.194 name=Gomuks.Install -rev=4 +rev=1 targets= -text=Gomuks is a simple TUI Matrix client written in go, with e2e encryption support.%0a%0ayou can install it from packages or compile it from source ( not recommended.)%0a!!! Installing from source%0a[@%0a$ doas pkg_add gomuks%0a@]%0a%0a!!! Building from source%0a[@%0a$ doas pkg_add go olm%0a$ ftp https://github.com/tulir/gomuks/archive/refs/tags/v0.2.3.tar.gz%0a$ tar xzf v0.2.3.tar.gz%0a$ cd gomuks-0.2.3/%0a$ export CGO_ENABLED=0%0a$ go build%0a@]%0a -time=1628591179 -author:1628591179=mkf -csum:1628591179=mster.zip might not compile, using packages is better than compiling manually -diff:1628591179:1621167965:=1,4d0%0a%3c Gomuks is a simple TUI Matrix client written in go, with e2e encryption support.%0a%3c %0a%3c you can install it from packages or compile it from source ( not recommended.)%0a%3c !!! Installing from source%0a6,10d1%0a%3c $ doas pkg_add gomuks%0a%3c @]%0a%3c %0a%3c !!! Building from source%0a%3c [@%0a12,14c3,5%0a%3c $ ftp https://github.com/tulir/gomuks/archive/refs/tags/v0.2.3.tar.gz%0a%3c $ tar xzf v0.2.3.tar.gz%0a%3c $ cd gomuks-0.2.3/%0a---%0a> $ ftp https://github.com/tulir/gomuks/archive/refs/heads/master.zip%0a> $ unzip master.zip%0a> $ cd gomuks-master/%0a -host:1628591179=38.87.162.40 -author:1621167965=jrmu -diff:1621167965:1621167931:=1d0%0a%3c [@%0a8d6%0a%3c @]%0a -host:1621167965=38.81.163.143 -author:1621167931=jrmu -diff:1621167931:1621167627:=5,6d4%0a%3c $ export CGO_ENABLED=0%0a%3c $ go build%0a -host:1621167931=38.81.163.143 -author:1621167627=jrmu -diff:1621167627:1621167627:=1,4d0%0a%3c $ doas pkg_add go olm%0a%3c $ ftp https://github.com/tulir/gomuks/archive/refs/heads/master.zip%0a%3c $ unzip master.zip%0a%3c $ cd gomuks-master/%0a -host:1621167627=38.81.163.143 +text=(:redirect Openbsd.Gomuks status=301:) +time=1674241704 +author:1674241704=mkf +diff:1674241704:1674241704:=1d0%0a%3c (:redirect Openbsd.Gomuks status=301:)%0a\ No newline at end of file%0a +host:1674241704=198.251.82.194 blob - e4d6d60d9a005820051c9ac206798740a013365b blob + d39fcf15d1fc144089aa656a04fe60abfe0dc567 --- wiki.d/Gomuks.RecentChanges +++ wiki.d/Gomuks.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 charset=UTF-8 ctime=1621167627 -host=38.87.162.40 +host=198.251.82.194 name=Gomuks.RecentChanges -rev=4 -text=* [[Gomuks/Install]] . . . August 10, 2021, at 10:26 AM by [[~mkf]]: [=mster.zip might not compile, using packages is better than compiling manually=]%0a -time=1628591179 +rev=6 +text=* [[Gomuks/Install]] . . . January 20, 2023, at 07:08 PM by [[~mkf]]: [==]%0a +time=1674241704 blob - a77425bf3773c913383d968bb17ae7f794f2f18c blob + afe78a96a7589d9839b48e5406b62eefb93a3aee --- wiki.d/Gotweb.Install +++ wiki.d/Gotweb.Install @@ -1,58 +1,15 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36 -author=gtlsgamr +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 +author=mkf charset=UTF-8 -csum=removed redundant link -ctime=1639668876 -host=103.247.6.189 +csum= +ctime=1674241356 +host=198.251.82.194 name=Gotweb.Install -rev=15 +rev=1 targets= -text=To set up gotweb:%0a%0a[@%0a$ doas pkg_add gotweb%0a@]%0a%0aAdd this block to /etc/httpd.conf:%0a%0a[@%0atypes { include "/usr/share/misc/mime.types" }%0aserver "gotweb.example.com" {%0a listen on * port 80%0a root "/htdocs"%0a location "/cgi-bin/*" {%0a root "/"%0a fastcgi%0a }%0a location "/*" {%0a directory index "gotweb/index.html"%0a }%0a}%0a@]%0a%0a[@%0a$ doas mkdir -p /var/www/etc%0a@]%0a%0aInside /var/www/etc/gotweb.conf%0a%0a[@%0agot_repos_path "/got/public"%0agot_www_path "/gotweb"%0agot_max_commits_display 1000%0agot_site_name "Made on IRCNow"%0agot_site_owner "IRCNow"%0agot_logo_url "https://got.ircnow.org"%0agot_site_link "repos"%0agot_logo "madeonirc128x128.png"%0a@]%0a%0aUpload your logo to /var/www/htdocs/gotweb:%0a%0a[@%0a$ cd /var/www/htdocs/gotweb%0a$ doas ftp https://wiki.ircnow.org/uploads/Marketing/madeonirc128x128.png%0a$ doas chown root:bin madeonirc128x128.png%0a@]%0a%0agotweb needs write permissions:%0a%0a[@%0a$ doas chown www:daemon /var/www/got/tmp/%0a@]%0a%0ayou'll need to have these running:%0a%0a[@%0a$ doas rcctl enable httpd slowcgi%0a$ doas rcctl start httpd slowcgi%0a@]%0a%0a!! Import repos%0a%0a[@%0a$ doas chown -R $USER:daemon /var/www/got/public/%0a$ openrsync -a --delete --rsync-path=openrsync /var/git/ /var/www/got/public/%0a@]%0a%0a!! Cronjobs%0a%0aPeriodically you need to sync your repos:%0a%0a[@%0a$ crontab -e%0a@daily openrsync -a --delete --rsync-path=openrsync /var/git/ /var/www/got/public/%0a@]%0a -time=1649159581 -author:1649159581=gtlsgamr -csum:1649159581=removed redundant link -diff:1649159581:1639748533:=38a39%0a> got_logo_url "https://got.ircnow.org/"%0a -host:1649159581=103.247.6.189 -author:1639748533=jrmu -diff:1639748533:1639748441:=75,76c75%0a%3c $ crontab -e%0a%3c @daily openrsync -a --delete --rsync-path=openrsync /var/git/ /var/www/got/public/%0a---%0a> $ echo "@daily openrsync -a --delete --rsync-path=openrsync /var/git/ /var/www/got/public/" | doas crontab -u $USER -%0a -host:1639748533=198.251.82.194 -author:1639748441=jrmu -diff:1639748441:1639748397:=75c75%0a%3c $ echo "@daily openrsync -a --delete --rsync-path=openrsync /var/git/ /var/www/got/public/" | doas crontab -u $USER -%0a---%0a> $ echo "@daily openrsync -a --delete --rsync-path=openrsync /var/git/ /var/www/got/public/" >> /var/cron/tabs/$USER%0a -host:1639748441=198.251.82.194 -author:1639748397=jrmu -diff:1639748397:1639733653:=75c75%0a%3c $ echo "@daily openrsync -a --delete --rsync-path=openrsync /var/git/ /var/www/got/public/" >> /var/cron/tabs/$USER%0a---%0a> $ echo "@daily -s openrsync -a --delete --rsync-path=openrsync /var/git/ /var/www/got/public/" >> /var/cron/tabs/$USER%0a -host:1639748397=198.251.82.194 -author:1639733653=jrmu -diff:1639733653:1639733336:=48,53d47%0a%3c @]%0a%3c %0a%3c gotweb needs write permissions:%0a%3c %0a%3c [@%0a%3c $ doas chown www:daemon /var/www/got/tmp/%0a -host:1639733653=198.251.82.194 -author:1639733336=jrmu -diff:1639733336:1639722090:=19c19%0a%3c directory index "gotweb/index.html"%0a---%0a> directory index "index.html"%0a -host:1639733336=198.251.82.194 -author:1639722090=jrmu -diff:1639722090:1639718047:=34c34%0a%3c got_site_name "Made on IRCNow"%0a---%0a> got_site_name "IRCNow Software"%0a -host:1639722090=198.251.82.194 -author:1639718047=jrmu -diff:1639718047:1639717626:=38c38%0a%3c got_logo "madeonirc128x128.png"%0a---%0a> got_logo "https://wiki.ircnow.org/uploads/Marketing/madeonirc.png"%0a46,47c46,47%0a%3c $ doas ftp https://wiki.ircnow.org/uploads/Marketing/madeonirc128x128.png%0a%3c $ doas chown root:bin madeonirc128x128.png%0a---%0a> $ doas ftp https://wiki.ircnow.org/uploads/Marketing/madeonirc.png%0a> $ doas chown root:bin madeonirc.png%0a -host:1639718047=38.87.162.47 -author:1639717626=jrmu -diff:1639717626:1639717156:=13c13%0a%3c root "/htdocs"%0a---%0a> root "/htdocs/gotweb"%0a -host:1639717626=38.87.162.47 -author:1639717156=jrmu -diff:1639717156:1639716708:=40,47d39%0a%3c @]%0a%3c %0a%3c Upload your logo to /var/www/htdocs/gotweb:%0a%3c %0a%3c [@%0a%3c $ cd /var/www/htdocs/gotweb%0a%3c $ doas ftp https://wiki.ircnow.org/uploads/Marketing/madeonirc.png%0a%3c $ doas chown root:bin madeonirc.png%0a -host:1639717156=38.87.162.47 -author:1639716708=jrmu -diff:1639716708:1639716206:=7,8c7,8%0a%3c Add this block to /etc/httpd.conf:%0a%3c %0a---%0a> Inside /etc/httpd.conf:%0a> %0a31,33d30%0a%3c got_repos_path "/got/public"%0a%3c got_www_path "/gotweb"%0a%3c got_max_commits_display 1000%0a36,39c33%0a%3c got_logo_url "https://got.ircnow.org"%0a%3c got_site_link "repos"%0a%3c got_logo "https://wiki.ircnow.org/uploads/Marketing/madeonirc.png"%0a%3c got_logo_url "https://got.ircnow.org/"%0a---%0a> got_logo_url "https://git.ircnow.org"%0a -host:1639716708=38.87.162.47 -author:1639716206=jrmu -diff:1639716206:1639716148:=0a1,9%0a> To import a project into got:%0a> %0a> [@%0a> $ doas pkg_add got%0a> $ got init reponame%0a> $ export GOT_AUTHOR="YOURNAME %3cYOUR EMAIL>"%0a> $ got import -m "Initial import" -r repo-path files/%0a> @]%0a> %0a -host:1639716206=38.87.162.47 -author:1639716148=jrmu -diff:1639716148:1639716040:=52,53c52,55%0a%3c !! Import repos%0a%3c %0a---%0a> !! Cronjobs%0a> %0a> Periodically you need to sync your repos:%0a> %0a55d56%0a%3c $ doas chown -R $USER:daemon /var/www/got/public/%0a57,63d57%0a%3c @]%0a%3c %0a%3c !! Cronjobs%0a%3c %0a%3c Periodically you need to sync your repos:%0a%3c %0a%3c [@%0a -host:1639716148=38.87.162.47 -author:1639716040=jrmu -diff:1639716040:1639668876:=50,58d49%0a%3c @]%0a%3c %0a%3c !! Cronjobs%0a%3c %0a%3c Periodically you need to sync your repos:%0a%3c %0a%3c [@%0a%3c $ openrsync -a --delete --rsync-path=openrsync /var/git/ /var/www/got/public/%0a%3c $ echo "@daily -s openrsync -a --delete --rsync-path=openrsync /var/git/ /var/www/got/public/" >> /var/cron/tabs/$USER%0a -host:1639716040=38.87.162.47 -author:1639668876=jrmu -diff:1639668876:1639668876:=1,50d0%0a%3c To import a project into got:%0a%3c %0a%3c [@%0a%3c $ doas pkg_add got%0a%3c $ got init reponame%0a%3c $ export GOT_AUTHOR="YOURNAME %3cYOUR EMAIL>"%0a%3c $ got import -m "Initial import" -r repo-path files/%0a%3c @]%0a%3c %0a%3c To set up gotweb:%0a%3c %0a%3c [@%0a%3c $ doas pkg_add gotweb%0a%3c @]%0a%3c %0a%3c Inside /etc/httpd.conf:%0a%3c %0a%3c [@%0a%3c types { include "/usr/share/misc/mime.types" }%0a%3c server "gotweb.example.com" {%0a%3c listen on * port 80%0a%3c root "/htdocs/gotweb"%0a%3c location "/cgi-bin/*" {%0a%3c root "/"%0a%3c fastcgi%0a%3c }%0a%3c location "/*" {%0a%3c directory index "index.html"%0a%3c }%0a%3c }%0a%3c @]%0a%3c %0a%3c [@%0a%3c $ doas mkdir -p /var/www/etc%0a%3c @]%0a%3c %0a%3c Inside /var/www/etc/gotweb.conf%0a%3c %0a%3c [@%0a%3c got_site_name "IRCNow Software"%0a%3c got_site_owner "IRCNow"%0a%3c got_logo_url "https://git.ircnow.org"%0a%3c @]%0a%3c %0a%3c you'll need to have these running:%0a%3c %0a%3c [@%0a%3c $ doas rcctl enable httpd slowcgi%0a%3c $ doas rcctl start httpd slowcgi%0a%3c @]%0a -host:1639668876=38.87.162.47 +text=(:redirect Openbsd.Gotweb status=301:) +time=1674241356 +author:1674241356=mkf +diff:1674241356:1674241356:=1d0%0a%3c (:redirect Openbsd.Gotweb status=301:)%0a\ No newline at end of file%0a +host:1674241356=198.251.82.194 blob - 504665a9b698e5892b2b4c5652a420bdf351dff7 blob + d0637e74cfc9449031ed3fc76975705503a01912 --- wiki.d/Gotweb.RecentChanges +++ wiki.d/Gotweb.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 charset=UTF-8 ctime=1639668876 -host=103.247.6.189 +host=198.251.82.194 name=Gotweb.RecentChanges -rev=15 -text=* [[Gotweb/Install]] . . . April 05, 2022, at 11:53 AM by [[~gtlsgamr]]: [=removed redundant link=]%0a -time=1649159581 +rev=17 +text=* [[Gotweb/Install]] . . . January 20, 2023, at 07:02 PM by [[~mkf]]: [==]%0a +time=1674241356 blob - 7587780438e50e91a1a8c6421ee6c2e3d2c43c4b blob + b7c1e17c3224b7df1e9518211fb5e0b0f9445f7f --- wiki.d/Hopm.Install +++ wiki.d/Hopm.Install @@ -1,180 +1,15 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (X11; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0 -author=forero +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 +author=mkf charset=UTF-8 -csum=fix typo -ctime=1614679909 -host=2800:484:117a:82d4:ff02:54e2:26f6:dd1f +csum= +ctime=1674243157 +host=198.251.82.194 name=Hopm.Install -rev=54 -targets=Stopm.Stopm,Rcd.Configure -text=(:title Hopm Install Guide:)%0a%0aIn this guide, we'll setup and configure [[https://github.com/ircd-hybrid/hopm|hopm]], an open proxy monitor that kills spam bots.%0a%0aAdvantages:%0a%0a# Pure C%0a# Compatible with every IRC server%0a# Fast scanning and DNSBL support.%0a%0aDisadvantages:%0a%0a# Occasionally bans innocent users because it cannot perform [[stopm/stopm|statistical analysis]]%0a%0aBefore you begin, you must read the [[https://github.com/ircd-hybrid/hopm/blob/master/README.md|README]] and [[https://github.com/ircd-hybrid/hopm/blob/master/INSTALL.md|INSTALL]] docs.%0a%0a!! Installation%0aUpgrades from older versions of hopm can also follow these instructions. You can see the version running in the log file /home/hopm/hopm/var/log/hopm.log. %0a%0aLet's create the user hopm:%0a%0a[@%0a$ doas useradd -m -g =uid -c "hopm" -d /home/hopm -s /bin/ksh hopm%0a@]%0a%0aThen we switch to the user hopm and change to its home folder:%0a%0a[@%0a$ doas su hopm%0a$ cd%0a@]%0a%0aWe download [[https://github.com/ircd-hybrid/hopm/tags|the latest release]], extract it, then build it:%0a%0a[@%0a$ ftp https://github.com/ircd-hybrid/hopm/archive/1.1.10.tar.gz%0a$ tar xvzf 1.1.10.tar.gz%0a$ cd hopm-1.1.10%0a$ ./configure%0a$ make%0a$ make install%0a@]%0a%0ahopm will now be installed in ~/hopm.%0a%0a[[https://github.com/ircd-hybrid/hopm/blob/master/doc/reference.conf|/home/hopm/hopm/etc/reference.conf]] contains a sample template.%0a%0aWe'll create a new /home/hopm/hopm/etc/hopm.conf from scratch to keep it short:%0a%0a[@%0aoptions {%0a pidfile = "var/run/hopm.pid";%0a command_queue_size = 64;%0a command_interval = 10 seconds;%0a command_timeout = 180 seconds;%0a negcache_rebuild = 12 hours;%0a dns_fdlimit = 64;%0a dns_timeout = 5 seconds;%0a scanlog = "var/log/scan.log";%0a};%0a@]%0a%0aThe only thing we change is we uncomment scanlog so that we have a record of all users that connect. It will be stored in @@/home/hopm/hopm/var/log/scan.log@@.%0a%0a[@%0airc {%0a nick = "MyHopm";%0a realname = "Hybrid Open Proxy Monitor";%0a username = "hopm";%0a server = "127.0.0.1";%0a port = 16667;%0a tls = no;%0a readtimeout = 15 minutes;%0a reconnectinterval = 30 seconds;%0a nickserv = "SQUERY NickServ :IDENTIFY MyHopm PASSWORD";%0a oper = "MyHopm PASSWORD";%0a mode = "+BcFiIoqRsw";%0a away = "I'm a bot. Your messages will be ignored.";%0a channel {%0a name = "#hopm";%0a key = "somekey";%0a invite = "SQUERY ChanServ :INVITE #hopm";%0a };%0a@]%0a@@ connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]+)\\].*";@@%0a[@%0a kline = "KLINE *@%25h 3600 :Open proxy found on your host. Please contact support@example.com if this is in error.";%0a notice = "To prevent spam and abuse, we scan users for open proxies.";%0a};%0a@]%0a%0aChange the @@nick@@, @@realname@@, @@username@@. @@server@@, @@port@@, @@tls@@ specify how to connect to your ircd. You will want to use 127.0.0.1 port 16667 with no TLS.%0a%0angircd uses @@SQUERY@@ for @@nickserv@@: @@SQUERY NickServ :IDENTIFY MyHopm PASSWORD@@ -- you'll want to replace @@MyHopm@@ with the real nick and @@PASSWORD@@ with the real password. For oper: @@MyHopm PASSWORD@@ -- you'll want to replace @@MyHopm@@ and @@PASSWORD@@ with the operator name and password.%0a%0aWe change the [[https://github.com/ngircd/ngircd/blob/master/doc/Modes.txt|mode]] to @@+BcFiIoqRsw@@. I recommend you change channel's @@name@@ from @@#hopm@@ to your team channel. @@invite@@ has been modified to match ngircd; replace @@#hopm@@ with your team channel.%0a%0aFor @@kline@@, make sure to replace @@*@%25i@@ with @@*@%25h@@ (to allow hopm to work with old cloak hostmasks, which have been broken since April 2020. Note that '''hopm will not work with +x cloaking'''). You must also change the order for kline: in ngircd, kline expects the hostmask before the time. You will also want to replace @@support@example.com@@ with your actual support email.%0a%0a'''WARNING''': You must change the order for kline for ngircd:%0a%0a[@%0akline = "KLINE *@%25h 3600 :Open proxy found on your host. Please contact support@example.com if this is in error.";%0a@]%0a%0aThe hostmask must come before the time.%0a%0a[@%0aopm {%0a@]%0a%0aIn our OPM block, we will define a few blacklists: dronbl, efnet, and ircbl. %0a%0a[@%0a blacklist { %0a name = "dnsbl.dronebl.org";%0a address_family = ipv4, ipv6;%0a type = "A record reply";%0a ban_unknown = no;%0a reply {%0a 2 = "Sample data used for heuristical analysis";%0a 3 = "IRC spam drone (litmus/sdbot/fyle)";%0a 5 = "Bottler (experimental)";%0a 6 = "Unknown worm or spambot";%0a 7 = "DDoS drone";%0a 8 = "Open SOCKS proxy";%0a 9 = "Open HTTP proxy";%0a 10 = "ProxyChain";%0a 11 = "Web Page Proxy";%0a 12 = "Open DNS Resolver";%0a 13 = "Automated dictionary attacks";%0a 14 = "Open WINGATE proxy";%0a 15 = "Compromised router / gateway";%0a 16 = "Autorooting worms";%0a 17 = "Automatically determined botnet IPs (experimental)";%0a 18 = "Possibly compromised DNS/MX type hostname detected on IRC";%0a 19 = "Abused VPN Service";%0a 255 = "Uncategorized threat class";%0a };%0a kline = "KLINE *@%25h 3600 :You have a host listed in the DroneBL. For more information, visit https://dronebl.org/lookup_branded?ip=%25i&network=%3cyour_network_name>";%0a };%0a@]%0a%0aThe name of the first blacklist is [[https://dronebl.org/docs/howtouse|dnsbl.dronebl.org]]. It supports both ipv4 and ipv6 addresses. We use A record replies. We don't want to ban unknown types.%0a%0a'''Note''': Replace %3cyour_network_name> with a unique network name. The Network parameter set in ngircd.conf should suffice.%0a%0aFor the kline, we again make sure to put the hostmask before the time (as ngircd requires). We also use %25h instead of %25i to kline by hostmask instead of by IP, since ngircd may be cloaking user IPs.%0a%0a[@%0a blacklist {%0a name = "rbl.efnetrbl.org";%0a type = "A record reply";%0a ban_unknown = no;%0a reply {%0a 1 = "Open proxy";%0a 2 = "spamtrap666";%0a 3 = "spamtrap50";%0a 4 = "TOR";%0a 5 = "Drones / Flooding";%0a };%0a kline = "KLINE *@%25h 3600 :Blacklisted proxy found. For more information, visit https://rbl.efnetrbl.org/?i=%25i";%0a };%0a blacklist {%0a name = "tor.efnetrbl.org";%0a type = "A record reply";%0a ban_unknown = no;%0a reply {%0a 1 = "TOR";%0a };%0a kline = "KLINE *@%25h 3600 :TOR exit node found. For more information, visit https://rbl.efnetrbl.org/?i=%25i";%0a };%0a@]%0a%0aThe two blacklists from efnet are the same.%0a%0a[@%0a blacklist {%0a name = "rbl.ircbl.org";%0a type = "A record reply";%0a reply {%0a 2 = "Open proxy (2)";%0a 6 = "Mail or NS server (6)";%0a 10 = "D regex pattern (10)";%0a 11 = "Drone / compromised (11)";%0a 13 = "Join/part flood (13)";%0a 14 = "Drone / compromised 2 (14)";%0a 16 = "Spam bot (16)";%0a 17 = "Drone (17)";%0a 18 = "Drone 2 (18)";%0a 19 = "Web abuse (19)";%0a 20 = "Drone/flood bot (20)";%0a 21 = "Compromised host (21)";%0a 22 = "Open Proxy (22)";%0a 23 = "Open Proxy (23)";%0a 24 = "Mass advertising (24)";%0a 30 = "Drone (30)";%0a 31 = "Drone 2 (31)";%0a 32 = "Open proxy (32)";%0a 42 = "Open proxy (42)";%0a };%0a ban_unknown = yes;%0a kline = "KLINE *@%25h 3600 :Compromised host on this IP. See https://ircbl.org/lookup?ip=%25i&network=%3cyour_network_name> for more information.";%0a };%0a blacklist {%0a name = "tor-irc.dnsbl.oftc.net";%0a type = "A record reply";%0a reply {%0a 2 = "Tor exit server";%0a };%0a ban_unknown = yes;%0a kline = "KLINE *@%25h 3600 :Please use our tor onion addresses. If this is in error, please email support@ircnow.org";%0a };%0a};%0a@]%0a%0a'''Note''': Again, replace %3cyour_network_name> with a unique network name. The Network parameter set in ngircd.conf should suffice.%0a%0aThis is another blacklist.%0a%0aNext, we define a scanner block. hopm will try to get the user to connect to the target_ip:target_port using the listed port/protocol. A target_string will be sent through the proxy and then checked. If the data is found, the user is an proxy.%0a%0a'''NOTE''': target_ip must be an actual ip address. Replace 127.0.0.1 with your public IPv4 address.%0a%0a[@%0ascanner {%0a name = "default";%0a protocol = HTTP:80;%0a protocol = HTTP:8080;%0a protocol = HTTP:3128;%0a protocol = HTTP:6588;%0a# protocol = HTTPS:443;%0a# protocol = HTTPS:8443;%0a protocol = SOCKS4:1080;%0a protocol = SOCKS5:1080;%0a protocol = ROUTER:23;%0a protocol = WINGATE:23;%0a protocol = DREAMBOX:23;%0a protocol = HTTPPOST:80;%0a# protocol = HTTPSPOST:443;%0a# protocol = HTTPSPOST:8443;%0a# bind = "127.0.0.1";%0a fd = 512;%0a max_read = 4 kbytes;%0a timeout = 30 seconds;%0a target_ip = "127.0.0.1";%0a target_port = 6667;%0a target_string = "NOTICE * :*** Looking up your hostname and checking ident";%0a};%0a@]%0a%0aTwo more scanner blocks:%0a%0a[@%0ascanner {%0a name = "extended";%0a protocol = HTTP:81;%0a protocol = HTTP:8000;%0a protocol = HTTP:8001;%0a protocol = HTTP:8081;%0a protocol = HTTPPOST:81;%0a protocol = HTTPPOST:6588;%0a protocol = HTTPPOST:4480;%0a protocol = HTTPPOST:8000;%0a protocol = HTTPPOST:8001;%0a protocol = HTTPPOST:8080;%0a protocol = HTTPPOST:8081;%0a protocol = SOCKS4:4914;%0a protocol = SOCKS4:6826;%0a protocol = SOCKS4:7198;%0a protocol = SOCKS4:7366;%0a protocol = SOCKS4:9036;%0a protocol = SOCKS5:4438;%0a protocol = SOCKS5:5104;%0a protocol = SOCKS5:5113;%0a protocol = SOCKS5:5262;%0a protocol = SOCKS5:5634;%0a protocol = SOCKS5:6552;%0a protocol = SOCKS5:6561;%0a protocol = SOCKS5:7464;%0a protocol = SOCKS5:7810;%0a protocol = SOCKS5:8130;%0a protocol = SOCKS5:8148;%0a protocol = SOCKS5:8520;%0a protocol = SOCKS5:8814;%0a protocol = SOCKS5:9100;%0a protocol = SOCKS5:9186;%0a protocol = SOCKS5:9447;%0a protocol = SOCKS5:9578;%0a protocol = SOCKS5:10000;%0a protocol = SOCKS5:64101;%0a protocol = SOCKS4:29992;%0a protocol = SOCKS4:38884;%0a protocol = SOCKS4:18844;%0a protocol = SOCKS4:17771;%0a protocol = SOCKS4:31121;%0a fd = 400;%0a};%0ascanner {%0a name = "ssh";%0a protocol = SSH:22;%0a target_string = "SSH-1.99-OpenSSH_5.1";%0a target_string = "SSH-2.0-dropbear_0.51";%0a target_string = "SSH-2.0-dropbear_0.52";%0a target_string = "SSH-2.0-dropbear_0.53.1";%0a target_string = "SSH-2.0-dropbear_2012.55";%0a target_string = "SSH-2.0-dropbear_2013.62";%0a target_string = "SSH-2.0-dropbear_2014.63";%0a target_string = "SSH-2.0-OpenSSH_4.3";%0a target_string = "SSH-2.0-OpenSSH_5.1";%0a target_string = "SSH-2.0-OpenSSH_5.5p1";%0a target_string = "SSH-2.0-ROSSSH";%0a target_string = "SSH-2.0-SSH_Server";%0a};%0a@]%0a%0a[@%0auser {%0a mask = "*!*@*";%0a scanner = "default";%0a};%0a%0auser {%0a mask = "*!~*@*";%0a mask = "*!squid@*";%0a mask = "*!nobody@*";%0a mask = "*!www-data@*";%0a mask = "*!cache@*";%0a mask = "*!CacheFlowS@*";%0a mask = "*!*@*www*";%0a mask = "*!*@*proxy*";%0a mask = "*!*@*cache*";%0a scanner = "extended";%0a};%0a%0aexempt {%0a mask = "*!*@127.0.0.1";%0a};%0a@]%0a%0a!! Run Hopm%0a%0a[@%0a$ /home/hopm/hopm/bin/hopm -d%0a@]%0a%0a!! Cronjob%0a%0aPut this script in /home/hopm/hopm/bin/autohopm%0a%0a[@%0a#!/bin/sh%0aHOPMPATH=/home/hopm/hopm%0a%0aif test -r $HOPMPATH/var/run/hopm.pid; then%0a HOPMPID=$(cat $HOPMPATH/var/run/hopm.pid)%0a if $(kill -0 $HOPMPID >/dev/null 2>&1)%0a then%0a exit 0%0a fi%0afi%0a$HOPMPATH/bin/hopm &> /dev/null%0a@]%0a%0aThen make sure execute privileges are set:%0a%0a[@%0a$ chmod 754 /home/hopm/hopm/bin/autohopm%0a@]%0a%0a[@%0a$ crontab -e%0a*/5 * * * * /home/hopm/hopm/bin/autohopm%0a@]%0a(:ifend:)%0a%0a!! Troubleshooting%0a%0aIf you see this error:%0a%0a[@%0a[2021-01-23T09:59:14-0600] IRC -> connect(): error connecting to username.coconut.ircnow.org: Connection refused %0a[2021-01-23T09:59:14-0600] IRC -> Connection to (username.coconut.ircnow.org) failed, reconnecting. %0a[2021-01-23T09:59:14-0600] IRC -> connect(): error connecting to username.coconut.ircnow.org: Connection refused%0a@]%0a%0aThis may be due to a configuration issue with ngircd. In particular, if the hostname has an AAAA record, hopm may be trying to connect via IPv6 but ngircd does not listen to IPv6 connections.%0a%0a[@%0a$ doas pkg_add torsocks%0a@]%0a%0a[@%0a$ torsocks nc irc.example.com 6667%0anick toruser%0auser toruser * * :toruser%0a@]%0a%0aIn the #hopm channel, you should see:%0a%0a[@%0a23:16 %3cMyHopm> DNSBL -> toruser!~toruser@vps-16fb7987.vps.ovh.ca [51.79.69.241] appears in BL zone rbl.efnetrbl.org (TOR)%0a@]%0a%0a!! Run Hopm as System Daemon%0a%0a[[Rcd/Configure|For this refer to this page]]\\%0a%0aAfter you've created the rc.d script, append to /etc/rc.conf.local:%0a[@ hopm_user=hopm @]%0a%0a# Syntax errors when hopm is running in foreground. This is either the result of missing brackets where needed in config file, or that the file has DOS encodings. See [[https://github.com/ircd-hybrid/hopm/issues/22#issuecomment-301276082]] here. The missing brackets where it was needed may come from the previous section, compared to the line/s where it is indicated by hopm when executed.%0a# If the service fails to start, check and make sure /home/hopm/hopm/var/log/hopm.log is owned by hopm.%0a -time=1672068766 -title=Hopm Install Guide -author:1672068766=forero -csum:1672068766=fix typo -diff:1672068766:1666012289:minor=18c18%0a%3c Upgrades from older versions of hopm can also follow these instructions. You can see the version running in the log file /home/hopm/hopm/var/log/hopm.log. %0a---%0a> Upgrades from older versions of hopm can also fallow these instructions. You can see the version running in the log file /home/hopm/hopm/var/log/hopm.log. %0a -host:1672068766=2800:484:117a:82d4:ff02:54e2:26f6:dd1f -author:1666012289=izzyb -diff:1666012289:1666012190:minor=18c18%0a%3c Upgrades from older versions of hopm can also fallow these instructions. You can see the version running in the log file /home/hopm/hopm/var/log/hopm.log. %0a---%0a> Upgrades from older version of hopm can also fallow these instructions. You can see the version running in the log file /home/hopm/hopm/var/log/hopm.log. %0a -host:1666012289=68.148.177.239 -author:1666012190=izzyb -diff:1666012190:1664828580:=18d17%0a%3c Upgrades from older version of hopm can also fallow these instructions. You can see the version running in the log file /home/hopm/hopm/var/log/hopm.log. %0a -host:1666012190=68.148.177.239 -author:1664828580=izzyb -csum:1664828580=correction to kline in first efnet blacklist block -diff:1664828580:1664808762:=202c202%0a%3c kline = "KLINE *@%25h 3600 :Compromised host on this IP. See https://ircbl.org/lookup?ip=%25i&network=%3cyour_network_name> for more information.";%0a---%0a> kline = "KLINE 180 *@%25h :Compromised host on this IP. See https://ircbl.org/lookup?ip=%25i&network=%3cyour_network_name> for more information.";%0a -host:1664828580=68.148.177.239 -author:1664808762=izzyb -diff:1664808762:1664808732:minor=15c15%0a%3c Before you begin, you must read the [[https://github.com/ircd-hybrid/hopm/blob/master/README.md|README]] and [[https://github.com/ircd-hybrid/hopm/blob/master/INSTALL.md|INSTALL]] docs.%0a---%0a> Before you begin, you must read the [[https://github.com/ircd-hybrid/hopm/blob/master/README.md|README]] and [[https://github.com/ircd-hybrid/hopm/blob/master/INSTALL|INSTALL.md]] docs.%0a -host:1664808762=68.148.177.239 -author:1664808732=izzyb -csum:1664808732=fix broken links; files renamed to have a .md extention -diff:1664808732:1642881519:=15c15%0a%3c Before you begin, you must read the [[https://github.com/ircd-hybrid/hopm/blob/master/README.md|README]] and [[https://github.com/ircd-hybrid/hopm/blob/master/INSTALL|INSTALL.md]] docs.%0a---%0a> Before you begin, you must read the [[https://github.com/ircd-hybrid/hopm/blob/master/README|README]] and [[https://github.com/ircd-hybrid/hopm/blob/master/INSTALL|INSTALL]] docs.%0a -host:1664808732=68.148.177.239 -author:1642881519=jrmu -diff:1642881519:1638824319:=204,212d203%0a%3c blacklist {%0a%3c name = "tor-irc.dnsbl.oftc.net";%0a%3c type = "A record reply";%0a%3c reply {%0a%3c 2 = "Tor exit server";%0a%3c };%0a%3c ban_unknown = yes;%0a%3c kline = "KLINE *@%25h 3600 :Please use our tor onion addresses. If this is in error, please email support@ircnow.org";%0a%3c };%0a -host:1642881519=38.87.162.8 -author:1638824319=xfnw -csum:1638824319=warn about +x -diff:1638824319:1637396578:=97c97%0a%3c For @@kline@@, make sure to replace @@*@%25i@@ with @@*@%25h@@ (to allow hopm to work with old cloak hostmasks, which have been broken since April 2020. Note that '''hopm will not work with +x cloaking'''). You must also change the order for kline: in ngircd, kline expects the hostmask before the time. You will also want to replace @@support@example.com@@ with your actual support email.%0a---%0a> For @@kline@@, make sure to replace @@*@%25i@@ with @@*@%25h@@ (to allow hopm to work when you cloak hostmasks). You must also change the order for kline: in ngircd, kline expects the hostmask before the time. You will also want to replace @@support@example.com@@ with your actual support email.%0a -host:1638824319=2001:470:8:651::4 -author:1637396578=jrmu -diff:1637396578:1637391199:=202c202%0a%3c kline = "KLINE 180 *@%25h :Compromised host on this IP. See https://ircbl.org/lookup?ip=%25i&network=%3cyour_network_name> for more information.";%0a---%0a> kline = "KLINE 180 *@%25i :Compromised host on this IP. See https://ircbl.org/lookup?ip=%25i&network=%3cyour_network_name> for more information.";%0a -host:1637396578=38.87.162.8 -author:1637391199=bugzbunny -diff:1637391199:1632726144:=111,112c111,112%0a%3c In our OPM block, we will define a few blacklists: dronbl, efnet, and ircbl. %0a%3c %0a---%0a> In our OPM block, we define two blacklists: one for dronbl, and another for efnet. %0a> %0a139c139%0a%3c kline = "KLINE *@%25h 3600 :You have a host listed in the DroneBL. For more information, visit https://dronebl.org/lookup_branded?ip=%25i&network=%3cyour_network_name>";%0a---%0a> kline = "KLINE *@%25h 3600 :You have a host listed in the DroneBL. For more information, visit https://dronebl.org/lookup_branded?ip=%25i&network=Network";%0a145,146d144%0a%3c '''Note''': Replace %3cyour_network_name> with a unique network name. The Network parameter set in ngircd.conf should suffice.%0a%3c %0a206,207d203%0a%3c %0a%3c '''Note''': Again, replace %3cyour_network_name> with a unique network name. The Network parameter set in ngircd.conf should suffice.%0a -host:1637391199=72.78.238.236 -author:1632726144=Miniontoby -diff:1632726144:1631250603:=169a170%0a> };%0a175c176%0a%3c blacklist {%0a---%0a> blacklist {%0a202d202%0a%3c };%0a204,205c204%0a%3c %0a%3c This is another blacklist.%0a---%0a> This one is used as another blacklist, and blocks ircbots.%0a -host:1632726144=125.231.18.235 -author:1631250603=jrmu -diff:1631250603:1626787053:=208c208%0a%3c '''NOTE''': target_ip must be an actual ip address. Replace 127.0.0.1 with your public IPv4 address.%0a---%0a> '''NOTE''': target_ip must be an actual ip address%0a -host:1631250603=38.87.162.8 -author:1626787053=mkf -csum:1626787053=ircbl -diff:1626787053:1625542031:=174,204d173%0a%3c %0a%3c [@%0a%3c blacklist {%0a%3c name = "rbl.ircbl.org";%0a%3c type = "A record reply";%0a%3c reply {%0a%3c 2 = "Open proxy (2)";%0a%3c 6 = "Mail or NS server (6)";%0a%3c 10 = "D regex pattern (10)";%0a%3c 11 = "Drone / compromised (11)";%0a%3c 13 = "Join/part flood (13)";%0a%3c 14 = "Drone / compromised 2 (14)";%0a%3c 16 = "Spam bot (16)";%0a%3c 17 = "Drone (17)";%0a%3c 18 = "Drone 2 (18)";%0a%3c 19 = "Web abuse (19)";%0a%3c 20 = "Drone/flood bot (20)";%0a%3c 21 = "Compromised host (21)";%0a%3c 22 = "Open Proxy (22)";%0a%3c 23 = "Open Proxy (23)";%0a%3c 24 = "Mass advertising (24)";%0a%3c 30 = "Drone (30)";%0a%3c 31 = "Drone 2 (31)";%0a%3c 32 = "Open proxy (32)";%0a%3c 42 = "Open proxy (42)";%0a%3c };%0a%3c ban_unknown = yes;%0a%3c kline = "KLINE 180 *@%25i :Compromised host on this IP. See https://ircbl.org/lookup?ip=%25i&network=%3cyour_network_name> for more information.";%0a%3c };%0a%3c @]%0a%3c This one is used as another blacklist, and blocks ircbots.%0a -host:1626787053=198.251.81.133 -author:1625542031=jrmu -diff:1625542031:1625214366:=278c278%0a%3c mask = "*!~*@*";%0a---%0a> # mask = "*!~*@*";%0a -host:1625542031=125.231.16.111 -author:1625214366=jrmu -diff:1625214366:1624614137:=303,304c303%0a%3c Put this script in /home/hopm/hopm/bin/autohopm%0a%3c %0a---%0a> (:if false:)%0a306,327c305,306%0a%3c #!/bin/sh%0a%3c HOPMPATH=/home/hopm/hopm%0a%3c %0a%3c if test -r $HOPMPATH/var/run/hopm.pid; then%0a%3c HOPMPID=$(cat $HOPMPATH/var/run/hopm.pid)%0a%3c if $(kill -0 $HOPMPID >/dev/null 2>&1)%0a%3c then%0a%3c exit 0%0a%3c fi%0a%3c fi%0a%3c $HOPMPATH/bin/hopm &> /dev/null%0a%3c @]%0a%3c %0a%3c Then make sure execute privileges are set:%0a%3c %0a%3c [@%0a%3c $ chmod 754 /home/hopm/hopm/bin/autohopm%0a%3c @]%0a%3c %0a%3c [@%0a%3c $ crontab -e%0a%3c */5 * * * * /home/hopm/hopm/bin/autohopm%0a---%0a> $ doas crontab -e -u hopm%0a> */5 * * * * /home/hopm/hopm/bin/hopm -dv >> /home/hopm/hopm/hopm.log 2>&1 &%0a -host:1625214366=38.81.163.143 -author:1624614137=jrmu -diff:1624614137:1624202950:=202c202,203%0a%3c target_string = "NOTICE * :*** Looking up your hostname and checking ident";%0a---%0a> target_string = ":irc.example.org NOTICE * :*** Looking up your hostname";%0a> target_string = "ERROR :Your host is trying to (re)connect too fast -- throttled.";%0a -host:1624614137=38.81.163.143 -author:1624202950=jrmu -diff:1624202950:1624196192:=304d303%0a%3c (:if false:)%0a309d307%0a%3c (:ifend:)%0a -host:1624202950=38.81.163.143 -author:1624196192=jrmu -diff:1624196192:1624196139:=306c306%0a%3c */5 * * * * /home/hopm/hopm/bin/hopm -dv >> /home/hopm/hopm/hopm.log 2>&1 &%0a---%0a> */5 * * * * /home/hopm/hopm/bin/hopm >>/var/log/znc.log 2>&1 &%0a -host:1624196192=38.81.163.143 -author:1624196139=jrmu -diff:1624196139:1622818981:=300,306d299%0a%3c @]%0a%3c %0a%3c !! Cronjob%0a%3c %0a%3c [@%0a%3c $ doas crontab -e -u hopm%0a%3c */5 * * * * /home/hopm/hopm/bin/hopm >>/var/log/znc.log 2>&1 &%0a -host:1624196139=38.81.163.143 -author:1622818981=jrmu -diff:1622818981:1620176123:=331,333c331%0a%3c %0a%3c [[Rcd/Configure|For this refer to this page]]\\%0a%3c %0a---%0a> For this refer to this page https://ircnow.org/kb/doku.php?id=openbsd:rc.d\\%0a338c336%0a%3c # If the service fails to start, check and make sure /home/hopm/hopm/var/log/hopm.log is owned by hopm.%0a---%0a> # If the service fails to start, check and make sure /home/hopm/hopm/var/log/hopm.log is owned by hopm.%0a\ No newline at end of file%0a -host:1622818981=38.81.163.143 -author:1620176123=sarah -diff:1620176123:1615099104:=331,336c331,333%0a%3c For this refer to this page https://ircnow.org/kb/doku.php?id=openbsd:rc.d\\%0a%3c After you've created the rc.d script, append to /etc/rc.conf.local:%0a%3c [@ hopm_user=hopm @]%0a%3c %0a%3c # Syntax errors when hopm is running in foreground. This is either the result of missing brackets where needed in config file, or that the file has DOS encodings. See [[https://github.com/ircd-hybrid/hopm/issues/22#issuecomment-301276082]] here. The missing brackets where it was needed may come from the previous section, compared to the line/s where it is indicated by hopm when executed.%0a%3c # If the service fails to start, check and make sure /home/hopm/hopm/var/log/hopm.log is owned by hopm. %0a\ No newline at end of file%0a---%0a> For this refer to this page https://ircnow.org/kb/doku.php?id=openbsd:rc.d%0a> %0a> # Syntax errors when hopm is running in foreground. This is either the result of missing brackets where needed in config file, or that the file has DOS encodings. See [[https://github.com/ircd-hybrid/hopm/issues/22#issuecomment-301276082]] here. The missing brackets where it was needed may come from the previous section, compared to the line/s where it is indicated by hopm when executed.%0a\ No newline at end of file%0a -host:1620176123=2001:470:ee05:0:80:893f:ae46:9e7f -author:1615099104=jrmu -diff:1615099104:1615098709:=175,178c175,176%0a%3c Next, we define a scanner block. hopm will try to get the user to connect to the target_ip:target_port using the listed port/protocol. A target_string will be sent through the proxy and then checked. If the data is found, the user is an proxy.%0a%3c %0a%3c '''NOTE''': target_ip must be an actual ip address%0a%3c %0a---%0a> Next, we define a scanner block:%0a> %0a207,208c205,206%0a%3c Two more scanner blocks:%0a%3c %0a---%0a> target_ip must be another IP%0a> %0a270,272c268%0a%3c @]%0a%3c %0a%3c [@%0a---%0a> %0a -host:1615099104=198.251.81.119 -author:1615098709=jrmu -diff:1615098709:1615098501:=171,177d170%0a%3c @]%0a%3c %0a%3c The two blacklists from efnet are the same.%0a%3c %0a%3c Next, we define a scanner block:%0a%3c %0a%3c [@%0a -host:1615098709=198.251.81.119 -author:1615098501=jrmu -diff:1615098501:1615098416:= -host:1615098501=198.251.81.119 -author:1615098416=jrmu -diff:1615098416:1615097718:=109,113d108%0a%3c @]%0a%3c %0a%3c In our OPM block, we define two blacklists: one for dronbl, and another for efnet. %0a%3c %0a%3c [@%0a118a114,118%0a> @]%0a> %0a> In our OPM block, we define two blacklists: one for dronbl, and another for efnet. %0a> %0a> [@%0a141,147d140%0a%3c @]%0a%3c %0a%3c The name of the first blacklist is [[https://dronebl.org/docs/howtouse|dnsbl.dronebl.org]]. It supports both ipv4 and ipv6 addresses. We use A record replies. We don't want to ban unknown types.%0a%3c %0a%3c For the kline, we again make sure to put the hostmask before the time (as ngircd requires). We also use %25h instead of %25i to kline by hostmask instead of by IP, since ngircd may be cloaking user IPs.%0a%3c %0a%3c [@%0a -host:1615098416=198.251.81.119 -author:1615097718=jrmu -diff:1615097718:1615094839:=114,118d113%0a%3c @]%0a%3c %0a%3c In our OPM block, we define two blacklists: one for dronbl, and another for efnet. %0a%3c %0a%3c [@%0a -host:1615097718=125.231.24.85 -author:1615094839=jrmu -diff:1615094839:1615093451:=74c74%0a%3c nickserv = "SQUERY NickServ :IDENTIFY MyHopm PASSWORD";%0a---%0a> nickserv = "SQUERY NickServ :IDENTIFY PASSWORD";%0a93c93%0a%3c ngircd uses @@SQUERY@@ for @@nickserv@@: @@SQUERY NickServ :IDENTIFY MyHopm PASSWORD@@ -- you'll want to replace @@MyHopm@@ with the real nick and @@PASSWORD@@ with the real password. For oper: @@MyHopm PASSWORD@@ -- you'll want to replace @@MyHopm@@ and @@PASSWORD@@ with the operator name and password.%0a---%0a> ngircd uses @@SQUERY@@ for @@nickserv@@: @@SQUERY NickServ :IDENTIFY PASSWORD@@ -- you'll want to replace PASSWORD with the real password. For oper: @@MyHopm PASSWORD@@ -- you'll want to replace @@MyHopm@@ and @@PASSWORD@@ with the operator name and password.%0a -host:1615094839=198.251.81.119 -author:1615093451=jrmu -diff:1615093451:1615093364:=71a72%0a> tls_hostname_verification = yes;%0a91,95c92,95%0a%3c Change the @@nick@@, @@realname@@, @@username@@. @@server@@, @@port@@, @@tls@@ specify how to connect to your ircd. You will want to use 127.0.0.1 port 16667 with no TLS.%0a%3c %0a%3c ngircd uses @@SQUERY@@ for @@nickserv@@: @@SQUERY NickServ :IDENTIFY PASSWORD@@ -- you'll want to replace PASSWORD with the real password. For oper: @@MyHopm PASSWORD@@ -- you'll want to replace @@MyHopm@@ and @@PASSWORD@@ with the operator name and password.%0a%3c %0a%3c We change the [[https://github.com/ngircd/ngircd/blob/master/doc/Modes.txt|mode]] to @@+BcFiIoqRsw@@. I recommend you change channel's @@name@@ from @@#hopm@@ to your team channel. @@invite@@ has been modified to match ngircd; replace @@#hopm@@ with your team channel.%0a---%0a> %0a> Change the @@nick@@, @@realname@@, @@username@@. @@server@@, @@port@@, @@tls@@ specify how to connect to your ircd. You will want to use 127.0.0.1 port 16667 with no TLS. @@nickserv@@ and @@oper@@ should be changed to match ngircd. You'll also want to replace @@PASSWORD@@ with the nickserv and oper password, and @@MyHopm@@ with the operator nick. Change [[https://github.com/ngircd/ngircd/blob/master/doc/Modes.txt|mode]] to @@+BcFiIoqRsw@@.%0a> %0a> I recommend you change channel's @@name@@ from @@#hopm@@ to your team channel. @@invite@@ has been modified to match ngircd; replace @@#hopm@@ with your team channel.%0a -host:1615093451=198.251.81.119 -author:1615093364=jrmu -diff:1615093364:1615093294:=72d71%0a%3c tls_hostname_verification = yes;%0a92,95c91,95%0a%3c %0a%3c Change the @@nick@@, @@realname@@, @@username@@. @@server@@, @@port@@, @@tls@@ specify how to connect to your ircd. You will want to use 127.0.0.1 port 16667 with no TLS. @@nickserv@@ and @@oper@@ should be changed to match ngircd. You'll also want to replace @@PASSWORD@@ with the nickserv and oper password, and @@MyHopm@@ with the operator nick. Change [[https://github.com/ngircd/ngircd/blob/master/doc/Modes.txt|mode]] to @@+BcFiIoqRsw@@.%0a%3c %0a%3c I recommend you change channel's @@name@@ from @@#hopm@@ to your team channel. @@invite@@ has been modified to match ngircd; replace @@#hopm@@ with your team channel.%0a---%0a> Change the @@nick@@, @@realname@@, @@username@@. @@server@@, @@port@@, @@tls@@ specify how to connect to your ircd. You will want to use 127.0.0.1 port 16667 with no TLS.%0a> %0a> ngircd uses @@SQUERY@@ for @@nickserv@@: @@SQUERY NickServ :IDENTIFY PASSWORD@@ -- you'll want to replace PASSWORD with the real password. For oper: @@MyHopm PASSWORD@@ -- you'll want to replace @@MyHopm@@ and @@PASSWORD@@ with the operator name and password.%0a> %0a> We change the mode to @@+BcFiIoqRsw@@. I recommend you change channel's @@name@@ from @@#hopm@@ to your team channel. @@invite@@ has been modified to match ngircd; replace @@#hopm@@ with your team channel.%0a -host:1615093364=198.251.81.119 -author:1615093294=jrmu -diff:1615093294:1615087042:=71a72%0a> tls_hostname_verification = yes;%0a91,95c92,95%0a%3c Change the @@nick@@, @@realname@@, @@username@@. @@server@@, @@port@@, @@tls@@ specify how to connect to your ircd. You will want to use 127.0.0.1 port 16667 with no TLS.%0a%3c %0a%3c ngircd uses @@SQUERY@@ for @@nickserv@@: @@SQUERY NickServ :IDENTIFY PASSWORD@@ -- you'll want to replace PASSWORD with the real password. For oper: @@MyHopm PASSWORD@@ -- you'll want to replace @@MyHopm@@ and @@PASSWORD@@ with the operator name and password.%0a%3c %0a%3c We change the mode to @@+BcFiIoqRsw@@. I recommend you change channel's @@name@@ from @@#hopm@@ to your team channel. @@invite@@ has been modified to match ngircd; replace @@#hopm@@ with your team channel.%0a---%0a> %0a> Change the @@nick@@, @@realname@@, @@username@@. @@server@@, @@port@@, @@tls@@ specify how to connect to your ircd. You will want to use 127.0.0.1 port 16667 with no TLS. @@nickserv@@ and @@oper@@ should be changed to match ngircd. You'll also want to replace @@PASSWORD@@ with the nickserv and oper password, and @@MyHopm@@ with the operator nick. Change mode to @@+BcFiIoqRsw@@.%0a> %0a> I recommend you change channel's @@name@@ from @@#hopm@@ to your team channel. @@invite@@ has been modified to match ngircd; replace @@#hopm@@ with your team channel.%0a -host:1615093294=198.251.81.119 -author:1615087042=jrmu -diff:1615087042:1615032429:=62c62%0a%3c The only thing we change is we uncomment scanlog so that we have a record of all users that connect. It will be stored in @@/home/hopm/hopm/var/log/scan.log@@.%0a---%0a> The only thing we change is we uncomment scanlog so that we have a record of all users that connect. It will be stored in @@/home/hopm/var/log/scan.log@@.%0a -host:1615087042=198.251.81.119 -author:1615032429=jrmu -diff:1615032429:1615032333:=97,105c97,98%0a%3c For @@kline@@, make sure to replace @@*@%25i@@ with @@*@%25h@@ (to allow hopm to work when you cloak hostmasks). You must also change the order for kline: in ngircd, kline expects the hostmask before the time. You will also want to replace @@support@example.com@@ with your actual support email.%0a%3c %0a%3c '''WARNING''': You must change the order for kline for ngircd:%0a%3c %0a%3c [@%0a%3c kline = "KLINE *@%25h 3600 :Open proxy found on your host. Please contact support@example.com if this is in error.";%0a%3c @]%0a%3c %0a%3c The hostmask must come before the time.%0a---%0a> For @@kline@@, make sure to replace @@*@%25i@@ with @@*@%25h@@ (to allow hopm to work when you cloak hostmasks). You will also want to replace @@support@example.com@@ with your actual support email.%0a> %0a -host:1615032429=198.251.81.119 -author:1615032333=jrmu -diff:1615032333:1614698507:=126c126,127%0a%3c kline = "KLINE *@%25h 3600 :You have a host listed in the DroneBL. For more information, visit https://dronebl.org/lookup_branded?ip=%25i&network=Network";%0a---%0a> kline = "KLINE 3600 *@%25h :You have a host listed in the DroneBL. For mor%0a> e information, visit https://dronebl.org/lookup_branded?ip=%25i&network=Network";%0a139c140,141%0a%3c kline = "KLINE *@%25h 3600 :Blacklisted proxy found. For more information, visit https://rbl.efnetrbl.org/?i=%25i";%0a---%0a> kline = "KLINE 3600 *@%25h :Blacklisted proxy found. For more information,%0a> visit https://rbl.efnetrbl.org/?i=%25i";%0a148c150,151%0a%3c kline = "KLINE *@%25h 3600 :TOR exit node found. For more information, visit https://rbl.efnetrbl.org/?i=%25i";%0a---%0a> kline = "KLINE 3600 *@%25h :TOR exit node found. For more information, vis%0a> it https://rbl.efnetrbl.org/?i=%25i";%0a -host:1615032333=198.251.81.119 -author:1614698507=jrmu -diff:1614698507:1614697020:=285,300d284%0a%3c %0a%3c [@%0a%3c $ doas pkg_add torsocks%0a%3c @]%0a%3c %0a%3c [@%0a%3c $ torsocks nc irc.example.com 6667%0a%3c nick toruser%0a%3c user toruser * * :toruser%0a%3c @]%0a%3c %0a%3c In the #hopm channel, you should see:%0a%3c %0a%3c [@%0a%3c 23:16 %3cMyHopm> DNSBL -> toruser!~toruser@vps-16fb7987.vps.ovh.ca [51.79.69.241] appears in BL zone rbl.efnetrbl.org (TOR)%0a%3c @]%0a -host:1614698507=198.251.81.119 -author:1614697020=jrmu -diff:1614697020:1614696943:=179,183d178%0a%3c @]%0a%3c %0a%3c target_ip must be another IP%0a%3c %0a%3c [@%0a -host:1614697020=198.251.81.119 -author:1614696943=jrmu -diff:1614696943:1614696284:=76c76%0a%3c oper = "MyHopm PASSWORD";%0a---%0a> oper = "hopm PASSWORD";%0a93c93%0a%3c Change the @@nick@@, @@realname@@, @@username@@. @@server@@, @@port@@, @@tls@@ specify how to connect to your ircd. You will want to use 127.0.0.1 port 16667 with no TLS. @@nickserv@@ and @@oper@@ should be changed to match ngircd. You'll also want to replace @@PASSWORD@@ with the nickserv and oper password, and @@MyHopm@@ with the operator nick. Change mode to @@+BcFiIoqRsw@@.%0a---%0a> Change the @@nick@@, @@realname@@, @@username@@. @@server@@, @@port@@, @@tls@@ specify how to connect to your ircd. You will want to use 127.0.0.1 port 16667 with no TLS. @@nickserv@@ and @@oper@@ should be changed to match ngircd. You'll also want to replace @@PASSWORD@@ with the nickserv and oper password. Change mode to @@+BcFiIoqRsw@@.%0a -host:1614696943=198.251.81.119 -author:1614696284=jrmu -diff:1614696284:1614696250:=64c64%0a%3c [@%0a---%0a> [=%0a84,86c84%0a%3c @]%0a%3c @@ connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]+)\\].*";@@%0a%3c [@%0a---%0a> connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]+)\\].*";%0a90c88%0a%3c @]%0a---%0a> =]%0a -host:1614696284=198.251.81.119 -author:1614696250=jrmu -diff:1614696250:1614696193:=64c64%0a%3c [=%0a---%0a> [@%0a84c84,85%0a%3c connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]+)\\].*";%0a---%0a> connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]%0a> +)\\].*";%0a88,89c89%0a%3c =]%0a%3c %0a---%0a> @]%0a -host:1614696250=198.251.81.119 -author:1614696193=jrmu -diff:1614696193:1614695833:=84,85c84%0a%3c connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]%0a%3c +)\\].*";%0a---%0a> connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]+)\\].*";%0a89a89%0a> %0a -host:1614696193=198.251.81.119 -author:1614695833=jrmu -diff:1614695833:1614695806:=64c64%0a%3c [@%0a---%0a> [=%0a88c88%0a%3c @]%0a---%0a> =]%0a -host:1614695833=198.251.81.119 -author:1614695806=jrmu -diff:1614695806:1614695686:=64c64%0a%3c [=%0a---%0a> [@%0a88c88%0a%3c =]%0a---%0a> @]%0a -host:1614695806=198.251.81.119 -author:1614695686=jrmu -diff:1614695686:1614695622:=84c84,87%0a%3c connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]+)\\].*";%0a---%0a> @]%0a> @@ connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]@@%0a> [@%0a> +)\\].*";%0a -host:1614695686=198.251.81.119 -author:1614695622=jrmu -diff:1614695622:1614695325:=84,86c84%0a%3c @]%0a%3c @@ connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]@@%0a%3c [@%0a---%0a> connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]%0a92d89%0a%3c %0a -host:1614695622=198.251.81.119 -author:1614695325=jrmu -diff:1614695325:1614693600:=86c86%0a%3c kline = "KLINE *@%25h 3600 :Open proxy found on your host. Please contact support@example.com if this is in error.";%0a---%0a> kline = "KLINE *@%25h 10800 :Open proxy found on your host. Please contact support@example.com if this is in error.";%0a96,259d95%0a%3c %0a%3c [@%0a%3c opm {%0a%3c blacklist { %0a%3c name = "dnsbl.dronebl.org";%0a%3c address_family = ipv4, ipv6;%0a%3c type = "A record reply";%0a%3c ban_unknown = no;%0a%3c reply {%0a%3c 2 = "Sample data used for heuristical analysis";%0a%3c 3 = "IRC spam drone (litmus/sdbot/fyle)";%0a%3c 5 = "Bottler (experimental)";%0a%3c 6 = "Unknown worm or spambot";%0a%3c 7 = "DDoS drone";%0a%3c 8 = "Open SOCKS proxy";%0a%3c 9 = "Open HTTP proxy";%0a%3c 10 = "ProxyChain";%0a%3c 11 = "Web Page Proxy";%0a%3c 12 = "Open DNS Resolver";%0a%3c 13 = "Automated dictionary attacks";%0a%3c 14 = "Open WINGATE proxy";%0a%3c 15 = "Compromised router / gateway";%0a%3c 16 = "Autorooting worms";%0a%3c 17 = "Automatically determined botnet IPs (experimental)";%0a%3c 18 = "Possibly compromised DNS/MX type hostname detected on IRC";%0a%3c 19 = "Abused VPN Service";%0a%3c 255 = "Uncategorized threat class";%0a%3c };%0a%3c kline = "KLINE 3600 *@%25h :You have a host listed in the DroneBL. For mor%0a%3c e information, visit https://dronebl.org/lookup_branded?ip=%25i&network=Network";%0a%3c };%0a%3c blacklist {%0a%3c name = "rbl.efnetrbl.org";%0a%3c type = "A record reply";%0a%3c ban_unknown = no;%0a%3c reply {%0a%3c 1 = "Open proxy";%0a%3c 2 = "spamtrap666";%0a%3c 3 = "spamtrap50";%0a%3c 4 = "TOR";%0a%3c 5 = "Drones / Flooding";%0a%3c };%0a%3c kline = "KLINE 3600 *@%25h :Blacklisted proxy found. For more information,%0a%3c visit https://rbl.efnetrbl.org/?i=%25i";%0a%3c };%0a%3c blacklist {%0a%3c name = "tor.efnetrbl.org";%0a%3c type = "A record reply";%0a%3c ban_unknown = no;%0a%3c reply {%0a%3c 1 = "TOR";%0a%3c };%0a%3c kline = "KLINE 3600 *@%25h :TOR exit node found. For more information, vis%0a%3c it https://rbl.efnetrbl.org/?i=%25i";%0a%3c };%0a%3c };%0a%3c scanner {%0a%3c name = "default";%0a%3c protocol = HTTP:80;%0a%3c protocol = HTTP:8080;%0a%3c protocol = HTTP:3128;%0a%3c protocol = HTTP:6588;%0a%3c # protocol = HTTPS:443;%0a%3c # protocol = HTTPS:8443;%0a%3c protocol = SOCKS4:1080;%0a%3c protocol = SOCKS5:1080;%0a%3c protocol = ROUTER:23;%0a%3c protocol = WINGATE:23;%0a%3c protocol = DREAMBOX:23;%0a%3c protocol = HTTPPOST:80;%0a%3c # protocol = HTTPSPOST:443;%0a%3c # protocol = HTTPSPOST:8443;%0a%3c # bind = "127.0.0.1";%0a%3c fd = 512;%0a%3c max_read = 4 kbytes;%0a%3c timeout = 30 seconds;%0a%3c target_ip = "127.0.0.1";%0a%3c target_port = 6667;%0a%3c target_string = ":irc.example.org NOTICE * :*** Looking up your hostname";%0a%3c target_string = "ERROR :Your host is trying to (re)connect too fast -- throttled.";%0a%3c };%0a%3c scanner {%0a%3c name = "extended";%0a%3c protocol = HTTP:81;%0a%3c protocol = HTTP:8000;%0a%3c protocol = HTTP:8001;%0a%3c protocol = HTTP:8081;%0a%3c protocol = HTTPPOST:81;%0a%3c protocol = HTTPPOST:6588;%0a%3c protocol = HTTPPOST:4480;%0a%3c protocol = HTTPPOST:8000;%0a%3c protocol = HTTPPOST:8001;%0a%3c protocol = HTTPPOST:8080;%0a%3c protocol = HTTPPOST:8081;%0a%3c protocol = SOCKS4:4914;%0a%3c protocol = SOCKS4:6826;%0a%3c protocol = SOCKS4:7198;%0a%3c protocol = SOCKS4:7366;%0a%3c protocol = SOCKS4:9036;%0a%3c protocol = SOCKS5:4438;%0a%3c protocol = SOCKS5:5104;%0a%3c protocol = SOCKS5:5113;%0a%3c protocol = SOCKS5:5262;%0a%3c protocol = SOCKS5:5634;%0a%3c protocol = SOCKS5:6552;%0a%3c protocol = SOCKS5:6561;%0a%3c protocol = SOCKS5:7464;%0a%3c protocol = SOCKS5:7810;%0a%3c protocol = SOCKS5:8130;%0a%3c protocol = SOCKS5:8148;%0a%3c protocol = SOCKS5:8520;%0a%3c protocol = SOCKS5:8814;%0a%3c protocol = SOCKS5:9100;%0a%3c protocol = SOCKS5:9186;%0a%3c protocol = SOCKS5:9447;%0a%3c protocol = SOCKS5:9578;%0a%3c protocol = SOCKS5:10000;%0a%3c protocol = SOCKS5:64101;%0a%3c protocol = SOCKS4:29992;%0a%3c protocol = SOCKS4:38884;%0a%3c protocol = SOCKS4:18844;%0a%3c protocol = SOCKS4:17771;%0a%3c protocol = SOCKS4:31121;%0a%3c fd = 400;%0a%3c };%0a%3c scanner {%0a%3c name = "ssh";%0a%3c protocol = SSH:22;%0a%3c target_string = "SSH-1.99-OpenSSH_5.1";%0a%3c target_string = "SSH-2.0-dropbear_0.51";%0a%3c target_string = "SSH-2.0-dropbear_0.52";%0a%3c target_string = "SSH-2.0-dropbear_0.53.1";%0a%3c target_string = "SSH-2.0-dropbear_2012.55";%0a%3c target_string = "SSH-2.0-dropbear_2013.62";%0a%3c target_string = "SSH-2.0-dropbear_2014.63";%0a%3c target_string = "SSH-2.0-OpenSSH_4.3";%0a%3c target_string = "SSH-2.0-OpenSSH_5.1";%0a%3c target_string = "SSH-2.0-OpenSSH_5.5p1";%0a%3c target_string = "SSH-2.0-ROSSSH";%0a%3c target_string = "SSH-2.0-SSH_Server";%0a%3c };%0a%3c %0a%3c user {%0a%3c mask = "*!*@*";%0a%3c scanner = "default";%0a%3c };%0a%3c %0a%3c user {%0a%3c # mask = "*!~*@*";%0a%3c mask = "*!squid@*";%0a%3c mask = "*!nobody@*";%0a%3c mask = "*!www-data@*";%0a%3c mask = "*!cache@*";%0a%3c mask = "*!CacheFlowS@*";%0a%3c mask = "*!*@*www*";%0a%3c mask = "*!*@*proxy*";%0a%3c mask = "*!*@*cache*";%0a%3c scanner = "extended";%0a%3c };%0a%3c %0a%3c exempt {%0a%3c mask = "*!*@127.0.0.1";%0a%3c };%0a%3c @]%0a -host:1614695325=198.251.81.119 -author:1614693600=jrmu -diff:1614693600:1614693431:=86,87c86,88%0a%3c kline = "KLINE *@%25h 10800 :Open proxy found on your host. Please contact support@example.com if this is in error.";%0a%3c notice = "To prevent spam and abuse, we scan users for open proxies.";%0a---%0a> kline = "KLINE *@%25i 10800 :Open proxy found on your host.";%0a> notice = "You are now being scanned for open proxies. If you have nothing to hid%0a> e, you have nothing to fear.";%0a94,95d94%0a%3c %0a%3c For @@kline@@, make sure to replace @@*@%25i@@ with @@*@%25h@@ (to allow hopm to work when you cloak hostmasks). You will also want to replace @@support@example.com@@ with your actual support email.%0a -host:1614693600=198.251.81.119 -author:1614693431=jrmu -diff:1614693431:1614692395:=77c77%0a%3c mode = "+BcFiIoqRsw";%0a---%0a> mode = "+iC";%0a82c82%0a%3c invite = "SQUERY ChanServ :INVITE #hopm";%0a---%0a> invite = "CS INVITE #hopm";%0a92,95c92%0a%3c Change the @@nick@@, @@realname@@, @@username@@. @@server@@, @@port@@, @@tls@@ specify how to connect to your ircd. You will want to use 127.0.0.1 port 16667 with no TLS. @@nickserv@@ and @@oper@@ should be changed to match ngircd. You'll also want to replace @@PASSWORD@@ with the nickserv and oper password. Change mode to @@+BcFiIoqRsw@@.%0a%3c %0a%3c I recommend you change channel's @@name@@ from @@#hopm@@ to your team channel. @@invite@@ has been modified to match ngircd; replace @@#hopm@@ with your team channel.%0a%3c %0a---%0a> Change the @@nick@@, @@realname@@, @@username@@, @@server@@, @@port@@, @@tls@@. Replace @@PASSWORD@@ in @@nickserv@@ and @@PASSWORD@@ in @@oper@@ with the nickserv and oper password.%0a -host:1614693431=198.251.81.119 -author:1614692395=jrmu -diff:1614692395:1614691856:=62,63c62,63%0a%3c The only thing we change is we uncomment scanlog so that we have a record of all users that connect. It will be stored in @@/home/hopm/var/log/scan.log@@.%0a%3c %0a---%0a> The only thing we change is we uncomment scanlog so that we have a record of all users that connect.%0a> %0a75,76c75,76%0a%3c nickserv = "SQUERY NickServ :IDENTIFY PASSWORD";%0a%3c oper = "hopm PASSWORD";%0a---%0a> nickserv = "NS IDENTIFY password";%0a> oper = "hopm operpass";%0a92d91%0a%3c Change the @@nick@@, @@realname@@, @@username@@, @@server@@, @@port@@, @@tls@@. Replace @@PASSWORD@@ in @@nickserv@@ and @@PASSWORD@@ in @@oper@@ with the nickserv and oper password.%0a -host:1614692395=198.251.81.119 -author:1614691856=jrmu -diff:1614691856:1614691431:=45,48c45,46%0a%3c [[https://github.com/ircd-hybrid/hopm/blob/master/doc/reference.conf|/home/hopm/hopm/etc/reference.conf]] contains a sample template.%0a%3c %0a%3c We'll create a new /home/hopm/hopm/etc/hopm.conf from scratch to keep it short:%0a%3c %0a---%0a> We'll copy the template conf file:%0a> %0a49a48,53%0a> $ cp /home/hopm/hopm/etc/reference.conf /home/hopm/hopm/etc/hopm.conf%0a> @]%0a> %0a> Then edit /home/hopm/hopm/etc/hopm.conf:%0a> %0a> [@%0a61,62d64%0a%3c %0a%3c The only thing we change is we uncomment scanlog so that we have a record of all users that connect.%0a -host:1614691856=198.251.81.119 -author:1614691431=jrmu -diff:1614691431:1614681012:=52,92d51%0a%3c %0a%3c [@%0a%3c options {%0a%3c pidfile = "var/run/hopm.pid";%0a%3c command_queue_size = 64;%0a%3c command_interval = 10 seconds;%0a%3c command_timeout = 180 seconds;%0a%3c negcache_rebuild = 12 hours;%0a%3c dns_fdlimit = 64;%0a%3c dns_timeout = 5 seconds;%0a%3c scanlog = "var/log/scan.log";%0a%3c };%0a%3c @]%0a%3c %0a%3c [@%0a%3c irc {%0a%3c nick = "MyHopm";%0a%3c realname = "Hybrid Open Proxy Monitor";%0a%3c username = "hopm";%0a%3c server = "127.0.0.1";%0a%3c port = 16667;%0a%3c tls = no;%0a%3c tls_hostname_verification = yes;%0a%3c readtimeout = 15 minutes;%0a%3c reconnectinterval = 30 seconds;%0a%3c nickserv = "NS IDENTIFY password";%0a%3c oper = "hopm operpass";%0a%3c mode = "+iC";%0a%3c away = "I'm a bot. Your messages will be ignored.";%0a%3c channel {%0a%3c name = "#hopm";%0a%3c key = "somekey";%0a%3c invite = "CS INVITE #hopm";%0a%3c };%0a%3c connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]%0a%3c +)\\].*";%0a%3c kline = "KLINE *@%25i 10800 :Open proxy found on your host.";%0a%3c notice = "You are now being scanned for open proxies. If you have nothing to hid%0a%3c e, you have nothing to fear.";%0a%3c };%0a%3c @]%0a -host:1614691431=198.251.81.119 -author:1614681012=jrmu -diff:1614681012:1614680893:=39,40c39,40%0a%3c $ make%0a%3c $ make install%0a---%0a> $ gmake%0a> $ gmake install%0a -host:1614681012=198.251.81.119 -author:1614680893=jrmu -diff:1614680893:1614680783:= -host:1614680893=198.251.81.119 -author:1614680783=jrmu -diff:1614680783:1614680082:=36c36%0a%3c $ tar xvzf 1.1.10.tar.gz%0a---%0a> $ tar xvzf hopm-1.1.10.tar.gz%0a -host:1614680783=198.251.81.119 -author:1614680082=jrmu -diff:1614680082:1614679909:=22c22%0a%3c $ doas useradd -m -g =uid -c "hopm" -d /home/hopm -s /bin/ksh hopm%0a---%0a> doas useradd -m -g =uid -c "hopm" -d /home/hopm -s /bin/ksh hopm%0a -host:1614680082=198.251.81.119 -author:1614679909=jrmu -diff:1614679909:1614679909:=1,74d0%0a%3c (:title Hopm Install Guide:)%0a%3c %0a%3c In this guide, we'll setup and configure [[https://github.com/ircd-hybrid/hopm|hopm]], an open proxy monitor that kills spam bots.%0a%3c %0a%3c Advantages:%0a%3c %0a%3c # Pure C%0a%3c # Compatible with every IRC server%0a%3c # Fast scanning and DNSBL support.%0a%3c %0a%3c Disadvantages:%0a%3c %0a%3c # Occasionally bans innocent users because it cannot perform [[stopm/stopm|statistical analysis]]%0a%3c %0a%3c Before you begin, you must read the [[https://github.com/ircd-hybrid/hopm/blob/master/README|README]] and [[https://github.com/ircd-hybrid/hopm/blob/master/INSTALL|INSTALL]] docs.%0a%3c %0a%3c !! Installation%0a%3c %0a%3c Let's create the user hopm:%0a%3c %0a%3c [@%0a%3c doas useradd -m -g =uid -c "hopm" -d /home/hopm -s /bin/ksh hopm%0a%3c @]%0a%3c %0a%3c Then we switch to the user hopm and change to its home folder:%0a%3c %0a%3c [@%0a%3c $ doas su hopm%0a%3c $ cd%0a%3c @]%0a%3c %0a%3c We download [[https://github.com/ircd-hybrid/hopm/tags|the latest release]], extract it, then build it:%0a%3c %0a%3c [@%0a%3c $ ftp https://github.com/ircd-hybrid/hopm/archive/1.1.10.tar.gz%0a%3c $ tar xvzf hopm-1.1.10.tar.gz%0a%3c $ cd hopm-1.1.10%0a%3c $ ./configure%0a%3c $ gmake%0a%3c $ gmake install%0a%3c @]%0a%3c %0a%3c hopm will now be installed in ~/hopm.%0a%3c %0a%3c We'll copy the template conf file:%0a%3c %0a%3c [@%0a%3c $ cp /home/hopm/hopm/etc/reference.conf /home/hopm/hopm/etc/hopm.conf%0a%3c @]%0a%3c %0a%3c Then edit /home/hopm/hopm/etc/hopm.conf:%0a%3c %0a%3c !! Run Hopm%0a%3c %0a%3c [@%0a%3c $ /home/hopm/hopm/bin/hopm -d%0a%3c @]%0a%3c %0a%3c !! Troubleshooting%0a%3c %0a%3c If you see this error:%0a%3c %0a%3c [@%0a%3c [2021-01-23T09:59:14-0600] IRC -> connect(): error connecting to username.coconut.ircnow.org: Connection refused %0a%3c [2021-01-23T09:59:14-0600] IRC -> Connection to (username.coconut.ircnow.org) failed, reconnecting. %0a%3c [2021-01-23T09:59:14-0600] IRC -> connect(): error connecting to username.coconut.ircnow.org: Connection refused%0a%3c @]%0a%3c %0a%3c This may be due to a configuration issue with ngircd. In particular, if the hostname has an AAAA record, hopm may be trying to connect via IPv6 but ngircd does not listen to IPv6 connections.%0a%3c %0a%3c !! Run Hopm as System Daemon%0a%3c For this refer to this page https://ircnow.org/kb/doku.php?id=openbsd:rc.d%0a%3c %0a%3c # Syntax errors when hopm is running in foreground. This is either the result of missing brackets where needed in config file, or that the file has DOS encodings. See [[https://github.com/ircd-hybrid/hopm/issues/22#issuecomment-301276082]] here. The missing brackets where it was needed may come from the previous section, compared to the line/s where it is indicated by hopm when executed.%0a\ No newline at end of file%0a -host:1614679909=198.251.81.119 +rev=1 +targets= +text=(:redirect Openbsd.Hopm status=301:) +time=1674243157 +author:1674243157=mkf +diff:1674243157:1674243157:=1d0%0a%3c (:redirect Openbsd.Hopm status=301:)%0a\ No newline at end of file%0a +host:1674243157=198.251.82.194 blob - 1fe98d1e7ec4e365db78e4037f31bd7752f75c01 blob + ab1232d2a6fd0eb5cb13227d89d31dae079f11d2 --- wiki.d/Hopm.RecentChanges +++ wiki.d/Hopm.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (X11; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 charset=UTF-8 ctime=1614679909 -host=2800:484:117a:82d4:ff02:54e2:26f6:dd1f +host=198.251.82.194 name=Hopm.RecentChanges -rev=73 -text=* [[Hopm/Install]] . . . December 26, 2022, at 03:32 PM by [[~forero]]: [=fix typo=]%0a* [[Hopm/Telnet]] . . . September 10, 2021, at 06:13 AM by [[~mkf]]: [==]%0a -time=1672068766 +rev=75 +text=* [[Hopm/Install]] . . . January 20, 2023, at 07:32 PM by [[~mkf]]: [==]%0a* [[Hopm/Telnet]] . . . September 10, 2021, at 06:13 AM by [[~mkf]]: [==]%0a +time=1674243157 blob - 38fe927c21b3e05f765f7ec245d2835c8dcd39aa blob + da7534de285359443bdae77ebde2793d20904a7d --- wiki.d/Ircnow.Milestones +++ wiki.d/Ircnow.Milestones @@ -1,15 +1,18 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0 -author=AncientWisdom +agent=w3m/0.5.3+git20220429 +author=jrmu charset=UTF-8 csum= ctime=1634295659 -host=2a03:e600:100::29 +host=38.87.162.8 name=Ircnow.Milestones -rev=7 +rev=8 targets= -text=* ~Nov 2018 -- lecturify.net formed%0a* ~mmm-yyyy -- ircfun.net formed%0a* ~mmm-yyyy -- shelltalk.net formed%0a* ~mmm-yyyy -- jujube.ircnow.org formed%0a* ~mmm-yyyy -- ircforever.org formed%0a* ~mmm-yyyy -- bsdforall.org formed%0a* ~mmm-yyyy -- nastycode.com formed%0a* ~mmm-yyyy -- planetofnix.com formed%0a* ~mmm-yyyy -- ircology.com formed%0a* ~mmm-yyyy -- oddprotocol.org formed%0a* ~mmm-yyyy -- thunderirc.net formed%0a* ~mmm-yyyy -- freeirc.org formed%0a* ~Nov 2019 -- ircnow.org registered%0a* March 2020 -- Begin creating open training course, open recruitment%0a* June 2020 -- Network declaration issued%0a* July 2020 -- IRCNow constitution drafted%0a* ? 2020 -- Begin transferring ownership of domains to teams%0a* July 2021 -- Begin publishing finance accounts%0a* September 2021 -- Begin research into Plan 9 fork%0a* October 2021 -- Begin welcoming alternative operating systems%0a* October 2021 -- Set up CVS code repos%0a* Future -- Set up public mailing list archives%0a* Future -- Elect representatives%0a* Future -- Define and count number of netizens%0a%0a* Future -- Networks break even/self-sustaining%0a* Future -- Transfer ownership of domains%0a -time=1635512764 +text=* ~Nov 2018 -- lecturify.net formed%0a* ~mmm-yyyy -- ircfun.net formed%0a* ~mmm-yyyy -- shelltalk.net formed%0a* ~mmm-yyyy -- jujube.ircnow.org formed%0a* ~mmm-yyyy -- ircforever.org formed%0a* ~mmm-yyyy -- bsdforall.org formed%0a* ~mmm-yyyy -- nastycode.com formed%0a* ~mmm-yyyy -- planetofnix.com formed%0a* ~mmm-yyyy -- ircology.com formed%0a* ~mmm-yyyy -- oddprotocol.org formed%0a* ~mmm-yyyy -- thunderirc.net formed%0a* ~mmm-yyyy -- freeirc.org formed%0a* ~Nov 2019 -- ircnow.org registered%0a* March 2020 -- Begin creating open training course, open recruitment%0a* June 2020 -- Network declaration issued%0a* July 2020 -- IRCNow constitution drafted%0a* ? 2020 -- Begin transferring ownership of domains to teams%0a* July 2021 -- Begin publishing finance accounts%0a* September 2021 -- Begin research into Plan 9 fork%0a* October 2021 -- Begin welcoming alternative operating systems%0a* October 2021 -- Set up CVS code repos%0a* January 2023 -- Transferred all domains and servers to teammates%0a* Future -- Set up public mailing list archives%0a* Future -- Elect representatives%0a* Future -- Define and count number of netizens%0a%0a* Future -- Networks break even/self-sustaining%0a* Future -- Transfer ownership of domains%0a +time=1674273543 +author:1674273543=jrmu +diff:1674273543:1635512764:=22d21%0a%3c * January 2023 -- Transferred all domains and servers to teammates%0a +host:1674273543=38.87.162.8 author:1635512764=AncientWisdom diff:1635512764:1635504314:=1,12c1%0a%3c * ~Nov 2018 -- lecturify.net formed%0a%3c * ~mmm-yyyy -- ircfun.net formed%0a%3c * ~mmm-yyyy -- shelltalk.net formed%0a%3c * ~mmm-yyyy -- jujube.ircnow.org formed%0a%3c * ~mmm-yyyy -- ircforever.org formed%0a%3c * ~mmm-yyyy -- bsdforall.org formed%0a%3c * ~mmm-yyyy -- nastycode.com formed%0a%3c * ~mmm-yyyy -- planetofnix.com formed%0a%3c * ~mmm-yyyy -- ircology.com formed%0a%3c * ~mmm-yyyy -- oddprotocol.org formed%0a%3c * ~mmm-yyyy -- thunderirc.net formed%0a%3c * ~mmm-yyyy -- freeirc.org formed%0a---%0a> * ~Nov 2018 -- lecturify formed%0a host:1635512764=2a03:e600:100::29 blob - a908a88b1085f520562421d3334e0e67603cd04e blob + ef99b2202920d55fe8e2b0f94d41dd7a9bbc4c4d --- wiki.d/Ircnow.RecentChanges +++ wiki.d/Ircnow.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (X11; BSD 4.4 x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.122 Safari/537.36 +agent=w3m/0.5.3+git20220429 charset=UTF-8 ctime=1596181131 -host=138.117.21.249 +host=38.87.162.8 name=Ircnow.RecentChanges -rev=1275 -text=* [[Ircnow/Servers]] . . . October 11, 2022, at 11:53 PM by [[~akoizumi]]: [=shelltalk now has onion=]%0a* [[Ircnow/Pioneer]] . . . August 14, 2022, at 05:06 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Minutemin]] . . . August 14, 2022, at 05:04 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Newdeal]] . . . July 27, 2022, at 06:55 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Daughtersofliberty]] . . . July 27, 2022, at 06:45 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Womenstem]] . . . July 21, 2022, at 05:59 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Media]] . . . July 15, 2022, at 05:54 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Roadmap2022]] . . . July 03, 2022, at 11:04 AM by [[~mkf]]: [==]%0a* [[Ircnow/Nsf]] . . . June 20, 2022, at 05:05 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Metrics]] . . . June 19, 2022, at 04:12 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Team]] . . . May 12, 2022, at 03:44 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Codeforce]] . . . May 03, 2022, at 04:17 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Networks]] . . . April 19, 2022, at 04:22 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Ally]] . . . April 19, 2022, at 04:11 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Explorer]] . . . April 06, 2022, at 08:42 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Dogfood]] . . . January 06, 2022, at 08:48 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Status]] . . . January 03, 2022, at 06:06 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Roadmap]] . . . January 03, 2022, at 06:06 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Projects]] . . . January 02, 2022, at 11:09 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Sonsofliberty]] . . . January 02, 2022, at 06:06 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Roadmap2021]] . . . December 30, 2021, at 06:31 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Status2022]] . . . December 30, 2021, at 05:35 AM by [[~jrmu]]: [==]%0a* [[Ircnow/SSHFingerprints]] . . . December 06, 2021, at 02:03 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Opsofliberty]] . . . November 06, 2021, at 05:15 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Victorycpus]] . . . October 30, 2021, at 08:17 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Settler]] . . . October 29, 2021, at 04:03 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Milestones]] . . . October 29, 2021, at 01:06 PM by [[~AncientWisdom]]: [==]%0a* [[Ircnow/Oper]] . . . October 12, 2021, at 03:02 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Diversity]] . . . October 09, 2021, at 02:56 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Linux]] . . . October 08, 2021, at 04:51 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Todo]] . . . August 17, 2021, at 08:41 AM by [[~mkf]]: [==]%0a* [[Ircnow/Hardware]] . . . August 01, 2021, at 01:48 PM by [[~jrmu]]: [==]%0a* [[Ircnow/PioneerTldr]] . . . July 26, 2021, at 06:04 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Constitution]] . . . June 10, 2021, at 03:48 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Stable]] . . . May 18, 2021, at 10:15 AM by [[~mkf]]: [==]%0a* [[Ircnow/VicePresident]] . . . May 18, 2021, at 08:15 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Sheriff]] . . . May 18, 2021, at 08:00 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Ambassador]] . . . May 18, 2021, at 07:42 AM by [[~jrmu]]: [==]%0a* [[Ircnow/CodeForce]] . . . March 29, 2021, at 12:04 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Goals]] . . . March 06, 2021, at 09:33 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Chatforce]] . . . March 05, 2021, at 02:15 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Howtoask]] . . . March 03, 2021, at 12:35 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Netizen]] . . . February 28, 2021, at 03:18 PM by [[~jrmu]]: [==]%0a* [[Ircnow/IRCitizen]] . . . February 15, 2021, at 05:32 AM by [[~jrmu]]: [==]%0a* [[Ircnow/OpofLiberty]] . . . February 06, 2021, at 12:53 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Allies]] . . . February 06, 2021, at 12:47 PM by [[~jrmu]]: [==]%0a* [[Ircnow/OpsofLiberty]] . . . February 06, 2021, at 02:13 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Partners]] . . . January 31, 2021, at 12:32 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Sysadmins]] . . . January 24, 2021, at 10:36 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Ilines]] . . . January 11, 2021, at 09:55 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Censorship]] . . . January 06, 2021, at 03:01 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Pentesters]] . . . January 05, 2021, at 11:17 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Coders]] . . . January 05, 2021, at 11:11 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Helpers]] . . . January 01, 2021, at 04:36 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Finances]] . . . January 01, 2021, at 04:15 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Testing]] . . . December 30, 2020, at 12:58 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Contact]] . . . December 30, 2020, at 03:18 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Partners2]] . . . December 29, 2020, at 02:52 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Helper]] . . . November 28, 2020, at 02:21 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Course]] . . . August 21, 2020, at 05:01 AM by [[~gry]]: [==]%0a* [[Ircnow/Training]] . . . August 20, 2020, at 05:16 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Federation]] . . . August 03, 2020, at 12:19 PM by [[~jrmu]]: [==]%0a -time=1665532402 +rev=1276 +text=* [[Ircnow/Milestones]] . . . January 21, 2023, at 03:59 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Servers]] . . . October 11, 2022, at 11:53 PM by [[~akoizumi]]: [=shelltalk now has onion=]%0a* [[Ircnow/Pioneer]] . . . August 14, 2022, at 05:06 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Minutemin]] . . . August 14, 2022, at 05:04 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Newdeal]] . . . July 27, 2022, at 06:55 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Daughtersofliberty]] . . . July 27, 2022, at 06:45 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Womenstem]] . . . July 21, 2022, at 05:59 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Media]] . . . July 15, 2022, at 05:54 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Roadmap2022]] . . . July 03, 2022, at 11:04 AM by [[~mkf]]: [==]%0a* [[Ircnow/Nsf]] . . . June 20, 2022, at 05:05 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Metrics]] . . . June 19, 2022, at 04:12 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Team]] . . . May 12, 2022, at 03:44 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Codeforce]] . . . May 03, 2022, at 04:17 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Networks]] . . . April 19, 2022, at 04:22 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Ally]] . . . April 19, 2022, at 04:11 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Explorer]] . . . April 06, 2022, at 08:42 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Dogfood]] . . . January 06, 2022, at 08:48 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Status]] . . . January 03, 2022, at 06:06 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Roadmap]] . . . January 03, 2022, at 06:06 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Projects]] . . . January 02, 2022, at 11:09 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Sonsofliberty]] . . . January 02, 2022, at 06:06 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Roadmap2021]] . . . December 30, 2021, at 06:31 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Status2022]] . . . December 30, 2021, at 05:35 AM by [[~jrmu]]: [==]%0a* [[Ircnow/SSHFingerprints]] . . . December 06, 2021, at 02:03 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Opsofliberty]] . . . November 06, 2021, at 05:15 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Victorycpus]] . . . October 30, 2021, at 08:17 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Settler]] . . . October 29, 2021, at 04:03 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Oper]] . . . October 12, 2021, at 03:02 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Diversity]] . . . October 09, 2021, at 02:56 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Linux]] . . . October 08, 2021, at 04:51 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Todo]] . . . August 17, 2021, at 08:41 AM by [[~mkf]]: [==]%0a* [[Ircnow/Hardware]] . . . August 01, 2021, at 01:48 PM by [[~jrmu]]: [==]%0a* [[Ircnow/PioneerTldr]] . . . July 26, 2021, at 06:04 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Constitution]] . . . June 10, 2021, at 03:48 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Stable]] . . . May 18, 2021, at 10:15 AM by [[~mkf]]: [==]%0a* [[Ircnow/VicePresident]] . . . May 18, 2021, at 08:15 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Sheriff]] . . . May 18, 2021, at 08:00 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Ambassador]] . . . May 18, 2021, at 07:42 AM by [[~jrmu]]: [==]%0a* [[Ircnow/CodeForce]] . . . March 29, 2021, at 12:04 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Goals]] . . . March 06, 2021, at 09:33 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Chatforce]] . . . March 05, 2021, at 02:15 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Howtoask]] . . . March 03, 2021, at 12:35 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Netizen]] . . . February 28, 2021, at 03:18 PM by [[~jrmu]]: [==]%0a* [[Ircnow/IRCitizen]] . . . February 15, 2021, at 05:32 AM by [[~jrmu]]: [==]%0a* [[Ircnow/OpofLiberty]] . . . February 06, 2021, at 12:53 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Allies]] . . . February 06, 2021, at 12:47 PM by [[~jrmu]]: [==]%0a* [[Ircnow/OpsofLiberty]] . . . February 06, 2021, at 02:13 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Partners]] . . . January 31, 2021, at 12:32 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Sysadmins]] . . . January 24, 2021, at 10:36 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Ilines]] . . . January 11, 2021, at 09:55 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Censorship]] . . . January 06, 2021, at 03:01 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Pentesters]] . . . January 05, 2021, at 11:17 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Coders]] . . . January 05, 2021, at 11:11 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Helpers]] . . . January 01, 2021, at 04:36 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Finances]] . . . January 01, 2021, at 04:15 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Testing]] . . . December 30, 2020, at 12:58 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Contact]] . . . December 30, 2020, at 03:18 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Partners2]] . . . December 29, 2020, at 02:52 PM by [[~jrmu]]: [==]%0a* [[Ircnow/Helper]] . . . November 28, 2020, at 02:21 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Course]] . . . August 21, 2020, at 05:01 AM by [[~gry]]: [==]%0a* [[Ircnow/Training]] . . . August 20, 2020, at 05:16 AM by [[~jrmu]]: [==]%0a* [[Ircnow/Federation]] . . . August 03, 2020, at 12:19 PM by [[~jrmu]]: [==]%0a +time=1674273543 blob - 65b2a453fed5a22bae6454bc02114e307a47252a blob + 93cc970e5bcc550737dfd94979ad31cb3184d1a2 --- wiki.d/Mlmmj.Install +++ wiki.d/Mlmmj.Install @@ -1,40 +1,15 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=w3m/0.5.3+git20210102 -author=jrmu +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 +author=mkf charset=UTF-8 csum= -ctime=1625737290 -host=38.87.162.8 +ctime=1674240494 +host=198.251.82.194 name=Mlmmj.Install -rev=9 -targets=Opensmtpd.Configure,Opensmtpd.Test,Crontab.Edit -text=(:title Installing mlmmj:)%0a%0a[[https://mlmmj.org/docs/readme|mlmmj]] (Mailing List Management Made Joyful) is a simple and lightweight mailing list manager. It is MIT-licensed and written in C. It works with OpenSMTPd and requires no daemons so it can run on very small servers.%0a%0a!! Before we begin%0a%0aYou will need to [[opensmtpd/configure|configure]] and [[opensmtpd/test|test OpenSMTPd]].%0a%0a!! Install%0a%0a[@%0a$ doas pkg_add mlmmj%0a@]%0a%0aYou can also [[http://mlmmj.org/downloads|compile from source]].%0a%0a!! Documentation %0a%0aConsult [[http://mlmmj.org/docs/readme|/usr/local/share/doc/mlmmj/README]]%0a%0aOpenSMTPd and mlmmj, by default, use the delimiter +. For instance, mlmmj-test+subscribe@example.com accepts request to subscribe to the mlmmj-test email list. No special configuration is required.%0a%0aTo create an initial mailing list, we first create a directory for mlmmj, then run mlmmj-make-ml:%0a%0a[@%0a$ doas mkdir /var/spool/mlmmj%0a$ doas chown _smtpd:_smtpd /var/spool/mlmmj/ %0a$ doas -u _smtpd mlmmj-make-ml%0aCreating Directorys below /var/spool/mlmmj. Use '-s spooldir' to change%0aWhat should the name of the Mailinglist be? [mlmmj-test] :%0aThe Domain for the List? [] : example.com%0aThe emailaddress of the list owner? [postmaster] : postmaster%0a@]%0a%0aReplace mlmmj-test and example.com with your real list name and domain.%0a%0aFor each mailing list, add an entry into /etc/mail/virtuals (see [[http://man.openbsd.org/aliases|aliases(5)]] and [[https://man.openbsd.org/smtpd.conf|smtpd.conf(5)]]):%0a%0a[@%0amlmmj-test: "|/usr/local/bin/mlmmj-receive -L /var/spool/mlmmj/mlmmj-test/"%0a@]%0a%0aReplace mlmmj-test with your real list name.%0a%0aCreate a log file:%0a%0a[@%0a$ doas touch /var/log/mlmmj.log%0a@]%0a%0aThen run this command once:%0a%0a[@%0a/usr/local/bin/mlmmj-maintd -F -d /var/spool/mlmmj/ >>/var/log/mlmmj.log 2>&1%0a@]%0a%0aThen add the task to your [[crontab/edit|crontab]]:%0a%0a[@%0a0 */2 * * * /usr/local/bin/mlmmj-maintd -F -d /var/spool/mlmmj/ >>/var/log/mlmmj.log 2>&1%0a@]%0a%0aNOTE: mlmmj sends email from 127.0.0.1, which should be added to /etc/mail/hosts; localhost is not enough.%0a%0a(:if false:)%0aNormally the mailing list is only handled on the server, all emails sent to it are for virtual users, or external users. If you have a need to send to a local user, meaning someone with a /home/bangcat directory, you need to modify /etc/mail/smtpd.conf to add a 'table locals file:/etc/mail/locals' and an action to forward email to local users like 'action "local" mbox alias %3clocals>'. The /etc/mail/locals should have a line for each local user that needs to get email.%0aThis is not required in most cases.%0a(:ifend:)%0a%0aTo sign up to the mailing list, simply email mlmmj-test+subscribe@example.com%0aReplace mlmmj-test with your list name, and example.com with your domain name.%0a%0aList files are located at /var/spool/mlmmj/%3cmailing-list-name>.%0a -time=1639919070 -title=Installing mlmmj -author:1639919070=jrmu -diff:1639919070:1625760144:=45,57c45,46%0a%3c Create a log file:%0a%3c %0a%3c [@%0a%3c $ doas touch /var/log/mlmmj.log%0a%3c @]%0a%3c %0a%3c Then run this command once:%0a%3c %0a%3c [@%0a%3c /usr/local/bin/mlmmj-maintd -F -d /var/spool/mlmmj/ >>/var/log/mlmmj.log 2>&1%0a%3c @]%0a%3c %0a%3c Then add the task to your [[crontab/edit|crontab]]:%0a---%0a> Add a task to your [[crontab/edit|crontab]]:%0a> %0a -host:1639919070=38.87.162.8 -author:1625760144=jrmu -diff:1625760144:1625760111:=56c56%0a%3c (:ifend:)%0a---%0a> (:endif:)%0a -host:1625760144=38.81.163.143 -author:1625760111=jrmu -diff:1625760111:1625759627:=53d52%0a%3c (:if false:)%0a56d54%0a%3c (:endif:)%0a -host:1625760111=38.81.163.143 -author:1625759627=jrmu -diff:1625759627:1625757424:=3,4c3,4%0a%3c [[https://mlmmj.org/docs/readme|mlmmj]] (Mailing List Management Made Joyful) is a simple and lightweight mailing list manager. It is MIT-licensed and written in C. It works with OpenSMTPd and requires no daemons so it can run on very small servers.%0a%3c %0a---%0a> [[https://mlmmj.org/docs/readme|mlmmj]] (Mailing List Management Made Joyful) is a simple and lightweight mailing list manager. It is MIT-licensed and written in C It works with OpenSMTPd and requires no daemons so it can run on very small servers.%0a> %0a21,22c21,23%0a%3c OpenSMTPd and mlmmj, by default, use the delimiter +. For instance, mlmmj-test+subscribe@example.com accepts request to subscribe to the mlmmj-test email list. No special configuration is required.%0a%3c %0a---%0a> OpenSMTPd and mlmmj both use the default delimiter + so nothing needs to be changed.%0a> For instance, mlmmj-test+subscribe@example.com accepts request to subscribe to the mlmmj-test email list.%0a> %0a45,46c46,47%0a%3c Add a task to your [[crontab/edit|crontab]]:%0a%3c %0a---%0a> Add a task to your crontab%0a> %0a51c52%0a%3c NOTE: mlmmj sends email from 127.0.0.1, which should be added to /etc/mail/hosts; localhost is not enough.%0a---%0a> The mlmmj tools send all email from 127.0.0.1, which needs to be explicitly added to the /etc/mail/hosts file, having 'localhost' present is not enough.%0a -host:1625759627=38.81.163.143 -author:1625757424=jrmu -diff:1625757424:1625756432:=21c21,22%0a%3c OpenSMTPd and mlmmj both use the default delimiter + so nothing needs to be changed.%0a---%0a> OpenSMTPd and mlmmj both use the default delimiter +, so nothing needs to be changed.%0a> %0a46,47c47%0a%3c Add a task to your crontab%0a%3c %0a---%0a> A seperate line will be required for each mailing list. Once you have added all the mailing list aliases you need, make sure you run:%0a49c49%0a%3c 0 */2 * * * /usr/local/bin/mlmmj-maintd -F -d /var/spool/mlmmj/ >>/var/log/mlmmj.log 2>&1%0a---%0a> $ doas newaliases%0a51c51,56%0a%3c %0a---%0a> That will update the mail system without needing to restart it.%0a> %0a> The alias modification is required to send email to the mailing list handling software, however, there is still some other things that need to be done periodically to keep your mailing lists working smoothly. You need to add a task to your crontab that looks like:%0a> 0 */2 * * * /bin/sh -c "/usr/local/bin/mlmmj-maintd -F -d /var/spool/mlmmj >>/var/log/mlmmj.log 2>&1"%0a> The above is needed, and not like how the documentation shows it. If you don't add the '/bin/sh -c' you will get a weird 'file not found' error in your crontab logs. Use this form of the command so that mlmmj-maintd is run on all mailing lists running. The documentation shows a slightly different syntax that can be used for a specific mailing list, but that is not suggested.%0a> %0a57,60c62%0a%3c To sign up to the mailing list, simply email mlmmj-test+subscribe@example.com%0a%3c Replace mlmmj-test with your list name, and example.com with your domain name.%0a%3c %0a%3c List files are located at /var/spool/mlmmj/%3cmailing-list-name>.%0a---%0a> You are now done with the initial setup. You should start back on the official read me file at https://mlmmj.org/docs/readme to fine tune your setup. Although you can sign up people manually with mlmmj-sub, it is better to have the actual users send mail to the mailing list to do that themselves. All the files you need to tweak for an individual list will be located at /var/spool/mlmmj/%3cmailing-list-name>.%0a -host:1625757424=38.81.163.143 -author:1625756432=jrmu -diff:1625756432:1625755780:=3,4c3,4%0a%3c [[https://mlmmj.org/docs/readme|mlmmj]] (Mailing List Management Made Joyful) is a simple and lightweight mailing list manager. It is MIT-licensed and written in C It works with OpenSMTPd and requires no daemons so it can run on very small servers.%0a%3c %0a---%0a> [[https://mlmmj.org/docs/readme|mlmmj]] (Mailing List Management Made Joyful) is a simple and lightweight mailing list manager. It is written in C and works with OpenSMTPd. It requires no daemons so it can run on very small servers. It's MIT licensed.%0a> %0a15,16d14%0a%3c You can also [[http://mlmmj.org/downloads|compile from source]].%0a%3c %0a25,26c23,24%0a%3c To create an initial mailing list, we first create a directory for mlmmj, then run mlmmj-make-ml:%0a%3c %0a---%0a> In order to start to get the mailing list up and running, we need to create an initial mailing list. The tool mlmmj-make-ml is used to start this process. Running this and all other modifications to your email list must keep _smptd as the owner of all files. %0a> This can be be done a few ways:%0a28,29d25%0a%3c $ doas mkdir /var/spool/mlmmj%0a%3c $ doas chown _smtpd:_smtpd /var/spool/mlmmj/ %0a31,34c27%0a%3c Creating Directorys below /var/spool/mlmmj. Use '-s spooldir' to change%0a%3c What should the name of the Mailinglist be? [mlmmj-test] :%0a%3c The Domain for the List? [] : example.com%0a%3c The emailaddress of the list owner? [postmaster] : postmaster%0a---%0a> $ doas -u _smtpd %3ccommand to edit files>%0a36,40c29%0a%3c %0a%3c Replace mlmmj-test and example.com with your real list name and domain.%0a%3c %0a%3c For each mailing list, add an entry into /etc/mail/virtuals (see [[http://man.openbsd.org/aliases|aliases(5)]] and [[https://man.openbsd.org/smtpd.conf|smtpd.conf(5)]]):%0a%3c %0a---%0a> You can make your modifications normally, then at the end when you are ready to test them run:%0a42c31%0a%3c mlmmj-test: "|/usr/local/bin/mlmmj-receive -L /var/spool/mlmmj/mlmmj-test/"%0a---%0a> $ doas chown -R _smtpd:_smtpd /var/spool/mlmmj%0a44,47c33,42%0a%3c %0a%3c Replace mlmmj-test with your real list name.%0a%3c %0a%3c A seperate line will be required for each mailing list. Once you have added all the mailing list aliases you need, make sure you run:%0a---%0a> You can run a shell as the _smtpd user; this should probably only be used when modifying files under your /var/spool/mlmmj/mlmmj-test directory for tweaking of headers and setup of each specific mailing list. %0a> %0a> To start, run mlmmj-make-ml and use all default suggestions. Make sure you keep _smtpd as the owner /var/spool/mlmmj directories as stated above.%0a> %0a> Now for each mailing list you want, you will need to add an entry into the /etc/mail/aliases file. For more information on this, refer to the opensmtp wiki page.%0a> %0a> Each mailing list needs to have email sent to the mlmmj-receive program to properly handle requests. This is accomplished by adding a command like the following into the /etc/mail/aliases file:%0a> [@%0a> mlmmj-test: "|/usr/local/bin/mlmmj-receive -L /var/spool/mlmmj/mlmmj-test/"%0a> @]%0a -host:1625756432=38.81.163.143 -author:1625755780=jrmu -diff:1625755780:1625755002:=10a11%0a> There is nothing special required to get the core package installed in OpenBSD, simply:%0a15,21c16%0a%3c !! Documentation %0a%3c %0a%3c Consult [[http://mlmmj.org/docs/readme|/usr/local/share/doc/mlmmj/README]]%0a%3c %0a%3c OpenSMTPd and mlmmj both use the default delimiter +, so nothing needs to be changed.%0a%3c %0a%3c For instance, mlmmj-test+subscribe@example.com accepts request to subscribe to the mlmmj-test email list.%0a---%0a> The documentation says to make sure you setup a recipient delimiter, which is already at the default of +. This is what is used to separate commands from mailing list identification. For instance, mailto:mlmmj-test+subscribe@orange.ircnow.org is a request to subscribe to the mlmmj-test email list.%0a -host:1625755780=38.81.163.143 -author:1625755002=jrmu -diff:1625755002:1625737290:=1,10c1%0a%3c (:title Installing mlmmj:)%0a%3c %0a%3c [[https://mlmmj.org/docs/readme|mlmmj]] (Mailing List Management Made Joyful) is a simple and lightweight mailing list manager. It is written in C and works with OpenSMTPd. It requires no daemons so it can run on very small servers. It's MIT licensed.%0a%3c %0a%3c !! Before we begin%0a%3c %0a%3c You will need to [[opensmtpd/configure|configure]] and [[opensmtpd/test|test OpenSMTPd]].%0a%3c %0a%3c !! Install%0a%3c %0a---%0a> This page will show you how to install the mlmmj mailing list package on OpenBSD. It covers mostly installation as maintenance and tweaking of how it will work is covered very well in the official documentation at https://mlmmj.org/docs/readme%0a -host:1625755002=38.81.163.143 -author:1625737290=bangcat -diff:1625737290:1625737290:=1,44d0%0a%3c This page will show you how to install the mlmmj mailing list package on OpenBSD. It covers mostly installation as maintenance and tweaking of how it will work is covered very well in the official documentation at https://mlmmj.org/docs/readme%0a%3c There is nothing special required to get the core package installed in OpenBSD, simply:%0a%3c [@%0a%3c $ doas pkg_add mlmmj%0a%3c @]%0a%3c %0a%3c The documentation says to make sure you setup a recipient delimiter, which is already at the default of +. This is what is used to separate commands from mailing list identification. For instance, mailto:mlmmj-test+subscribe@orange.ircnow.org is a request to subscribe to the mlmmj-test email list.%0a%3c %0a%3c In order to start to get the mailing list up and running, we need to create an initial mailing list. The tool mlmmj-make-ml is used to start this process. Running this and all other modifications to your email list must keep _smptd as the owner of all files. %0a%3c This can be be done a few ways:%0a%3c [@%0a%3c $ doas -u _smtpd mlmmj-make-ml%0a%3c $ doas -u _smtpd %3ccommand to edit files>%0a%3c @]%0a%3c You can make your modifications normally, then at the end when you are ready to test them run:%0a%3c [@%0a%3c $ doas chown -R _smtpd:_smtpd /var/spool/mlmmj%0a%3c @]%0a%3c You can run a shell as the _smtpd user; this should probably only be used when modifying files under your /var/spool/mlmmj/mlmmj-test directory for tweaking of headers and setup of each specific mailing list. %0a%3c %0a%3c To start, run mlmmj-make-ml and use all default suggestions. Make sure you keep _smtpd as the owner /var/spool/mlmmj directories as stated above.%0a%3c %0a%3c Now for each mailing list you want, you will need to add an entry into the /etc/mail/aliases file. For more information on this, refer to the opensmtp wiki page.%0a%3c %0a%3c Each mailing list needs to have email sent to the mlmmj-receive program to properly handle requests. This is accomplished by adding a command like the following into the /etc/mail/aliases file:%0a%3c [@%0a%3c mlmmj-test: "|/usr/local/bin/mlmmj-receive -L /var/spool/mlmmj/mlmmj-test/"%0a%3c @]%0a%3c A seperate line will be required for each mailing list. Once you have added all the mailing list aliases you need, make sure you run:%0a%3c [@%0a%3c $ doas newaliases%0a%3c @]%0a%3c That will update the mail system without needing to restart it.%0a%3c %0a%3c The alias modification is required to send email to the mailing list handling software, however, there is still some other things that need to be done periodically to keep your mailing lists working smoothly. You need to add a task to your crontab that looks like:%0a%3c 0 */2 * * * /bin/sh -c "/usr/local/bin/mlmmj-maintd -F -d /var/spool/mlmmj >>/var/log/mlmmj.log 2>&1"%0a%3c The above is needed, and not like how the documentation shows it. If you don't add the '/bin/sh -c' you will get a weird 'file not found' error in your crontab logs. Use this form of the command so that mlmmj-maintd is run on all mailing lists running. The documentation shows a slightly different syntax that can be used for a specific mailing list, but that is not suggested.%0a%3c %0a%3c The mlmmj tools send all email from 127.0.0.1, which needs to be explicitly added to the /etc/mail/hosts file, having 'localhost' present is not enough.%0a%3c %0a%3c Normally the mailing list is only handled on the server, all emails sent to it are for virtual users, or external users. If you have a need to send to a local user, meaning someone with a /home/bangcat directory, you need to modify /etc/mail/smtpd.conf to add a 'table locals file:/etc/mail/locals' and an action to forward email to local users like 'action "local" mbox alias %3clocals>'. The /etc/mail/locals should have a line for each local user that needs to get email.%0a%3c This is not required in most cases.%0a%3c %0a%3c You are now done with the initial setup. You should start back on the official read me file at https://mlmmj.org/docs/readme to fine tune your setup. Although you can sign up people manually with mlmmj-sub, it is better to have the actual users send mail to the mailing list to do that themselves. All the files you need to tweak for an individual list will be located at /var/spool/mlmmj/%3cmailing-list-name>.%0a -host:1625737290=38.81.163.143 +rev=1 +targets= +text=(:redirect Openbsd.Mlmmj status=301:) +time=1674240494 +author:1674240494=mkf +diff:1674240494:1674240494:=1d0%0a%3c (:redirect Openbsd.Mlmmj status=301:)%0a\ No newline at end of file%0a +host:1674240494=198.251.82.194 blob - 89e5ae341e7d4561f21a487950a95ad9d0bddd11 blob + c482895f3361d511a9907b78ca8960ef4cd8516b --- wiki.d/Mlmmj.RecentChanges +++ wiki.d/Mlmmj.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 charset=UTF-8 ctime=1625737290 -host=2001:8a0:6813:4501:2192:2334:8768:6e2b +host=198.251.82.194 name=Mlmmj.RecentChanges -rev=11 -text=* [[Mlmmj/Archive]] . . . January 06, 2022, at 10:52 PM by [[~Hawk]]: [==]%0a* [[Mlmmj/Install]] . . . December 19, 2021, at 01:04 PM by [[~jrmu]]: [==]%0a -time=1641509571 +rev=14 +text=* [[Mlmmj/Install]] . . . January 20, 2023, at 06:48 PM by [[~mkf]]: [==]%0a* [[Mlmmj/Archive]] . . . January 06, 2022, at 10:52 PM by [[~Hawk]]: [==]%0a +time=1674240494 blob - cff516a3152a858edfaa5e769aea656c7ffbfc02 blob + 873ea0eccf4e55e5d2cb5c439baaaa0199b83c83 --- wiki.d/Ngircd.Install +++ wiki.d/Ngircd.Install @@ -1,377 +1,15 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (Windows NT 10.0; rv:105.0) Gecko/20100101 Firefox/105.0 -author=fossdev +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 +author=mkf charset=UTF-8 -csum=Edit -ctime=1612974683 -host=2405:201:a40c:a132:4223:43ff:fec0:1a01 +csum= +ctime=1674238080 +host=198.251.82.194 name=Ngircd.Install -rev=121 -targets=Irc.Guide,IP.Myaddress,Ddos.Intro,Chroot.Intro,Netcat.Irc,Hopm.Install,Ngircd.Ssl,Password.Management,Dns.Vhost,Ngircd.Link,Syslogd.Configure,Openbsd.Rcctl,Anope.Install,Acopm.Install -text=(:title Ngircd Install Guide:)%0a%0aIn this guide, we'll setup [[https://ngircd.barton.de/documentation.php.en|ngircd]], a free, portable, lightweight IRC server.%0a%0a!!Overview%0a%0angircd is an [[Irc/Guide|IRC]] server. It helps IRC clients send messages to one another.%0a%0aAdvantages:%0a%0a# The source code is written in modern, portable C.%0a# The code compiles easily on all BSDs, Linux, and other platforms.%0a# The code is easy to fork to add new features such as spam filters%0a# The server has a very simple, easy-to-understand configuration%0a# Documentation is short and easy to understand%0a# The server is a clean implementation which was written from scratch%0a# The lead developer po||ux actively hangs out on the IRC server barton.ngircd.de on #ngircd%0a%0a!! Docs and references%0a%0aBefore installation, please consult:%0a%0a# The [[https://ngircd.barton.de/documentation.php.en|Official ngIRCd documentation]] %0a# After installation, see also /usr/local/share/doc/ngircd/ for local documentation%0a# Consult the man pages:%0a # @@$ man 5 ngircd.conf@@%0a # @@$ man 8 ngircd@@%0a%0a!! Installation%0a%0a!!! Installing from OpenBSD packages%0a%0a[@%0a$ doas pkg_add ngircd%0a@]%0a%0aCopy the sample configuration file:%0a%0a[@%0a$ doas cp /usr/local/share/examples/ngircd/sample-ngircd.conf /etc/ngircd/ngircd.conf%0a@]%0a%0angIRCd v26.1 provided by OpenBSD 7.1 ports does not have ident support. On a production server, ident support is essential, so we will need to compile from source (described below). You will want to do this after installing from packages, so that rc.d scripts are created automatically.%0a%0a!!! Building from source%0a%0a'''Note''': Before building from source, make sure you have ngircd package installed using the instructions from above.%0a%0aDownload the IRC server, extract the code, and build it:%0a%0a[@ %0a$ ftp https://ircnow.org/software/ircnowd.tgz%0a$ tar xvzf ircnowd.tgz%0a$ cd ircnowd/%0a$ sh build.sh %0a@]%0a%0a!! Configuring ngircd%0a%0aEdit @@/etc/ngircd/ngircd.conf@@ as root:%0a%0a'''Note''': Lines that begin with # or ; are comments and will be ignored. You will need to remove # or ; to uncomment.%0a%0aTypically, ";" precedes a line of code that has been commented, while a "#" precedes an actual note that should not be uncommented.%0a%0a!!! Global Block%0a%0a[@%0a[Global]%0a Name = irc.example.com%0a AdminInfo1 = Example Network%0a AdminInfo2 = Planet Earth%0a AdminEMail = admin@example.com%0a HelpFile = /usr/local/share/doc/ngircd/Commands.txt%0a Info = irc.example.com%0a@]%0a%0a* Name: Use your server's domain name.%0a* Info: Use your server's domain name.%0a%0a[@%0a Listen = 127.0.0.1,::1,192.168.1.1,2001:db8::%0a@]%0a%0aProvide every single IP address you want ngircd to listen on. This includes localhost (127.0.0.1 and ::1), and [[IP/Myaddress|our public IPv4 and IPv6 addresses]]. Keep 127.0.0.1 and ::1 untouched, but replace 192.168.1.1 and 2001:db8:: with your real public IPs. If you are hosting a public service, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily [[ddos/intro|DDoSed]] and using an unfiltered IP may get you nullrouted.%0a%0a'''Note''': if you do not uncomment this line, you will listen to all IPs by default, which is probably a mistake.%0a%0a[@%0a MotdFile = /etc/ngircd/ngircd.motd%0a ;MotdPhrase = "Hello world!"%0a Network = ExampleNet%0a ;Password = abc%0a@]%0a%0a* Network: Your network name; this usually contains no periods.%0a%0aKeep the MotdPhrase and Password commented out. First, we will be using a MotdFile instead. Secondly, we do not want a global password for a public server.%0a%0a[@%0a PidFile = /var/run/ngircd/ngircd.pid%0a@]%0a%0aThe Pid file is where ngircd writes its process ID.%0a%0a[@%0a Ports = 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 7000, 16667%0a ServerGID = _ngircd%0a ServerUID = _ngircd%0a@]%0a%0aIt's recommended to provide ports besides the standard 6667 to allow users to bypass network firewalls. %0a%0a'''NOTE''': Make sure to set the ServerUID and ServerGID to _ngircd. Otherwise, it runs as the user nobody by default.%0a%0a!!! Limits Block%0a%0a[@%0a[Limits]%0a MaxConnectionsIP = 0%0a MaxJoins = 300%0a MaxNickLength = 16%0a MaxListSize = 3000%0a PingTimeout = 300%0a PongTimeout = 300%0a@]%0a%0aWe allow unlimited connections per IP and handle abuse with other techniques.%0a%0aMaxNickLength: '''must''' be identical for all servers on the network. On IRCNow, MaxNickLength is [@16@].%0a%0a!!! Options Block%0a%0a[@%0a[Options]%0a AllowRemoteOper = yes%0a ChrootDir = /var/ngircd%0a ;CloakHost = %25x%0a CloakHostModeX = %25x%0a CloakHostSalt = abcdefghijklmnopqrstuvwxyz%0a DefaultUserModes = ix%0a DNS = yes%0a Ident = yes%0a@]%0a%0aWe will turn on AllowRemoteOpers so that GLINEs function properly.%0a%0aWe want to [[Chroot.Intro|chroot]] to /var/ngircd to prevent a security compromise. %0a%0aWe will cloak the host using a unique salt; contact another sysadmin for the exact salt. If not linking to another network, you can leave it commented to use a random salt each time it runs, or you can generate your own random salt.%0a%0aWe use CloakHostModeX so that users are cloaked when mode +x is set. Users can then turn off mode x in order to remove the cloak (to show a custom hostmask). If we had used CloakHost instead, uncloaking a user would not be possible.%0a%0aUser mode +i keeps the user invisible so that /whois does not show all channels a user has joined. This helps reduce stalking and harassment.%0a%0aWe want to perform DNS lookups when a client connects so that we can validate a user's hostmask. We also want to perform IDENT lookups.%0a%0a[@%0a NoticeBeforeRegistration = yes%0a OperCanUseMode = yes%0a OperChanPAutoOp = no %0a PAM = no%0a RequireAuthPing = yes%0a SyslogFacility = daemon%0a@]%0a%0aReceiving a notice before registration can help with debugging with [[netcat/irc|netcat]]. It is also necessary for [[hopm/install|hopm]].%0a%0aOperCanUseMode will allow opers the ability to use mode commands when needed. '''Opers should use this power sparingly''', generally only if the channel owner is unable to moderate his channel.%0a%0aOperChanPAutoOp should be set to no so that opers are not automatically op'd in every channel they join. Opers should not interfere with normal channel operation.%0a%0aSet PAM to no because enabling PAM on OpenBSD causes issues.%0a%0aWe set RequireAuthPing to yes because it may help reduce spam.%0a%0aWe're going to log using syslog (see below) to log events.%0a%0a!!! SSL block%0a%0a[@ %0a;[SSL]%0a@]%0a%0a'''This entire block should be commented'''. When you are ready to set up [[ngircd/ssl|SSL/TLS encryption]], un-comment the entire block.%0a%0a'''WARNING''': Do not send passwords or sensitive data over this server until SSL is set up.%0a%0a!!! Operator Block%0a%0aCreate one Operator block for each operator on the server:%0a%0a[@%0a[Operator]%0a Name = username%0a Password = password%0a ;Mask = *!ident@somewhere.example.com%0a@]%0a%0aPlease use a [[password/management|long, random string]] for your password.%0a%0aIf you uncomment Mask, your hostmask must match the operator hostmask in order for the /OPER command to work. If the hostmask differs by even a single character, then your /OPER command will be rejected. It's best to leave Mask commented out until you are familiar with ngircd.%0a%0aOnce your configuration is tested and stable, you can uncomment Mask and have it match your [[dns/vhost|vhost]]. However, please be aware that this will make it impossible to become IRC Operator if you connect from a different IP address.%0a%0a!!! Server Block%0a%0a[@%0a;[Server]%0a@]%0a%0aThe server block is used to connect to other servers to form a network. You can have multiple server blocks. For now, leave it commented out until you are ready to [[ngircd/link|link ngircd]].%0a%0aYou are now finished editing ngircd.conf, so we turn to edit other files.%0a%0a!! MOTD file%0a%0aCreate the Message of the Day in /etc/ngircd/ngircd.motd. Here is a suggested template:%0a%0a[@%0aIRCNow - The Users' Network%0a%0aIRCNow is the network of the user, by the user, for the user.%0a%0a * No porn / illegal drugs / threats of violence%0a * No slander / libel / gambling%0a * No spam, illegal cracking, or DDoS%0a * No copyright infrigement%0a%0aYou must agree to our terms of service and our privacy policy %0ato use this network:%0a%0ahttps://wiki.ircnow.org/index.php?n=Terms.Terms%0a%0aOnly 5 connections per IP address. If you need help, please speak with staff on #help.%0a@]%0a%0a!! Configuring [[syslogd/configure|syslog]]%0a%0aAll log messages from ngircd should go to [@ /var/log/ngircd.log @]. Insert these three lines starting at line 3 (at the top) in [@/etc/syslog.conf@]:%0a%0a[@%0a!!ngircd%0a*.* /var/log/ngircd.log%0a!*%0a@]%0a%0aThis directs all logs from ngircd to go straight to /var/log/ngircd.log.%0a%0aSyslogd expects all logfiles to already exist with the correct permissions. So, we will create the file /var/log/ngircd.log and restart syslogd:%0a%0a[@%0a$ doas touch /var/log/ngircd.log%0a$ doas rcctl restart syslogd%0a@]%0a%0a!! Chroot%0a%0aWe need to set up the [[chroot/intro|chroot]] for ngircd. Let's copy the files into the chroot:%0a%0a[@%0a$ doas mkdir /var/ngircd/etc/%0a$ doas cp /etc/resolv.conf /var/ngircd/etc/%0a$ doas cp -R /etc/ngircd /var/ngircd/etc/%0a$ doas chown -R _ngircd:_ngircd /var/ngircd/%0a$ doas rm -r /etc/ngircd%0a$ doas ln -s /var/ngircd/etc/ngircd /etc/ngircd%0a$ doas mkdir -p /var/ngircd/usr/local/share/doc/%0a$ doas cp -R /usr/local/share/doc/ngircd/ /var/ngircd/usr/local/share/doc/%0a$ doas chown -R _ngircd:_ngircd /var/ngircd/usr/local/share/doc/ngircd/%0a@]%0a%0aThis will create a symlink so that only one set of configuration files needs to be maintained inside and outside of the chroot. Otherwise, ngircd will require two sets of configuration files, one inside and the other outside of the chroot.%0a%0a!! Automation%0a%0aTo automatically restart ngIRCd if it was terminated unexpectedly, create a script in /usr/local/libexec/ngircd/restart.sh:%0a%0a[@%0a$ doas mkdir -p /usr/local/libexec/ngircd/%0a$ doas touch /usr/local/libexec/ngircd/restart.sh%0a$ doas chmod +x /usr/local/libexec/ngircd/restart.sh%0a@]%0a%0aEdit @@/usr/local/libexec/ngircd/restart.sh@@:%0a%0a[@%0a#!/bin/sh%0a%0aSERVICE_NAME="ngircd"%0aSERVICE_USER="_ngircd"%0aSERVICE_PID="/var/ngircd/var/run/ngircd/ngircd.pid"%0a%0aif ! pgrep -u $SERVICE_USER -x "$SERVICE_NAME" > /dev/null%0athen%0a if [ -f $SERVICE_PID ]; then%0a rm -f $SERVICE_PID%0a rcctl -d restart $SERVICE_NAME%0a fi%0afi%0a@]%0a%0aAdd this as a cronjob:%0a%0a[@%0a$ doas crontab -e%0a%0a*/5 * * * * /usr/local/libexec/ngircd/restart.sh > /dev/null 2>&1%0a@]%0a%0aFor the solution to work, make sure you have enabled the use of pid files in /etc/ngircd/ngircd.conf:%0a%0a[@%0aPidFile = /var/run/ngircd/ngircd.pid%0a@]%0a%0a!! Starting ngircd%0a%0aTo start ngircd via [[openbsd/rcctl|rcctl]]:%0a%0a[@%0adoas rcctl enable ngircd%0adoas rcctl start ngircd%0a@]%0a%0aNext, use your IRC client to connect to the server. Join a few channels and chat inside. You will need to invite your friends, since a new IRC server will have no other users on it.%0a%0a!! Troubleshooting%0a%0aIf you run into any errors, you can test to see if your configuration file has errors:%0a%0a[@%0a$ doas ngircd -t%0a@]%0a%0aTo run ngircd in debug mode:%0a%0a[@%0a$ doas ngircd -n%0a@]%0a%0aCheck [@ /var/log/ngircd.log @] to see if ngircd is listening on the correct IP addresses and ports. Connect to those ports using your IRC client to verify that the server is working as intended.%0a%0aRemember, if you are connecting using port 6667 without SSL, any eavesdropper can read all your text, including your passwords. '''Don't send any sensitive information until you have upgraded to [[ngircd/ssl|SSL]].'''%0a%0a!! Reloading and Restarting ngIRCd%0a%0aAfter you edit [@ /etc/ngircd/ngircd.conf @] for a running ngircd server, you will need to reload the configuration file:%0a%0a[@%0a$ doas rcctl reload ngircd%0a@]%0a%0aAlternatively, you can run:%0a%0a[@%0a$ doas pkill -HUP ngircd%0a@]%0a%0a'''Reloading''' a configuration file will '''not''' disconnect any active connections. So, try to reload the configuration where possible '''instead of restarting the service'''.%0a%0aTo restart the ircd:%0a%0a[@%0a$ doas rcctl restart ngircd%0a@]%0a%0a'''WARNING''': '''Restarting''' the ircd '''will''' disconnect all existing connections. So, try to restart ngircd only when absolutely necessary.%0a%0a'''WARNING''': ngircd appears to have a bug where the ircd will crash if you reload the configuration file while a message is being sent. Be careful to avoid reloading configuration files when many users are chatting.%0a%0a!! See Also%0a%0a# Configure [[ngircd/ssl|SSL]] for ngircd to ensure secure connections%0a# [[ngircd/link|Link your ngircd]] with another server to create a network%0a# Install [[anope/install|anope]] to provide services%0a# Configure [[hopm/install|hopm]], an open proxy monitor to stop spammers.%0a# Configure [[acopm/install|acopm]], a minimalist open proxy monitor to stop spammers.%0a -time=1667565713 -title=Ngircd Install Guide -author:1667565713=fossdev -csum:1667565713=Edit -diff:1667565713:1659546979:= -host:1667565713=2405:201:a40c:a132:4223:43ff:fec0:1a01 -author:1659546979=mkf -diff:1659546979:1659053857:=26,28c26,28%0a%3c # @@$ man 5 ngircd.conf@@%0a%3c # @@$ man 8 ngircd@@%0a%3c %0a---%0a> # $ man 5 ngircd.conf%0a> # $ man 8 ngircd%0a> %0a33,36c33,34%0a%3c [@%0a%3c $ doas pkg_add ngircd%0a%3c @]%0a%3c %0a---%0a> [@$ doas pkg_add ngircd @]%0a> %0a39,40c37%0a%3c [@%0a%3c $ doas cp /usr/local/share/examples/ngircd/sample-ngircd.conf /etc/ngircd/ngircd.conf%0a---%0a> [@$ doas cp /usr/local/share/examples/ngircd/sample-ngircd.conf /etc/ngircd/ngircd.conf%0a43,44c40,41%0a%3c ngIRCd v26.1 provided by OpenBSD 7.1 ports does not have ident support. On a production server, ident support is essential, so we will need to compile from source (described below). You will want to do this after installing from packages, so that rc.d scripts are created automatically.%0a%3c %0a---%0a> ngIRCd v26.1 provided by OpenBSD 7.0 ports does not have ident support. On a production server, ident support is essential, so we will need to compile from source (described below). You will want to do this after installing from packages, so that rc.d scripts are created automatically.%0a> %0a60c57%0a%3c Edit @@/etc/ngircd/ngircd.conf@@ as root:%0a---%0a> Edit [@ /etc/ngircd/ngircd.conf @] as root:%0a -host:1659546979=2.178.202.141 -author:1659053857=tiramisu -diff:1659053857:1656939139:minor=57,58c57,58%0a%3c Edit [@ /etc/ngircd/ngircd.conf @] as root:%0a%3c %0a---%0a> Edit [@ /etc/ngircd/ngircd.conf @]:%0a> %0a323c323%0a%3c Next, use your IRC client to connect to the server. Join a few channels and chat inside. You will need to invite your friends, since a new IRC server will have no other users on it.%0a---%0a> Next, use your IRC client to connect to the server. Join a few channels and chat inside.%0a -host:1659053857=2607:fb90:b949:326f:fee6:ed30:3814:d501 -author:1656939139=baytuch -diff:1656939139:1649316468:=295c295%0a%3c rcctl -d restart $SERVICE_NAME%0a---%0a> rcctl -d start $SERVICE_NAME%0a -host:1656939139=2001:bc8:1830:1533::2 -author:1649316468=jrmu -diff:1649316468:1649315205:=312a313,314%0a> %0a> Make sure to configure [[hopm/install|hopm]].%0a -host:1649316468=38.87.162.154 -author:1649315205=jrmu -diff:1649315205:1649314785:=375a376%0a> # Install [[achurch/install|achurch]] to test achurch services%0a -host:1649315205=38.87.162.154 -author:1649314785=jrmu -diff:1649314785:1648181477:=271,314d270%0a%3c %0a%3c !! Automation%0a%3c %0a%3c To automatically restart ngIRCd if it was terminated unexpectedly, create a script in /usr/local/libexec/ngircd/restart.sh:%0a%3c %0a%3c [@%0a%3c $ doas mkdir -p /usr/local/libexec/ngircd/%0a%3c $ doas touch /usr/local/libexec/ngircd/restart.sh%0a%3c $ doas chmod +x /usr/local/libexec/ngircd/restart.sh%0a%3c @]%0a%3c %0a%3c Edit @@/usr/local/libexec/ngircd/restart.sh@@:%0a%3c %0a%3c [@%0a%3c #!/bin/sh%0a%3c %0a%3c SERVICE_NAME="ngircd"%0a%3c SERVICE_USER="_ngircd"%0a%3c SERVICE_PID="/var/ngircd/var/run/ngircd/ngircd.pid"%0a%3c %0a%3c if ! pgrep -u $SERVICE_USER -x "$SERVICE_NAME" > /dev/null%0a%3c then%0a%3c if [ -f $SERVICE_PID ]; then%0a%3c rm -f $SERVICE_PID%0a%3c rcctl -d start $SERVICE_NAME%0a%3c fi%0a%3c fi%0a%3c @]%0a%3c %0a%3c Add this as a cronjob:%0a%3c %0a%3c [@%0a%3c $ doas crontab -e%0a%3c %0a%3c */5 * * * * /usr/local/libexec/ngircd/restart.sh > /dev/null 2>&1%0a%3c @]%0a%3c %0a%3c For the solution to work, make sure you have enabled the use of pid files in /etc/ngircd/ngircd.conf:%0a%3c %0a%3c [@%0a%3c PidFile = /var/run/ngircd/ngircd.pid%0a%3c @]%0a%3c %0a%3c Make sure to configure [[hopm/install|hopm]].%0a -host:1649314785=38.87.162.154 -author:1648181477=jrmu -diff:1648181477:1648181362:=247c247%0a%3c Syslogd expects all logfiles to already exist with the correct permissions. So, we will create the file /var/log/ngircd.log and restart syslogd:%0a---%0a> Next, create the file /var/log/ngircd.log and restart syslogd:%0a -host:1648181477=38.87.162.154 -author:1648181362=jrmu -diff:1648181362:1648180006:=235c235%0a%3c !! Configuring [[syslogd/configure|syslog]]%0a---%0a> !! Configuring syslog%0a -host:1648181362=38.87.162.154 -author:1648180006=jrmu -diff:1648180006:1648141852:=7c7%0a%3c ngircd is an [[Irc/Guide|IRC]] server. It helps IRC clients send messages to one another.%0a---%0a> ngircd is an [[IRC/Guide|IRC]] server. It helps IRC clients send messages to one another.%0a -host:1648180006=38.87.162.154 -author:1648141852=jrmu -diff:1648141852:1648141818:= -host:1648141852=38.87.162.154 -author:1648141818=jrmu -diff:1648141818:1648141334:=204d203%0a%3c %0a206c205%0a%3c ;[Server]%0a---%0a> [Server]%0a209,213c208,213%0a%3c The server block is used to connect to other servers to form a network. You can have multiple server blocks. For now, leave it commented out until you are ready to [[ngircd/link|link ngircd]].%0a%3c %0a%3c You are now finished editing ngircd.conf, so we turn to edit other files.%0a%3c %0a%3c !! MOTD file%0a---%0a> The server block is used to connect to other servers to form a network. You can have multiple server blocks. See: [[ngircd/link|Link your ngircd]] %0a> %0a> %0a> You are finished editing ngircd.conf%0a> %0a> !!MOTD file%0a -host:1648141818=38.87.162.154 -author:1648141334=jrmu -diff:1648141334:1648141026:=188,189c188,189%0a%3c Create one Operator block for each operator on the server:%0a%3c %0a---%0a> You may have as many Operator Blocks as you like, one for each Operator.%0a> %0a194d193%0a%3c ;Mask = *!ident@somewhere.example.com%0a199,201c198,200%0a%3c If you uncomment Mask, your hostmask must match the operator hostmask in order for the /OPER command to work. If the hostmask differs by even a single character, then your /OPER command will be rejected. It's best to leave Mask commented out until you are familiar with ngircd.%0a%3c %0a%3c Once your configuration is tested and stable, you can uncomment Mask and have it match your [[dns/vhost|vhost]]. However, please be aware that this will make it impossible to become IRC Operator if you connect from a different IP address.%0a---%0a> If you uncomment Mask, your hostmask must match the operator hostmask in order for the /OPER command to be accepted. If it differs at all, then your /OPER command will be rejected. If you don't want to check the hostmask, leave Mask commented out.%0a> %0a> For more security, you can uncomment Mask and have it match your vhost. However, please be aware that this will make it impossible to authenticate if you ever have to connect from a different IP address.%0a -host:1648141334=38.87.162.154 -author:1648141026=jrmu -diff:1648141026:1648140259:=151,152d150%0a%3c User mode +i keeps the user invisible so that /whois does not show all channels a user has joined. This helps reduce stalking and harassment.%0a%3c %0a159d156%0a%3c PAM = no%0a164,175c161,165%0a%3c Receiving a notice before registration can help with debugging with [[netcat/irc|netcat]]. It is also necessary for [[hopm/install|hopm]].%0a%3c %0a%3c OperCanUseMode will allow opers the ability to use mode commands when needed. '''Opers should use this power sparingly''', generally only if the channel owner is unable to moderate his channel.%0a%3c %0a%3c OperChanPAutoOp should be set to no so that opers are not automatically op'd in every channel they join. Opers should not interfere with normal channel operation.%0a%3c %0a%3c Set PAM to no because enabling PAM on OpenBSD causes issues.%0a%3c %0a%3c We set RequireAuthPing to yes because it may help reduce spam.%0a%3c %0a%3c We're going to log using syslog (see below) to log events.%0a%3c %0a---%0a> %0a> User mode +i keeps the user invisible so that /whois does not show all channels a user has joined. This helps reduce stalking and harassment.%0a> %0a> Receiving a notice before registration can help with debugging with [[netcat/irc|netcat]]. It is necessary for [[hopm/install|hopm]]. We're going to log using syslog (see below).%0a> %0a182c172%0a%3c '''This entire block should be commented'''. When you are ready to set up [[ngircd/ssl|SSL/TLS encryption]], un-comment the entire block.%0a---%0a> This entire block should be commented. When you are ready to set up [[ngircd/ssl|SSL/TLS encryption]], un-comment the entire block.%0a -host:1648141026=38.87.162.154 -author:1648140259=jrmu -diff:1648140259:1648139583:=135,136c135,136%0a%3c ;CloakHost = %25x%0a%3c CloakHostModeX = %25x%0a---%0a> CloakHost = %25x%0a> ;CloakHostModeX = cloaked.user%0a138,140c138,143%0a%3c DefaultUserModes = ix%0a%3c DNS = yes%0a%3c Ident = yes%0a---%0a> DefaultUserModes = i%0a> ;DNS = no%0a> NoticeBeforeRegistration = yes%0a> OperChanPAutoOp = no %0a> RequireAuthPing = yes%0a> SyslogFacility = daemon%0a147,160c150%0a%3c We will cloak the host using a unique salt; contact another sysadmin for the exact salt. If not linking to another network, you can leave it commented to use a random salt each time it runs, or you can generate your own random salt.%0a%3c %0a%3c We use CloakHostModeX so that users are cloaked when mode +x is set. Users can then turn off mode x in order to remove the cloak (to show a custom hostmask). If we had used CloakHost instead, uncloaking a user would not be possible.%0a%3c %0a%3c We want to perform DNS lookups when a client connects so that we can validate a user's hostmask. We also want to perform IDENT lookups.%0a%3c %0a%3c [@%0a%3c NoticeBeforeRegistration = yes%0a%3c OperCanUseMode = yes%0a%3c OperChanPAutoOp = no %0a%3c RequireAuthPing = yes%0a%3c SyslogFacility = daemon%0a%3c @]%0a%3c %0a---%0a> We will cloak the host using a unique salt; contact another sysadmin for the exact salt. If not linking to a network, you can leave it commented for a random salt each time it runs or you can provide your own random salt.%0a -host:1648140259=38.87.162.154 -author:1648139583=jrmu -diff:1648139583:1648138974:=88d87%0a%3c ;MotdPhrase = "Hello world!"%0a90d88%0a%3c ;Password = abc%0a93,96c91,93%0a%3c * Network: Your network name; this usually contains no periods.%0a%3c %0a%3c Keep the MotdPhrase and Password commented out. First, we will be using a MotdFile instead. Secondly, we do not want a global password for a public server.%0a%3c %0a---%0a> * Motdfile stands for "Message of the Day"; we will create this file later on.%0a> * Network: Your network name.%0a> %0a98c95,97%0a%3c PidFile = /var/run/ngircd/ngircd.pid%0a---%0a> Ports = 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 7000, 16667%0a> ServerGID = _ngircd%0a> ServerUID = _ngircd%0a101,108d99%0a%3c The Pid file is where ngircd writes its process ID.%0a%3c %0a%3c [@%0a%3c Ports = 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 7000, 16667%0a%3c ServerGID = _ngircd%0a%3c ServerUID = _ngircd%0a%3c @]%0a%3c %0a125,127c116%0a%3c We allow unlimited connections per IP and handle abuse with other techniques.%0a%3c %0a%3c MaxNickLength: '''must''' be identical for all servers on the network. On IRCNow, MaxNickLength is [@16@].%0a---%0a> MaxNickLength: '''must''' be identical to all servers on the network. On IRCNow, MaxNickLength is [@16@].%0a -host:1648139583=38.87.162.154 -author:1648138974=jrmu -diff:1648138974:1648138103:=42,43c42,44%0a%3c !!! Building from source%0a%3c %0a---%0a> !!! Installing from source%0a> %0a> %0a59,60c60,61%0a%3c '''Note''': Lines that begin with # or ; are comments and will be ignored. You will need to remove # or ; to uncomment.%0a%3c %0a---%0a> '''Note''': Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment%0a> %0a71d71%0a%3c HelpFile = /usr/local/share/doc/ngircd/Commands.txt%0a82c82%0a%3c Provide every single IP address you want ngircd to listen on. This includes localhost (127.0.0.1 and ::1), and [[IP/Myaddress|our public IPv4 and IPv6 addresses]]. Keep 127.0.0.1 and ::1 untouched, but replace 192.168.1.1 and 2001:db8:: with your real public IPs. If you are hosting a public service, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily [[ddos/intro|DDoSed]] and using an unfiltered IP may get you nullrouted.%0a---%0a> Uncomment this line and provide every single IP address you want ngircd to listen on. This includes localhost (127.0.0.1 and ::1), and [[IP/Myaddress|our public IPv4 and IPv6 addresses]]. Keep 127.0.0.1 and ::1 untouched, but replace 192.168.1.1 and 2001:db8:: with your real public IPs. If you are hosting a public service, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a -host:1648138974=38.87.162.154 -author:1648138103=jrmu -diff:1648138103:1648137933:=25,29c25,27%0a%3c # Consult the man pages:%0a%3c # $ man 5 ngircd.conf%0a%3c # $ man 8 ngircd%0a%3c %0a%3c !! Installation%0a---%0a> # Consult the man pages%0a> %0a> !!Installation%0a -host:1648138103=38.87.162.154 -author:1648137933=jrmu -diff:1648137933:1648137542:=19,26c19,22%0a%3c !! Docs and references%0a%3c %0a%3c Before installation, please consult:%0a%3c %0a%3c # The [[https://ngircd.barton.de/documentation.php.en|Official ngIRCd documentation]] %0a%3c # After installation, see also /usr/local/share/doc/ngircd/ for local documentation%0a%3c # Consult the man pages%0a%3c %0a---%0a> !!Docs and references%0a> %0a> # [[https://ngircd.barton.de/documentation.php.en|Official ngIRCd documentation]] %0a> %0a58c54%0a%3c '''Note''': Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment%0a---%0a> '''Note''': Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line if that is desired.%0a -host:1648137933=38.87.162.154 -author:1648137542=jrmu -diff:1648137542:1644786667:=41c41%0a%3c Download the IRC server, extract the code, and build it:%0a---%0a> Pull the codebase from IRCNow's file servers, extract the code, and install it%0a -host:1648137542=38.87.162.154 -author:1644786667=jrmu -diff:1644786667:1644786645:=85,86c85,86%0a%3c * Motdfile stands for "Message of the Day"; we will create this file later on.%0a%3c * Network: Your network name.%0a---%0a> Motdfile stands for "Message of the Day"; we will create this file later on.%0a> Network: Your network name.%0a -host:1644786667=38.87.162.154 -author:1644786645=jrmu -diff:1644786645:1644786622:=78c78%0a%3c '''Note''': if you do not uncomment this line, you will listen to all IPs by default, which is probably a mistake.%0a---%0a> '''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a -host:1644786645=38.87.162.154 -author:1644786622=jrmu -diff:1644786622:1644786528:=76c76%0a%3c Uncomment this line and provide every single IP address you want ngircd to listen on. This includes localhost (127.0.0.1 and ::1), and [[IP/Myaddress|our public IPv4 and IPv6 addresses]]. Keep 127.0.0.1 and ::1 untouched, but replace 192.168.1.1 and 2001:db8:: with your real public IPs. If you are hosting a public service, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a---%0a> Uncomment this line and provide every single IP address you want ngircd to listen on. This includes localhost (127.0.0.1 and ::1), and our public IPv4 and IPv6 addresses. Keep 127.0.0.1 and ::1 untouched, but replace 192.168.1.1 and 2001:db8:: with your real public IPs. If you are hosting a public service, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a -host:1644786622=38.87.162.154 -author:1644786528=jrmu -diff:1644786528:1644785351:=69,70c69,70%0a%3c * Name: Use your server's domain name.%0a%3c * Info: Use your server's domain name.%0a---%0a> *Name: Use your server's domain name.%0a> *Info: Use your server's domain name.%0a -host:1644786528=38.87.162.154 -author:1644785351=jrmu -diff:1644785351:1642657833:=34c34%0a%3c ngIRCd v26.1 provided by OpenBSD 7.0 ports does not have ident support. On a production server, ident support is essential, so we will need to compile from source (described below). You will want to do this after installing from packages, so that rc.d scripts are created automatically.%0a---%0a> ngIRCd v26.1 provided by OpenBSD 6.9 ports does not have ident support. On a production server, ident support is essential, so we will need to compile from source (described below). You will want to do this after installing from packages, so that rc.d scripts are created automatically.%0a -host:1644785351=38.87.162.154 -author:1642657833=jrmu -diff:1642657833:1639821547:=105c105%0a%3c MaxListSize = 3000%0a---%0a> MaxListSize = 1000%0a -host:1642657833=38.87.162.8 -author:1639821547=jrmu -diff:1639821547:1639821534:=122c122%0a%3c ;DNS = no%0a---%0a> ;DNS = yes%0a -host:1639821547=38.87.162.8 -author:1639821534=jrmu -diff:1639821534:1639817882:=119,126c119,124%0a%3c ;CloakHostModeX = cloaked.user%0a%3c CloakHostSalt = abcdefghijklmnopqrstuvwxyz%0a%3c DefaultUserModes = i%0a%3c ;DNS = yes%0a%3c NoticeBeforeRegistration = yes%0a%3c OperChanPAutoOp = no %0a%3c RequireAuthPing = yes%0a%3c SyslogFacility = daemon%0a---%0a> CloakHostSalt = abcdefghijklmnopqrstuvwxyz%0a> DefaultUserModes = i%0a> NoticeBeforeRegistration = yes%0a> OperChanPAutoOp = no %0a> RequireAuthPing = yes%0a> SyslogFacility = daemon%0a -host:1639821534=38.87.162.8 -author:1639817882=jrmu -diff:1639817882:1639817723:=44,46c44,46%0a%3c $ ftp https://ircnow.org/software/ircnowd.tgz%0a%3c $ tar xvzf ircnowd.tgz%0a%3c $ cd ircnowd/%0a---%0a> $ ftp https://ircnow.org/software/ngircd.tgz%0a> $ tar xvzf ngircd.tgz%0a> $ cd ngircd-26.1/%0a -host:1639817882=38.87.162.47 -author:1639817723=jrmu -diff:1639817723:1638884657:=118a119%0a> CloakHostModeX = %25x%0a120c121%0a%3c DefaultUserModes = i%0a---%0a> DefaultUserModes = ix%0a133c134%0a%3c User mode +i keeps the user invisible so that /whois does not show all channels a user has joined. This helps reduce stalking and harassment.%0a---%0a> User mode +i keeps the user invisible so that /whois does not show all channels a user has joined. This helps reduce stalking and harassment. User mode +x cloaks the user by default.%0a -host:1639817723=38.87.162.47 -author:1638884657=jrmu -diff:1638884657:1638845897:=118d117%0a%3c CloakHost = %25x%0a -host:1638884657=38.87.162.47 -author:1638845897=jrmu -diff:1638845897:1638840723:=117a118%0a> CloakHost = %25x%0a -host:1638845897=38.87.162.8 -author:1638840723=jrmu -diff:1638840723:1637366855:=73c73%0a%3c Listen = 127.0.0.1,::1,192.168.1.1,2001:db8::%0a---%0a> Listen = 127.0.0.1,192.168.1.1,2001:db8::%0a76c76%0a%3c Uncomment this line and provide every single IP address you want ngircd to listen on. This includes localhost (127.0.0.1 and ::1), and our public IPv4 and IPv6 addresses. Keep 127.0.0.1 and ::1 untouched, but replace 192.168.1.1 and 2001:db8:: with your real public IPs. If you are hosting a public service, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a---%0a> Uncomment this line and provide every single IP address you want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Keep 127.0.0.1 but replace 192.168.1.1 and 2001:db8:: with your real public IPs. If you are hosting a public service, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a -host:1638840723=38.87.162.8 -author:1637366855=bugzbunny -diff:1637366855:1636462605:=37,39d36%0a%3c %0a%3c %0a%3c '''Note''': Before building from source, make sure you have ngircd package installed using the instructions from above.%0a -host:1637366855=72.78.238.236 -author:1636462605=jrmu -diff:1636462605:1635167345:=116d115%0a%3c CloakHostModeX = %25x%0a118c117%0a%3c DefaultUserModes = ix%0a---%0a> DefaultUserModes = i%0a131c130%0a%3c User mode +i keeps the user invisible so that /whois does not show all channels a user has joined. This helps reduce stalking and harassment. User mode +x cloaks the user by default.%0a---%0a> User mode +i keeps the user invisible so that /whois does not show all channels a user has joined. This helps reduce stalking and harassment. %0a -host:1636462605=38.87.162.8 -author:1635167345=jrmu -diff:1635167345:1633228664:=113c113%0a%3c AllowRemoteOper = yes%0a---%0a> AllowRemoteOper = no%0a124,125c124,125%0a%3c We will turn on AllowRemoteOpers so that GLINEs function properly.%0a%3c %0a---%0a> For security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you might not trust an oper on another server.%0a> %0a -host:1635167345=38.87.162.8 -author:1633228664=jrmu -diff:1633228664:1631975364:=116c116%0a%3c CloakHostSalt = abcdefghijklmnopqrstuvwxyz%0a---%0a> CloakHostSalt = %3cabcdefghijklmnopqrstuvwxyz>%0a -host:1633228664=125.231.16.47 -author:1631975364=jrmu -diff:1631975364:1631964903:=222,224d221%0a%3c $ doas mkdir -p /var/ngircd/usr/local/share/doc/%0a%3c $ doas cp -R /usr/local/share/doc/ngircd/ /var/ngircd/usr/local/share/doc/%0a%3c $ doas chown -R _ngircd:_ngircd /var/ngircd/usr/local/share/doc/ngircd/%0a -host:1631975364=38.87.162.8 -author:1631964903=jrmu -diff:1631964903:1631956282:=73,76c73,74%0a%3c Uncomment this line and provide every single IP address you want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Keep 127.0.0.1 but replace 192.168.1.1 and 2001:db8:: with your real public IPs. If you are hosting a public service, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a%3c %0a%3c '''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a%3c %0a---%0a> Listen: Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted. '''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a> %0a79c77%0a%3c Network = ExampleNet%0a---%0a> Network = IRCNow%0a82,84c80,83%0a%3c Motdfile stands for "Message of the Day"; we will create this file later on.%0a%3c Network: Your network name.%0a%3c %0a---%0a> Motdfile: Stands for "Message of the Day", we will create this at that file location later on.%0a> %0a> Network: IRCNow, or your network (Liberachat, freenode, etc...)%0a> %0a91,94c90,95%0a%3c It's recommended to provide ports besides the standard 6667 to allow users to bypass network firewalls. %0a%3c %0a%3c '''NOTE''': Make sure to set the ServerUID and ServerGID to _ngircd. Otherwise, it runs as the user nobody by default.%0a%3c %0a---%0a> Ports: listed are the default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls (censorship). %0a> %0a> ServerGID: Uncomment, name (or number) of the Group to run as%0a> %0a> ServerUID: Uncomment, name (or number) of the User to run as%0a> %0a117c118%0a%3c DefaultUserModes = i%0a---%0a> DefaultUserModes = iC%0a124c125%0a%3c For security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you might not trust an oper on another server.%0a---%0a> AllowRemoteOper: For security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you may not necessarily trust an oper on another server.%0a126,133c127,134%0a%3c We want to [[Chroot.Intro|chroot]] to /var/ngircd to prevent a security compromise. %0a%3c %0a%3c We will cloak the host using a unique salt; contact another sysadmin for the exact salt. If not linking to a network, you can leave it commented for a random salt each time it runs or you can provide your own random salt.%0a%3c %0a%3c User mode +i keeps the user invisible so that /whois does not show all channels a user has joined. This helps reduce stalking and harassment. %0a%3c %0a%3c Receiving a notice before registration can help with debugging with [[netcat/irc|netcat]]. It is necessary for [[hopm/install|hopm]]. We're going to log using syslog (see below).%0a%3c %0a---%0a> ChrootDir: We want to [[Chroot.Intro|chroot]] to /var/ngircd to prevent a security compromise. %0a> %0a> CloakHostSalt: We will cloak the host using a unique salt; contact another sysadmin for the exact salt. For a Practice VPS or if not linking to a network, you can leave it commented for a random Salt each time it runs or you can provide your own random Salt%0a> %0a> DefaultUserModes: UserMode +i keeps the user invisible, and +C means that only users that share channels can send a message. Both settings help reduce spam, stalking, and harassment. %0a> %0a> NoticeBeforeRegistration: Receiving a notice before registration can help with debugging with [[netcat/irc|netcat]]. We're going to log using syslog (see section below).%0a> %0a140,143c141,142%0a%3c This entire block should be commented. When you are ready to set up [[ngircd/ssl|SSL/TLS encryption]], un-comment the entire block.%0a%3c %0a%3c '''WARNING''': Do not send passwords or sensitive data over this server until SSL is set up.%0a%3c %0a---%0a> This entire block is commented, when you are ready to set up [[ngircd/ssl|SSL/TLS encryption]], un-comment it and follow the instructions on the SSL page. '''Note''': do not send passwords/sensitive data over IRC to this server until SSL is set up %0a> %0a150,151c149,150%0a%3c Name = username%0a%3c Password = password%0a---%0a> Name = %3cusername>%0a> Password = %3cpassword>%0a154,155c153,156%0a%3c Please use a [[password/management|long, random string]] for your password.%0a%3c %0a---%0a> Name: your IRC username%0a> %0a> Password: Please use a [[password/management|long, random string]] for your password.%0a> %0a172,173c173,174%0a%3c Create the Message of the Day in /etc/ngircd/ngircd.motd. Here is a suggested template:%0a%3c %0a---%0a> Paste your Message of the Day in /etc/ngircd/ngircd.motd. Here's a suggested template:%0a> %0a179c180%0a%3c * No porn / illegal drugs / threats of violence%0a---%0a> * No porn / illegal drugs / promotion of violence%0a191a193%0a> %0a194,195c196,197%0a%3c All log messages from ngircd should go to [@ /var/log/ngircd.log @]. Insert these three lines starting at line 3 (at the top) in [@/etc/syslog.conf@]:%0a%3c %0a---%0a> You want all the log messages from ngircd (Errors, system reports) to go to [@ /var/log/ngircd.log @] and not anywhere else, so we insert these three lines starting at line 3 (from the top) in [@ /etc/syslog.conf @]:%0a> %0a202,203c204,205%0a%3c This directs all logs from ngircd to go straight to /var/log/ngircd.log.%0a%3c %0a---%0a> This directs all logs from ngircd to go straight to /var/log/ngircd.log and nowhere else.%0a> %0a213,214c215%0a%3c We need to set up the [[chroot/intro|chroot]] for ngircd. Let's copy the files into the chroot:%0a%3c %0a---%0a> We need to set up the [[openbsd/chroot|chroot]] for ngircd. Let's copy the files into the chroot:%0a235c236,237%0a%3c Next, use your IRC client to connect to the server. Join a few channels and chat inside.%0a---%0a> Next, use your IRC client to connect to the server, which may have the hostname [@ %3cuser>.%3cfruit>.ircnow.org @]. %0a> Join a few channels and chat inside.%0a -host:1631964903=38.87.162.8 -author:1631956282=jrmu -diff:1631956282:1631956227:=66,67c66,67%0a%3c *Name: Use your server's domain name.%0a%3c *Info: Use your server's domain name.%0a---%0a> Name: Use your server's domain name.%0a> Info: Use your server's domain name%0a -host:1631956282=38.87.162.8 -author:1631956227=jrmu -diff:1631956227:1631955807:=54a55%0a> %0a59,63c60,64%0a%3c Name = irc.example.com%0a%3c AdminInfo1 = Example Network%0a%3c AdminInfo2 = Planet Earth%0a%3c AdminEMail = admin@example.com%0a%3c Info = irc.example.com%0a---%0a> Name = %3circ.example.com>%0a> AdminInfo1 = %3cExample Network>%0a> AdminInfo2 = %3cPlanet Earth>%0a> AdminEMail = %3cadmin@example.com>%0a> Info = %3cusername.fruit.ircnow.org>%0a66,68c67,76%0a%3c Name: Use your server's domain name.%0a%3c Info: Use your server's domain name%0a%3c %0a---%0a> Name: use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. %0a> %0a> AdminInfo1: provide a description of your IRC server.%0a> %0a> AdminInfo2: provide the location%0a> %0a> AdminEmail: your Email where bug reports and complaints may be sent%0a> %0a> Info: your server's domain name%0a> %0a70c78%0a%3c Listen = 127.0.0.1,192.168.1.1,2001:db8::%0a---%0a> Listen = 127.0.0.1,%3c192.168.1.1>,%3c2001:db8::>%0a152a161%0a> %0a171a181%0a> %0a -host:1631956227=38.87.162.8 -author:1631955807=jrmu -diff:1631955807:1631253991:=3,4c3,10%0a%3c In this guide, we'll setup [[https://ngircd.barton.de/documentation.php.en|ngircd]], a free, portable, lightweight IRC server.%0a%3c %0a---%0a> %0a> %0a> %0a> %0a> In this guide, we'll setup ngircd, a free, portable, lightweight IRC server.%0a> %0a> %0a> %0a7,13c13,21%0a%3c ngircd is an [[IRC/Guide|IRC]] server. It helps IRC clients send messages to one another.%0a%3c %0a%3c Advantages:%0a%3c %0a%3c # The source code is written in modern, portable C.%0a%3c # The code compiles easily on all BSDs, Linux, and other platforms.%0a%3c # The code is easy to fork to add new features such as spam filters%0a---%0a> %0a> ngircd is an IRC (Internet Relay Chat) server. It connects IRC clients (such as hexchat, irssi, etc) and transfers messages between them. In this article, we will set up ngircd so that irc clents can connect to it and communicate with each other.%0a> %0a> %0a> %0a> %0a> There are many irc servers we could have used, but the advantages of using ngircd are:%0a> %0a> # The source code runs well on OpenBSD%0a15c23%0a%3c # Documentation is short and easy to understand%0a---%0a> # Fewer features means the manual pages are short%0a16a25,27%0a> # The source code is written in modern, portable C. It will be easy to fork to new features such as:%0a> # Customized censorship to block NSFW content%0a> # Spam filters%0a18a30,33%0a> %0a> %0a> %0a> %0a21,22c36,43%0a%3c # [[https://ngircd.barton.de/documentation.php.en|Official ngIRCd documentation]] %0a%3c %0a---%0a> %0a> #official [[https://ngircd.barton.de/documentation.php.en|ngIRCd documentation]] %0a> %0a> #read the man pages%0a> %0a> %0a> %0a> %0a24a46,50%0a> %0a> %0a> %0a> %0a> %0a26a53,55%0a> %0a> Install ngircd%0a> %0a29,30c58,59%0a%3c Copy the sample configuration file:%0a%3c %0a---%0a> Copy the sample configuration file%0a> %0a34,39c63,71%0a%3c ngIRCd v26.1 provided by OpenBSD 6.9 ports does not have ident support. On a production server, ident support is essential, so we will need to compile from source (described below). You will want to do this after installing from packages, so that rc.d scripts are created automatically.%0a%3c %0a%3c !!! Installing from source%0a%3c %0a%3c Pull the codebase from IRCNow's file servers, extract the code, and install it%0a%3c %0a---%0a> %0a> %0a> ngIRCd v26.1 provided by OpenBSD 6.9 ports does not have ident support. We need to compile from source to get ident support, which is necessary on a production server. You will want to do this after installing from packages, so that rc.d tags are created properly. It is best to do this now.%0a> %0a> !!! Reinstalling from source%0a> %0a> %0a> Pull the codebase from IRCnow's file servers, extract the code, and install it%0a> %0a41,43c73,75%0a%3c $ ftp https://ircnow.org/software/ngircd.tgz%0a%3c $ tar xvzf ngircd.tgz%0a%3c $ cd ngircd-26.1/%0a---%0a> $ ftp https://ircnow.org/software/ngircd.tgz %0a> $ tar xvzf ngircd.tgz %0a> $ cd ngircd-26.1/ %0a45,48c77,88%0a%3c @]%0a%3c %0a%3c !! Configuring ngircd%0a%3c %0a---%0a> @] %0a> %0a> %0a> %0a> %0a> %0a> %0a> !!Configuring ngircd%0a> %0a> %0a> Now that you have ngircd installed, its time to set it up. When installing, you copied the sample configuration file. Now edit it to make it work for you.%0a> %0a51,52c91,96%0a%3c '''Note''': Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line if that is desired.%0a%3c %0a---%0a> Note you may have to use the [[https://wiki.ircnow.org/index.php?n=Doas.Configure | doas]] command to have write access to the file.%0a> %0a> '''When you see [@%3ctext>@] it indicates that you must replace the text with something that fits your unique situation; do not just copy it in.'''%0a> %0a> '''Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line if that is desired.'''%0a> %0a60,61c104,105%0a%3c Name = %3circ.example.com>%0a%3c AdminInfo1 = %3cExample Network>%0a---%0a> Name = %3cusername.fruit.ircnow.org>%0a> AdminInfo1 = %3cFruit Server on IRCNow>%0a63c107%0a%3c AdminEMail = %3cadmin@example.com>%0a---%0a> AdminEMail = %3cadmin@username.fruit.ircnow.org>%0a66a111%0a> %0a76a122%0a> %0a115a162,163%0a> %0a> %0a205a254%0a> %0a222a272,274%0a> %0a> %0a> %0a224a277%0a> %0a238a292%0a> %0a245a300%0a> %0a250a306%0a> %0a267a324%0a> %0a -host:1631955807=38.87.162.8 -author:1631253991=mkf -diff:1631253991:1630332626:=65c65%0a%3c ngIRCd v26.1 provided by OpenBSD 6.9 ports does not have ident support. We need to compile from source to get ident support, which is necessary on a production server. You will want to do this after installing from packages, so that rc.d tags are created properly. It is best to do this now.%0a---%0a> ngIRCd v26 provided by OpenBSD 6.8 ports does not have ident support. We need to compile from source to get ident support, which is necessary on a production server. You will want to do this after installing from packages, so that rc.d tags are created properly. It is best to do this now.%0a -host:1631253991=2.178.154.172 -author:1630332626=jrmu -diff:1630332626:1627916713:=281d280%0a%3c $ doas cp /etc/resolv.conf /var/ngircd/etc/%0a357c356%0a%3c # Configure [[acopm/install|acopm]], a minimalist open proxy monitor to stop spammers.%0a---%0a> # Configure [[acopm/install|acopm]], a minimalist open proxy monitor to stop spammers.%0a\ No newline at end of file%0a -host:1630332626=125.231.32.127 -author:1627916713=mkf -diff:1627916713:1626787596:=292,293c292,293%0a%3c To start ngircd via [[openbsd/rcctl|rcctl]]:%0a%3c %0a---%0a> To start ngircd:%0a> %0a298a299%0a> [[rcctl/rcctl|rcctl]] controls how system daemons are run.%0a -host:1627916713=198.251.81.133 -author:1626787596=mistera -diff:1626787596:1625883365:=11c11%0a%3c !!Overview%0a---%0a> !!Theory%0a -host:1626787596=204.111.39.57 -author:1625883365=mistera -diff:1625883365:1625881706:=218,223d217%0a%3c !!! Server Block%0a%3c [@%0a%3c [Server]%0a%3c @]%0a%3c %0a%3c The server block is used to connect to other servers to form a network. You can have multiple server blocks. See: [[ngircd/link|Link your ngircd]] %0a -host:1625883365=204.111.39.57 -author:1625881706=mistera -diff:1625881706:1625880174:=58,59c58,59%0a%3c Copy the sample configuration file%0a%3c %0a---%0a> copy the sample configuration file into the location where the program can read it (we will edit it to suit our needs)%0a> %0a89c89%0a%3c Edit [@ /etc/ngircd/ngircd.conf @]:%0a---%0a> Use your favorite text editor to edit [@ /etc/ngircd/ngircd.conf @]:%0a -host:1625881706=204.111.39.57 -author:1625880174=mistera -diff:1625880174:1625878603:=140,141d139%0a%3c ServerGID = _ngircd%0a%3c ServerUID = _ngircd%0a145,148d142%0a%3c %0a%3c ServerGID: Uncomment, name (or number) of the Group to run as%0a%3c %0a%3c ServerUID: Uncomment, name (or number) of the User to run as%0a -host:1625880174=204.111.39.57 -author:1625878603=mistera -diff:1625878603:1625878567:=205d204%0a%3c %0a -host:1625878603=204.111.39.57 -author:1625878567=mistera -diff:1625878567:1625878195:=194,195d193%0a%3c %0a%3c You may have as many Operator Blocks as you like, one for each Operator.%0a -host:1625878567=204.111.39.57 -author:1625878195=mistera -diff:1625878195:1625878071:=191c191%0a%3c This entire block is commented, when you are ready to set up [[ngircd/ssl|SSL/TLS encryption]], un-comment it and follow the instructions on the SSL page. '''Note''': do not send passwords/sensitive data over IRC to this server until SSL is set up %0a---%0a> This entire block is commented, when you are ready to set up [[ngircd/ssl|SSL]], un-comment it and follow the instructions on the SSL page.%0a -host:1625878195=204.111.39.57 -author:1625878071=mistera -diff:1625878071:1625877684:=185,191d184%0a%3c !!! SSL block%0a%3c %0a%3c [@ %0a%3c ;[SSL]%0a%3c @]%0a%3c %0a%3c This entire block is commented, when you are ready to set up [[ngircd/ssl|SSL]], un-comment it and follow the instructions on the SSL page.%0a -host:1625878071=204.111.39.57 -author:1625877684=mistera -diff:1625877684:1625877095:=179c179%0a%3c CloakHostSalt: We will cloak the host using a unique salt; contact another sysadmin for the exact salt. For a Practice VPS or if not linking to a network, you can leave it commented for a random Salt each time it runs or you can provide your own random Salt%0a---%0a> CloakHostSalt: We will cloak the host using a unique salt; contact another sysadmin for the exact salt.%0a -host:1625877684=204.111.39.57 -author:1625877095=mistera -diff:1625877095:1625877023:=147d146%0a%3c [Limits]%0a -host:1625877095=204.111.39.57 -author:1625877023=mistera -diff:1625877023:1625869975:=139a140,145%0a> MaxConnectionsIP = 0%0a> MaxJoins = 300%0a> MaxNickLength = 16%0a> MaxListSize = 1000%0a> PingTimeout = 300%0a> PongTimeout = 300%0a143,155d148%0a%3c %0a%3c !!! Limits Block%0a%3c %0a%3c [@%0a%3c MaxConnectionsIP = 0%0a%3c MaxJoins = 300%0a%3c MaxNickLength = 16%0a%3c MaxListSize = 1000%0a%3c PingTimeout = 300%0a%3c PongTimeout = 300%0a%3c @]%0a%3c %0a%3c %0a -host:1625877023=204.111.39.57 -author:1625869975=mistera -diff:1625869975:1625867210:=91c91%0a%3c Note you may have to use the [[https://wiki.ircnow.org/index.php?n=Doas.Configure | doas]] command to have write access to the file.%0a---%0a> Note you may have to use the doas command to have write access to the file.%0a -host:1625869975=204.111.39.57 -author:1625867210=mistera -diff:1625867210:1625867173:=318c318%0a%3c '''WARNING''': ngircd appears to have a bug where the ircd will crash if you reload the configuration file while a message is being sent. Be careful to avoid reloading configuration files when many users are chatting.%0a---%0a> '''Warning''': ngircd appears to have a bug where the ircd will crash if you reload the configuration file while a message is being sent. Be careful to avoid reloading configuration files when many users are chatting.%0a -host:1625867210=204.111.39.57 -author:1625867173=mistera -diff:1625867173:1625867124:=308c308%0a%3c '''Reloading''' a configuration file will '''not''' disconnect any active connections. So, try to reload the configuration where possible '''instead of restarting the service'''.%0a---%0a> '''Reloading''' a configuration file will '''not''' disconnect any active connections. So, try to reload the configuration where possible.%0a -host:1625867173=204.111.39.57 -author:1625867124=mistera -diff:1625867124:1625867095:=296c296%0a%3c After you edit [@ /etc/ngircd/ngircd.conf @] for a running ngircd server, you will need to reload the configuration file:%0a---%0a> After you edit /etc/ngircd/ngircd.conf for a running ngircd server, you will need to reload the configuration file:%0a -host:1625867124=204.111.39.57 -author:1625867095=mistera -diff:1625867095:1625867078:=294d293%0a%3c %0a -host:1625867095=204.111.39.57 -author:1625867078=mistera -diff:1625867078:1625867029:=291c291%0a%3c Remember, if you are connecting using port 6667 without SSL, any eavesdropper can read all your text, including your passwords. '''Don't send any sensitive information until you have upgraded to [[ngircd/ssl|SSL]].'''%0a---%0a> Remember, if you are connecting using port 6667 without SSL, any eavesdropper can read all your text, including your passwords. Don't send any sensitive information until you have upgraded to [[ngircd/ssl|SSL]].%0a -host:1625867078=204.111.39.57 -author:1625867029=mistera -diff:1625867029:1625866998:=289c289%0a%3c Check [@ /var/log/ngircd.log @] to see if ngircd is listening on the correct IP addresses and ports. Connect to those ports using your IRC client to verify that the server is working as intended.%0a---%0a> Check /var/log/ngircd.log to see if ngircd is listening on the correct IP addresses and ports. Connect to those ports using your IRC client to verify that the server is working as intended.%0a -host:1625867029=204.111.39.57 -author:1625866998=mistera -diff:1625866998:1625866962:=275d274%0a%3c %0a -host:1625866998=204.111.39.57 -author:1625866962=mistera -diff:1625866962:1625866954:=271,272c271%0a%3c Next, use your IRC client to connect to the server, which may have the hostname [@ %3cuser>.%3cfruit>.ircnow.org @]. %0a%3c Join a few channels and chat inside.%0a---%0a> Next, use your IRC client to connect to the server, which may have the hostname [@ %3cuser>.%3cfruit>.ircnow.org @]. Join a few channels and chat inside.%0a -host:1625866962=204.111.39.57 -author:1625866954=mistera -diff:1625866954:1625866895:=271c271%0a%3c Next, use your IRC client to connect to the server, which may have the hostname [@ %3cuser>.%3cfruit>.ircnow.org @]. Join a few channels and chat inside.%0a---%0a> Next, use your IRC client to connect to the server, which may have the hostname user.fruit.ircnow.org. Join a few channels and chat inside.%0a -host:1625866954=204.111.39.57 -author:1625866895=mistera -diff:1625866895:1625866831:=260d259%0a%3c %0a -host:1625866895=204.111.39.57 -author:1625866831=mistera -diff:1625866831:1625866757:=247d246%0a%3c %0a248a248%0a> if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a -host:1625866831=204.111.39.57 -author:1625866757=mistera -diff:1625866757:1625866748:=223d222%0a%3c %0a -host:1625866757=204.111.39.57 -author:1625866748=mistera -diff:1625866748:1625866700:=222,224c222,224%0a%3c !! Configuring syslog%0a%3c %0a%3c You want all the log messages from ngircd (Errors, system reports) to go to [@ /var/log/ngircd.log @] and not anywhere else, so we insert these three lines starting at line 3 (from the top) in [@ /etc/syslog.conf @]:%0a---%0a> !!! Configuring syslog%0a> %0a> You want all the log messages from ngircd (Errors, system reports) to go to [@ /var/log/ngircd.log @] and not anywhere else, so we insert these three lines starting at line 3 (at the top) in [@ /etc/syslog.conf @]:%0a -host:1625866748=204.111.39.57 -author:1625866700=mistera -diff:1625866700:1625866675:=224c224%0a%3c You want all the log messages from ngircd (Errors, system reports) to go to [@ /var/log/ngircd.log @] and not anywhere else, so we insert these three lines starting at line 3 (at the top) in [@ /etc/syslog.conf @]:%0a---%0a> You want all the log messages from ngircd (Errors, system reports) to go to [@ /var/log/ngircd.log @] and not anywhere else, so we insert these three lines starting at line 3 (at the top) in /etc/syslog.conf:%0a -host:1625866700=204.111.39.57 -author:1625866675=mistera -diff:1625866675:1625866591:=224c224%0a%3c You want all the log messages from ngircd (Errors, system reports) to go to [@ /var/log/ngircd.log @] and not anywhere else, so we insert these three lines starting at line 3 (at the top) in /etc/syslog.conf:%0a---%0a> You want all the messages from ngircd to go to /var/log/ngircd.log and not anywhere else, so we insert these three lines starting at line 3 (at the top) in /etc/syslog.conf:%0a -host:1625866675=204.111.39.57 -author:1625866591=mistera -diff:1625866591:1625866542:=195,196d194%0a%3c %0a%3c You are finished editing ngircd.conf%0a -host:1625866591=204.111.39.57 -author:1625866542=mistera -diff:1625866542:1625866371:=196c196%0a%3c !!MOTD file%0a---%0a> !!!MOTD file%0a -host:1625866542=204.111.39.57 -author:1625866371=mistera -diff:1625866371:1625866117:=91,92c91,94%0a%3c Note you may have to use the doas command to have write access to the file.%0a%3c %0a---%0a> We use the doas command to have all privs to edit the file. You might not have permission to write to the file without doas.%0a> %0a> As you go through the configuration file, find the sections listed below, and change their contents to match the values listed here.%0a> %0a136,137c138,139%0a%3c Network: IRCNow, or your network (Liberachat, freenode, etc...)%0a%3c %0a---%0a> Network: IRCnow, or your network (Liberachat, freenode, etc...)%0a> %0a148c150%0a%3c Ports: listed are the default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls (censorship). %0a---%0a> Ports: listed are the default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls. %0a -host:1625866371=204.111.39.57 -author:1625866117=mistera -diff:1625866117:1625866092:=89c89%0a%3c Use your favorite text editor to edit [@ /etc/ngircd/ngircd.conf @]:%0a---%0a> Use your favorite text editor to edit /etc/ngircd/ngircd.conf:%0a -host:1625866117=204.111.39.57 -author:1625866092=mistera -diff:1625866092:1625866084:=89c89%0a%3c Use your favorite text editor to edit /etc/ngircd/ngircd.conf:%0a---%0a> use your favorite text editor to edit /etc/ngircd/ngircd.conf:%0a -host:1625866092=204.111.39.57 -author:1625866084=mistera -diff:1625866084:1625866032:=89c89,95%0a%3c use your favorite text editor to edit /etc/ngircd/ngircd.conf:%0a---%0a> Edit /etc/ngircd/ngircd.conf:%0a> %0a> Use your favorite text editor; for example:%0a> to use vi, %0a> [@ $ doas vi /etc/ngircd/ngircd.conf @] %0a> or to use vim,%0a> [@ $ doas vim /etc/ngircd/ngircd.conf @] %0a -host:1625866084=204.111.39.57 -author:1625866032=mistera -diff:1625866032:1625233534:=87c87%0a%3c Now that you have ngircd installed, its time to set it up. When installing, you copied the sample configuration file. Now edit it to make it work for you.%0a---%0a> Now that we have ngircd installed, its time to set it up. When installing, we copied the sample configuration file. We will now edit it to make it work for us.%0a -host:1625866032=204.111.39.57 -author:1625233534=mistera -diff:1625233534:1625231673:=33c33,35%0a%3c %0a---%0a> ----%0a> %0a> %0a43a46,48%0a> %0a> ----%0a> %0a56,57c61,62%0a%3c [@$ doas pkg_add ngircd @]%0a%3c %0a---%0a> -> [@$ doas pkg_add ngircd @]%0a> %0a60c65%0a%3c [@$ doas cp /usr/local/share/examples/ngircd/sample-ngircd.conf /etc/ngircd/ngircd.conf%0a---%0a> ->[@$ doas cp /usr/local/share/examples/ngircd/sample-ngircd.conf /etc/ngircd/ngircd.conf%0a72c77%0a%3c [@ %0a---%0a> ->[@ %0a83a89,90%0a> ----%0a> %0a91,107c98,114%0a%3c Use your favorite text editor; for example:%0a%3c to use vi, %0a%3c [@ $ doas vi /etc/ngircd/ngircd.conf @] %0a%3c or to use vim,%0a%3c [@ $ doas vim /etc/ngircd/ngircd.conf @] %0a%3c %0a%3c We use the doas command to have all privs to edit the file. You might not have permission to write to the file without doas.%0a%3c %0a%3c As you go through the configuration file, find the sections listed below, and change their contents to match the values listed here.%0a%3c %0a%3c '''When you see [@%3ctext>@] it indicates that you must replace the text with something that fits your unique situation; do not just copy it in.'''%0a%3c %0a%3c '''Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line if that is desired.'''%0a%3c %0a%3c Typically, ";" precedes a line of code that has been commented, while a "#" precedes an actual note that should not be uncommented.%0a%3c %0a%3c %0a---%0a> ->Use your favorite text editor; for example:%0a> -->to use vi, %0a> --->[@ $ doas vi /etc/ngircd/ngircd.conf @] %0a> -->or to use vim,%0a> --->[@ $ doas vim /etc/ngircd/ngircd.conf @] %0a> %0a> ->We use the doas command to have all privs to edit the file. You might not have permission to write to the file without doas.%0a> %0a> ->As you go through the configuration file, find the sections listed below, and change their contents to match the values listed here.%0a> %0a> ->'''When you see [@%3ctext>@] it indicates that you must replace the text with something that fits your unique situation; do not just copy it in.'''%0a> %0a> ->'''Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line if that is desired.'''%0a> %0a> ->Typically, ";" precedes a line of code that has been commented, while a "#" precedes an actual note that should not be uncommented.%0a> %0a> %0a120,130c127,137%0a%3c Name: use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. %0a%3c %0a%3c AdminInfo1: provide a description of your IRC server.%0a%3c %0a%3c AdminInfo2: provide the location%0a%3c %0a%3c AdminEmail: your Email where bug reports and complaints may be sent%0a%3c %0a%3c Info: your server's domain name%0a%3c %0a%3c %0a---%0a> --->Name: use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. %0a> %0a> --->AdminInfo1: provide a description of your IRC server.%0a> %0a> --->AdminInfo2: provide the location%0a> %0a> --->AdminEmail: your Email where bug reports and complaints may be sent%0a> %0a> --->Info: your server's domain name%0a> %0a> %0a135,136c142,143%0a%3c Listen: Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted. '''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a%3c %0a---%0a> --->Listen: Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted. '''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a> %0a142,145c149,152%0a%3c Motdfile: Stands for "Message of the Day", we will create this at that file location later on.%0a%3c %0a%3c Network: IRCnow, or your network (Liberachat, freenode, etc...)%0a%3c %0a---%0a> --->Motdfile: Stands for "Message of the Day", we will create this at that file location later on.%0a> %0a> --->Network: IRCnow, or your network (Liberachat, freenode, etc...)%0a> %0a156,159c163,166%0a%3c Ports: listed are the default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls. %0a%3c %0a%3c MaxNickLength: '''must''' be identical to all servers on the network. On IRCNow, MaxNickLength is [@16@].%0a%3c %0a---%0a> --->Ports: listed are the default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls. %0a> %0a> --->MaxNickLength: '''must''' be identical to all servers on the network. On IRCNow, MaxNickLength is [@16@].%0a> %0a175c182%0a%3c AllowRemoteOper: For security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you may not necessarily trust an oper on another server.%0a---%0a> --->AllowRemoteOper: For security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you may not necessarily trust an oper on another server.%0a177,185c184,192%0a%3c ChrootDir: We want to [[Chroot.Intro|chroot]] to /var/ngircd to prevent a security compromise. %0a%3c %0a%3c CloakHostSalt: We will cloak the host using a unique salt; contact another sysadmin for the exact salt.%0a%3c %0a%3c DefaultUserModes: UserMode +i keeps the user invisible, and +C means that only users that share channels can send a message. Both settings help reduce spam, stalking, and harassment. %0a%3c %0a%3c NoticeBeforeRegistration: Receiving a notice before registration can help with debugging with [[netcat/irc|netcat]]. We're going to log using syslog (see section below).%0a%3c %0a%3c %0a---%0a> --->ChrootDir: We want to [[Chroot.Intro|chroot]] to /var/ngircd to prevent a security compromise. %0a> %0a> --->CloakHostSalt: We will cloak the host using a unique salt; contact another sysadmin for the exact salt.%0a> %0a> --->DefaultUserModes: UserMode +i keeps the user invisible, and +C means that only users that share channels can send a message. Both settings help reduce spam, stalking, and harassment. %0a> %0a> --->NoticeBeforeRegistration: Receiving a notice before registration can help with debugging with [[netcat/irc|netcat]]. We're going to log using syslog (see section below).%0a> %0a> %0a195,196c202,203%0a%3c Name: your IRC username%0a%3c Password: Please use a [[password/management|long, random string]] for your password.%0a---%0a> --->Name: your IRC username%0a> --->Password: Please use a [[password/management|long, random string]] for your password.%0a -host:1625233534=204.111.39.57 -author:1625231673=mistera -diff:1625231673:1625230726:=11,13c11,13%0a%3c !!Theory%0a%3c %0a%3c %0a---%0a> !!!Theory%0a> %0a> %0a36,38c36,38%0a%3c !!Docs and references%0a%3c %0a%3c %0a---%0a> !!!Docs and references%0a> %0a> %0a49,58c49,58%0a%3c !!Installation%0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c !!! Installing from OpenBSD packages%0a%3c %0a%3c %0a---%0a> !!!Installation%0a> %0a> %0a> %0a> %0a> %0a> %0a> !! Installing from OpenBSD packages%0a> %0a> %0a72,74c72,74%0a%3c !!! Reinstalling from source%0a%3c %0a%3c %0a---%0a> !! Reinstalling from source%0a> %0a> %0a91,93c91,93%0a%3c !!Configuring ngircd%0a%3c %0a%3c %0a---%0a> !!!Configuring ngircd%0a> %0a> %0a115,116c115,116%0a%3c !!! Global Block%0a%3c %0a---%0a> !! Global Block%0a> %0a167,168c167,168%0a%3c !!! Options Block%0a%3c %0a---%0a> !! Options Block%0a> %0a193c193%0a%3c !!! Operator Block%0a---%0a> !! Operator Block%0a -host:1625231673=204.111.39.57 -author:1625230726=mistera -diff:1625230726:1625230483:=5,13c5,15%0a%3c %0a%3c %0a%3c In this guide, we'll setup ngircd, a free, portable, lightweight IRC server.%0a%3c %0a%3c %0a%3c %0a%3c !!!Theory%0a%3c %0a%3c %0a---%0a> ----%0a> %0a> %0a> %25center%25In this guide, we'll setup ngircd, a free, portable, lightweight IRC server.%0a> %0a> ----%0a> %0a> %0a> %25center%25'+'''Theory'''+'%0a> %0a> %0a36,38c38,40%0a%3c !!!Docs and references%0a%3c %0a%3c %0a---%0a> %25center%25'+'''Docs and references'''+'%0a> %0a> %0a49,58c51,60%0a%3c !!!Installation%0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c !! Installing from OpenBSD packages%0a%3c %0a%3c %0a---%0a> %25center%25'+'''Installation'''+'%0a> %0a> %0a> %0a> %0a> %0a> %0a> !!! Installing from OpenBSD packages%0a> %0a> %0a72,74c74,76%0a%3c !! Reinstalling from source%0a%3c %0a%3c %0a---%0a> !!! Reinstalling from source%0a> %0a> %0a91,93c93,95%0a%3c !!!Configuring ngircd%0a%3c %0a%3c %0a---%0a> %25center%25'+'''Configuring ngircd'''+'%0a> %0a> %0a115,116c117,118%0a%3c !! Global Block%0a%3c %0a---%0a> !!! Global Block%0a> %0a167,168c169,170%0a%3c !! Options Block%0a%3c %0a---%0a> !!! Options Block%0a> %0a193c195%0a%3c !! Operator Block%0a---%0a> !!! Operator Block%0a -host:1625230726=204.111.39.57 -author:1625230483=mistera -diff:1625230483:1625060991:=200c200%0a%3c Password = %3cpassword>%0a---%0a> Password = password%0a205c205,206%0a%3c --->Password: Please use a [[password/management|long, random string]] for your password.%0a---%0a> --->%0a> Please use a [[password/management|long, random string]] for your password.%0a -host:1625230483=204.111.39.57 -author:1625060991=mistera -diff:1625060991:1625060312:=43c43,48%0a%3c #read the man pages%0a---%0a> #read the man pages:%0a> %0a> ->[@ $ man ngircd @]%0a> %0a> %0a> %0a -host:1625060991=204.111.39.57 -author:1625060312=mistera -diff:1625060312:1625060136:=40a41,43%0a> %0a> Getting to know the documentation is important! Before you begin, at least look over the documentation. It will begin to make sense as you use ngircd, and the man pages will eventually become your best friend when you run into errors. Don't understand it yet? Thats ok; Familiarity breeds understanding.%0a> %0a43c46,47%0a%3c #read the man pages:%0a---%0a> #read the man pages: in your terminal, after you install ngircd,%0a> %0a -host:1625060312=204.111.39.57 -author:1625060136=mistera -diff:1625060136:1625060108:=85,86c85%0a%3c %0a%3c Pull the codebase from IRCnow's file servers, extract the code, and install it%0a---%0a> 1. pull the codebase from IRCnow's file servers, extract the code, and install it%0a -host:1625060136=204.111.39.57 -author:1625060108=mistera -diff:1625060108:1625059326:=85,92c85,99%0a%3c 1. pull the codebase from IRCnow's file servers, extract the code, and install it%0a%3c %0a%3c ->[@ %0a%3c $ ftp https://ircnow.org/software/ngircd.tgz %0a%3c $ tar xvzf ngircd.tgz %0a%3c $ cd ngircd-26.1/ %0a%3c $ sh build.sh %0a%3c @] %0a---%0a> 1. pull the codebase from IRCnow's file servers%0a> %0a> ->[@ $ ftp https://ircnow.org/software/ngircd.tgz @]%0a> %0a> 2. extract the code from the compressed tarball %0a> %0a> ->[@ $ tar xvzf ngircd.tgz @] %0a> %0a> 3. change directory into the newly uncompressed folder %0a> %0a> ->[@ $ cd ngircd-26.1/ @] %0a> %0a> 4. run the shell script "build.sh" found there, which will reinstall from source %0a> %0a> ->[@ $ sh build.sh @] %0a -host:1625060108=204.111.39.57 -author:1625059326=mistera -diff:1625059326:1625056854:=16,20c16,20%0a%3c ngircd is an IRC (Internet Relay Chat) server. It connects IRC clients (such as hexchat, irssi, etc) and transfers messages between them. In this article, we will set up ngircd so that irc clents can connect to it and communicate with each other.%0a%3c %0a%3c %0a%3c %0a%3c %0a---%0a> ngircd is an IRC (Internet Relay Chat) server. Irc is comprised of a server-client model. The client (such as hexchat, irssi, etc) can receive messages from the server and send messages to the server, but the server connects all the clients and transfers messages between them. In this article, we will set up ngircd so that irc clents can connect to it and communicate with each other.%0a> %0a> %0a> %0a> %0a220c220%0a%3c --->%0a---%0a> ----%0a -host:1625059326=204.111.39.57 -author:1625056854=mistera -diff:1625056854:1625056833:=159c159%0a%3c --->Listen: Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted. '''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a---%0a> --->Listen: Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.'''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a -host:1625056854=204.111.39.57 -author:1625056833=mistera -diff:1625056833:1625055431:=159,160c159,162%0a%3c --->Listen: Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.'''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a%3c %0a---%0a> --->Listen: Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a> %0a> ---->'''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a> %0a214c216%0a%3c Name = %3cusername>%0a---%0a> Name = username%0a218,220d219%0a%3c %0a%3c --->Name: your IRC username%0a%3c ----%0a278c277%0a%3c if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a---%0a> %0a -host:1625056833=204.111.39.57 -author:1625055431=mistera -diff:1625055431:1625055293:=212,213c212,216%0a%3c !!! Operator Block%0a%3c %0a---%0a> !!!MOTD file%0a> %0a> %0a> Paste your Message of the Day in /etc/ngircd/ngircd.motd. Here's a suggested template:%0a> %0a215,217c218,232%0a%3c [Operator]%0a%3c Name = username%0a%3c Password = password%0a---%0a> IRCNow - The Users' Network%0a> %0a> IRCNow is the network of the user, by the user, for the user.%0a> %0a> * No porn / illegal drugs / promotion of violence%0a> * No slander / libel / gambling%0a> * No spam, illegal cracking, or DDoS%0a> * No copyright infrigement%0a> %0a> You must agree to our terms of service and our privacy policy %0a> to use this network:%0a> %0a> https://wiki.ircnow.org/index.php?n=Terms.Terms%0a> %0a> Only 5 connections per IP address. If you need help, please speak with staff on #help.%0a220,232c235,239%0a%3c Please use a [[password/management|long, random string]] for your password.%0a%3c %0a%3c If you uncomment Mask, your hostmask must match the operator hostmask in order for the /OPER command to be accepted. If it differs at all, then your /OPER command will be rejected. If you don't want to check the hostmask, leave Mask commented out.%0a%3c %0a%3c For more security, you can uncomment Mask and have it match your vhost. However, please be aware that this will make it impossible to authenticate if you ever have to connect from a different IP address.%0a%3c %0a%3c %0a%3c %0a%3c !!!MOTD file%0a%3c %0a%3c %0a%3c Paste your Message of the Day in /etc/ngircd/ngircd.motd. Here's a suggested template:%0a%3c %0a---%0a> %0a> !!! Configuring syslog%0a> %0a> You want all the messages from ngircd to go to /var/log/ngircd.log and not anywhere else, so we insert these three lines starting at line 3 (at the top) in /etc/syslog.conf:%0a> %0a234,248c241,243%0a%3c IRCNow - The Users' Network%0a%3c %0a%3c IRCNow is the network of the user, by the user, for the user.%0a%3c %0a%3c * No porn / illegal drugs / promotion of violence%0a%3c * No slander / libel / gambling%0a%3c * No spam, illegal cracking, or DDoS%0a%3c * No copyright infrigement%0a%3c %0a%3c You must agree to our terms of service and our privacy policy %0a%3c to use this network:%0a%3c %0a%3c https://wiki.ircnow.org/index.php?n=Terms.Terms%0a%3c %0a%3c Only 5 connections per IP address. If you need help, please speak with staff on #help.%0a---%0a> !!ngircd%0a> *.* /var/log/ngircd.log%0a> !*%0a251,255c246,249%0a%3c %0a%3c !!! Configuring syslog%0a%3c %0a%3c You want all the messages from ngircd to go to /var/log/ngircd.log and not anywhere else, so we insert these three lines starting at line 3 (at the top) in /etc/syslog.conf:%0a%3c %0a---%0a> This directs all logs from ngircd to go straight to /var/log/ngircd.log and nowhere else.%0a> %0a> Next, create the file /var/log/ngircd.log and restart syslogd:%0a> %0a257,259c251,252%0a%3c !!ngircd%0a%3c *.* /var/log/ngircd.log%0a%3c !*%0a---%0a> $ doas touch /var/log/ngircd.log%0a> $ doas rcctl restart syslogd%0a262,265c255,256%0a%3c This directs all logs from ngircd to go straight to /var/log/ngircd.log and nowhere else.%0a%3c %0a%3c Next, create the file /var/log/ngircd.log and restart syslogd:%0a%3c %0a---%0a> !!! Operator Block%0a> %0a267,268c258,260%0a%3c $ doas touch /var/log/ngircd.log%0a%3c $ doas rcctl restart syslogd%0a---%0a> [Operator]%0a> Name = username%0a> Password = password%0a270a263,267%0a> Please use a [[password/management|long, random string]] for your password.%0a> %0a> If you uncomment Mask, your hostmask must match the operator hostmask in order for the /OPER command to be accepted. If it differs at all, then your /OPER command will be rejected. If you don't want to check the hostmask, leave Mask commented out.%0a> %0a> For more security, you can uncomment Mask and have it match your vhost. However, please be aware that this will make it impossible to authenticate if you ever have to connect from a different IP address.%0a -host:1625055431=204.111.39.57 -author:1625055293=mistera -diff:1625055293:1625054364:=1,4c1,4%0a%3c (:title Ngircd Install Guide:)%0a%3c %0a%3c %0a%3c %0a---%0a> %25center%25(:title Ngircd Install Guide:)%0a> %0a> %0a> %0a203,204c203%0a%3c --->ChrootDir: We want to [[Chroot.Intro|chroot]] to /var/ngircd to prevent a security compromise. %0a%3c %0a---%0a> --->ChrootDir: We want to chroot to /var/ngircd to prevent a security compromise. %0a207,209c206%0a%3c --->DefaultUserModes: UserMode +i keeps the user invisible, and +C means that only users that share channels can send a message. Both settings help reduce spam, stalking, and harassment. %0a%3c %0a%3c --->NoticeBeforeRegistration: Receiving a notice before registration can help with debugging with [[netcat/irc|netcat]]. We're going to log using syslog (see section below).%0a---%0a> UserMode +i keeps the user invisible, and +C means that only users that share channels can send a message. Both settings help reduce spam, stalking, and harassment. Receiving a notice before registration can help with debugging with [[netcat/irc|netcat]]. We're going to log using syslog (see section below).%0a -host:1625055293=204.111.39.57 -author:1625054364=mistera -diff:1625054364:1625054290:=203,204c203%0a%3c --->ChrootDir: We want to chroot to /var/ngircd to prevent a security compromise. %0a%3c --->CloakHostSalt: We will cloak the host using a unique salt; contact another sysadmin for the exact salt.%0a---%0a> --->ChrootDir: We want to chroot to /var/ngircd to prevent a security compromise. We will cloak the host using a unique salt; contact another sysadmin for the exact salt.%0a -host:1625054364=204.111.39.57 -author:1625054290=mistera -diff:1625054290:1625054230:=193c193%0a%3c CloakHostSalt = %3cabcdefghijklmnopqrstuvwxyz>%0a---%0a> CloakHostSalt = abcdefghijklmnopqrstuvwxyz%0a -host:1625054290=204.111.39.57 -author:1625054230=mistera -diff:1625054230:1625054213:=201,202c201%0a%3c --->AllowRemoteOper: For security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you may not necessarily trust an oper on another server.%0a%3c %0a---%0a> --->AllowRemoteOper: For security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you may not necessarily trust an oper on another server. %0a -host:1625054230=204.111.39.57 -author:1625054213=mistera -diff:1625054213:1625053351:=201,202c201%0a%3c --->AllowRemoteOper: For security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you may not necessarily trust an oper on another server. %0a%3c --->ChrootDir: We want to chroot to /var/ngircd to prevent a security compromise. We will cloak the host using a unique salt; contact another sysadmin for the exact salt.%0a---%0a> For security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you may not necessarily trust an oper on another server. We want to chroot to /var/ngircd to prevent a security compromise. We will cloak the host using a unique salt; contact another sysadmin for the exact salt.%0a -host:1625054213=204.111.39.57 -author:1625053351=mistera -diff:1625053351:1625053318:=169d168%0a%3c %0a183d181%0a%3c %0a -host:1625053351=204.111.39.57 -author:1625053318=mistera -diff:1625053318:1625053282:=181c181%0a%3c --->Ports: listed are the default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls. %0a---%0a> --->Ports:listed are the default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls. %0a -host:1625053318=204.111.39.57 -author:1625053282=mistera -diff:1625053282:1625053102:=181,182c181%0a%3c --->Ports:listed are the default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls. %0a%3c --->MaxNickLength: '''must''' be identical to all servers on the network. On IRCNow, MaxNickLength is [@16@].%0a---%0a> The above are default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls. Note that the MaxNickLength must be identical to all servers on the network. On IRCNow, MaxNickLength is 16.%0a -host:1625053282=204.111.39.57 -author:1625053102=mistera -diff:1625053102:1625052936:=168,169d167%0a%3c --->Motdfile: Stands for "Message of the Day", we will create this at that file location later on.%0a%3c --->Network: IRCnow, or your network (Liberachat, freenode, etc...)%0a -host:1625053102=204.111.39.57 -author:1625052936=mistera -diff:1625052936:1625052913:=164,165c164,165%0a%3c MotdFile = /etc/ngircd/ngircd.motd%0a%3c Network = IRCNow%0a---%0a> MotdFile = /etc/ngircd/ngircd.motd%0a> Network = IRCNow%0a -host:1625052936=204.111.39.57 -author:1625052913=mistera -diff:1625052913:1625052885:=161c161%0a%3c ---->'''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a---%0a> '''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a -host:1625052913=204.111.39.57 -author:1625052885=mistera -diff:1625052885:1625052855:=159c159%0a%3c --->Listen: Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a---%0a> --->Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a -host:1625052885=204.111.39.57 -author:1625052855=mistera -diff:1625052855:1625052777:=159c159%0a%3c --->Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a---%0a> ->Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a -host:1625052855=204.111.39.57 -author:1625052777=mistera -diff:1625052777:1625052767:=144c144%0a%3c --->Name: use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. %0a---%0a> ---->Name: use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. %0a -host:1625052777=204.111.39.57 -author:1625052767=mistera -diff:1625052767:1625052738:=144c144%0a%3c ---->Name: use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. %0a---%0a> -->Name: use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. %0a -host:1625052767=204.111.39.57 -author:1625052738=mistera -diff:1625052738:1625052728:=146,152c146,152%0a%3c --->AdminInfo1: provide a description of your IRC server.%0a%3c %0a%3c --->AdminInfo2: provide the location%0a%3c %0a%3c --->AdminEmail: your Email where bug reports and complaints may be sent%0a%3c %0a%3c --->Info: your server's domain name%0a---%0a> -->AdminInfo1: provide a description of your IRC server.%0a> %0a> -->AdminInfo2: provide the location%0a> %0a> -->AdminEmail: your Email where bug reports and complaints may be sent%0a> %0a> -->Info: your server's domain name%0a -host:1625052738=204.111.39.57 -author:1625052728=mistera -diff:1625052728:1625052654:=144,152c144,152%0a%3c -->Name: use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. %0a%3c %0a%3c -->AdminInfo1: provide a description of your IRC server.%0a%3c %0a%3c -->AdminInfo2: provide the location%0a%3c %0a%3c -->AdminEmail: your Email where bug reports and complaints may be sent%0a%3c %0a%3c -->Info: your server's domain name%0a---%0a> ->Name: use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. %0a> %0a> ->AdminInfo1: provide a description of your IRC server.%0a> %0a> ->AdminInfo2: provide the location%0a> %0a> ->AdminEmail: your Email where bug reports and complaints may be sent%0a> %0a> ->Info: your server's domain name%0a -host:1625052728=204.111.39.57 -author:1625052654=mistera -diff:1625052654:1625052551:=115,116c115,116%0a%3c ->Use your favorite text editor; for example:%0a%3c -->to use vi, %0a---%0a> ->Use your favorite text editor; %0a> -->to use vi, for example:%0a121,123c121,123%0a%3c ->We use the doas command to have all privs to edit the file. You might not have permission to write to the file without doas.%0a%3c %0a%3c ->As you go through the configuration file, find the sections listed below, and change their contents to match the values listed here.%0a---%0a> ->We use the doas command to have all privs to edit the file. ->You might not have permission to write to the file without ->doas.%0a> %0a> ->As you go through the configuration file, find the sections ->listed below, and change their contents to match the values ->listed here.%0a -host:1625052654=204.111.39.57 -author:1625052551=mistera -diff:1625052551:1625052534:=117c117%0a%3c --->[@ $ doas vi /etc/ngircd/ngircd.conf @] %0a---%0a> --->[@ doas vi /etc/ngircd/ngircd.conf @] %0a119c119%0a%3c --->[@ $ doas vim /etc/ngircd/ngircd.conf @] %0a---%0a> --->[@ doas vim /etc/ngircd/ngircd.conf @] %0a -host:1625052551=204.111.39.57 -author:1625052534=mistera -diff:1625052534:1625052505:=117,119c117,119%0a%3c --->[@ doas vi /etc/ngircd/ngircd.conf @] %0a%3c -->or to use vim,%0a%3c --->[@ doas vim /etc/ngircd/ngircd.conf @] %0a---%0a> ->[@ doas vi /etc/ngircd/ngircd.conf @] %0a> ->or to use vim,%0a> ->[@ doas vim /etc/ngircd/ngircd.conf @] %0a -host:1625052534=204.111.39.57 -author:1625052505=mistera -diff:1625052505:1625052489:=116c116%0a%3c -->to use vi, for example:%0a---%0a> ->to use vi, for example:%0a -host:1625052505=204.111.39.57 -author:1625052489=mistera -diff:1625052489:1625052381:=115,123c115,123%0a%3c ->Use your favorite text editor; %0a%3c ->to use vi, for example:%0a%3c ->[@ doas vi /etc/ngircd/ngircd.conf @] %0a%3c ->or to use vim,%0a%3c ->[@ doas vim /etc/ngircd/ngircd.conf @] %0a%3c %0a%3c ->We use the doas command to have all privs to edit the file. ->You might not have permission to write to the file without ->doas.%0a%3c %0a%3c ->As you go through the configuration file, find the sections ->listed below, and change their contents to match the values ->listed here.%0a---%0a> Use your favorite text editor; %0a> to use vi, for example:%0a> [@ doas vi /etc/ngircd/ngircd.conf @] %0a> or to use vim,%0a> [@ doas vim /etc/ngircd/ngircd.conf @] %0a> %0a> We use the doas command to have all privs to edit the file. You might not have permission to write to the file without doas.%0a> %0a> As you go through the configuration file, find the sections listed below, and change their contents to match the values listed here.%0a -host:1625052489=204.111.39.57 -author:1625052381=mistera -diff:1625052381:1625052351:=85,86c85,86%0a%3c 1. pull the codebase from IRCnow's file servers%0a%3c %0a---%0a> # pull the codebase from IRCnow's file servers%0a> %0a89,90c89,90%0a%3c 2. extract the code from the compressed tarball %0a%3c %0a---%0a> # extract the code from the compressed tarball %0a> %0a93,94c93,94%0a%3c 3. change directory into the newly uncompressed folder %0a%3c %0a---%0a> # change directory into the newly uncompressed folder %0a> %0a97c97%0a%3c 4. run the shell script "build.sh" found there, which will reinstall from source %0a---%0a> # run the shell script "build.sh" found there, which will reinstall from source %0a -host:1625052381=204.111.39.57 -author:1625052351=mistera -diff:1625052351:1625052301:=87,88c87,88%0a%3c ->[@ $ ftp https://ircnow.org/software/ngircd.tgz @]%0a%3c %0a---%0a> [@ $ ftp https://ircnow.org/software/ngircd.tgz @]%0a> %0a91,92c91,92%0a%3c ->[@ $ tar xvzf ngircd.tgz @] %0a%3c %0a---%0a> [@ $ tar xvzf ngircd.tgz @] %0a> %0a95,96c95,96%0a%3c ->[@ $ cd ngircd-26.1/ @] %0a%3c %0a---%0a> [@ $ cd ngircd-26.1/ @] %0a> %0a99c99%0a%3c ->[@ $ sh build.sh @] %0a---%0a> [@ $ sh build.sh @] %0a -host:1625052351=204.111.39.57 -author:1625052301=mistera -diff:1625052301:1624972917:=85,99c85,88%0a%3c # pull the codebase from IRCnow's file servers%0a%3c %0a%3c [@ $ ftp https://ircnow.org/software/ngircd.tgz @]%0a%3c %0a%3c # extract the code from the compressed tarball %0a%3c %0a%3c [@ $ tar xvzf ngircd.tgz @] %0a%3c %0a%3c # change directory into the newly uncompressed folder %0a%3c %0a%3c [@ $ cd ngircd-26.1/ @] %0a%3c %0a%3c # run the shell script "build.sh" found there, which will reinstall from source %0a%3c %0a%3c [@ $ sh build.sh @] %0a---%0a> [@ $ ftp https://ircnow.org/software/ngircd.tgz @] # pull the codebase from IRCnow's file servers%0a> [@ $ tar xvzf ngircd.tgz @] # extract the code from the compressed tarball%0a> [@ $ cd ngircd-26.1/ @] # change directory into the newly uncompressed folder%0a> [@ $ sh build.sh @] # run the shell script "build.sh" found there, which will reinstall from source%0a -host:1625052301=204.111.39.57 -author:1624972917=mistera -diff:1624972917:1624968302:=5,22c5,10%0a%3c ----%0a%3c %0a%3c %0a%3c %25center%25In this guide, we'll setup ngircd, a free, portable, lightweight IRC server.%0a%3c %0a%3c ----%0a%3c %0a%3c %0a%3c %25center%25'+'''Theory'''+'%0a%3c %0a%3c %0a%3c ngircd is an IRC (Internet Relay Chat) server. Irc is comprised of a server-client model. The client (such as hexchat, irssi, etc) can receive messages from the server and send messages to the server, but the server connects all the clients and transfers messages between them. In this article, we will set up ngircd so that irc clents can connect to it and communicate with each other.%0a%3c %0a%3c %0a%3c %0a%3c %0a%3c There are many irc servers we could have used, but the advantages of using ngircd are:%0a%3c %0a---%0a> In this guide, we'll setup ngircd, a free, portable, lightweight IRC server.%0a> %0a> %0a> %0a> Advantages:%0a> %0a32,76c20,28%0a%3c %0a%3c %0a%3c %0a%3c ----%0a%3c %0a%3c %0a%3c %25center%25'+'''Docs and references'''+'%0a%3c %0a%3c %0a%3c %0a%3c Getting to know the documentation is important! Before you begin, at least look over the documentation. It will begin to make sense as you use ngircd, and the man pages will eventually become your best friend when you run into errors. Don't understand it yet? Thats ok; Familiarity breeds understanding.%0a%3c %0a%3c #official [[https://ngircd.barton.de/documentation.php.en|ngIRCd documentation]] %0a%3c %0a%3c #read the man pages: in your terminal, after you install ngircd,%0a%3c %0a%3c %0a%3c ->[@ $ man ngircd @]%0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c ----%0a%3c %0a%3c %25center%25'+'''Installation'''+'%0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c !!! Installing from OpenBSD packages%0a%3c %0a%3c %0a%3c Install ngircd%0a%3c %0a%3c -> [@$ doas pkg_add ngircd @]%0a%3c %0a%3c copy the sample configuration file into the location where the program can read it (we will edit it to suit our needs)%0a%3c %0a%3c ->[@$ doas cp /usr/local/share/examples/ngircd/sample-ngircd.conf /etc/ngircd/ngircd.conf%0a---%0a> Before you begin, please read the official [[https://ngircd.barton.de/documentation.php.en|ngIRCd documentation]] and its man pages.%0a> %0a> !! Installation%0a> %0a> !!! From packages%0a> %0a> [@%0a> $ doas pkg_add ngircd%0a> $ doas cp /usr/local/share/examples/ngircd/sample-ngircd.conf /etc/ngircd/ngircd.conf%0a79,101c31,43%0a%3c %0a%3c %0a%3c ngIRCd v26 provided by OpenBSD 6.8 ports does not have ident support. We need to compile from source to get ident support, which is necessary on a production server. You will want to do this after installing from packages, so that rc.d tags are created properly. It is best to do this now.%0a%3c %0a%3c !!! Reinstalling from source%0a%3c %0a%3c [@ $ ftp https://ircnow.org/software/ngircd.tgz @] # pull the codebase from IRCnow's file servers%0a%3c [@ $ tar xvzf ngircd.tgz @] # extract the code from the compressed tarball%0a%3c [@ $ cd ngircd-26.1/ @] # change directory into the newly uncompressed folder%0a%3c [@ $ sh build.sh @] # run the shell script "build.sh" found there, which will reinstall from source%0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c ----%0a%3c %0a%3c %25center%25'+'''Configuring ngircd'''+'%0a%3c %0a%3c %0a%3c Now that we have ngircd installed, its time to set it up. When installing, we copied the sample configuration file. We will now edit it to make it work for us.%0a%3c %0a---%0a> ngIRCd v26 provided by OpenBSD 6.8 ports does not have ident support. You must eventually compile from source to get ident support, which is necessary on a production server. You will want to do this after installing from packages, so that rc.d tags are created properly.%0a> %0a> !!! From source%0a> %0a> [@%0a> $ ftp https://ircnow.org/software/ngircd.tgz%0a> $ tar xvzf ngircd.tgz%0a> $ cd ngircd-26.1/%0a> $ sh build.sh%0a> @]%0a> %0a> !! Configuration%0a> %0a104,120c46,47%0a%3c Use your favorite text editor; %0a%3c to use vi, for example:%0a%3c [@ doas vi /etc/ngircd/ngircd.conf @] %0a%3c or to use vim,%0a%3c [@ doas vim /etc/ngircd/ngircd.conf @] %0a%3c %0a%3c We use the doas command to have all privs to edit the file. You might not have permission to write to the file without doas.%0a%3c %0a%3c As you go through the configuration file, find the sections listed below, and change their contents to match the values listed here.%0a%3c %0a%3c ->'''When you see [@%3ctext>@] it indicates that you must replace the text with something that fits your unique situation; do not just copy it in.'''%0a%3c %0a%3c ->'''Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line if that is desired.'''%0a%3c %0a%3c ->Typically, ";" precedes a line of code that has been commented, while a "#" precedes an actual note that should not be uncommented.%0a%3c %0a%3c %0a---%0a> '''Note''': Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line.%0a> %0a125,129c52,56%0a%3c Name = %3cusername.fruit.ircnow.org>%0a%3c AdminInfo1 = %3cFruit Server on IRCNow>%0a%3c AdminInfo2 = %3cPlanet Earth>%0a%3c AdminEMail = %3cadmin@username.fruit.ircnow.org>%0a%3c Info = %3cusername.fruit.ircnow.org>%0a---%0a> Name = username.fruit.ircnow.org%0a> AdminInfo1 = Fruit Server on IRCNow%0a> AdminInfo2 = Planet Earth%0a> AdminEMail = admin@username.fruit.ircnow.org%0a> Info = username.fruit.ircnow.org%0a132,143c59,60%0a%3c %0a%3c ->Name: use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. %0a%3c %0a%3c ->AdminInfo1: provide a description of your IRC server.%0a%3c %0a%3c ->AdminInfo2: provide the location%0a%3c %0a%3c ->AdminEmail: your Email where bug reports and complaints may be sent%0a%3c %0a%3c ->Info: your server's domain name%0a%3c %0a%3c %0a---%0a> For Name, use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. For AdminInfo1, provide a description; for AdminInfo2, provide the location.%0a> %0a145c62%0a%3c Listen = 127.0.0.1,%3c192.168.1.1>,%3c2001:db8::>%0a---%0a> Listen = 127.0.0.1,192.168.1.1,2001:db8::%0a148,149c65,66%0a%3c ->Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a%3c %0a---%0a> Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IP. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a> %0a157c74,75%0a%3c %0a---%0a> Paste your Message of the Day in /etc/ngircd/ngircd.motd. Here's a suggested template:%0a> %0a158a77,94%0a> IRCNow - The Users' Network%0a> %0a> IRCNow is the network of the user, by the user, for the user.%0a> %0a> * No porn / illegal drugs / promotion of violence%0a> * No slander / libel / gambling%0a> * No spam, illegal cracking, or DDoS%0a> * No copyright infrigement%0a> %0a> You must agree to our terms of service and our privacy policy %0a> to use this network:%0a> %0a> https://wiki.ircnow.org/index.php?n=Terms.Terms%0a> %0a> Only 5 connections per IP address. If you need help, please speak with staff on #help.%0a> @]%0a> %0a> [@%0a189,194c125,128%0a%3c %0a%3c !!!MOTD file%0a%3c %0a%3c %0a%3c Paste your Message of the Day in /etc/ngircd/ngircd.motd. Here's a suggested template:%0a%3c %0a---%0a> !!! Configuring syslog%0a> %0a> You want all the messages from ngircd to go to /var/log/ngircd.log and not anywhere else, so we insert these three lines starting at line 3 (at the top) in /etc/syslog.conf:%0a> %0a196,210c130,132%0a%3c IRCNow - The Users' Network%0a%3c %0a%3c IRCNow is the network of the user, by the user, for the user.%0a%3c %0a%3c * No porn / illegal drugs / promotion of violence%0a%3c * No slander / libel / gambling%0a%3c * No spam, illegal cracking, or DDoS%0a%3c * No copyright infrigement%0a%3c %0a%3c You must agree to our terms of service and our privacy policy %0a%3c to use this network:%0a%3c %0a%3c https://wiki.ircnow.org/index.php?n=Terms.Terms%0a%3c %0a%3c Only 5 connections per IP address. If you need help, please speak with staff on #help.%0a---%0a> !!ngircd%0a> *.* /var/log/ngircd.log%0a> !*%0a213,217c135,138%0a%3c %0a%3c !!! Configuring syslog%0a%3c %0a%3c You want all the messages from ngircd to go to /var/log/ngircd.log and not anywhere else, so we insert these three lines starting at line 3 (at the top) in /etc/syslog.conf:%0a%3c %0a---%0a> This directs all logs from ngircd to go straight to /var/log/ngircd.log and nowhere else.%0a> %0a> Next, create the file /var/log/ngircd.log and restart syslogd:%0a> %0a219,221c140,141%0a%3c !!ngircd%0a%3c *.* /var/log/ngircd.log%0a%3c !*%0a---%0a> $ doas touch /var/log/ngircd.log%0a> $ doas rcctl restart syslogd%0a224,227c144,145%0a%3c This directs all logs from ngircd to go straight to /var/log/ngircd.log and nowhere else.%0a%3c %0a%3c Next, create the file /var/log/ngircd.log and restart syslogd:%0a%3c %0a---%0a> !!! Operator Block%0a> %0a229,230c147,149%0a%3c $ doas touch /var/log/ngircd.log%0a%3c $ doas rcctl restart syslogd%0a---%0a> [Operator]%0a> Name = username%0a> Password = password%0a233,240d151%0a%3c !!! Operator Block%0a%3c %0a%3c [@%0a%3c [Operator]%0a%3c Name = username%0a%3c Password = password%0a%3c @]%0a%3c %0a246,247d156%0a%3c %0a%3c %0a -host:1624972917=204.111.39.57 -author:1624968302=mistera -diff:1624968302:1620722004:=1,4c1,2%0a%3c %25center%25(:title Ngircd Install Guide:)%0a%3c %0a%3c %0a%3c %0a---%0a> (:title Ngircd Install Guide:)%0a> %0a6,7d3%0a%3c %0a%3c %0a -host:1624968302=204.111.39.57 -author:1620722004=jrmu -diff:1620722004:1614857898:=16,17c16,17%0a%3c Before you begin, please read the official [[https://ngircd.barton.de/documentation.php.en|ngIRCd documentation]] and its man pages.%0a%3c %0a---%0a> Before you begin, please read the official [[https://ngircd.barton.de/documentation.php.en|ngIRCd documentation]].%0a> %0a27,28c27,28%0a%3c ngIRCd v26 provided by OpenBSD 6.8 ports does not have ident support. You must eventually compile from source to get ident support, which is necessary on a production server. You will want to do this after installing from packages, so that rc.d tags are created properly.%0a%3c %0a---%0a> ngIRCd v26 provided by OpenBSD 6.8 ports does not have ident support. You must eventually compile from source to get ident support, which is necessary on a production server.%0a> %0a61,62c61,62%0a%3c Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IP. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a%3c %0a---%0a> Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a> %0a119c119%0a%3c UserMode +i keeps the user invisible, and +C means that only users that share channels can send a message. Both settings help reduce spam, stalking, and harassment. Receiving a notice before registration can help with debugging with [[netcat/irc|netcat]]. We're going to log using syslog (see section below).%0a---%0a> UserMode i keeps the user invisible, and C means that only users that share channels can send a message. Both settings help reduce spam, stalking, and harassment. Receiving a notice before registration can help with debugging with [[openbsd/netcat|netcat]]. We're going to log using syslog (see section below).%0a -host:1620722004=198.251.81.119 -author:1614857898=jrmu -diff:1614857898:1612974683:=108a109%0a> CloakHostModeX = jrmu.coconut.ircnow.org%0a -host:1614857898=198.251.81.119 -author:1612974683=jrmu -diff:1612974683:1612974683:=1,233d0%0a%3c (:title Ngircd Install Guide:)%0a%3c %0a%3c In this guide, we'll setup ngircd, a free, portable, lightweight IRC server.%0a%3c %0a%3c Advantages:%0a%3c %0a%3c # The source code runs well on OpenBSD%0a%3c # The server has a very simple, easy-to-understand configuration%0a%3c # Fewer features means the manual pages are short%0a%3c # The server is a clean implementation which was written from scratch%0a%3c # The source code is written in modern, portable C. It will be easy to fork to new features such as:%0a%3c # Customized censorship to block NSFW content%0a%3c # Spam filters%0a%3c # The lead developer po||ux actively hangs out on the IRC server barton.ngircd.de on #ngircd%0a%3c %0a%3c Before you begin, please read the official [[https://ngircd.barton.de/documentation.php.en|ngIRCd documentation]].%0a%3c %0a%3c !! Installation%0a%3c %0a%3c !!! From packages%0a%3c %0a%3c [@%0a%3c $ doas pkg_add ngircd%0a%3c $ doas cp /usr/local/share/examples/ngircd/sample-ngircd.conf /etc/ngircd/ngircd.conf%0a%3c @]%0a%3c %0a%3c ngIRCd v26 provided by OpenBSD 6.8 ports does not have ident support. You must eventually compile from source to get ident support, which is necessary on a production server.%0a%3c %0a%3c !!! From source%0a%3c %0a%3c [@%0a%3c $ ftp https://ircnow.org/software/ngircd.tgz%0a%3c $ tar xvzf ngircd.tgz%0a%3c $ cd ngircd-26.1/%0a%3c $ sh build.sh%0a%3c @]%0a%3c %0a%3c !! Configuration%0a%3c %0a%3c Edit /etc/ngircd/ngircd.conf:%0a%3c %0a%3c '''Note''': Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line.%0a%3c %0a%3c !!! Global Block%0a%3c %0a%3c [@%0a%3c [Global]%0a%3c Name = username.fruit.ircnow.org%0a%3c AdminInfo1 = Fruit Server on IRCNow%0a%3c AdminInfo2 = Planet Earth%0a%3c AdminEMail = admin@username.fruit.ircnow.org%0a%3c Info = username.fruit.ircnow.org%0a%3c @]%0a%3c %0a%3c For Name, use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. For AdminInfo1, provide a description; for AdminInfo2, provide the location.%0a%3c %0a%3c [@%0a%3c Listen = 127.0.0.1,192.168.1.1,2001:db8::%0a%3c @]%0a%3c %0a%3c Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a%3c %0a%3c '''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a%3c %0a%3c [@%0a%3c MotdFile = /etc/ngircd/ngircd.motd%0a%3c Network = IRCNow%0a%3c @]%0a%3c %0a%3c Paste your Message of the Day in /etc/ngircd/ngircd.motd. Here's a suggested template:%0a%3c %0a%3c [@%0a%3c IRCNow - The Users' Network%0a%3c %0a%3c IRCNow is the network of the user, by the user, for the user.%0a%3c %0a%3c * No porn / illegal drugs / promotion of violence%0a%3c * No slander / libel / gambling%0a%3c * No spam, illegal cracking, or DDoS%0a%3c * No copyright infrigement%0a%3c %0a%3c You must agree to our terms of service and our privacy policy %0a%3c to use this network:%0a%3c %0a%3c https://wiki.ircnow.org/index.php?n=Terms.Terms%0a%3c %0a%3c Only 5 connections per IP address. If you need help, please speak with staff on #help.%0a%3c @]%0a%3c %0a%3c [@%0a%3c Ports = 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 7000, 16667%0a%3c MaxConnectionsIP = 0%0a%3c MaxJoins = 300%0a%3c MaxNickLength = 16%0a%3c MaxListSize = 1000%0a%3c PingTimeout = 300%0a%3c PongTimeout = 300%0a%3c @]%0a%3c %0a%3c The above are default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls. Note that the MaxNickLength must be identical to all servers on the network. On IRCNow, MaxNickLength is 16.%0a%3c %0a%3c !!! Options Block%0a%3c %0a%3c [@%0a%3c [Options]%0a%3c AllowRemoteOper = no%0a%3c ChrootDir = /var/ngircd%0a%3c CloakHost = %25x%0a%3c CloakHostModeX = jrmu.coconut.ircnow.org%0a%3c CloakHostSalt = abcdefghijklmnopqrstuvwxyz%0a%3c DefaultUserModes = iC%0a%3c NoticeBeforeRegistration = yes%0a%3c OperChanPAutoOp = no %0a%3c RequireAuthPing = yes%0a%3c SyslogFacility = daemon%0a%3c @]%0a%3c %0a%3c For security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you may not necessarily trust an oper on another server. We want to chroot to /var/ngircd to prevent a security compromise. We will cloak the host using a unique salt; contact another sysadmin for the exact salt.%0a%3c %0a%3c UserMode i keeps the user invisible, and C means that only users that share channels can send a message. Both settings help reduce spam, stalking, and harassment. Receiving a notice before registration can help with debugging with [[openbsd/netcat|netcat]]. We're going to log using syslog (see section below).%0a%3c %0a%3c !!! Configuring syslog%0a%3c %0a%3c You want all the messages from ngircd to go to /var/log/ngircd.log and not anywhere else, so we insert these three lines starting at line 3 (at the top) in /etc/syslog.conf:%0a%3c %0a%3c [@%0a%3c !!ngircd%0a%3c *.* /var/log/ngircd.log%0a%3c !*%0a%3c @]%0a%3c %0a%3c This directs all logs from ngircd to go straight to /var/log/ngircd.log and nowhere else.%0a%3c %0a%3c Next, create the file /var/log/ngircd.log and restart syslogd:%0a%3c %0a%3c [@%0a%3c $ doas touch /var/log/ngircd.log%0a%3c $ doas rcctl restart syslogd%0a%3c @]%0a%3c %0a%3c !!! Operator Block%0a%3c %0a%3c [@%0a%3c [Operator]%0a%3c Name = username%0a%3c Password = password%0a%3c @]%0a%3c %0a%3c Please use a [[password/management|long, random string]] for your password.%0a%3c %0a%3c If you uncomment Mask, your hostmask must match the operator hostmask in order for the /OPER command to be accepted. If it differs at all, then your /OPER command will be rejected. If you don't want to check the hostmask, leave Mask commented out.%0a%3c %0a%3c For more security, you can uncomment Mask and have it match your vhost. However, please be aware that this will make it impossible to authenticate if you ever have to connect from a different IP address.%0a%3c %0a%3c !! Chroot%0a%3c %0a%3c We need to set up the [[openbsd/chroot|chroot]] for ngircd. Let's copy the files into the chroot:%0a%3c %0a%3c [@%0a%3c $ doas mkdir /var/ngircd/etc/%0a%3c $ doas cp -R /etc/ngircd /var/ngircd/etc/%0a%3c $ doas chown -R _ngircd:_ngircd /var/ngircd/%0a%3c $ doas rm -r /etc/ngircd%0a%3c $ doas ln -s /var/ngircd/etc/ngircd /etc/ngircd%0a%3c @]%0a%3c %0a%3c This will create a symlink so that only one set of configuration files needs to be maintained inside and outside of the chroot. Otherwise, ngircd will require two sets of configuration files, one inside and the other outside of the chroot.%0a%3c %0a%3c !! Starting ngircd%0a%3c %0a%3c To start ngircd:%0a%3c %0a%3c [@%0a%3c doas rcctl enable ngircd%0a%3c doas rcctl start ngircd%0a%3c @]%0a%3c %0a%3c [[rcctl/rcctl|rcctl]] controls how system daemons are run.%0a%3c %0a%3c Next, use your IRC client to connect to the server, which may have the hostname user.fruit.ircnow.org. Join a few channels and chat inside.%0a%3c %0a%3c !! Troubleshooting%0a%3c %0a%3c If you run into any errors, you can test to see if your configuration file has errors:%0a%3c %0a%3c [@%0a%3c $ doas ngircd -t%0a%3c @]%0a%3c %0a%3c To run ngircd in debug mode:%0a%3c %0a%3c [@%0a%3c $ doas ngircd -n%0a%3c @]%0a%3c %0a%3c Check /var/log/ngircd.log to see if ngircd is listening on the correct IP addresses and ports. Connect to those ports using your IRC client to verify that the server is working as intended.%0a%3c %0a%3c Remember, if you are connecting using port 6667 without SSL, any eavesdropper can read all your text, including your passwords. Don't send any sensitive information until you have upgraded to [[ngircd/ssl|SSL]].%0a%3c %0a%3c !! Reloading and Restarting ngIRCd%0a%3c %0a%3c After you edit /etc/ngircd/ngircd.conf for a running ngircd server, you will need to reload the configuration file:%0a%3c %0a%3c [@%0a%3c $ doas rcctl reload ngircd%0a%3c @]%0a%3c %0a%3c Alternatively, you can run:%0a%3c %0a%3c [@%0a%3c $ doas pkill -HUP ngircd%0a%3c @]%0a%3c %0a%3c '''Reloading''' a configuration file will '''not''' disconnect any active connections. So, try to reload the configuration where possible.%0a%3c %0a%3c To restart the ircd:%0a%3c %0a%3c [@%0a%3c $ doas rcctl restart ngircd%0a%3c @]%0a%3c %0a%3c '''WARNING''': '''Restarting''' the ircd '''will''' disconnect all existing connections. So, try to restart ngircd only when absolutely necessary.%0a%3c %0a%3c '''Warning''': ngircd appears to have a bug where the ircd will crash if you reload the configuration file while a message is being sent. Be careful to avoid reloading configuration files when many users are chatting.%0a%3c %0a%3c !! See Also%0a%3c %0a%3c # Configure [[ngircd/ssl|SSL]] for ngircd to ensure secure connections%0a%3c # [[ngircd/link|Link your ngircd]] with another server to create a network%0a%3c # Install [[anope/install|anope]] to provide services%0a%3c # Install [[achurch/install|achurch]] to test achurch services%0a%3c # Configure [[hopm/install|hopm]], an open proxy monitor to stop spammers.%0a%3c # Configure [[acopm/install|acopm]], a minimalist open proxy monitor to stop spammers.%0a\ No newline at end of file%0a -host:1612974683=198.251.81.119 +rev=1 +targets= +text=(:redirect Openbsd.Ngircd:) +time=1674238080 +author:1674238080=mkf +diff:1674238080:1674238080:=1d0%0a%3c (:redirect Openbsd.Ngircd:)%0a\ No newline at end of file%0a +host:1674238080=198.251.82.194 blob - b0fc9b24b20b8b7111f74f12590331df89c0a962 blob + b3bca5bdc99a62005c130ae22fad8757810b2e9c --- wiki.d/Ngircd.RecentChanges +++ wiki.d/Ngircd.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (X11; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 charset=UTF-8 ctime=1612947427 -host=2800:484:117a:82d4:1471:47c1:97ff:7f1d +host=198.251.82.194 name=Ngircd.RecentChanges -rev=171 -text=* [[Ngircd/Oper]] . . . December 25, 2022, at 12:03 AM by [[~forero]]: [==]%0a* [[Ngircd/Install]] . . . November 04, 2022, at 12:41 PM by [[~fossdev]]: [=Edit=]%0a* [[Ngircd/Loginconf]] . . . September 10, 2022, at 01:51 AM by [[~jrmu]]: [==]%0a* [[Ngircd/Ssl]] . . . May 08, 2022, at 03:30 PM by [[~miniontoby]]: [=fixed the text=]%0a* [[Ngircd/Link]] . . . April 07, 2022, at 06:52 AM by [[~jrmu]]: [==]%0a* [[Ngircd/Install-bej]] . . . May 11, 2021, at 05:26 AM by [[~bejelentkezni]]: [==]%0a -time=1671926601 +rev=172 +text=* [[Ngircd/Install]] . . . January 20, 2023, at 06:08 PM by [[~mkf]]: [==]%0a* [[Ngircd/Oper]] . . . December 25, 2022, at 12:03 AM by [[~forero]]: [==]%0a* [[Ngircd/Loginconf]] . . . September 10, 2022, at 01:51 AM by [[~jrmu]]: [==]%0a* [[Ngircd/Ssl]] . . . May 08, 2022, at 03:30 PM by [[~miniontoby]]: [=fixed the text=]%0a* [[Ngircd/Link]] . . . April 07, 2022, at 06:52 AM by [[~jrmu]]: [==]%0a* [[Ngircd/Install-bej]] . . . May 11, 2021, at 05:26 AM by [[~bejelentkezni]]: [==]%0a +time=1674238080 blob - a362a7154c6b0f9b680ae4fcd78bcd46362addc5 blob + afa3b9f218dc828c768cd78f9d637905ca76bcdf --- wiki.d/NodeJS.Install +++ wiki.d/NodeJS.Install @@ -1,123 +1,15 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36 -author=dodocrypto +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 +author=mkf charset=UTF-8 csum= -ctime=1637161703 -host=180.241.250.156 +ctime=1674239249 +host=198.251.82.194 name=NodeJS.Install -rev=37 +rev=1 targets= -text=# OPENBSD Install and Update To Latest Stable Version%0a%0a# Step 1 : install using port %0a# pkg_add node%0a%0a# This will give us node version 12.22.6 and npm 6.14.15 which is so outdated as 2021 November%0a%0a%0a[@%0a%0a0dev# pkg_add node%0a%0aquirks-4.53 signed on 2021-11-16T18:52:34Z%0anode-12.22.6p0: ok%0a--- +node-12.22.6p0 -------------------%0aYou may wish to add /usr/local/lib/node_modules/npm/man to /etc/man.conf%0aYou may wish to add /usr/local/lib/node_modules/sshpk/man to /etc/man.conf%0a%0a0dev# node -v%0av12.22.6%0a%0a0dev# npm -v%0a6.14.15%0a%0a@]%0a%0a# lets update NPM to the latest version%0a%0a[@%0a%0a0dev# npm install -g npm@latest%0a/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js%0a/usr/local/bin/npx -> /usr/local/lib/node_modules/npm/bin/npx-cli.js%0a+ npm@8.1.3%0aadded 70 packages from 18 contributors, removed 290 packages and updated 148 packages in 33.467s%0a0dev# npm -v%0a8.1.3%0a0dev# %0a%0a@]%0a%0a# As per november 17 2021 latest is 8.1.3%0a%0a# Next we want to upgrade node the latest LTS%0a# Add Bash shell and wget%0a%0a[@%0a%0a0dev# pkg_add wget bash %0aquirks-4.53 signed on 2021-11-16T18:52:34Z%0awget-1.21.2: ok%0abash-5.1.8: ok%0a%0a%0a%0a# 0dev$ wget https://nodejs.org/dist/v16.13.0/node-v16.13.0.tar.gz%0a# as for now the latest version is node-v16.13.0.tar.gz%0a# 0dev$ tar -zxvf node-v16.13.0.tar.gz %0a%0a# Now Lets Install all dependency so that we can compile node%0a%0a[@%0a%0a%0a%0a0dev# pkg_add gcc g++ gmake python3 python openssl%0aquirks-4.53 signed on 2021-11-16T18:52:34Z%0aAmbiguous: choose package for gcc%0aa 0: %3cNone>%0a 1: gcc-8.4.0p9%0a 2: gcc-11.2.0p0%0aYour choice: 2%0agcc-11.2.0p0:gmp-6.2.1p0: ok%0agcc-11.2.0p0:mpfr-4.1.0: ok%0agcc-11.2.0p0:libmpc-1.1.0: ok%0agcc-11.2.0p0:gcc-libs-11.2.0p0: ok%0agcc-11.2.0p0: ok%0a%0aAmbiguous: choose package for g++%0aa 0: %3cNone>%0a 1: g++-8.4.0p9%0a 2: g++-11.2.0p0%0aYour choice: 2%0ag++-11.2.0p0: ok%0apython3-3.8p0: ok%0a%0aAmbiguous: choose package for python%0aa 0: %3cNone>%0a 1: python-2.7.18p3%0a 2: python-3.8.12%0a 3: python-3.9.7%0aYour choice: 3%0apython-3.9.7: ok%0a%0aAmbiguous: choose package for openssl%0aa 0: %3cNone>%0a 1: openssl-1.0.2up4%0a 2: openssl-1.1.1lp0%0a 3: openssl-3.0.0%0aYour choice: 3%0aopenssl-3.0.0: ok%0a--- +openssl-3.0.0 -------------------%0aYou may wish to add /usr/local/lib/eopenssl30/man to /etc/man.conf%0a%0a%0a%0a# ln -s /usr/local/bin/egcc /usr/local/bin/gcc%0a# ln -s /usr/local/bin/eg++ /usr/local/bin/g++%0a%0a# last install assembler %0a%0a[@%0a%0a0dev# pkg_add gas %0a0dev# mv /usr/bin/as /usr/bin/as.old%0a0dev# ln -s /usr/local/bin/gas /usr/bin/as %0a%0a%0a@]%0a%0a%0a# next configure in node directory as normal user%0a# make sure using bash by typing bash first to switch shell%0a# 0dev# pkg_add pkglocatedb%0a%0a%0a%0a[@%0a%0a%0a%0abash-5.1$ ./configure %0aNode.js configure: Found Python 3.9.7...%0aINFO: configure completed successfully%0a%0abash-5.1$ gmake%0a%0a----%0aFAILED TO BUILT PACKAGE , NEED MORE TO BE DONE%0a----%0a%0a@] -time=1637236923 -author:1637236923=dodocrypto -diff:1637236923:1637236886:=139c139%0a%3c FAILED TO BUILT PACKAGE , NEED MORE TO BE DONE%0a---%0a> FAILED BUILDING PACKAGE NEED MORE TO BE DONE%0a -host:1637236923=180.241.250.156 -author:1637236886=dodocrypto -diff:1637236886:1637236519:=138,140c138%0a%3c ----%0a%3c FAILED BUILDING PACKAGE NEED MORE TO BE DONE%0a%3c ----%0a---%0a> %0a -host:1637236886=180.241.250.156 -author:1637236519=dodocrypto -diff:1637236519:1637235759:= -host:1637236519=180.241.250.156 -author:1637235759=dodocrypto -diff:1637235759:1637235753:=136c136%0a%3c bash-5.1$ gmake%0a---%0a> bash-5.1$ gmake -j4%0a -host:1637235759=180.241.250.156 -author:1637235753=dodocrypto -diff:1637235753:1637230982:=132c132%0a%3c bash-5.1$ ./configure %0a---%0a> bash-5.1$ ./configure --shared-openssl%0a -host:1637235753=180.241.250.156 -author:1637230982=dodocrypto -diff:1637230982:1637222270:=132c132%0a%3c bash-5.1$ ./configure --shared-openssl%0a---%0a> bash-5.1$ ./configure%0a -host:1637230982=180.241.250.156 -author:1637222270=dodocrypto -diff:1637222270:1637221600:=124c124%0a%3c # 0dev# pkg_add pkglocatedb%0a---%0a> # ln -s /usr/lib/libssl.a /usr/lib/libopenssl.a%0a -host:1637222270=180.241.250.156 -author:1637221600=dodocrypto -diff:1637221600:1637221356:=124,125c124%0a%3c # ln -s /usr/lib/libssl.a /usr/lib/libopenssl.a%0a%3c %0a---%0a> # ln -s /usr/lib/libssl.a /usr/lib/openssl.a%0a -host:1637221600=180.241.250.156 -author:1637221356=dodocrypto -diff:1637221356:1637219203:=124d123%0a%3c # ln -s /usr/lib/libssl.a /usr/lib/openssl.a%0a -host:1637221356=180.241.250.156 -author:1637219203=dodocrypto -diff:1637219203:1637218833:=127a128,129%0a> 0dev# mv /usr/bin/ld /usr/bin/ld.old%0a> 0dev# mv /usr/bin/ld.bfd /usr/bin/ld%0a -host:1637219203=180.241.250.156 -author:1637218833=dodocrypto -diff:1637218833:1637218268:=125d124%0a%3c %0a127,129d125%0a%3c %0a%3c 0dev# mv /usr/bin/ld /usr/bin/ld.old%0a%3c 0dev# mv /usr/bin/ld.bfd /usr/bin/ld%0a -host:1637218833=180.241.250.156 -author:1637218268=dodocrypto -diff:1637218268:1637214282:=118d117%0a%3c %0a121d119%0a%3c %0a126d123%0a%3c %0a -host:1637218268=180.241.250.156 -author:1637214282=dodocrypto -diff:1637214282:1637214142:= -host:1637214282=180.241.250.156 -author:1637214142=dodocrypto -diff:1637214142:1637214100:=124,129d123%0a%3c %0a%3c bash-5.1$ ./configure%0a%3c Node.js configure: Found Python 3.9.7...%0a%3c INFO: configure completed successfully%0a%3c %0a%3c bash-5.1$ gmake -j4%0a -host:1637214142=180.241.250.156 -author:1637214100=dodocrypto -diff:1637214100:1637213288:= -host:1637214100=180.241.250.156 -author:1637213288=dodocrypto -diff:1637213288:1637203868:=111a112,118%0a> 0dev# pkg_add gas llvm %0a> %0a> @]%0a> %0a> # next configure in node directory as normal user%0a> # make sure using bash by typing bash first to switch shell%0a> %0a114,125c121,122%0a%3c 0dev# pkg_add gas %0a%3c 0dev# mv /usr/bin/as /usr/bin/as.old%0a%3c 0dev# ln -s /usr/local/bin/gas /usr/bin/as %0a%3c %0a%3c @]%0a%3c %0a%3c # next configure in node directory as normal user%0a%3c # make sure using bash by typing bash first to switch shell%0a%3c %0a%3c [@%0a%3c %0a%3c %0a---%0a> bash-5.1$ ./configure --openssl-no-asm%0a> bash-5.1$ gmake%0a -host:1637213288=180.241.250.156 -author:1637203868=dodocrypto -diff:1637203868:1637201721:= -host:1637203868=180.241.250.156 -author:1637201721=dodocrypto -diff:1637201721:1637201706:=119,120d118%0a%3c [@%0a%3c %0a124d121%0a%3c @]%0a\ No newline at end of file%0a -host:1637201721=180.241.250.156 -author:1637201706=dodocrypto -diff:1637201706:1637200923:=120d119%0a%3c bash-5.1$ gmake%0a -host:1637201706=180.241.250.156 -author:1637200923=dodocrypto -diff:1637200923:1637200922:= -host:1637200923=180.241.250.156 -author:1637200922=dodocrypto -diff:1637200922:1637200199:=115,120d114%0a%3c %0a%3c # next configure in node directory as normal user%0a%3c # make sure using bash by typing bash first to switch shell%0a%3c %0a%3c bash-5.1$ ./configure --openssl-no-asm%0a%3c %0a -host:1637200922=180.241.250.156 -author:1637200199=dodocrypto -diff:1637200199:1637199434:=109,112d108%0a%3c %0a%3c # last install assembler %0a%3c %0a%3c 0dev# pkg_add gas llvm %0a -host:1637200199=180.241.250.156 -author:1637199434=dodocrypto -diff:1637199434:1637198664:=64,65d63%0a%3c %0a%3c %0a67,104d64%0a%3c quirks-4.53 signed on 2021-11-16T18:52:34Z%0a%3c Ambiguous: choose package for gcc%0a%3c a 0: %3cNone>%0a%3c 1: gcc-8.4.0p9%0a%3c 2: gcc-11.2.0p0%0a%3c Your choice: 2%0a%3c gcc-11.2.0p0:gmp-6.2.1p0: ok%0a%3c gcc-11.2.0p0:mpfr-4.1.0: ok%0a%3c gcc-11.2.0p0:libmpc-1.1.0: ok%0a%3c gcc-11.2.0p0:gcc-libs-11.2.0p0: ok%0a%3c gcc-11.2.0p0: ok%0a%3c %0a%3c Ambiguous: choose package for g++%0a%3c a 0: %3cNone>%0a%3c 1: g++-8.4.0p9%0a%3c 2: g++-11.2.0p0%0a%3c Your choice: 2%0a%3c g++-11.2.0p0: ok%0a%3c python3-3.8p0: ok%0a%3c %0a%3c Ambiguous: choose package for python%0a%3c a 0: %3cNone>%0a%3c 1: python-2.7.18p3%0a%3c 2: python-3.8.12%0a%3c 3: python-3.9.7%0a%3c Your choice: 3%0a%3c python-3.9.7: ok%0a%3c %0a%3c Ambiguous: choose package for openssl%0a%3c a 0: %3cNone>%0a%3c 1: openssl-1.0.2up4%0a%3c 2: openssl-1.1.1lp0%0a%3c 3: openssl-3.0.0%0a%3c Your choice: 3%0a%3c openssl-3.0.0: ok%0a%3c --- +openssl-3.0.0 -------------------%0a%3c You may wish to add /usr/local/lib/eopenssl30/man to /etc/man.conf%0a%3c %0a -host:1637199434=180.241.250.156 -author:1637198664=dodocrypto -diff:1637198664:1637197581:=64,65c64,92%0a%3c 0dev# pkg_add gcc g++ gmake python3 python openssl%0a%3c %0a---%0a> 0dev# pkg_add gcc g++ make python3 python%0a> quirks-4.53 signed on 2021-11-16T18:52:34Z%0a> Ambiguous: choose package for gcc%0a> a 0: %3cNone>%0a> 1: gcc-8.4.0p9%0a> 2: gcc-11.2.0p0%0a> Your choice: 2%0a> gcc-11.2.0p0:gmp-6.2.1p0: ok%0a> gcc-11.2.0p0:gcc-libs-11.2.0p0: ok%0a> gcc-11.2.0p0:mpfr-4.1.0: ok%0a> gcc-11.2.0p0:libmpc-1.1.0: ok%0a> gcc-11.2.0p0: ok%0a> Ambiguous: choose package for g++%0a> a 0: %3cNone>%0a> 1: g++-8.4.0p9%0a> 2: g++-11.2.0p0%0a> Your choice: 2%0a> g++-11.2.0p0: ok%0a> Can't find make%0a> python3-3.8p0: ok%0a> Ambiguous: choose package for python%0a> a 0: %3cNone>%0a> 1: python-2.7.18p3%0a> 2: python-3.8.12%0a> 3: python-3.9.7%0a> Your choice: 3%0a> python-3.9.7: ok%0a> 0dev# make %0a> make: no target to make.%0a -host:1637198664=180.241.250.156 -author:1637197581=dodocrypto -diff:1637197581:1637164249:=93,95d92%0a%3c %0a%3c # ln -s /usr/local/bin/egcc /usr/local/bin/gcc%0a%3c # ln -s /usr/local/bin/eg++ /usr/local/bin/g++%0a -host:1637197581=180.241.250.156 -author:1637164249=dodocrypto -diff:1637164249:1637163875:=58,94c58%0a%3c # 0dev$ tar -zxvf node-v16.13.0.tar.gz %0a%3c %0a%3c # Now Lets Install all dependency so that we can compile node%0a%3c %0a%3c [@%0a%3c %0a%3c 0dev# pkg_add gcc g++ make python3 python%0a%3c quirks-4.53 signed on 2021-11-16T18:52:34Z%0a%3c Ambiguous: choose package for gcc%0a%3c a 0: %3cNone>%0a%3c 1: gcc-8.4.0p9%0a%3c 2: gcc-11.2.0p0%0a%3c Your choice: 2%0a%3c gcc-11.2.0p0:gmp-6.2.1p0: ok%0a%3c gcc-11.2.0p0:gcc-libs-11.2.0p0: ok%0a%3c gcc-11.2.0p0:mpfr-4.1.0: ok%0a%3c gcc-11.2.0p0:libmpc-1.1.0: ok%0a%3c gcc-11.2.0p0: ok%0a%3c Ambiguous: choose package for g++%0a%3c a 0: %3cNone>%0a%3c 1: g++-8.4.0p9%0a%3c 2: g++-11.2.0p0%0a%3c Your choice: 2%0a%3c g++-11.2.0p0: ok%0a%3c Can't find make%0a%3c python3-3.8p0: ok%0a%3c Ambiguous: choose package for python%0a%3c a 0: %3cNone>%0a%3c 1: python-2.7.18p3%0a%3c 2: python-3.8.12%0a%3c 3: python-3.9.7%0a%3c Your choice: 3%0a%3c python-3.9.7: ok%0a%3c 0dev# make %0a%3c make: no target to make.%0a%3c %0a%3c @]%0a---%0a> %0a -host:1637164249=180.241.250.156 -author:1637163875=dodocrypto -diff:1637163875:1637163702:=55,58c55%0a%3c %0a%3c # 0dev$ wget https://nodejs.org/dist/v16.13.0/node-v16.13.0.tar.gz%0a%3c # as for now the latest version is node-v16.13.0.tar.gz%0a%3c %0a---%0a> @]%0a\ No newline at end of file%0a -host:1637163875=180.241.250.156 -author:1637163702=dodocrypto -diff:1637163702:1637163466:=45,55c45%0a%3c # Add Bash shell and wget%0a%3c %0a%3c [@%0a%3c %0a%3c 0dev# pkg_add wget bash %0a%3c quirks-4.53 signed on 2021-11-16T18:52:34Z%0a%3c wget-1.21.2: ok%0a%3c bash-5.1.8: ok%0a%3c %0a%3c %0a%3c @]%0a\ No newline at end of file%0a---%0a> %0a -host:1637163702=180.241.250.156 -author:1637163466=dodocrypto -diff:1637163466:1637163055:=44c44,48%0a%3c # Next we want to upgrade node the latest LTS%0a---%0a> # Next let's update node through npm%0a> %0a> [@%0a> %0a> @]%0a -host:1637163466=180.241.250.156 -author:1637163055=dodocrypto -diff:1637163055:1637163042:= -host:1637163055=180.241.250.156 -author:1637163042=dodocrypto -diff:1637163042:1637162798:= -host:1637163042=180.241.250.156 -author:1637162798=dodocrypto -diff:1637162798:1637162563:=47c47,59%0a%3c %0a---%0a> 0dev# npm install -g n stable%0a> %0a> added 2 packages, and audited 3 packages in 2s%0a> %0a> found 0 vulnerabilities%0a> 0dev# %0a> @]%0a> %0a> # Next we need bash shell to run n that we just installed %0a> [@%0a> 0dev# pkg_add bash%0a> quirks-4.53 signed on 2021-11-16T18:52:34Z%0a> bash-5.1.8: ok%0a -host:1637162798=180.241.250.156 -author:1637162563=dodocrypto -diff:1637162563:1637162199:=54,61d53%0a%3c %0a%3c # Next we need bash shell to run n that we just installed %0a%3c [@%0a%3c 0dev# pkg_add bash%0a%3c quirks-4.53 signed on 2021-11-16T18:52:34Z%0a%3c bash-5.1.8: ok%0a%3c @]%0a%3c %0a -host:1637162563=180.241.250.156 -author:1637162199=dodocrypto -diff:1637162199:1637162001:=44,53c44%0a%3c # Next let's update node through npm%0a%3c %0a%3c [@%0a%3c 0dev# npm install -g n stable%0a%3c %0a%3c added 2 packages, and audited 3 packages in 2s%0a%3c %0a%3c found 0 vulnerabilities%0a%3c 0dev# %0a%3c @]%0a---%0a> # Next let's update node through npm%0a\ No newline at end of file%0a -host:1637162199=180.241.250.156 -author:1637162001=dodocrypto -diff:1637162001:1637161858:=29,44c29%0a%3c [@%0a%3c %0a%3c 0dev# npm install -g npm@latest%0a%3c /usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js%0a%3c /usr/local/bin/npx -> /usr/local/lib/node_modules/npm/bin/npx-cli.js%0a%3c + npm@8.1.3%0a%3c added 70 packages from 18 contributors, removed 290 packages and updated 148 packages in 33.467s%0a%3c 0dev# npm -v%0a%3c 8.1.3%0a%3c 0dev# %0a%3c %0a%3c @]%0a%3c %0a%3c # As per november 17 2021 latest is 8.1.3%0a%3c %0a%3c # Next let's update node through npm%0a\ No newline at end of file%0a---%0a> [@%0a\ No newline at end of file%0a -host:1637162001=180.241.250.156 -author:1637161858=dodocrypto -diff:1637161858:1637161703:=6,8c6,7%0a%3c # This will give us node version 12.22.6 and npm 6.14.15 which is so outdated as 2021 November%0a%3c %0a%3c %0a---%0a> # This will give us%0a> %0a12d10%0a%3c %0a18d15%0a%3c %0a21d17%0a%3c %0a24,29c20,23%0a%3c %0a%3c @]%0a%3c %0a%3c # lets update NPM to the latest version%0a%3c %0a%3c [@%0a\ No newline at end of file%0a---%0a> 0dev# %0a> %0a> %0a> @]%0a\ No newline at end of file%0a -host:1637161858=180.241.250.156 -author:1637161703=dodocrypto -diff:1637161703:1637161703:=1,23d0%0a%3c # OPENBSD Install and Update To Latest Stable Version%0a%3c %0a%3c # Step 1 : install using port %0a%3c # pkg_add node%0a%3c %0a%3c # This will give us%0a%3c %0a%3c [@%0a%3c %0a%3c 0dev# pkg_add node%0a%3c quirks-4.53 signed on 2021-11-16T18:52:34Z%0a%3c node-12.22.6p0: ok%0a%3c --- +node-12.22.6p0 -------------------%0a%3c You may wish to add /usr/local/lib/node_modules/npm/man to /etc/man.conf%0a%3c You may wish to add /usr/local/lib/node_modules/sshpk/man to /etc/man.conf%0a%3c 0dev# node -v%0a%3c v12.22.6%0a%3c 0dev# npm -v%0a%3c 6.14.15%0a%3c 0dev# %0a%3c %0a%3c %0a%3c @]%0a\ No newline at end of file%0a -host:1637161703=180.241.250.156 +text=(:redirect Openbsd.NodeJS status=301:) +time=1674239249 +author:1674239249=mkf +diff:1674239249:1674239249:=1d0%0a%3c (:redirect Openbsd.NodeJS status=301:)%0a\ No newline at end of file%0a +host:1674239249=198.251.82.194 blob - 20550b952a55e5d6644c4018a4f4ba85482e605d blob + c435003d1a3d15867c3c426306912e331a1d730f --- wiki.d/NodeJS.RecentChanges +++ wiki.d/NodeJS.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 charset=UTF-8 ctime=1637161703 -host=180.241.250.156 +host=198.251.82.194 name=NodeJS.RecentChanges -rev=37 -text=* [[NodeJS/Install]] . . . November 18, 2021, at 12:02 PM by [[~dodocrypto]]: [==]%0a -time=1637236923 +rev=39 +text=* [[NodeJS/Install]] . . . January 20, 2023, at 06:27 PM by [[~mkf]]: [==]%0a +time=1674239249 blob - 8d4ea3d046b4c93ccee22183b1b3f81cff68e59b blob + 4b85f0d4c672117c3e3f43dfba09dac95bdd97cc --- wiki.d/Openbsd.Gotweb +++ wiki.d/Openbsd.Gotweb @@ -1,38 +1,61 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=w3m/0.5.3+git20210102 -author=jrmu +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 +author=mkf charset=UTF-8 csum= -ctime=1597744188 -host=38.87.162.47 -name=Openbsd.Gotweb -rev=8 +ctime=1639668876 +host=198.251.82.194 +name=Openbsd.Gotnow +rev=16 targets= -text=(:redirect Gotweb.Install:)%0aTo import a project into got:%0a%0a[@%0a$ doas pkg_add got%0a$ got init reponame%0a$ export GOT_AUTHOR="YOURNAME %3cYOUR EMAIL>"%0a$ got import -m "Initial import" -r repo-path files/%0a@]%0a%0aTo set up gotweb:%0a%0a[@%0a$ doas pkg_add gotweb%0a@]%0a%0aInside /etc/httpd.conf:%0a%0a[@%0atypes { include "/usr/share/misc/mime.types" }%0aserver "gotweb.example.com" {%0a listen on * port 80%0a root "/htdocs/gotweb"%0a location "/cgi-bin/*" {%0a root "/"%0a fastcgi%0a }%0a location "/*" {%0a directory index "index.html"%0a }%0a}%0a@]%0a%0a[@%0a$ doas mkdir -p /var/www/etc%0a@]%0a%0aInside /var/www/etc/gotweb.conf%0a%0a[@%0agot_site_name "IRCNow Software"%0agot_site_owner "IRCNow"%0agot_logo_url "https://git.ircnow.org"%0a@]%0a%0ayou'll need to have these running:%0a%0a[@%0a$ doas rcctl enable httpd slowcgi%0a$ doas rcctl start httpd slowcgi%0a@]%0a -time=1639668970 -author:1639668970=jrmu -diff:1639668970:1638155138:=1d0%0a%3c (:redirect Gotweb.Install:)%0a -host:1639668970=38.87.162.47 -author:1638155138=mkf -diff:1638155138:1638155096:=45c45,48%0a%3c you'll need to have these running:%0a---%0a> **Remember** to fix this permission bug!%0a> %0a> %0a> Otherwise, you will see this cryptic error message: @@got_opentempfd: Permission denied@@%0a -host:1638155138=188.210.114.32 -author:1638155096=mkf -diff:1638155096:1638154811:=45,48c45,51%0a%3c **Remember** to fix this permission bug!%0a%3c %0a%3c %0a%3c Otherwise, you will see this cryptic error message: @@got_opentempfd: Permission denied@@%0a---%0a> **Remember** to fix this permission bug!%0a> %0a> [@%0a> $ doas chown www:daemon /var/www/got/tmp%0a> @]%0a> %0a> Otherwise, you will see this cryptic error message: got_opentempfd: Permission denied%0a -host:1638155096=188.210.114.32 -author:1638154811=mkf -diff:1638154811:1638154667:=39a40%0a> got_repos_path "/got/public"%0a -host:1638154811=188.210.114.32 -author:1638154667=mkf -csum:1638154667=hmm -diff:1638154667:1628480880:=40a41%0a> got_max_commits_display 50%0a42a44,45%0a> got_site_link "repos"%0a> got_logo "got.png"%0a -host:1638154667=188.210.114.32 -author:1628480880=jrmu -diff:1628480880:1612514014:=32a33,34%0a> Inside /var/www/etc/gotweb.conf%0a> %0a34,39d35%0a%3c $ doas mkdir -p /var/www/etc%0a%3c @]%0a%3c %0a%3c Inside /var/www/etc/gotweb.conf%0a%3c %0a%3c [@%0a60c56%0a%3c @]%0a---%0a> @]%0a\ No newline at end of file%0a -host:1628480880=38.87.162.8 -author:1612514014=miniontoby -csum:1612514014=got_author -diff:1612514014:1597744188:=6d5%0a%3c $ export GOT_AUTHOR="YOURNAME %3cYOUR EMAIL>"%0a -host:1612514014=141.138.217.186 -author:1597744188=jrmu -diff:1597744188:1597744188:=1,55d0%0a%3c To import a project into got:%0a%3c %0a%3c [@%0a%3c $ doas pkg_add got%0a%3c $ got init reponame%0a%3c $ got import -m "Initial import" -r repo-path files/%0a%3c @]%0a%3c %0a%3c To set up gotweb:%0a%3c %0a%3c [@%0a%3c $ doas pkg_add gotweb%0a%3c @]%0a%3c %0a%3c Inside /etc/httpd.conf:%0a%3c %0a%3c [@%0a%3c types { include "/usr/share/misc/mime.types" }%0a%3c server "gotweb.example.com" {%0a%3c listen on * port 80%0a%3c root "/htdocs/gotweb"%0a%3c location "/cgi-bin/*" {%0a%3c root "/"%0a%3c fastcgi%0a%3c }%0a%3c location "/*" {%0a%3c directory index "index.html"%0a%3c }%0a%3c }%0a%3c @]%0a%3c %0a%3c Inside /var/www/etc/gotweb.conf%0a%3c %0a%3c [@%0a%3c got_repos_path "/got/public"%0a%3c got_max_commits_display 50%0a%3c got_site_name "IRCNow Software"%0a%3c got_site_owner "IRCNow"%0a%3c got_site_link "repos"%0a%3c got_logo "got.png"%0a%3c got_logo_url "https://git.ircnow.org"%0a%3c @]%0a%3c %0a%3c **Remember** to fix this permission bug!%0a%3c %0a%3c [@%0a%3c $ doas chown www:daemon /var/www/got/tmp%0a%3c @]%0a%3c %0a%3c Otherwise, you will see this cryptic error message: got_opentempfd: Permission denied%0a%3c %0a%3c [@%0a%3c $ doas rcctl enable httpd slowcgi%0a%3c $ doas rcctl start httpd slowcgi%0a%3c @]%0a\ No newline at end of file%0a -host:1597744188=38.81.163.143 +text=!! Installation%0a%0a[@%0a$ doas pkg_add gotweb%0a@]%0a%0aAdd this block to /etc/httpd.conf:%0a%0a[@%0atypes { include "/usr/share/misc/mime.types" }%0aserver "gotweb.example.com" {%0a listen on * port 80%0a root "/htdocs"%0a location "/cgi-bin/*" {%0a root "/"%0a fastcgi%0a }%0a location "/*" {%0a directory index "gotweb/index.html"%0a }%0a}%0a@]%0a%0a!! Configuration%0a%0a[@%0a$ doas mkdir -p /var/www/etc%0a@]%0a%0aInside @@/var/www/etc/gotweb.conf@@:%0a%0a[@%0agot_repos_path "/got/public"%0agot_www_path "/gotweb"%0agot_max_commits_display 1000%0agot_site_name "Made on IRCNow"%0agot_site_owner "IRCNow"%0agot_logo_url "https://got.ircnow.org"%0agot_site_link "repos"%0agot_logo "madeonirc128x128.png"%0a@]%0a%0aUpload your logo to @@/var/www/htdocs/gotweb@@:%0a%0a[@%0a$ cd /var/www/htdocs/gotweb%0a$ doas ftp https://wiki.ircnow.org/uploads/Marketing/madeonirc128x128.png%0a$ doas chown root:bin madeonirc128x128.png%0a@]%0a%0agotweb needs write permissions:%0a%0a[@%0a$ doas chown www:daemon /var/www/got/tmp/%0a@]%0a%0ayou'll need to have these running:%0a%0a[@%0a$ doas rcctl enable httpd slowcgi%0a$ doas rcctl start httpd slowcgi%0a@]%0a%0a!!! Import repos%0a%0a[@%0a$ doas chown -R $USER:daemon /var/www/got/public/%0a$ openrsync -a --delete --rsync-path=openrsync /var/git/ /var/www/got/public/%0a@]%0a%0a!! Cronjobs%0a%0aPeriodically you need to sync your repos:%0a%0a[@%0a$ crontab -e%0a@daily openrsync -a --delete --rsync-path=openrsync /var/git/ /var/www/got/public/%0a@]%0a +time=1674241275 +author:1674241275=mkf +diff:1674241275:1649159581:=1,2c1,2%0a%3c !! Installation%0a%3c %0a---%0a> To set up gotweb:%0a> %0a24,25d23%0a%3c !! Configuration%0a%3c %0a30,31c28,29%0a%3c Inside @@/var/www/etc/gotweb.conf@@:%0a%3c %0a---%0a> Inside /var/www/etc/gotweb.conf%0a> %0a43,44c41,42%0a%3c Upload your logo to @@/var/www/htdocs/gotweb@@:%0a%3c %0a---%0a> Upload your logo to /var/www/htdocs/gotweb:%0a> %0a64c62%0a%3c !!! Import repos%0a---%0a> !! Import repos%0a +host:1674241275=198.251.82.194 +author:1649159581=gtlsgamr +csum:1649159581=removed redundant link +diff:1649159581:1639748533:=38a39%0a> got_logo_url "https://got.ircnow.org/"%0a +host:1649159581=103.247.6.189 +author:1639748533=jrmu +diff:1639748533:1639748441:=75,76c75%0a%3c $ crontab -e%0a%3c @daily openrsync -a --delete --rsync-path=openrsync /var/git/ /var/www/got/public/%0a---%0a> $ echo "@daily openrsync -a --delete --rsync-path=openrsync /var/git/ /var/www/got/public/" | doas crontab -u $USER -%0a +host:1639748533=198.251.82.194 +author:1639748441=jrmu +diff:1639748441:1639748397:=75c75%0a%3c $ echo "@daily openrsync -a --delete --rsync-path=openrsync /var/git/ /var/www/got/public/" | doas crontab -u $USER -%0a---%0a> $ echo "@daily openrsync -a --delete --rsync-path=openrsync /var/git/ /var/www/got/public/" >> /var/cron/tabs/$USER%0a +host:1639748441=198.251.82.194 +author:1639748397=jrmu +diff:1639748397:1639733653:=75c75%0a%3c $ echo "@daily openrsync -a --delete --rsync-path=openrsync /var/git/ /var/www/got/public/" >> /var/cron/tabs/$USER%0a---%0a> $ echo "@daily -s openrsync -a --delete --rsync-path=openrsync /var/git/ /var/www/got/public/" >> /var/cron/tabs/$USER%0a +host:1639748397=198.251.82.194 +author:1639733653=jrmu +diff:1639733653:1639733336:=48,53d47%0a%3c @]%0a%3c %0a%3c gotweb needs write permissions:%0a%3c %0a%3c [@%0a%3c $ doas chown www:daemon /var/www/got/tmp/%0a +host:1639733653=198.251.82.194 +author:1639733336=jrmu +diff:1639733336:1639722090:=19c19%0a%3c directory index "gotweb/index.html"%0a---%0a> directory index "index.html"%0a +host:1639733336=198.251.82.194 +author:1639722090=jrmu +diff:1639722090:1639718047:=34c34%0a%3c got_site_name "Made on IRCNow"%0a---%0a> got_site_name "IRCNow Software"%0a +host:1639722090=198.251.82.194 +author:1639718047=jrmu +diff:1639718047:1639717626:=38c38%0a%3c got_logo "madeonirc128x128.png"%0a---%0a> got_logo "https://wiki.ircnow.org/uploads/Marketing/madeonirc.png"%0a46,47c46,47%0a%3c $ doas ftp https://wiki.ircnow.org/uploads/Marketing/madeonirc128x128.png%0a%3c $ doas chown root:bin madeonirc128x128.png%0a---%0a> $ doas ftp https://wiki.ircnow.org/uploads/Marketing/madeonirc.png%0a> $ doas chown root:bin madeonirc.png%0a +host:1639718047=38.87.162.47 +author:1639717626=jrmu +diff:1639717626:1639717156:=13c13%0a%3c root "/htdocs"%0a---%0a> root "/htdocs/gotweb"%0a +host:1639717626=38.87.162.47 +author:1639717156=jrmu +diff:1639717156:1639716708:=40,47d39%0a%3c @]%0a%3c %0a%3c Upload your logo to /var/www/htdocs/gotweb:%0a%3c %0a%3c [@%0a%3c $ cd /var/www/htdocs/gotweb%0a%3c $ doas ftp https://wiki.ircnow.org/uploads/Marketing/madeonirc.png%0a%3c $ doas chown root:bin madeonirc.png%0a +host:1639717156=38.87.162.47 +author:1639716708=jrmu +diff:1639716708:1639716206:=7,8c7,8%0a%3c Add this block to /etc/httpd.conf:%0a%3c %0a---%0a> Inside /etc/httpd.conf:%0a> %0a31,33d30%0a%3c got_repos_path "/got/public"%0a%3c got_www_path "/gotweb"%0a%3c got_max_commits_display 1000%0a36,39c33%0a%3c got_logo_url "https://got.ircnow.org"%0a%3c got_site_link "repos"%0a%3c got_logo "https://wiki.ircnow.org/uploads/Marketing/madeonirc.png"%0a%3c got_logo_url "https://got.ircnow.org/"%0a---%0a> got_logo_url "https://git.ircnow.org"%0a +host:1639716708=38.87.162.47 +author:1639716206=jrmu +diff:1639716206:1639716148:=0a1,9%0a> To import a project into got:%0a> %0a> [@%0a> $ doas pkg_add got%0a> $ got init reponame%0a> $ export GOT_AUTHOR="YOURNAME %3cYOUR EMAIL>"%0a> $ got import -m "Initial import" -r repo-path files/%0a> @]%0a> %0a +host:1639716206=38.87.162.47 +author:1639716148=jrmu +diff:1639716148:1639716040:=52,53c52,55%0a%3c !! Import repos%0a%3c %0a---%0a> !! Cronjobs%0a> %0a> Periodically you need to sync your repos:%0a> %0a55d56%0a%3c $ doas chown -R $USER:daemon /var/www/got/public/%0a57,63d57%0a%3c @]%0a%3c %0a%3c !! Cronjobs%0a%3c %0a%3c Periodically you need to sync your repos:%0a%3c %0a%3c [@%0a +host:1639716148=38.87.162.47 +author:1639716040=jrmu +diff:1639716040:1639668876:=50,58d49%0a%3c @]%0a%3c %0a%3c !! Cronjobs%0a%3c %0a%3c Periodically you need to sync your repos:%0a%3c %0a%3c [@%0a%3c $ openrsync -a --delete --rsync-path=openrsync /var/git/ /var/www/got/public/%0a%3c $ echo "@daily -s openrsync -a --delete --rsync-path=openrsync /var/git/ /var/www/got/public/" >> /var/cron/tabs/$USER%0a +host:1639716040=38.87.162.47 +author:1639668876=jrmu +diff:1639668876:1639668876:=1,50d0%0a%3c To import a project into got:%0a%3c %0a%3c [@%0a%3c $ doas pkg_add got%0a%3c $ got init reponame%0a%3c $ export GOT_AUTHOR="YOURNAME %3cYOUR EMAIL>"%0a%3c $ got import -m "Initial import" -r repo-path files/%0a%3c @]%0a%3c %0a%3c To set up gotweb:%0a%3c %0a%3c [@%0a%3c $ doas pkg_add gotweb%0a%3c @]%0a%3c %0a%3c Inside /etc/httpd.conf:%0a%3c %0a%3c [@%0a%3c types { include "/usr/share/misc/mime.types" }%0a%3c server "gotweb.example.com" {%0a%3c listen on * port 80%0a%3c root "/htdocs/gotweb"%0a%3c location "/cgi-bin/*" {%0a%3c root "/"%0a%3c fastcgi%0a%3c }%0a%3c location "/*" {%0a%3c directory index "index.html"%0a%3c }%0a%3c }%0a%3c @]%0a%3c %0a%3c [@%0a%3c $ doas mkdir -p /var/www/etc%0a%3c @]%0a%3c %0a%3c Inside /var/www/etc/gotweb.conf%0a%3c %0a%3c [@%0a%3c got_site_name "IRCNow Software"%0a%3c got_site_owner "IRCNow"%0a%3c got_logo_url "https://git.ircnow.org"%0a%3c @]%0a%3c %0a%3c you'll need to have these running:%0a%3c %0a%3c [@%0a%3c $ doas rcctl enable httpd slowcgi%0a%3c $ doas rcctl start httpd slowcgi%0a%3c @]%0a +host:1639668876=38.87.162.47 blob - 8365c3e3f8800a011712046e257831d49e73737b blob + aee3444568fd832c7ca621ee9bf4c7b1f03942cb --- wiki.d/Openbsd.Hopm +++ wiki.d/Openbsd.Hopm @@ -1,25 +1,183 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=w3m/0.5.3+git20210102 -author=jrmu +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 +author=mkf charset=UTF-8 csum= -ctime=1597743831 -host=38.87.162.154 +ctime=1614679909 +host=198.251.82.194 name=Openbsd.Hopm -rev=4 -targets=Openbsd.Doas -text=(:redirect hopm/install:)%0a!! Pre-requisites%0a# It is assumed you have ''[[Openbsd/Doas|doas]]'' configured properly. If you do not have this configured properly and are interfacing with your server as root, you are asking for trouble!%0a# It is assumed you have ran ''adduser'' before. If not, you can run it and the majority of the defaults are fine.%0a# It is **also** assumed you have your own favourite text editor. If you **do not have** a favourite text editor, I recommend installing ''nano'' via ''doas pkg_add nano''. You must know how to use your favourite text editor as I won't cover you on how to use it.%0a%0a!! Installation%0aCreate hopm as its own user.%0a%0a[@%0a$ doas adduser%0aUse option ``-silent'' if you don't want to see all warnings and questions.%0a%0aReading /etc/shells%0aCheck /etc/master.passwd%0aCheck /etc/group%0a%0aOk, let's go.%0aDon't worry about mistakes. There will be a chance later to correct any input.%0aEnter username []: hopm%0aEnter full name []: hopm%0aEnter shell bash csh jk_chrootsh ksh nologin sh [ksh]: nologin%0aUid [1002]: 65532%0aLogin group hopm [hopm]: %0aLogin group is ``hopm''. Invite hopm into other groups: guest no %0a[no]: %0aLogin class authpf bgpd daemon default pbuild staff unbound znc %0a[default]: daemon%0aEnter password []: %0aDisable password logins for the user? (y/n) [n]: y%0a%0aName: hopm%0aPassword: ****%0aFullname: hopm%0aUid: 65532%0aGid: 65532 (hopm)%0aGroups: hopm %0aLogin Class: daemon%0aHOME: /home/hopm%0aShell: /sbin/nologin%0aOK? (y/n) [y]: %0aAdded user ``hopm''%0aCopy files from /etc/skel to /home/hopm%0aAdd another user? (y/n) [y]: n%0aGoodbye!%0a@]%0a%0aInstall the necessary ''wget'' package which is required for pulling files. ''gmake'' is required for compiling and installing.%0a[@%0a$ doas pkg_add wget gmake%0a@]%0a%0aGrab the latest [[https://github.com/ircd-hybrid/hopm/releases|hopm]]. As of writing, 1.1.6 is the latest.%0a[@%0a$ doas -u hopm wget "https://github.com/ircd-hybrid/hopm/archive/1.1.6.tar.gz" -O "/home/hopm/hopm-1.1.6.tar.gz"%0a@]%0a%0aDecompress the downloaded tarball, after you navigate into its own home directory.%0a[@%0a$ cd /home/hopm%0a$ doas -u hopm tar zxf hopm-1.1.6.tar.gz%0a@]%0a%0aNavigate into the extracted path and run configure within it.%0a[@%0a$ cd hopm-1.1.6%0a$ doas -u hopm ./configure%0a@]%0a%0aRun ''gmake'' as per instructed. Then ''gmake install'' which will install into its ''$HOME/hopm'' by default.%0a[@%0a$ doas -u hopm gmake%0a$ doas -u hopm gmake install%0a@]%0a%0aCopy ''hopm/etc/reference.conf'' as ''hopm/etc/hopm.conf'' and edit with **your own favourite text editor**. In my case I use ''vim''.%0a[@%0a$ cd ../hopm/etc%0a$ doas -u hopm cp reference.conf hopm.conf%0a$ doas -u hopm vim hopm.conf%0a@]%0a%0aMake necessary adjustments within the ''hopm.conf'' to suit your server/network configuration. Save and exit out of **your own favourite text editor**. In the first few running instances, I would enable debug mode to see if there were any issues with the configuration.%0a[@%0a$ cd ../bin%0a$ doas -u hopm hopm -dd%0a@]%0a%0a!! Troubleshooting%0aGetting hopm configured right can be tricky. So, here are some few hints and tips.%0a%0a# Ideally, for the initial testing/trialling phase, you do not want hopm to be running in the background. This is especially true if you aren't familiar with UNIX. To workaround this, you can run hopm with -d, e.g.%0a[@%0a$ ./hopm -d%0a@]%0aYou can specify the -d however many times needed but its usefulness typically stops after the second "d",%0a[@%0a$ ./hopm -dd%0a@]%0aAlso see [[https://github.com/ircd-hybrid/hopm/blob/master/README|here]]%0a%0aIf you see this error:%0a%0a[@%0a[2021-01-23T09:59:14-0600] IRC -> connect(): error connecting to username.coconut.ircnow.org: Connection refused %0a[2021-01-23T09:59:14-0600] IRC -> Connection to (username.coconut.ircnow.org) failed, reconnecting. %0a[2021-01-23T09:59:14-0600] IRC -> connect(): error connecting to username.coconut.ircnow.org: Connection refused%0a@]%0a%0aThis may be due to a configuration issue with ngircd. In particular, if the hostname has an AAAA record, hopm may be trying to connect via IPv6 but ngircd does not listen to IPv6 connections.%0a%0a!! Run Hopm as System Daemon%0aFor this refer to this page https://ircnow.org/kb/doku.php?id=openbsd:rc.d%0a%0a# Syntax errors when hopm is running in foreground. This is either the result of missing brackets where needed in config file, or that the file has DOS encodings. See [[https://github.com/ircd-hybrid/hopm/issues/22#issuecomment-301276082]] here. The missing brackets where it was needed may come from the previous section, compared to the line/s where it is indicated by hopm when executed.%0a -time=1649138949 -author:1649138949=jrmu -diff:1649138949:1611418362:=1d0%0a%3c (:redirect hopm/install:)%0a115c114%0a%3c # Syntax errors when hopm is running in foreground. This is either the result of missing brackets where needed in config file, or that the file has DOS encodings. See [[https://github.com/ircd-hybrid/hopm/issues/22#issuecomment-301276082]] here. The missing brackets where it was needed may come from the previous section, compared to the line/s where it is indicated by hopm when executed.%0a---%0a> # Syntax errors when hopm is running in foreground. This is either the result of missing brackets where needed in config file, or that the file has DOS encodings. See [[https://github.com/ircd-hybrid/hopm/issues/22#issuecomment-301276082]] here. The missing brackets where it was needed may come from the previous section, compared to the line/s where it is indicated by hopm when executed.%0a\ No newline at end of file%0a -host:1649138949=38.87.162.154 -author:1611418362=jrmu -diff:1611418362:1610543985:=100,109d99%0a%3c %0a%3c If you see this error:%0a%3c %0a%3c [@%0a%3c [2021-01-23T09:59:14-0600] IRC -> connect(): error connecting to username.coconut.ircnow.org: Connection refused %0a%3c [2021-01-23T09:59:14-0600] IRC -> Connection to (username.coconut.ircnow.org) failed, reconnecting. %0a%3c [2021-01-23T09:59:14-0600] IRC -> connect(): error connecting to username.coconut.ircnow.org: Connection refused%0a%3c @]%0a%3c %0a%3c This may be due to a configuration issue with ngircd. In particular, if the hostname has an AAAA record, hopm may be trying to connect via IPv6 but ngircd does not listen to IPv6 connections.%0a -host:1611418362=125.231.20.163 -author:1610543985=miniontoby -csum:1610543985=doas url fix -diff:1610543985:1597743831:=2c2%0a%3c # It is assumed you have ''[[Openbsd/Doas|doas]]'' configured properly. If you do not have this configured properly and are interfacing with your server as root, you are asking for trouble!%0a---%0a> # It is assumed you have ''[[openbsd:doas|doas]]'' configured properly. If you do not have this configured properly and are interfacing with your server as root, you are asking for trouble!%0a -host:1610543985=145.132.146.30 -author:1597743831=jrmu -diff:1597743831:1597743831:=1,104d0%0a%3c !! Pre-requisites%0a%3c # It is assumed you have ''[[openbsd:doas|doas]]'' configured properly. If you do not have this configured properly and are interfacing with your server as root, you are asking for trouble!%0a%3c # It is assumed you have ran ''adduser'' before. If not, you can run it and the majority of the defaults are fine.%0a%3c # It is **also** assumed you have your own favourite text editor. If you **do not have** a favourite text editor, I recommend installing ''nano'' via ''doas pkg_add nano''. You must know how to use your favourite text editor as I won't cover you on how to use it.%0a%3c %0a%3c !! Installation%0a%3c Create hopm as its own user.%0a%3c %0a%3c [@%0a%3c $ doas adduser%0a%3c Use option ``-silent'' if you don't want to see all warnings and questions.%0a%3c %0a%3c Reading /etc/shells%0a%3c Check /etc/master.passwd%0a%3c Check /etc/group%0a%3c %0a%3c Ok, let's go.%0a%3c Don't worry about mistakes. There will be a chance later to correct any input.%0a%3c Enter username []: hopm%0a%3c Enter full name []: hopm%0a%3c Enter shell bash csh jk_chrootsh ksh nologin sh [ksh]: nologin%0a%3c Uid [1002]: 65532%0a%3c Login group hopm [hopm]: %0a%3c Login group is ``hopm''. Invite hopm into other groups: guest no %0a%3c [no]: %0a%3c Login class authpf bgpd daemon default pbuild staff unbound znc %0a%3c [default]: daemon%0a%3c Enter password []: %0a%3c Disable password logins for the user? (y/n) [n]: y%0a%3c %0a%3c Name: hopm%0a%3c Password: ****%0a%3c Fullname: hopm%0a%3c Uid: 65532%0a%3c Gid: 65532 (hopm)%0a%3c Groups: hopm %0a%3c Login Class: daemon%0a%3c HOME: /home/hopm%0a%3c Shell: /sbin/nologin%0a%3c OK? (y/n) [y]: %0a%3c Added user ``hopm''%0a%3c Copy files from /etc/skel to /home/hopm%0a%3c Add another user? (y/n) [y]: n%0a%3c Goodbye!%0a%3c @]%0a%3c %0a%3c Install the necessary ''wget'' package which is required for pulling files. ''gmake'' is required for compiling and installing.%0a%3c [@%0a%3c $ doas pkg_add wget gmake%0a%3c @]%0a%3c %0a%3c Grab the latest [[https://github.com/ircd-hybrid/hopm/releases|hopm]]. As of writing, 1.1.6 is the latest.%0a%3c [@%0a%3c $ doas -u hopm wget "https://github.com/ircd-hybrid/hopm/archive/1.1.6.tar.gz" -O "/home/hopm/hopm-1.1.6.tar.gz"%0a%3c @]%0a%3c %0a%3c Decompress the downloaded tarball, after you navigate into its own home directory.%0a%3c [@%0a%3c $ cd /home/hopm%0a%3c $ doas -u hopm tar zxf hopm-1.1.6.tar.gz%0a%3c @]%0a%3c %0a%3c Navigate into the extracted path and run configure within it.%0a%3c [@%0a%3c $ cd hopm-1.1.6%0a%3c $ doas -u hopm ./configure%0a%3c @]%0a%3c %0a%3c Run ''gmake'' as per instructed. Then ''gmake install'' which will install into its ''$HOME/hopm'' by default.%0a%3c [@%0a%3c $ doas -u hopm gmake%0a%3c $ doas -u hopm gmake install%0a%3c @]%0a%3c %0a%3c Copy ''hopm/etc/reference.conf'' as ''hopm/etc/hopm.conf'' and edit with **your own favourite text editor**. In my case I use ''vim''.%0a%3c [@%0a%3c $ cd ../hopm/etc%0a%3c $ doas -u hopm cp reference.conf hopm.conf%0a%3c $ doas -u hopm vim hopm.conf%0a%3c @]%0a%3c %0a%3c Make necessary adjustments within the ''hopm.conf'' to suit your server/network configuration. Save and exit out of **your own favourite text editor**. In the first few running instances, I would enable debug mode to see if there were any issues with the configuration.%0a%3c [@%0a%3c $ cd ../bin%0a%3c $ doas -u hopm hopm -dd%0a%3c @]%0a%3c %0a%3c !! Troubleshooting%0a%3c Getting hopm configured right can be tricky. So, here are some few hints and tips.%0a%3c %0a%3c # Ideally, for the initial testing/trialling phase, you do not want hopm to be running in the background. This is especially true if you aren't familiar with UNIX. To workaround this, you can run hopm with -d, e.g.%0a%3c [@%0a%3c $ ./hopm -d%0a%3c @]%0a%3c You can specify the -d however many times needed but its usefulness typically stops after the second "d",%0a%3c [@%0a%3c $ ./hopm -dd%0a%3c @]%0a%3c Also see [[https://github.com/ircd-hybrid/hopm/blob/master/README|here]]%0a%3c %0a%3c !! Run Hopm as System Daemon%0a%3c For this refer to this page https://ircnow.org/kb/doku.php?id=openbsd:rc.d%0a%3c %0a%3c # Syntax errors when hopm is running in foreground. This is either the result of missing brackets where needed in config file, or that the file has DOS encodings. See [[https://github.com/ircd-hybrid/hopm/issues/22#issuecomment-301276082]] here. The missing brackets where it was needed may come from the previous section, compared to the line/s where it is indicated by hopm when executed.%0a\ No newline at end of file%0a -host:1597743831=38.81.163.143 +rev=55 +targets=Stopm.Stopm,Rcd.Configure +text=(:title Hopm Install Guide:)%0a%0aIn this guide, we'll setup and configure [[https://github.com/ircd-hybrid/hopm|hopm]], an open proxy monitor that kills spam bots.%0a%0aAdvantages:%0a%0a# Pure C%0a# Compatible with every IRC server%0a# Fast scanning and DNSBL support%0a%0aDisadvantages:%0a%0a# Occasionally bans innocent users because it cannot perform [[stopm/stopm|statistical analysis]]%0a%0aBefore you begin, you must read the [[https://github.com/ircd-hybrid/hopm/blob/master/README.md|README]] and [[https://github.com/ircd-hybrid/hopm/blob/master/INSTALL.md|INSTALL]] docs.%0a%0a!! Installation%0aUpgrades from older versions of hopm can also follow these instructions. You can see the version running in the log file @@/home/hopm/hopm/var/log/hopm.log@@. %0a%0aLet's create the user hopm:%0a%0a[@%0a$ doas useradd -m -g =uid -c "hopm" -d /home/hopm -s /bin/ksh hopm%0a@]%0a%0aThen we switch to the user hopm and change to its home folder:%0a%0a[@%0a$ doas su hopm%0a$ cd%0a@]%0a%0aWe download [[https://github.com/ircd-hybrid/hopm/tags|the latest release]], extract it, then build it:%0a%0a[@%0a$ ftp https://github.com/ircd-hybrid/hopm/archive/1.1.10.tar.gz%0a$ tar xvzf 1.1.10.tar.gz%0a$ cd hopm-1.1.10%0a$ ./configure%0a$ make%0a$ make install%0a@]%0a%0ahopm will now be installed in @@~/hopm@@.%0a%0a[[https://github.com/ircd-hybrid/hopm/blob/master/doc/reference.conf|/home/hopm/hopm/etc/reference.conf]] contains a sample template.%0a%0aWe'll create a new /home/hopm/hopm/etc/hopm.conf from scratch to keep it short:%0a%0a[@%0aoptions {%0a pidfile = "var/run/hopm.pid";%0a command_queue_size = 64;%0a command_interval = 10 seconds;%0a command_timeout = 180 seconds;%0a negcache_rebuild = 12 hours;%0a dns_fdlimit = 64;%0a dns_timeout = 5 seconds;%0a scanlog = "var/log/scan.log";%0a};%0a@]%0a%0aThe only thing we change is we uncomment scanlog so that we have a record of all users that connect. It will be stored in @@/home/hopm/hopm/var/log/scan.log@@.%0a%0a[@%0airc {%0a nick = "MyHopm";%0a realname = "Hybrid Open Proxy Monitor";%0a username = "hopm";%0a server = "127.0.0.1";%0a port = 16667;%0a tls = no;%0a readtimeout = 15 minutes;%0a reconnectinterval = 30 seconds;%0a nickserv = "SQUERY NickServ :IDENTIFY MyHopm PASSWORD";%0a oper = "MyHopm PASSWORD";%0a mode = "+BcFiIoqRsw";%0a away = "I'm a bot. Your messages will be ignored.";%0a channel {%0a name = "#hopm";%0a key = "somekey";%0a invite = "SQUERY ChanServ :INVITE #hopm";%0a };%0a@]%0a@@ connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]+)\\].*";@@%0a[@%0a kline = "KLINE *@%25h 3600 :Open proxy found on your host. Please contact support@example.com if this is in error.";%0a notice = "To prevent spam and abuse, we scan users for open proxies.";%0a};%0a@]%0a%0aChange the @@nick@@, @@realname@@, @@username@@. @@server@@, @@port@@, @@tls@@ specify how to connect to your ircd. You will want to use 127.0.0.1 port 16667 with no TLS.%0a%0angircd uses @@SQUERY@@ for @@nickserv@@: @@SQUERY NickServ :IDENTIFY MyHopm PASSWORD@@ -- you'll want to replace @@MyHopm@@ with the real nick and @@PASSWORD@@ with the real password. For oper: @@MyHopm PASSWORD@@ -- you'll want to replace @@MyHopm@@ and @@PASSWORD@@ with the operator name and password.%0a%0aWe change the [[https://github.com/ngircd/ngircd/blob/master/doc/Modes.txt|mode]] to @@+BcFiIoqRsw@@. I recommend you change channel's @@name@@ from @@#hopm@@ to your team channel. @@invite@@ has been modified to match ngircd; replace @@#hopm@@ with your team channel.%0a%0aFor @@kline@@, make sure to replace @@*@%25i@@ with @@*@%25h@@ (to allow hopm to work with old cloak hostmasks, which have been broken since April 2020. Note that '''hopm will not work with +x cloaking'''). You must also change the order for kline: in ngircd, kline expects the hostmask before the time. You will also want to replace @@support@example.com@@ with your actual support email.%0a%0a'''WARNING''': You must change the order for kline for ngircd:%0a%0a[@%0akline = "KLINE *@%25h 3600 :Open proxy found on your host. Please contact support@example.com if this is in error.";%0a@]%0a%0aThe hostmask must come before the time.%0a%0a[@%0aopm {%0a@]%0a%0aIn our OPM block, we will define a few blacklists: dronbl, efnet, and ircbl. %0a%0a[@%0a blacklist { %0a name = "dnsbl.dronebl.org";%0a address_family = ipv4, ipv6;%0a type = "A record reply";%0a ban_unknown = no;%0a reply {%0a 2 = "Sample data used for heuristical analysis";%0a 3 = "IRC spam drone (litmus/sdbot/fyle)";%0a 5 = "Bottler (experimental)";%0a 6 = "Unknown worm or spambot";%0a 7 = "DDoS drone";%0a 8 = "Open SOCKS proxy";%0a 9 = "Open HTTP proxy";%0a 10 = "ProxyChain";%0a 11 = "Web Page Proxy";%0a 12 = "Open DNS Resolver";%0a 13 = "Automated dictionary attacks";%0a 14 = "Open WINGATE proxy";%0a 15 = "Compromised router / gateway";%0a 16 = "Autorooting worms";%0a 17 = "Automatically determined botnet IPs (experimental)";%0a 18 = "Possibly compromised DNS/MX type hostname detected on IRC";%0a 19 = "Abused VPN Service";%0a 255 = "Uncategorized threat class";%0a };%0a kline = "KLINE *@%25h 3600 :You have a host listed in the DroneBL. For more information, visit https://dronebl.org/lookup_branded?ip=%25i&network=%3cyour_network_name>";%0a };%0a@]%0a%0aThe name of the first blacklist is [[https://dronebl.org/docs/howtouse|dnsbl.dronebl.org]]. It supports both ipv4 and ipv6 addresses. We use A record replies. We don't want to ban unknown types.%0a%0a'''Note''': Replace %3cyour_network_name> with a unique network name. The Network parameter set in ngircd.conf should suffice.%0a%0aFor the kline, we again make sure to put the hostmask before the time (as ngircd requires). We also use %25h instead of %25i to kline by hostmask instead of by IP, since ngircd may be cloaking user IPs.%0a%0a[@%0a blacklist {%0a name = "rbl.efnetrbl.org";%0a type = "A record reply";%0a ban_unknown = no;%0a reply {%0a 1 = "Open proxy";%0a 2 = "spamtrap666";%0a 3 = "spamtrap50";%0a 4 = "TOR";%0a 5 = "Drones / Flooding";%0a };%0a kline = "KLINE *@%25h 3600 :Blacklisted proxy found. For more information, visit https://rbl.efnetrbl.org/?i=%25i";%0a };%0a blacklist {%0a name = "tor.efnetrbl.org";%0a type = "A record reply";%0a ban_unknown = no;%0a reply {%0a 1 = "TOR";%0a };%0a kline = "KLINE *@%25h 3600 :TOR exit node found. For more information, visit https://rbl.efnetrbl.org/?i=%25i";%0a };%0a@]%0a%0aThe two blacklists from efnet are the same.%0a%0a[@%0a blacklist {%0a name = "rbl.ircbl.org";%0a type = "A record reply";%0a reply {%0a 2 = "Open proxy (2)";%0a 6 = "Mail or NS server (6)";%0a 10 = "D regex pattern (10)";%0a 11 = "Drone / compromised (11)";%0a 13 = "Join/part flood (13)";%0a 14 = "Drone / compromised 2 (14)";%0a 16 = "Spam bot (16)";%0a 17 = "Drone (17)";%0a 18 = "Drone 2 (18)";%0a 19 = "Web abuse (19)";%0a 20 = "Drone/flood bot (20)";%0a 21 = "Compromised host (21)";%0a 22 = "Open Proxy (22)";%0a 23 = "Open Proxy (23)";%0a 24 = "Mass advertising (24)";%0a 30 = "Drone (30)";%0a 31 = "Drone 2 (31)";%0a 32 = "Open proxy (32)";%0a 42 = "Open proxy (42)";%0a };%0a ban_unknown = yes;%0a kline = "KLINE *@%25h 3600 :Compromised host on this IP. See https://ircbl.org/lookup?ip=%25i&network=%3cyour_network_name> for more information.";%0a };%0a blacklist {%0a name = "tor-irc.dnsbl.oftc.net";%0a type = "A record reply";%0a reply {%0a 2 = "Tor exit server";%0a };%0a ban_unknown = yes;%0a kline = "KLINE *@%25h 3600 :Please use our tor onion addresses. If this is in error, please email support@ircnow.org";%0a };%0a};%0a@]%0a%0a'''Note''': Again, replace %3cyour_network_name> with a unique network name. The Network parameter set in ngircd.conf should suffice.%0a%0aThis is another blacklist.%0a%0aNext, we define a scanner block. hopm will try to get the user to connect to the target_ip:target_port using the listed port/protocol. A target_string will be sent through the proxy and then checked. If the data is found, the user is an proxy.%0a%0a'''NOTE''': target_ip must be an actual ip address. Replace 127.0.0.1 with your public IPv4 address.%0a%0a[@%0ascanner {%0a name = "default";%0a protocol = HTTP:80;%0a protocol = HTTP:8080;%0a protocol = HTTP:3128;%0a protocol = HTTP:6588;%0a# protocol = HTTPS:443;%0a# protocol = HTTPS:8443;%0a protocol = SOCKS4:1080;%0a protocol = SOCKS5:1080;%0a protocol = ROUTER:23;%0a protocol = WINGATE:23;%0a protocol = DREAMBOX:23;%0a protocol = HTTPPOST:80;%0a# protocol = HTTPSPOST:443;%0a# protocol = HTTPSPOST:8443;%0a# bind = "127.0.0.1";%0a fd = 512;%0a max_read = 4 kbytes;%0a timeout = 30 seconds;%0a target_ip = "127.0.0.1";%0a target_port = 6667;%0a target_string = "NOTICE * :*** Looking up your hostname and checking ident";%0a};%0a@]%0a%0aTwo more scanner blocks:%0a%0a[@%0ascanner {%0a name = "extended";%0a protocol = HTTP:81;%0a protocol = HTTP:8000;%0a protocol = HTTP:8001;%0a protocol = HTTP:8081;%0a protocol = HTTPPOST:81;%0a protocol = HTTPPOST:6588;%0a protocol = HTTPPOST:4480;%0a protocol = HTTPPOST:8000;%0a protocol = HTTPPOST:8001;%0a protocol = HTTPPOST:8080;%0a protocol = HTTPPOST:8081;%0a protocol = SOCKS4:4914;%0a protocol = SOCKS4:6826;%0a protocol = SOCKS4:7198;%0a protocol = SOCKS4:7366;%0a protocol = SOCKS4:9036;%0a protocol = SOCKS5:4438;%0a protocol = SOCKS5:5104;%0a protocol = SOCKS5:5113;%0a protocol = SOCKS5:5262;%0a protocol = SOCKS5:5634;%0a protocol = SOCKS5:6552;%0a protocol = SOCKS5:6561;%0a protocol = SOCKS5:7464;%0a protocol = SOCKS5:7810;%0a protocol = SOCKS5:8130;%0a protocol = SOCKS5:8148;%0a protocol = SOCKS5:8520;%0a protocol = SOCKS5:8814;%0a protocol = SOCKS5:9100;%0a protocol = SOCKS5:9186;%0a protocol = SOCKS5:9447;%0a protocol = SOCKS5:9578;%0a protocol = SOCKS5:10000;%0a protocol = SOCKS5:64101;%0a protocol = SOCKS4:29992;%0a protocol = SOCKS4:38884;%0a protocol = SOCKS4:18844;%0a protocol = SOCKS4:17771;%0a protocol = SOCKS4:31121;%0a fd = 400;%0a};%0ascanner {%0a name = "ssh";%0a protocol = SSH:22;%0a target_string = "SSH-1.99-OpenSSH_5.1";%0a target_string = "SSH-2.0-dropbear_0.51";%0a target_string = "SSH-2.0-dropbear_0.52";%0a target_string = "SSH-2.0-dropbear_0.53.1";%0a target_string = "SSH-2.0-dropbear_2012.55";%0a target_string = "SSH-2.0-dropbear_2013.62";%0a target_string = "SSH-2.0-dropbear_2014.63";%0a target_string = "SSH-2.0-OpenSSH_4.3";%0a target_string = "SSH-2.0-OpenSSH_5.1";%0a target_string = "SSH-2.0-OpenSSH_5.5p1";%0a target_string = "SSH-2.0-ROSSSH";%0a target_string = "SSH-2.0-SSH_Server";%0a};%0a@]%0a%0a[@%0auser {%0a mask = "*!*@*";%0a scanner = "default";%0a};%0a%0auser {%0a mask = "*!~*@*";%0a mask = "*!squid@*";%0a mask = "*!nobody@*";%0a mask = "*!www-data@*";%0a mask = "*!cache@*";%0a mask = "*!CacheFlowS@*";%0a mask = "*!*@*www*";%0a mask = "*!*@*proxy*";%0a mask = "*!*@*cache*";%0a scanner = "extended";%0a};%0a%0aexempt {%0a mask = "*!*@127.0.0.1";%0a};%0a@]%0a%0a!! Run Hopm%0a%0a[@%0a$ /home/hopm/hopm/bin/hopm -d%0a@]%0a%0a!! Cronjob%0a%0aPut this script in /home/hopm/hopm/bin/autohopm%0a%0a[@%0a#!/bin/sh%0aHOPMPATH=/home/hopm/hopm%0a%0aif test -r $HOPMPATH/var/run/hopm.pid; then%0a HOPMPID=$(cat $HOPMPATH/var/run/hopm.pid)%0a if $(kill -0 $HOPMPID >/dev/null 2>&1)%0a then%0a exit 0%0a fi%0afi%0a$HOPMPATH/bin/hopm &> /dev/null%0a@]%0a%0aThen make sure execute privileges are set:%0a%0a[@%0a$ chmod 754 /home/hopm/hopm/bin/autohopm%0a@]%0a%0a[@%0a$ crontab -e%0a*/5 * * * * /home/hopm/hopm/bin/autohopm%0a@]%0a(:ifend:)%0a%0a!! Troubleshooting%0a%0aIf you see this error:%0a%0a[@%0a[2021-01-23T09:59:14-0600] IRC -> connect(): error connecting to username.coconut.ircnow.org: Connection refused %0a[2021-01-23T09:59:14-0600] IRC -> Connection to (username.coconut.ircnow.org) failed, reconnecting. %0a[2021-01-23T09:59:14-0600] IRC -> connect(): error connecting to username.coconut.ircnow.org: Connection refused%0a@]%0a%0aThis may be due to a configuration issue with ngircd. In particular, if the hostname has an AAAA record, hopm may be trying to connect via IPv6 but ngircd does not listen to IPv6 connections.%0a%0a[@%0a$ doas pkg_add torsocks%0a@]%0a%0a[@%0a$ torsocks nc irc.example.com 6667%0anick toruser%0auser toruser * * :toruser%0a@]%0a%0aIn the @@#hopm@@ channel, you should see:%0a%0a[@%0a23:16 %3cMyHopm> DNSBL -> toruser!~toruser@vps-16fb7987.vps.ovh.ca [51.79.69.241] appears in BL zone rbl.efnetrbl.org (TOR)%0a@]%0a%0a!! Run Hopm as System Daemon%0a%0a[[Rcd/Configure|For this refer to this page]]\\%0a%0aAfter you've created the rc.d script, append to /etc/rc.conf.local:%0a[@ hopm_user=hopm @]%0a%0a# Syntax errors when hopm is running in foreground. This is either the result of missing brackets where needed in config file, or that the file has DOS encodings. See [[https://github.com/ircd-hybrid/hopm/issues/22#issuecomment-301276082]] here. The missing brackets where it was needed may come from the previous section, compared to the line/s where it is indicated by hopm when executed.%0a# If the service fails to start, check and make sure @@/home/hopm/hopm/var/log/hopm.log@@ is owned by hopm.%0a +time=1674243072 +title=Hopm Install Guide +author:1674243072=mkf +diff:1674243072:1672068766:=9,10c9,10%0a%3c # Fast scanning and DNSBL support%0a%3c %0a---%0a> # Fast scanning and DNSBL support.%0a> %0a18,19c18,19%0a%3c Upgrades from older versions of hopm can also follow these instructions. You can see the version running in the log file @@/home/hopm/hopm/var/log/hopm.log@@. %0a%3c %0a---%0a> Upgrades from older versions of hopm can also follow these instructions. You can see the version running in the log file /home/hopm/hopm/var/log/hopm.log. %0a> %0a44,45c44,45%0a%3c hopm will now be installed in @@~/hopm@@.%0a%3c %0a---%0a> hopm will now be installed in ~/hopm.%0a> %0a399,400c399,400%0a%3c In the @@#hopm@@ channel, you should see:%0a%3c %0a---%0a> In the #hopm channel, you should see:%0a> %0a413c413%0a%3c # If the service fails to start, check and make sure @@/home/hopm/hopm/var/log/hopm.log@@ is owned by hopm.%0a---%0a> # If the service fails to start, check and make sure /home/hopm/hopm/var/log/hopm.log is owned by hopm.%0a +host:1674243072=198.251.82.194 +author:1672068766=forero +csum:1672068766=fix typo +diff:1672068766:1666012289:minor=18c18%0a%3c Upgrades from older versions of hopm can also follow these instructions. You can see the version running in the log file /home/hopm/hopm/var/log/hopm.log. %0a---%0a> Upgrades from older versions of hopm can also fallow these instructions. You can see the version running in the log file /home/hopm/hopm/var/log/hopm.log. %0a +host:1672068766=2800:484:117a:82d4:ff02:54e2:26f6:dd1f +author:1666012289=izzyb +diff:1666012289:1666012190:minor=18c18%0a%3c Upgrades from older versions of hopm can also fallow these instructions. You can see the version running in the log file /home/hopm/hopm/var/log/hopm.log. %0a---%0a> Upgrades from older version of hopm can also fallow these instructions. You can see the version running in the log file /home/hopm/hopm/var/log/hopm.log. %0a +host:1666012289=68.148.177.239 +author:1666012190=izzyb +diff:1666012190:1664828580:=18d17%0a%3c Upgrades from older version of hopm can also fallow these instructions. You can see the version running in the log file /home/hopm/hopm/var/log/hopm.log. %0a +host:1666012190=68.148.177.239 +author:1664828580=izzyb +csum:1664828580=correction to kline in first efnet blacklist block +diff:1664828580:1664808762:=202c202%0a%3c kline = "KLINE *@%25h 3600 :Compromised host on this IP. See https://ircbl.org/lookup?ip=%25i&network=%3cyour_network_name> for more information.";%0a---%0a> kline = "KLINE 180 *@%25h :Compromised host on this IP. See https://ircbl.org/lookup?ip=%25i&network=%3cyour_network_name> for more information.";%0a +host:1664828580=68.148.177.239 +author:1664808762=izzyb +diff:1664808762:1664808732:minor=15c15%0a%3c Before you begin, you must read the [[https://github.com/ircd-hybrid/hopm/blob/master/README.md|README]] and [[https://github.com/ircd-hybrid/hopm/blob/master/INSTALL.md|INSTALL]] docs.%0a---%0a> Before you begin, you must read the [[https://github.com/ircd-hybrid/hopm/blob/master/README.md|README]] and [[https://github.com/ircd-hybrid/hopm/blob/master/INSTALL|INSTALL.md]] docs.%0a +host:1664808762=68.148.177.239 +author:1664808732=izzyb +csum:1664808732=fix broken links; files renamed to have a .md extention +diff:1664808732:1642881519:=15c15%0a%3c Before you begin, you must read the [[https://github.com/ircd-hybrid/hopm/blob/master/README.md|README]] and [[https://github.com/ircd-hybrid/hopm/blob/master/INSTALL|INSTALL.md]] docs.%0a---%0a> Before you begin, you must read the [[https://github.com/ircd-hybrid/hopm/blob/master/README|README]] and [[https://github.com/ircd-hybrid/hopm/blob/master/INSTALL|INSTALL]] docs.%0a +host:1664808732=68.148.177.239 +author:1642881519=jrmu +diff:1642881519:1638824319:=204,212d203%0a%3c blacklist {%0a%3c name = "tor-irc.dnsbl.oftc.net";%0a%3c type = "A record reply";%0a%3c reply {%0a%3c 2 = "Tor exit server";%0a%3c };%0a%3c ban_unknown = yes;%0a%3c kline = "KLINE *@%25h 3600 :Please use our tor onion addresses. If this is in error, please email support@ircnow.org";%0a%3c };%0a +host:1642881519=38.87.162.8 +author:1638824319=xfnw +csum:1638824319=warn about +x +diff:1638824319:1637396578:=97c97%0a%3c For @@kline@@, make sure to replace @@*@%25i@@ with @@*@%25h@@ (to allow hopm to work with old cloak hostmasks, which have been broken since April 2020. Note that '''hopm will not work with +x cloaking'''). You must also change the order for kline: in ngircd, kline expects the hostmask before the time. You will also want to replace @@support@example.com@@ with your actual support email.%0a---%0a> For @@kline@@, make sure to replace @@*@%25i@@ with @@*@%25h@@ (to allow hopm to work when you cloak hostmasks). You must also change the order for kline: in ngircd, kline expects the hostmask before the time. You will also want to replace @@support@example.com@@ with your actual support email.%0a +host:1638824319=2001:470:8:651::4 +author:1637396578=jrmu +diff:1637396578:1637391199:=202c202%0a%3c kline = "KLINE 180 *@%25h :Compromised host on this IP. See https://ircbl.org/lookup?ip=%25i&network=%3cyour_network_name> for more information.";%0a---%0a> kline = "KLINE 180 *@%25i :Compromised host on this IP. See https://ircbl.org/lookup?ip=%25i&network=%3cyour_network_name> for more information.";%0a +host:1637396578=38.87.162.8 +author:1637391199=bugzbunny +diff:1637391199:1632726144:=111,112c111,112%0a%3c In our OPM block, we will define a few blacklists: dronbl, efnet, and ircbl. %0a%3c %0a---%0a> In our OPM block, we define two blacklists: one for dronbl, and another for efnet. %0a> %0a139c139%0a%3c kline = "KLINE *@%25h 3600 :You have a host listed in the DroneBL. For more information, visit https://dronebl.org/lookup_branded?ip=%25i&network=%3cyour_network_name>";%0a---%0a> kline = "KLINE *@%25h 3600 :You have a host listed in the DroneBL. For more information, visit https://dronebl.org/lookup_branded?ip=%25i&network=Network";%0a145,146d144%0a%3c '''Note''': Replace %3cyour_network_name> with a unique network name. The Network parameter set in ngircd.conf should suffice.%0a%3c %0a206,207d203%0a%3c %0a%3c '''Note''': Again, replace %3cyour_network_name> with a unique network name. The Network parameter set in ngircd.conf should suffice.%0a +host:1637391199=72.78.238.236 +author:1632726144=Miniontoby +diff:1632726144:1631250603:=169a170%0a> };%0a175c176%0a%3c blacklist {%0a---%0a> blacklist {%0a202d202%0a%3c };%0a204,205c204%0a%3c %0a%3c This is another blacklist.%0a---%0a> This one is used as another blacklist, and blocks ircbots.%0a +host:1632726144=125.231.18.235 +author:1631250603=jrmu +diff:1631250603:1626787053:=208c208%0a%3c '''NOTE''': target_ip must be an actual ip address. Replace 127.0.0.1 with your public IPv4 address.%0a---%0a> '''NOTE''': target_ip must be an actual ip address%0a +host:1631250603=38.87.162.8 +author:1626787053=mkf +csum:1626787053=ircbl +diff:1626787053:1625542031:=174,204d173%0a%3c %0a%3c [@%0a%3c blacklist {%0a%3c name = "rbl.ircbl.org";%0a%3c type = "A record reply";%0a%3c reply {%0a%3c 2 = "Open proxy (2)";%0a%3c 6 = "Mail or NS server (6)";%0a%3c 10 = "D regex pattern (10)";%0a%3c 11 = "Drone / compromised (11)";%0a%3c 13 = "Join/part flood (13)";%0a%3c 14 = "Drone / compromised 2 (14)";%0a%3c 16 = "Spam bot (16)";%0a%3c 17 = "Drone (17)";%0a%3c 18 = "Drone 2 (18)";%0a%3c 19 = "Web abuse (19)";%0a%3c 20 = "Drone/flood bot (20)";%0a%3c 21 = "Compromised host (21)";%0a%3c 22 = "Open Proxy (22)";%0a%3c 23 = "Open Proxy (23)";%0a%3c 24 = "Mass advertising (24)";%0a%3c 30 = "Drone (30)";%0a%3c 31 = "Drone 2 (31)";%0a%3c 32 = "Open proxy (32)";%0a%3c 42 = "Open proxy (42)";%0a%3c };%0a%3c ban_unknown = yes;%0a%3c kline = "KLINE 180 *@%25i :Compromised host on this IP. See https://ircbl.org/lookup?ip=%25i&network=%3cyour_network_name> for more information.";%0a%3c };%0a%3c @]%0a%3c This one is used as another blacklist, and blocks ircbots.%0a +host:1626787053=198.251.81.133 +author:1625542031=jrmu +diff:1625542031:1625214366:=278c278%0a%3c mask = "*!~*@*";%0a---%0a> # mask = "*!~*@*";%0a +host:1625542031=125.231.16.111 +author:1625214366=jrmu +diff:1625214366:1624614137:=303,304c303%0a%3c Put this script in /home/hopm/hopm/bin/autohopm%0a%3c %0a---%0a> (:if false:)%0a306,327c305,306%0a%3c #!/bin/sh%0a%3c HOPMPATH=/home/hopm/hopm%0a%3c %0a%3c if test -r $HOPMPATH/var/run/hopm.pid; then%0a%3c HOPMPID=$(cat $HOPMPATH/var/run/hopm.pid)%0a%3c if $(kill -0 $HOPMPID >/dev/null 2>&1)%0a%3c then%0a%3c exit 0%0a%3c fi%0a%3c fi%0a%3c $HOPMPATH/bin/hopm &> /dev/null%0a%3c @]%0a%3c %0a%3c Then make sure execute privileges are set:%0a%3c %0a%3c [@%0a%3c $ chmod 754 /home/hopm/hopm/bin/autohopm%0a%3c @]%0a%3c %0a%3c [@%0a%3c $ crontab -e%0a%3c */5 * * * * /home/hopm/hopm/bin/autohopm%0a---%0a> $ doas crontab -e -u hopm%0a> */5 * * * * /home/hopm/hopm/bin/hopm -dv >> /home/hopm/hopm/hopm.log 2>&1 &%0a +host:1625214366=38.81.163.143 +author:1624614137=jrmu +diff:1624614137:1624202950:=202c202,203%0a%3c target_string = "NOTICE * :*** Looking up your hostname and checking ident";%0a---%0a> target_string = ":irc.example.org NOTICE * :*** Looking up your hostname";%0a> target_string = "ERROR :Your host is trying to (re)connect too fast -- throttled.";%0a +host:1624614137=38.81.163.143 +author:1624202950=jrmu +diff:1624202950:1624196192:=304d303%0a%3c (:if false:)%0a309d307%0a%3c (:ifend:)%0a +host:1624202950=38.81.163.143 +author:1624196192=jrmu +diff:1624196192:1624196139:=306c306%0a%3c */5 * * * * /home/hopm/hopm/bin/hopm -dv >> /home/hopm/hopm/hopm.log 2>&1 &%0a---%0a> */5 * * * * /home/hopm/hopm/bin/hopm >>/var/log/znc.log 2>&1 &%0a +host:1624196192=38.81.163.143 +author:1624196139=jrmu +diff:1624196139:1622818981:=300,306d299%0a%3c @]%0a%3c %0a%3c !! Cronjob%0a%3c %0a%3c [@%0a%3c $ doas crontab -e -u hopm%0a%3c */5 * * * * /home/hopm/hopm/bin/hopm >>/var/log/znc.log 2>&1 &%0a +host:1624196139=38.81.163.143 +author:1622818981=jrmu +diff:1622818981:1620176123:=331,333c331%0a%3c %0a%3c [[Rcd/Configure|For this refer to this page]]\\%0a%3c %0a---%0a> For this refer to this page https://ircnow.org/kb/doku.php?id=openbsd:rc.d\\%0a338c336%0a%3c # If the service fails to start, check and make sure /home/hopm/hopm/var/log/hopm.log is owned by hopm.%0a---%0a> # If the service fails to start, check and make sure /home/hopm/hopm/var/log/hopm.log is owned by hopm.%0a\ No newline at end of file%0a +host:1622818981=38.81.163.143 +author:1620176123=sarah +diff:1620176123:1615099104:=331,336c331,333%0a%3c For this refer to this page https://ircnow.org/kb/doku.php?id=openbsd:rc.d\\%0a%3c After you've created the rc.d script, append to /etc/rc.conf.local:%0a%3c [@ hopm_user=hopm @]%0a%3c %0a%3c # Syntax errors when hopm is running in foreground. This is either the result of missing brackets where needed in config file, or that the file has DOS encodings. See [[https://github.com/ircd-hybrid/hopm/issues/22#issuecomment-301276082]] here. The missing brackets where it was needed may come from the previous section, compared to the line/s where it is indicated by hopm when executed.%0a%3c # If the service fails to start, check and make sure /home/hopm/hopm/var/log/hopm.log is owned by hopm. %0a\ No newline at end of file%0a---%0a> For this refer to this page https://ircnow.org/kb/doku.php?id=openbsd:rc.d%0a> %0a> # Syntax errors when hopm is running in foreground. This is either the result of missing brackets where needed in config file, or that the file has DOS encodings. See [[https://github.com/ircd-hybrid/hopm/issues/22#issuecomment-301276082]] here. The missing brackets where it was needed may come from the previous section, compared to the line/s where it is indicated by hopm when executed.%0a\ No newline at end of file%0a +host:1620176123=2001:470:ee05:0:80:893f:ae46:9e7f +author:1615099104=jrmu +diff:1615099104:1615098709:=175,178c175,176%0a%3c Next, we define a scanner block. hopm will try to get the user to connect to the target_ip:target_port using the listed port/protocol. A target_string will be sent through the proxy and then checked. If the data is found, the user is an proxy.%0a%3c %0a%3c '''NOTE''': target_ip must be an actual ip address%0a%3c %0a---%0a> Next, we define a scanner block:%0a> %0a207,208c205,206%0a%3c Two more scanner blocks:%0a%3c %0a---%0a> target_ip must be another IP%0a> %0a270,272c268%0a%3c @]%0a%3c %0a%3c [@%0a---%0a> %0a +host:1615099104=198.251.81.119 +author:1615098709=jrmu +diff:1615098709:1615098501:=171,177d170%0a%3c @]%0a%3c %0a%3c The two blacklists from efnet are the same.%0a%3c %0a%3c Next, we define a scanner block:%0a%3c %0a%3c [@%0a +host:1615098709=198.251.81.119 +author:1615098501=jrmu +diff:1615098501:1615098416:= +host:1615098501=198.251.81.119 +author:1615098416=jrmu +diff:1615098416:1615097718:=109,113d108%0a%3c @]%0a%3c %0a%3c In our OPM block, we define two blacklists: one for dronbl, and another for efnet. %0a%3c %0a%3c [@%0a118a114,118%0a> @]%0a> %0a> In our OPM block, we define two blacklists: one for dronbl, and another for efnet. %0a> %0a> [@%0a141,147d140%0a%3c @]%0a%3c %0a%3c The name of the first blacklist is [[https://dronebl.org/docs/howtouse|dnsbl.dronebl.org]]. It supports both ipv4 and ipv6 addresses. We use A record replies. We don't want to ban unknown types.%0a%3c %0a%3c For the kline, we again make sure to put the hostmask before the time (as ngircd requires). We also use %25h instead of %25i to kline by hostmask instead of by IP, since ngircd may be cloaking user IPs.%0a%3c %0a%3c [@%0a +host:1615098416=198.251.81.119 +author:1615097718=jrmu +diff:1615097718:1615094839:=114,118d113%0a%3c @]%0a%3c %0a%3c In our OPM block, we define two blacklists: one for dronbl, and another for efnet. %0a%3c %0a%3c [@%0a +host:1615097718=125.231.24.85 +author:1615094839=jrmu +diff:1615094839:1615093451:=74c74%0a%3c nickserv = "SQUERY NickServ :IDENTIFY MyHopm PASSWORD";%0a---%0a> nickserv = "SQUERY NickServ :IDENTIFY PASSWORD";%0a93c93%0a%3c ngircd uses @@SQUERY@@ for @@nickserv@@: @@SQUERY NickServ :IDENTIFY MyHopm PASSWORD@@ -- you'll want to replace @@MyHopm@@ with the real nick and @@PASSWORD@@ with the real password. For oper: @@MyHopm PASSWORD@@ -- you'll want to replace @@MyHopm@@ and @@PASSWORD@@ with the operator name and password.%0a---%0a> ngircd uses @@SQUERY@@ for @@nickserv@@: @@SQUERY NickServ :IDENTIFY PASSWORD@@ -- you'll want to replace PASSWORD with the real password. For oper: @@MyHopm PASSWORD@@ -- you'll want to replace @@MyHopm@@ and @@PASSWORD@@ with the operator name and password.%0a +host:1615094839=198.251.81.119 +author:1615093451=jrmu +diff:1615093451:1615093364:=71a72%0a> tls_hostname_verification = yes;%0a91,95c92,95%0a%3c Change the @@nick@@, @@realname@@, @@username@@. @@server@@, @@port@@, @@tls@@ specify how to connect to your ircd. You will want to use 127.0.0.1 port 16667 with no TLS.%0a%3c %0a%3c ngircd uses @@SQUERY@@ for @@nickserv@@: @@SQUERY NickServ :IDENTIFY PASSWORD@@ -- you'll want to replace PASSWORD with the real password. For oper: @@MyHopm PASSWORD@@ -- you'll want to replace @@MyHopm@@ and @@PASSWORD@@ with the operator name and password.%0a%3c %0a%3c We change the [[https://github.com/ngircd/ngircd/blob/master/doc/Modes.txt|mode]] to @@+BcFiIoqRsw@@. I recommend you change channel's @@name@@ from @@#hopm@@ to your team channel. @@invite@@ has been modified to match ngircd; replace @@#hopm@@ with your team channel.%0a---%0a> %0a> Change the @@nick@@, @@realname@@, @@username@@. @@server@@, @@port@@, @@tls@@ specify how to connect to your ircd. You will want to use 127.0.0.1 port 16667 with no TLS. @@nickserv@@ and @@oper@@ should be changed to match ngircd. You'll also want to replace @@PASSWORD@@ with the nickserv and oper password, and @@MyHopm@@ with the operator nick. Change [[https://github.com/ngircd/ngircd/blob/master/doc/Modes.txt|mode]] to @@+BcFiIoqRsw@@.%0a> %0a> I recommend you change channel's @@name@@ from @@#hopm@@ to your team channel. @@invite@@ has been modified to match ngircd; replace @@#hopm@@ with your team channel.%0a +host:1615093451=198.251.81.119 +author:1615093364=jrmu +diff:1615093364:1615093294:=72d71%0a%3c tls_hostname_verification = yes;%0a92,95c91,95%0a%3c %0a%3c Change the @@nick@@, @@realname@@, @@username@@. @@server@@, @@port@@, @@tls@@ specify how to connect to your ircd. You will want to use 127.0.0.1 port 16667 with no TLS. @@nickserv@@ and @@oper@@ should be changed to match ngircd. You'll also want to replace @@PASSWORD@@ with the nickserv and oper password, and @@MyHopm@@ with the operator nick. Change [[https://github.com/ngircd/ngircd/blob/master/doc/Modes.txt|mode]] to @@+BcFiIoqRsw@@.%0a%3c %0a%3c I recommend you change channel's @@name@@ from @@#hopm@@ to your team channel. @@invite@@ has been modified to match ngircd; replace @@#hopm@@ with your team channel.%0a---%0a> Change the @@nick@@, @@realname@@, @@username@@. @@server@@, @@port@@, @@tls@@ specify how to connect to your ircd. You will want to use 127.0.0.1 port 16667 with no TLS.%0a> %0a> ngircd uses @@SQUERY@@ for @@nickserv@@: @@SQUERY NickServ :IDENTIFY PASSWORD@@ -- you'll want to replace PASSWORD with the real password. For oper: @@MyHopm PASSWORD@@ -- you'll want to replace @@MyHopm@@ and @@PASSWORD@@ with the operator name and password.%0a> %0a> We change the mode to @@+BcFiIoqRsw@@. I recommend you change channel's @@name@@ from @@#hopm@@ to your team channel. @@invite@@ has been modified to match ngircd; replace @@#hopm@@ with your team channel.%0a +host:1615093364=198.251.81.119 +author:1615093294=jrmu +diff:1615093294:1615087042:=71a72%0a> tls_hostname_verification = yes;%0a91,95c92,95%0a%3c Change the @@nick@@, @@realname@@, @@username@@. @@server@@, @@port@@, @@tls@@ specify how to connect to your ircd. You will want to use 127.0.0.1 port 16667 with no TLS.%0a%3c %0a%3c ngircd uses @@SQUERY@@ for @@nickserv@@: @@SQUERY NickServ :IDENTIFY PASSWORD@@ -- you'll want to replace PASSWORD with the real password. For oper: @@MyHopm PASSWORD@@ -- you'll want to replace @@MyHopm@@ and @@PASSWORD@@ with the operator name and password.%0a%3c %0a%3c We change the mode to @@+BcFiIoqRsw@@. I recommend you change channel's @@name@@ from @@#hopm@@ to your team channel. @@invite@@ has been modified to match ngircd; replace @@#hopm@@ with your team channel.%0a---%0a> %0a> Change the @@nick@@, @@realname@@, @@username@@. @@server@@, @@port@@, @@tls@@ specify how to connect to your ircd. You will want to use 127.0.0.1 port 16667 with no TLS. @@nickserv@@ and @@oper@@ should be changed to match ngircd. You'll also want to replace @@PASSWORD@@ with the nickserv and oper password, and @@MyHopm@@ with the operator nick. Change mode to @@+BcFiIoqRsw@@.%0a> %0a> I recommend you change channel's @@name@@ from @@#hopm@@ to your team channel. @@invite@@ has been modified to match ngircd; replace @@#hopm@@ with your team channel.%0a +host:1615093294=198.251.81.119 +author:1615087042=jrmu +diff:1615087042:1615032429:=62c62%0a%3c The only thing we change is we uncomment scanlog so that we have a record of all users that connect. It will be stored in @@/home/hopm/hopm/var/log/scan.log@@.%0a---%0a> The only thing we change is we uncomment scanlog so that we have a record of all users that connect. It will be stored in @@/home/hopm/var/log/scan.log@@.%0a +host:1615087042=198.251.81.119 +author:1615032429=jrmu +diff:1615032429:1615032333:=97,105c97,98%0a%3c For @@kline@@, make sure to replace @@*@%25i@@ with @@*@%25h@@ (to allow hopm to work when you cloak hostmasks). You must also change the order for kline: in ngircd, kline expects the hostmask before the time. You will also want to replace @@support@example.com@@ with your actual support email.%0a%3c %0a%3c '''WARNING''': You must change the order for kline for ngircd:%0a%3c %0a%3c [@%0a%3c kline = "KLINE *@%25h 3600 :Open proxy found on your host. Please contact support@example.com if this is in error.";%0a%3c @]%0a%3c %0a%3c The hostmask must come before the time.%0a---%0a> For @@kline@@, make sure to replace @@*@%25i@@ with @@*@%25h@@ (to allow hopm to work when you cloak hostmasks). You will also want to replace @@support@example.com@@ with your actual support email.%0a> %0a +host:1615032429=198.251.81.119 +author:1615032333=jrmu +diff:1615032333:1614698507:=126c126,127%0a%3c kline = "KLINE *@%25h 3600 :You have a host listed in the DroneBL. For more information, visit https://dronebl.org/lookup_branded?ip=%25i&network=Network";%0a---%0a> kline = "KLINE 3600 *@%25h :You have a host listed in the DroneBL. For mor%0a> e information, visit https://dronebl.org/lookup_branded?ip=%25i&network=Network";%0a139c140,141%0a%3c kline = "KLINE *@%25h 3600 :Blacklisted proxy found. For more information, visit https://rbl.efnetrbl.org/?i=%25i";%0a---%0a> kline = "KLINE 3600 *@%25h :Blacklisted proxy found. For more information,%0a> visit https://rbl.efnetrbl.org/?i=%25i";%0a148c150,151%0a%3c kline = "KLINE *@%25h 3600 :TOR exit node found. For more information, visit https://rbl.efnetrbl.org/?i=%25i";%0a---%0a> kline = "KLINE 3600 *@%25h :TOR exit node found. For more information, vis%0a> it https://rbl.efnetrbl.org/?i=%25i";%0a +host:1615032333=198.251.81.119 +author:1614698507=jrmu +diff:1614698507:1614697020:=285,300d284%0a%3c %0a%3c [@%0a%3c $ doas pkg_add torsocks%0a%3c @]%0a%3c %0a%3c [@%0a%3c $ torsocks nc irc.example.com 6667%0a%3c nick toruser%0a%3c user toruser * * :toruser%0a%3c @]%0a%3c %0a%3c In the #hopm channel, you should see:%0a%3c %0a%3c [@%0a%3c 23:16 %3cMyHopm> DNSBL -> toruser!~toruser@vps-16fb7987.vps.ovh.ca [51.79.69.241] appears in BL zone rbl.efnetrbl.org (TOR)%0a%3c @]%0a +host:1614698507=198.251.81.119 +author:1614697020=jrmu +diff:1614697020:1614696943:=179,183d178%0a%3c @]%0a%3c %0a%3c target_ip must be another IP%0a%3c %0a%3c [@%0a +host:1614697020=198.251.81.119 +author:1614696943=jrmu +diff:1614696943:1614696284:=76c76%0a%3c oper = "MyHopm PASSWORD";%0a---%0a> oper = "hopm PASSWORD";%0a93c93%0a%3c Change the @@nick@@, @@realname@@, @@username@@. @@server@@, @@port@@, @@tls@@ specify how to connect to your ircd. You will want to use 127.0.0.1 port 16667 with no TLS. @@nickserv@@ and @@oper@@ should be changed to match ngircd. You'll also want to replace @@PASSWORD@@ with the nickserv and oper password, and @@MyHopm@@ with the operator nick. Change mode to @@+BcFiIoqRsw@@.%0a---%0a> Change the @@nick@@, @@realname@@, @@username@@. @@server@@, @@port@@, @@tls@@ specify how to connect to your ircd. You will want to use 127.0.0.1 port 16667 with no TLS. @@nickserv@@ and @@oper@@ should be changed to match ngircd. You'll also want to replace @@PASSWORD@@ with the nickserv and oper password. Change mode to @@+BcFiIoqRsw@@.%0a +host:1614696943=198.251.81.119 +author:1614696284=jrmu +diff:1614696284:1614696250:=64c64%0a%3c [@%0a---%0a> [=%0a84,86c84%0a%3c @]%0a%3c @@ connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]+)\\].*";@@%0a%3c [@%0a---%0a> connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]+)\\].*";%0a90c88%0a%3c @]%0a---%0a> =]%0a +host:1614696284=198.251.81.119 +author:1614696250=jrmu +diff:1614696250:1614696193:=64c64%0a%3c [=%0a---%0a> [@%0a84c84,85%0a%3c connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]+)\\].*";%0a---%0a> connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]%0a> +)\\].*";%0a88,89c89%0a%3c =]%0a%3c %0a---%0a> @]%0a +host:1614696250=198.251.81.119 +author:1614696193=jrmu +diff:1614696193:1614695833:=84,85c84%0a%3c connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]%0a%3c +)\\].*";%0a---%0a> connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]+)\\].*";%0a89a89%0a> %0a +host:1614696193=198.251.81.119 +author:1614695833=jrmu +diff:1614695833:1614695806:=64c64%0a%3c [@%0a---%0a> [=%0a88c88%0a%3c @]%0a---%0a> =]%0a +host:1614695833=198.251.81.119 +author:1614695806=jrmu +diff:1614695806:1614695686:=64c64%0a%3c [=%0a---%0a> [@%0a88c88%0a%3c =]%0a---%0a> @]%0a +host:1614695806=198.251.81.119 +author:1614695686=jrmu +diff:1614695686:1614695622:=84c84,87%0a%3c connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]+)\\].*";%0a---%0a> @]%0a> @@ connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]@@%0a> [@%0a> +)\\].*";%0a +host:1614695686=198.251.81.119 +author:1614695622=jrmu +diff:1614695622:1614695325:=84,86c84%0a%3c @]%0a%3c @@ connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]@@%0a%3c [@%0a---%0a> connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]%0a92d89%0a%3c %0a +host:1614695622=198.251.81.119 +author:1614695325=jrmu +diff:1614695325:1614693600:=86c86%0a%3c kline = "KLINE *@%25h 3600 :Open proxy found on your host. Please contact support@example.com if this is in error.";%0a---%0a> kline = "KLINE *@%25h 10800 :Open proxy found on your host. Please contact support@example.com if this is in error.";%0a96,259d95%0a%3c %0a%3c [@%0a%3c opm {%0a%3c blacklist { %0a%3c name = "dnsbl.dronebl.org";%0a%3c address_family = ipv4, ipv6;%0a%3c type = "A record reply";%0a%3c ban_unknown = no;%0a%3c reply {%0a%3c 2 = "Sample data used for heuristical analysis";%0a%3c 3 = "IRC spam drone (litmus/sdbot/fyle)";%0a%3c 5 = "Bottler (experimental)";%0a%3c 6 = "Unknown worm or spambot";%0a%3c 7 = "DDoS drone";%0a%3c 8 = "Open SOCKS proxy";%0a%3c 9 = "Open HTTP proxy";%0a%3c 10 = "ProxyChain";%0a%3c 11 = "Web Page Proxy";%0a%3c 12 = "Open DNS Resolver";%0a%3c 13 = "Automated dictionary attacks";%0a%3c 14 = "Open WINGATE proxy";%0a%3c 15 = "Compromised router / gateway";%0a%3c 16 = "Autorooting worms";%0a%3c 17 = "Automatically determined botnet IPs (experimental)";%0a%3c 18 = "Possibly compromised DNS/MX type hostname detected on IRC";%0a%3c 19 = "Abused VPN Service";%0a%3c 255 = "Uncategorized threat class";%0a%3c };%0a%3c kline = "KLINE 3600 *@%25h :You have a host listed in the DroneBL. For mor%0a%3c e information, visit https://dronebl.org/lookup_branded?ip=%25i&network=Network";%0a%3c };%0a%3c blacklist {%0a%3c name = "rbl.efnetrbl.org";%0a%3c type = "A record reply";%0a%3c ban_unknown = no;%0a%3c reply {%0a%3c 1 = "Open proxy";%0a%3c 2 = "spamtrap666";%0a%3c 3 = "spamtrap50";%0a%3c 4 = "TOR";%0a%3c 5 = "Drones / Flooding";%0a%3c };%0a%3c kline = "KLINE 3600 *@%25h :Blacklisted proxy found. For more information,%0a%3c visit https://rbl.efnetrbl.org/?i=%25i";%0a%3c };%0a%3c blacklist {%0a%3c name = "tor.efnetrbl.org";%0a%3c type = "A record reply";%0a%3c ban_unknown = no;%0a%3c reply {%0a%3c 1 = "TOR";%0a%3c };%0a%3c kline = "KLINE 3600 *@%25h :TOR exit node found. For more information, vis%0a%3c it https://rbl.efnetrbl.org/?i=%25i";%0a%3c };%0a%3c };%0a%3c scanner {%0a%3c name = "default";%0a%3c protocol = HTTP:80;%0a%3c protocol = HTTP:8080;%0a%3c protocol = HTTP:3128;%0a%3c protocol = HTTP:6588;%0a%3c # protocol = HTTPS:443;%0a%3c # protocol = HTTPS:8443;%0a%3c protocol = SOCKS4:1080;%0a%3c protocol = SOCKS5:1080;%0a%3c protocol = ROUTER:23;%0a%3c protocol = WINGATE:23;%0a%3c protocol = DREAMBOX:23;%0a%3c protocol = HTTPPOST:80;%0a%3c # protocol = HTTPSPOST:443;%0a%3c # protocol = HTTPSPOST:8443;%0a%3c # bind = "127.0.0.1";%0a%3c fd = 512;%0a%3c max_read = 4 kbytes;%0a%3c timeout = 30 seconds;%0a%3c target_ip = "127.0.0.1";%0a%3c target_port = 6667;%0a%3c target_string = ":irc.example.org NOTICE * :*** Looking up your hostname";%0a%3c target_string = "ERROR :Your host is trying to (re)connect too fast -- throttled.";%0a%3c };%0a%3c scanner {%0a%3c name = "extended";%0a%3c protocol = HTTP:81;%0a%3c protocol = HTTP:8000;%0a%3c protocol = HTTP:8001;%0a%3c protocol = HTTP:8081;%0a%3c protocol = HTTPPOST:81;%0a%3c protocol = HTTPPOST:6588;%0a%3c protocol = HTTPPOST:4480;%0a%3c protocol = HTTPPOST:8000;%0a%3c protocol = HTTPPOST:8001;%0a%3c protocol = HTTPPOST:8080;%0a%3c protocol = HTTPPOST:8081;%0a%3c protocol = SOCKS4:4914;%0a%3c protocol = SOCKS4:6826;%0a%3c protocol = SOCKS4:7198;%0a%3c protocol = SOCKS4:7366;%0a%3c protocol = SOCKS4:9036;%0a%3c protocol = SOCKS5:4438;%0a%3c protocol = SOCKS5:5104;%0a%3c protocol = SOCKS5:5113;%0a%3c protocol = SOCKS5:5262;%0a%3c protocol = SOCKS5:5634;%0a%3c protocol = SOCKS5:6552;%0a%3c protocol = SOCKS5:6561;%0a%3c protocol = SOCKS5:7464;%0a%3c protocol = SOCKS5:7810;%0a%3c protocol = SOCKS5:8130;%0a%3c protocol = SOCKS5:8148;%0a%3c protocol = SOCKS5:8520;%0a%3c protocol = SOCKS5:8814;%0a%3c protocol = SOCKS5:9100;%0a%3c protocol = SOCKS5:9186;%0a%3c protocol = SOCKS5:9447;%0a%3c protocol = SOCKS5:9578;%0a%3c protocol = SOCKS5:10000;%0a%3c protocol = SOCKS5:64101;%0a%3c protocol = SOCKS4:29992;%0a%3c protocol = SOCKS4:38884;%0a%3c protocol = SOCKS4:18844;%0a%3c protocol = SOCKS4:17771;%0a%3c protocol = SOCKS4:31121;%0a%3c fd = 400;%0a%3c };%0a%3c scanner {%0a%3c name = "ssh";%0a%3c protocol = SSH:22;%0a%3c target_string = "SSH-1.99-OpenSSH_5.1";%0a%3c target_string = "SSH-2.0-dropbear_0.51";%0a%3c target_string = "SSH-2.0-dropbear_0.52";%0a%3c target_string = "SSH-2.0-dropbear_0.53.1";%0a%3c target_string = "SSH-2.0-dropbear_2012.55";%0a%3c target_string = "SSH-2.0-dropbear_2013.62";%0a%3c target_string = "SSH-2.0-dropbear_2014.63";%0a%3c target_string = "SSH-2.0-OpenSSH_4.3";%0a%3c target_string = "SSH-2.0-OpenSSH_5.1";%0a%3c target_string = "SSH-2.0-OpenSSH_5.5p1";%0a%3c target_string = "SSH-2.0-ROSSSH";%0a%3c target_string = "SSH-2.0-SSH_Server";%0a%3c };%0a%3c %0a%3c user {%0a%3c mask = "*!*@*";%0a%3c scanner = "default";%0a%3c };%0a%3c %0a%3c user {%0a%3c # mask = "*!~*@*";%0a%3c mask = "*!squid@*";%0a%3c mask = "*!nobody@*";%0a%3c mask = "*!www-data@*";%0a%3c mask = "*!cache@*";%0a%3c mask = "*!CacheFlowS@*";%0a%3c mask = "*!*@*www*";%0a%3c mask = "*!*@*proxy*";%0a%3c mask = "*!*@*cache*";%0a%3c scanner = "extended";%0a%3c };%0a%3c %0a%3c exempt {%0a%3c mask = "*!*@127.0.0.1";%0a%3c };%0a%3c @]%0a +host:1614695325=198.251.81.119 +author:1614693600=jrmu +diff:1614693600:1614693431:=86,87c86,88%0a%3c kline = "KLINE *@%25h 10800 :Open proxy found on your host. Please contact support@example.com if this is in error.";%0a%3c notice = "To prevent spam and abuse, we scan users for open proxies.";%0a---%0a> kline = "KLINE *@%25i 10800 :Open proxy found on your host.";%0a> notice = "You are now being scanned for open proxies. If you have nothing to hid%0a> e, you have nothing to fear.";%0a94,95d94%0a%3c %0a%3c For @@kline@@, make sure to replace @@*@%25i@@ with @@*@%25h@@ (to allow hopm to work when you cloak hostmasks). You will also want to replace @@support@example.com@@ with your actual support email.%0a +host:1614693600=198.251.81.119 +author:1614693431=jrmu +diff:1614693431:1614692395:=77c77%0a%3c mode = "+BcFiIoqRsw";%0a---%0a> mode = "+iC";%0a82c82%0a%3c invite = "SQUERY ChanServ :INVITE #hopm";%0a---%0a> invite = "CS INVITE #hopm";%0a92,95c92%0a%3c Change the @@nick@@, @@realname@@, @@username@@. @@server@@, @@port@@, @@tls@@ specify how to connect to your ircd. You will want to use 127.0.0.1 port 16667 with no TLS. @@nickserv@@ and @@oper@@ should be changed to match ngircd. You'll also want to replace @@PASSWORD@@ with the nickserv and oper password. Change mode to @@+BcFiIoqRsw@@.%0a%3c %0a%3c I recommend you change channel's @@name@@ from @@#hopm@@ to your team channel. @@invite@@ has been modified to match ngircd; replace @@#hopm@@ with your team channel.%0a%3c %0a---%0a> Change the @@nick@@, @@realname@@, @@username@@, @@server@@, @@port@@, @@tls@@. Replace @@PASSWORD@@ in @@nickserv@@ and @@PASSWORD@@ in @@oper@@ with the nickserv and oper password.%0a +host:1614693431=198.251.81.119 +author:1614692395=jrmu +diff:1614692395:1614691856:=62,63c62,63%0a%3c The only thing we change is we uncomment scanlog so that we have a record of all users that connect. It will be stored in @@/home/hopm/var/log/scan.log@@.%0a%3c %0a---%0a> The only thing we change is we uncomment scanlog so that we have a record of all users that connect.%0a> %0a75,76c75,76%0a%3c nickserv = "SQUERY NickServ :IDENTIFY PASSWORD";%0a%3c oper = "hopm PASSWORD";%0a---%0a> nickserv = "NS IDENTIFY password";%0a> oper = "hopm operpass";%0a92d91%0a%3c Change the @@nick@@, @@realname@@, @@username@@, @@server@@, @@port@@, @@tls@@. Replace @@PASSWORD@@ in @@nickserv@@ and @@PASSWORD@@ in @@oper@@ with the nickserv and oper password.%0a +host:1614692395=198.251.81.119 +author:1614691856=jrmu +diff:1614691856:1614691431:=45,48c45,46%0a%3c [[https://github.com/ircd-hybrid/hopm/blob/master/doc/reference.conf|/home/hopm/hopm/etc/reference.conf]] contains a sample template.%0a%3c %0a%3c We'll create a new /home/hopm/hopm/etc/hopm.conf from scratch to keep it short:%0a%3c %0a---%0a> We'll copy the template conf file:%0a> %0a49a48,53%0a> $ cp /home/hopm/hopm/etc/reference.conf /home/hopm/hopm/etc/hopm.conf%0a> @]%0a> %0a> Then edit /home/hopm/hopm/etc/hopm.conf:%0a> %0a> [@%0a61,62d64%0a%3c %0a%3c The only thing we change is we uncomment scanlog so that we have a record of all users that connect.%0a +host:1614691856=198.251.81.119 +author:1614691431=jrmu +diff:1614691431:1614681012:=52,92d51%0a%3c %0a%3c [@%0a%3c options {%0a%3c pidfile = "var/run/hopm.pid";%0a%3c command_queue_size = 64;%0a%3c command_interval = 10 seconds;%0a%3c command_timeout = 180 seconds;%0a%3c negcache_rebuild = 12 hours;%0a%3c dns_fdlimit = 64;%0a%3c dns_timeout = 5 seconds;%0a%3c scanlog = "var/log/scan.log";%0a%3c };%0a%3c @]%0a%3c %0a%3c [@%0a%3c irc {%0a%3c nick = "MyHopm";%0a%3c realname = "Hybrid Open Proxy Monitor";%0a%3c username = "hopm";%0a%3c server = "127.0.0.1";%0a%3c port = 16667;%0a%3c tls = no;%0a%3c tls_hostname_verification = yes;%0a%3c readtimeout = 15 minutes;%0a%3c reconnectinterval = 30 seconds;%0a%3c nickserv = "NS IDENTIFY password";%0a%3c oper = "hopm operpass";%0a%3c mode = "+iC";%0a%3c away = "I'm a bot. Your messages will be ignored.";%0a%3c channel {%0a%3c name = "#hopm";%0a%3c key = "somekey";%0a%3c invite = "CS INVITE #hopm";%0a%3c };%0a%3c connregex = "Client connecting: ([^ ]+) \\(([^@]+)@([^\\)]+)\\) \\[([0-9a-f\\.:]%0a%3c +)\\].*";%0a%3c kline = "KLINE *@%25i 10800 :Open proxy found on your host.";%0a%3c notice = "You are now being scanned for open proxies. If you have nothing to hid%0a%3c e, you have nothing to fear.";%0a%3c };%0a%3c @]%0a +host:1614691431=198.251.81.119 +author:1614681012=jrmu +diff:1614681012:1614680893:=39,40c39,40%0a%3c $ make%0a%3c $ make install%0a---%0a> $ gmake%0a> $ gmake install%0a +host:1614681012=198.251.81.119 +author:1614680893=jrmu +diff:1614680893:1614680783:= +host:1614680893=198.251.81.119 +author:1614680783=jrmu +diff:1614680783:1614680082:=36c36%0a%3c $ tar xvzf 1.1.10.tar.gz%0a---%0a> $ tar xvzf hopm-1.1.10.tar.gz%0a +host:1614680783=198.251.81.119 +author:1614680082=jrmu +diff:1614680082:1614679909:=22c22%0a%3c $ doas useradd -m -g =uid -c "hopm" -d /home/hopm -s /bin/ksh hopm%0a---%0a> doas useradd -m -g =uid -c "hopm" -d /home/hopm -s /bin/ksh hopm%0a +host:1614680082=198.251.81.119 +author:1614679909=jrmu +diff:1614679909:1614679909:=1,74d0%0a%3c (:title Hopm Install Guide:)%0a%3c %0a%3c In this guide, we'll setup and configure [[https://github.com/ircd-hybrid/hopm|hopm]], an open proxy monitor that kills spam bots.%0a%3c %0a%3c Advantages:%0a%3c %0a%3c # Pure C%0a%3c # Compatible with every IRC server%0a%3c # Fast scanning and DNSBL support.%0a%3c %0a%3c Disadvantages:%0a%3c %0a%3c # Occasionally bans innocent users because it cannot perform [[stopm/stopm|statistical analysis]]%0a%3c %0a%3c Before you begin, you must read the [[https://github.com/ircd-hybrid/hopm/blob/master/README|README]] and [[https://github.com/ircd-hybrid/hopm/blob/master/INSTALL|INSTALL]] docs.%0a%3c %0a%3c !! Installation%0a%3c %0a%3c Let's create the user hopm:%0a%3c %0a%3c [@%0a%3c doas useradd -m -g =uid -c "hopm" -d /home/hopm -s /bin/ksh hopm%0a%3c @]%0a%3c %0a%3c Then we switch to the user hopm and change to its home folder:%0a%3c %0a%3c [@%0a%3c $ doas su hopm%0a%3c $ cd%0a%3c @]%0a%3c %0a%3c We download [[https://github.com/ircd-hybrid/hopm/tags|the latest release]], extract it, then build it:%0a%3c %0a%3c [@%0a%3c $ ftp https://github.com/ircd-hybrid/hopm/archive/1.1.10.tar.gz%0a%3c $ tar xvzf hopm-1.1.10.tar.gz%0a%3c $ cd hopm-1.1.10%0a%3c $ ./configure%0a%3c $ gmake%0a%3c $ gmake install%0a%3c @]%0a%3c %0a%3c hopm will now be installed in ~/hopm.%0a%3c %0a%3c We'll copy the template conf file:%0a%3c %0a%3c [@%0a%3c $ cp /home/hopm/hopm/etc/reference.conf /home/hopm/hopm/etc/hopm.conf%0a%3c @]%0a%3c %0a%3c Then edit /home/hopm/hopm/etc/hopm.conf:%0a%3c %0a%3c !! Run Hopm%0a%3c %0a%3c [@%0a%3c $ /home/hopm/hopm/bin/hopm -d%0a%3c @]%0a%3c %0a%3c !! Troubleshooting%0a%3c %0a%3c If you see this error:%0a%3c %0a%3c [@%0a%3c [2021-01-23T09:59:14-0600] IRC -> connect(): error connecting to username.coconut.ircnow.org: Connection refused %0a%3c [2021-01-23T09:59:14-0600] IRC -> Connection to (username.coconut.ircnow.org) failed, reconnecting. %0a%3c [2021-01-23T09:59:14-0600] IRC -> connect(): error connecting to username.coconut.ircnow.org: Connection refused%0a%3c @]%0a%3c %0a%3c This may be due to a configuration issue with ngircd. In particular, if the hostname has an AAAA record, hopm may be trying to connect via IPv6 but ngircd does not listen to IPv6 connections.%0a%3c %0a%3c !! Run Hopm as System Daemon%0a%3c For this refer to this page https://ircnow.org/kb/doku.php?id=openbsd:rc.d%0a%3c %0a%3c # Syntax errors when hopm is running in foreground. This is either the result of missing brackets where needed in config file, or that the file has DOS encodings. See [[https://github.com/ircd-hybrid/hopm/issues/22#issuecomment-301276082]] here. The missing brackets where it was needed may come from the previous section, compared to the line/s where it is indicated by hopm when executed.%0a\ No newline at end of file%0a +host:1614679909=198.251.81.119 blob - 6219f74e474abdf6a39b80f14474268ad5987297 blob + fdb4d2631065662bafc3f2e3353867b7d7c246e0 --- wiki.d/Openbsd.Mlmmj +++ wiki.d/Openbsd.Mlmmj @@ -1,21 +1,46 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=w3m/0.5.3+git20210102 -author=jrmu +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 +author=mkf charset=UTF-8 csum= -ctime=1609494408 -host=38.81.163.143 +ctime=1625737290 +host=198.251.82.194 name=Openbsd.Mlmmj -rev=3 -targets= -text=(:redirect mlmmj/install:)%0aThis page will show you how to install the mlmmj mailing list package on OpenBSD. It covers mostly installation as maintenance and tweaking of how it will work is covered very well in the official documentation at https://mlmmj.org/docs/readme%0aThere is nothing special required to get the core package installed in OpenBSD, simply:%0a[@%0a$ doas pkg_add mlmmj%0a@]%0a%0aThe documentation says to make sure you setup a recipient delimiter, which is already at the default of +. This is what is used to separate commands from mailing list identification. For instance, mailto:mlmmj-test+subscribe@orange.ircnow.org is a request to subscribe to the mlmmj-test email list.%0a%0aIn order to start to get the mailing list up and running, we need to create an initial mailing list. The tool mlmmj-make-ml is used to start this process. Running this and all other modifications to your email list must keep _smptd as the owner of all files. %0aThis can be be done a few ways:%0a[@%0a$ doas -u _smtpd mlmmj-make-ml%0a$ doas -u _smtpd %3ccommand to edit files>%0a@]%0aYou can make your modifications normally, then at the end when you are ready to test them run:%0a[@%0a$ doas chown -R _smtpd:_smtpd /var/spool/mlmmj%0a@]%0aYou can run a shell as the _smtpd user; this should probably only be used when modifying files under your /var/spool/mlmmj/mlmmj-test directory for tweaking of headers and setup of each specific mailing list. %0a%0aTo start, run mlmmj-make-ml and use all default suggestions. Make sure you keep _smtpd as the owner /var/spool/mlmmj directories as stated above.%0a%0aNow for each mailing list you want, you will need to add an entry into the /etc/mail/aliases file. For more information on this, refer to the opensmtp wiki page.%0a%0aEach mailing list needs to have email sent to the mlmmj-receive program to properly handle requests. This is accomplished by adding a command like the following into the /etc/mail/aliases file:%0a[@%0amlmmj-test: "|/usr/local/bin/mlmmj-receive -L /var/spool/mlmmj/mlmmj-test/"%0a@]%0aA seperate line will be required for each mailing list. Once you have added all the mailing list aliases you need, make sure you run:%0a[@%0a$ doas newaliases%0a@]%0aThat will update the mail system without needing to restart it.%0a%0aThe alias modification is required to send email to the mailing list handling software, however, there is still some other things that need to be done periodically to keep your mailing lists working smoothly. You need to add a task to your crontab that looks like:%0a0 */2 * * * /bin/sh -c "/usr/local/bin/mlmmj-maintd -F -d /var/spool/mlmmj >>/var/log/mlmmj.log 2>&1"%0aThe above is needed, and not like how the documentation shows it. If you don't add the '/bin/sh -c' you will get a weird 'file not found' error in your crontab logs. Use this form of the command so that mlmmj-maintd is run on all mailing lists running. The documentation shows a slightly different syntax that can be used for a specific mailing list, but that is not suggested.%0a%0aThe mlmmj tools send all email from 127.0.0.1, which needs to be explicitly added to the /etc/mail/hosts file, having 'localhost' present is not enough.%0a%0aNormally the mailing list is only handled on the server, all emails sent to it are for virtual users, or external users. If you have a need to send to a local user, meaning someone with a /home/bangcat directory, you need to modify /etc/mail/smtpd.conf to add a 'table locals file:/etc/mail/locals' and an action to forward email to local users like 'action "local" mbox alias %3clocals>'. The /etc/mail/locals should have a line for each local user that needs to get email.%0aThis is not required in most cases.%0a%0aYou are now done with the initial setup. You should start back on the official read me file at https://mlmmj.org/docs/readme to fine tune your setup. Although you can sign up people manually with mlmmj-sub, it is better to have the actual users send mail to the mailing list to do that themselves. All the files you need to tweak for an individual list will be located at /var/spool/mlmmj/%3cmailing-list-name>.%0a%0a%0a%0a%0a%0a%0a%0a%0a%0a%0a%0a%0a%0a -time=1625737372 -author:1625737372=jrmu -diff:1625737372:1611495781:=1d0%0a%3c (:redirect mlmmj/install:)%0a -host:1625737372=38.81.163.143 -author:1611495781=bangcat -diff:1611495781:1609494408:=1,2d0%0a%3c This page will show you how to install the mlmmj mailing list package on OpenBSD. It covers mostly installation as maintenance and tweaking of how it will work is covered very well in the official documentation at https://mlmmj.org/docs/readme%0a%3c There is nothing special required to get the core package installed in OpenBSD, simply:%0a5,57c3,4%0a%3c @]%0a%3c %0a%3c The documentation says to make sure you setup a recipient delimiter, which is already at the default of +. This is what is used to separate commands from mailing list identification. For instance, mailto:mlmmj-test+subscribe@orange.ircnow.org is a request to subscribe to the mlmmj-test email list.%0a%3c %0a%3c In order to start to get the mailing list up and running, we need to create an initial mailing list. The tool mlmmj-make-ml is used to start this process. Running this and all other modifications to your email list must keep _smptd as the owner of all files. %0a%3c This can be be done a few ways:%0a%3c [@%0a%3c $ doas -u _smtpd mlmmj-make-ml%0a%3c $ doas -u _smtpd %3ccommand to edit files>%0a%3c @]%0a%3c You can make your modifications normally, then at the end when you are ready to test them run:%0a%3c [@%0a%3c $ doas chown -R _smtpd:_smtpd /var/spool/mlmmj%0a%3c @]%0a%3c You can run a shell as the _smtpd user; this should probably only be used when modifying files under your /var/spool/mlmmj/mlmmj-test directory for tweaking of headers and setup of each specific mailing list. %0a%3c %0a%3c To start, run mlmmj-make-ml and use all default suggestions. Make sure you keep _smtpd as the owner /var/spool/mlmmj directories as stated above.%0a%3c %0a%3c Now for each mailing list you want, you will need to add an entry into the /etc/mail/aliases file. For more information on this, refer to the opensmtp wiki page.%0a%3c %0a%3c Each mailing list needs to have email sent to the mlmmj-receive program to properly handle requests. This is accomplished by adding a command like the following into the /etc/mail/aliases file:%0a%3c [@%0a%3c mlmmj-test: "|/usr/local/bin/mlmmj-receive -L /var/spool/mlmmj/mlmmj-test/"%0a%3c @]%0a%3c A seperate line will be required for each mailing list. Once you have added all the mailing list aliases you need, make sure you run:%0a%3c [@%0a%3c $ doas newaliases%0a%3c @]%0a%3c That will update the mail system without needing to restart it.%0a%3c %0a%3c The alias modification is required to send email to the mailing list handling software, however, there is still some other things that need to be done periodically to keep your mailing lists working smoothly. You need to add a task to your crontab that looks like:%0a%3c 0 */2 * * * /bin/sh -c "/usr/local/bin/mlmmj-maintd -F -d /var/spool/mlmmj >>/var/log/mlmmj.log 2>&1"%0a%3c The above is needed, and not like how the documentation shows it. If you don't add the '/bin/sh -c' you will get a weird 'file not found' error in your crontab logs. Use this form of the command so that mlmmj-maintd is run on all mailing lists running. The documentation shows a slightly different syntax that can be used for a specific mailing list, but that is not suggested.%0a%3c %0a%3c The mlmmj tools send all email from 127.0.0.1, which needs to be explicitly added to the /etc/mail/hosts file, having 'localhost' present is not enough.%0a%3c %0a%3c Normally the mailing list is only handled on the server, all emails sent to it are for virtual users, or external users. If you have a need to send to a local user, meaning someone with a /home/bangcat directory, you need to modify /etc/mail/smtpd.conf to add a 'table locals file:/etc/mail/locals' and an action to forward email to local users like 'action "local" mbox alias %3clocals>'. The /etc/mail/locals should have a line for each local user that needs to get email.%0a%3c This is not required in most cases.%0a%3c %0a%3c You are now done with the initial setup. You should start back on the official read me file at https://mlmmj.org/docs/readme to fine tune your setup. Although you can sign up people manually with mlmmj-sub, it is better to have the actual users send mail to the mailing list to do that themselves. All the files you need to tweak for an individual list will be located at /var/spool/mlmmj/%3cmailing-list-name>.%0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a---%0a> %0a> @]%0a\ No newline at end of file%0a -host:1611495781=75.73.129.135 -author:1609494408=jrmu -diff:1609494408:1609494408:=1,4d0%0a%3c [@%0a%3c $ doas pkg_add mlmmj%0a%3c %0a%3c @]%0a\ No newline at end of file%0a -host:1609494408=198.251.81.119 +rev=11 +targets=Opensmtpd.Configure,Opensmtpd.Test,Crontab.Edit +text=(:title Installing mlmmj:)%0a%0a[[https://mlmmj.org/docs/readme|mlmmj]] (Mailing List Management Made Joyful) is a simple and lightweight mailing list manager. It is MIT-licensed and written in C. It works with OpenSMTPd and requires no daemons so it can run on very small servers.%0a%0a!! Requirements%0a%0aYou will need to [[opensmtpd/configure|configure]] and [[opensmtpd/test|test OpenSMTPd]].%0a%0a!! Install%0a%0a[@%0a$ doas pkg_add mlmmj%0a@]%0a%0aYou can also [[http://mlmmj.org/downloads|compile from source]].%0a%0a!! Documentation %0a%0aConsult [[http://mlmmj.org/docs/readme|/usr/local/share/doc/mlmmj/README]]%0a%0aOpenSMTPd and mlmmj, by default, use the delimiter +. For instance, mlmmj-test+subscribe@example.com accepts request to subscribe to the mlmmj-test email list. No special configuration is required.%0a%0aTo create an initial mailing list, we first create a directory for mlmmj, then run mlmmj-make-ml:%0a%0a[@%0a$ doas mkdir /var/spool/mlmmj%0a$ doas chown _smtpd:_smtpd /var/spool/mlmmj/ %0a$ doas -u _smtpd mlmmj-make-ml%0aCreating Directorys below /var/spool/mlmmj. Use '-s spooldir' to change%0aWhat should the name of the Mailinglist be? [mlmmj-test] :%0aThe Domain for the List? [] : example.com%0aThe emailaddress of the list owner? [postmaster] : postmaster%0a@]%0a%0aReplace mlmmj-test and example.com with your real list name and domain.%0a%0aFor each mailing list, add an entry into /etc/mail/virtuals (see [[http://man.openbsd.org/aliases|aliases(5)]] and [[https://man.openbsd.org/smtpd.conf|smtpd.conf(5)]]):%0a%0a[@%0amlmmj-test: "|/usr/local/bin/mlmmj-receive -L /var/spool/mlmmj/mlmmj-test/"%0a@]%0a%0aReplace mlmmj-test with your real list name.%0a%0aCreate a log file:%0a%0a[@%0a$ doas touch /var/log/mlmmj.log%0a@]%0a%0aThen run this command once:%0a%0a[@%0a/usr/local/bin/mlmmj-maintd -F -d /var/spool/mlmmj/ >>/var/log/mlmmj.log 2>&1%0a@]%0a%0aThen add the task to your [[crontab/edit|crontab]]:%0a%0a[@%0a0 */2 * * * /usr/local/bin/mlmmj-maintd -F -d /var/spool/mlmmj/ >>/var/log/mlmmj.log 2>&1%0a@]%0a%0aNOTE: mlmmj sends email from 127.0.0.1, which should be added to /etc/mail/hosts; localhost is not enough.%0a%0a(:if false:)%0aNormally the mailing list is only handled on the server, all emails sent to it are for virtual users, or external users. If you have a need to send to a local user, meaning someone with a /home/bangcat directory, you need to modify /etc/mail/smtpd.conf to add a 'table locals file:/etc/mail/locals' and an action to forward email to local users like 'action "local" mbox alias %3clocals>'. The /etc/mail/locals should have a line for each local user that needs to get email.%0aThis is not required in most cases.%0a(:ifend:)%0a%0aTo sign up to the mailing list, simply email @@mlmmj-test+subscribe@example.com@@%0aReplace @@mlmmj-test@@ with your list name, and @@example.com@@ with your domain name.%0a%0aList files are located at @@/var/spool/mlmmj/%3cmailing-list-name>@@.%0a +time=1674240379 +title=Installing mlmmj +author:1674240379=mkf +diff:1674240379:1674240344:=70,73c70,73%0a%3c To sign up to the mailing list, simply email @@mlmmj-test+subscribe@example.com@@%0a%3c Replace @@mlmmj-test@@ with your list name, and @@example.com@@ with your domain name.%0a%3c %0a%3c List files are located at @@/var/spool/mlmmj/%3cmailing-list-name>@@.%0a---%0a> To sign up to the mailing list, simply email mlmmj-test+subscribe@example.com%0a> Replace mlmmj-test with your list name, and example.com with your domain name.%0a> %0a> List files are located at /var/spool/mlmmj/%3cmailing-list-name>.%0a +host:1674240379=198.251.82.194 +author:1674240344=mkf +diff:1674240344:1639919070:=5c5%0a%3c !! Requirements%0a---%0a> !! Before we begin%0a +host:1674240344=198.251.82.194 +author:1639919070=jrmu +diff:1639919070:1625760144:=45,57c45,46%0a%3c Create a log file:%0a%3c %0a%3c [@%0a%3c $ doas touch /var/log/mlmmj.log%0a%3c @]%0a%3c %0a%3c Then run this command once:%0a%3c %0a%3c [@%0a%3c /usr/local/bin/mlmmj-maintd -F -d /var/spool/mlmmj/ >>/var/log/mlmmj.log 2>&1%0a%3c @]%0a%3c %0a%3c Then add the task to your [[crontab/edit|crontab]]:%0a---%0a> Add a task to your [[crontab/edit|crontab]]:%0a> %0a +host:1639919070=38.87.162.8 +author:1625760144=jrmu +diff:1625760144:1625760111:=56c56%0a%3c (:ifend:)%0a---%0a> (:endif:)%0a +host:1625760144=38.81.163.143 +author:1625760111=jrmu +diff:1625760111:1625759627:=53d52%0a%3c (:if false:)%0a56d54%0a%3c (:endif:)%0a +host:1625760111=38.81.163.143 +author:1625759627=jrmu +diff:1625759627:1625757424:=3,4c3,4%0a%3c [[https://mlmmj.org/docs/readme|mlmmj]] (Mailing List Management Made Joyful) is a simple and lightweight mailing list manager. It is MIT-licensed and written in C. It works with OpenSMTPd and requires no daemons so it can run on very small servers.%0a%3c %0a---%0a> [[https://mlmmj.org/docs/readme|mlmmj]] (Mailing List Management Made Joyful) is a simple and lightweight mailing list manager. It is MIT-licensed and written in C It works with OpenSMTPd and requires no daemons so it can run on very small servers.%0a> %0a21,22c21,23%0a%3c OpenSMTPd and mlmmj, by default, use the delimiter +. For instance, mlmmj-test+subscribe@example.com accepts request to subscribe to the mlmmj-test email list. No special configuration is required.%0a%3c %0a---%0a> OpenSMTPd and mlmmj both use the default delimiter + so nothing needs to be changed.%0a> For instance, mlmmj-test+subscribe@example.com accepts request to subscribe to the mlmmj-test email list.%0a> %0a45,46c46,47%0a%3c Add a task to your [[crontab/edit|crontab]]:%0a%3c %0a---%0a> Add a task to your crontab%0a> %0a51c52%0a%3c NOTE: mlmmj sends email from 127.0.0.1, which should be added to /etc/mail/hosts; localhost is not enough.%0a---%0a> The mlmmj tools send all email from 127.0.0.1, which needs to be explicitly added to the /etc/mail/hosts file, having 'localhost' present is not enough.%0a +host:1625759627=38.81.163.143 +author:1625757424=jrmu +diff:1625757424:1625756432:=21c21,22%0a%3c OpenSMTPd and mlmmj both use the default delimiter + so nothing needs to be changed.%0a---%0a> OpenSMTPd and mlmmj both use the default delimiter +, so nothing needs to be changed.%0a> %0a46,47c47%0a%3c Add a task to your crontab%0a%3c %0a---%0a> A seperate line will be required for each mailing list. Once you have added all the mailing list aliases you need, make sure you run:%0a49c49%0a%3c 0 */2 * * * /usr/local/bin/mlmmj-maintd -F -d /var/spool/mlmmj/ >>/var/log/mlmmj.log 2>&1%0a---%0a> $ doas newaliases%0a51c51,56%0a%3c %0a---%0a> That will update the mail system without needing to restart it.%0a> %0a> The alias modification is required to send email to the mailing list handling software, however, there is still some other things that need to be done periodically to keep your mailing lists working smoothly. You need to add a task to your crontab that looks like:%0a> 0 */2 * * * /bin/sh -c "/usr/local/bin/mlmmj-maintd -F -d /var/spool/mlmmj >>/var/log/mlmmj.log 2>&1"%0a> The above is needed, and not like how the documentation shows it. If you don't add the '/bin/sh -c' you will get a weird 'file not found' error in your crontab logs. Use this form of the command so that mlmmj-maintd is run on all mailing lists running. The documentation shows a slightly different syntax that can be used for a specific mailing list, but that is not suggested.%0a> %0a57,60c62%0a%3c To sign up to the mailing list, simply email mlmmj-test+subscribe@example.com%0a%3c Replace mlmmj-test with your list name, and example.com with your domain name.%0a%3c %0a%3c List files are located at /var/spool/mlmmj/%3cmailing-list-name>.%0a---%0a> You are now done with the initial setup. You should start back on the official read me file at https://mlmmj.org/docs/readme to fine tune your setup. Although you can sign up people manually with mlmmj-sub, it is better to have the actual users send mail to the mailing list to do that themselves. All the files you need to tweak for an individual list will be located at /var/spool/mlmmj/%3cmailing-list-name>.%0a +host:1625757424=38.81.163.143 +author:1625756432=jrmu +diff:1625756432:1625755780:=3,4c3,4%0a%3c [[https://mlmmj.org/docs/readme|mlmmj]] (Mailing List Management Made Joyful) is a simple and lightweight mailing list manager. It is MIT-licensed and written in C It works with OpenSMTPd and requires no daemons so it can run on very small servers.%0a%3c %0a---%0a> [[https://mlmmj.org/docs/readme|mlmmj]] (Mailing List Management Made Joyful) is a simple and lightweight mailing list manager. It is written in C and works with OpenSMTPd. It requires no daemons so it can run on very small servers. It's MIT licensed.%0a> %0a15,16d14%0a%3c You can also [[http://mlmmj.org/downloads|compile from source]].%0a%3c %0a25,26c23,24%0a%3c To create an initial mailing list, we first create a directory for mlmmj, then run mlmmj-make-ml:%0a%3c %0a---%0a> In order to start to get the mailing list up and running, we need to create an initial mailing list. The tool mlmmj-make-ml is used to start this process. Running this and all other modifications to your email list must keep _smptd as the owner of all files. %0a> This can be be done a few ways:%0a28,29d25%0a%3c $ doas mkdir /var/spool/mlmmj%0a%3c $ doas chown _smtpd:_smtpd /var/spool/mlmmj/ %0a31,34c27%0a%3c Creating Directorys below /var/spool/mlmmj. Use '-s spooldir' to change%0a%3c What should the name of the Mailinglist be? [mlmmj-test] :%0a%3c The Domain for the List? [] : example.com%0a%3c The emailaddress of the list owner? [postmaster] : postmaster%0a---%0a> $ doas -u _smtpd %3ccommand to edit files>%0a36,40c29%0a%3c %0a%3c Replace mlmmj-test and example.com with your real list name and domain.%0a%3c %0a%3c For each mailing list, add an entry into /etc/mail/virtuals (see [[http://man.openbsd.org/aliases|aliases(5)]] and [[https://man.openbsd.org/smtpd.conf|smtpd.conf(5)]]):%0a%3c %0a---%0a> You can make your modifications normally, then at the end when you are ready to test them run:%0a42c31%0a%3c mlmmj-test: "|/usr/local/bin/mlmmj-receive -L /var/spool/mlmmj/mlmmj-test/"%0a---%0a> $ doas chown -R _smtpd:_smtpd /var/spool/mlmmj%0a44,47c33,42%0a%3c %0a%3c Replace mlmmj-test with your real list name.%0a%3c %0a%3c A seperate line will be required for each mailing list. Once you have added all the mailing list aliases you need, make sure you run:%0a---%0a> You can run a shell as the _smtpd user; this should probably only be used when modifying files under your /var/spool/mlmmj/mlmmj-test directory for tweaking of headers and setup of each specific mailing list. %0a> %0a> To start, run mlmmj-make-ml and use all default suggestions. Make sure you keep _smtpd as the owner /var/spool/mlmmj directories as stated above.%0a> %0a> Now for each mailing list you want, you will need to add an entry into the /etc/mail/aliases file. For more information on this, refer to the opensmtp wiki page.%0a> %0a> Each mailing list needs to have email sent to the mlmmj-receive program to properly handle requests. This is accomplished by adding a command like the following into the /etc/mail/aliases file:%0a> [@%0a> mlmmj-test: "|/usr/local/bin/mlmmj-receive -L /var/spool/mlmmj/mlmmj-test/"%0a> @]%0a +host:1625756432=38.81.163.143 +author:1625755780=jrmu +diff:1625755780:1625755002:=10a11%0a> There is nothing special required to get the core package installed in OpenBSD, simply:%0a15,21c16%0a%3c !! Documentation %0a%3c %0a%3c Consult [[http://mlmmj.org/docs/readme|/usr/local/share/doc/mlmmj/README]]%0a%3c %0a%3c OpenSMTPd and mlmmj both use the default delimiter +, so nothing needs to be changed.%0a%3c %0a%3c For instance, mlmmj-test+subscribe@example.com accepts request to subscribe to the mlmmj-test email list.%0a---%0a> The documentation says to make sure you setup a recipient delimiter, which is already at the default of +. This is what is used to separate commands from mailing list identification. For instance, mailto:mlmmj-test+subscribe@orange.ircnow.org is a request to subscribe to the mlmmj-test email list.%0a +host:1625755780=38.81.163.143 +author:1625755002=jrmu +diff:1625755002:1625737290:=1,10c1%0a%3c (:title Installing mlmmj:)%0a%3c %0a%3c [[https://mlmmj.org/docs/readme|mlmmj]] (Mailing List Management Made Joyful) is a simple and lightweight mailing list manager. It is written in C and works with OpenSMTPd. It requires no daemons so it can run on very small servers. It's MIT licensed.%0a%3c %0a%3c !! Before we begin%0a%3c %0a%3c You will need to [[opensmtpd/configure|configure]] and [[opensmtpd/test|test OpenSMTPd]].%0a%3c %0a%3c !! Install%0a%3c %0a---%0a> This page will show you how to install the mlmmj mailing list package on OpenBSD. It covers mostly installation as maintenance and tweaking of how it will work is covered very well in the official documentation at https://mlmmj.org/docs/readme%0a +host:1625755002=38.81.163.143 +author:1625737290=bangcat +diff:1625737290:1625737290:=1,44d0%0a%3c This page will show you how to install the mlmmj mailing list package on OpenBSD. It covers mostly installation as maintenance and tweaking of how it will work is covered very well in the official documentation at https://mlmmj.org/docs/readme%0a%3c There is nothing special required to get the core package installed in OpenBSD, simply:%0a%3c [@%0a%3c $ doas pkg_add mlmmj%0a%3c @]%0a%3c %0a%3c The documentation says to make sure you setup a recipient delimiter, which is already at the default of +. This is what is used to separate commands from mailing list identification. For instance, mailto:mlmmj-test+subscribe@orange.ircnow.org is a request to subscribe to the mlmmj-test email list.%0a%3c %0a%3c In order to start to get the mailing list up and running, we need to create an initial mailing list. The tool mlmmj-make-ml is used to start this process. Running this and all other modifications to your email list must keep _smptd as the owner of all files. %0a%3c This can be be done a few ways:%0a%3c [@%0a%3c $ doas -u _smtpd mlmmj-make-ml%0a%3c $ doas -u _smtpd %3ccommand to edit files>%0a%3c @]%0a%3c You can make your modifications normally, then at the end when you are ready to test them run:%0a%3c [@%0a%3c $ doas chown -R _smtpd:_smtpd /var/spool/mlmmj%0a%3c @]%0a%3c You can run a shell as the _smtpd user; this should probably only be used when modifying files under your /var/spool/mlmmj/mlmmj-test directory for tweaking of headers and setup of each specific mailing list. %0a%3c %0a%3c To start, run mlmmj-make-ml and use all default suggestions. Make sure you keep _smtpd as the owner /var/spool/mlmmj directories as stated above.%0a%3c %0a%3c Now for each mailing list you want, you will need to add an entry into the /etc/mail/aliases file. For more information on this, refer to the opensmtp wiki page.%0a%3c %0a%3c Each mailing list needs to have email sent to the mlmmj-receive program to properly handle requests. This is accomplished by adding a command like the following into the /etc/mail/aliases file:%0a%3c [@%0a%3c mlmmj-test: "|/usr/local/bin/mlmmj-receive -L /var/spool/mlmmj/mlmmj-test/"%0a%3c @]%0a%3c A seperate line will be required for each mailing list. Once you have added all the mailing list aliases you need, make sure you run:%0a%3c [@%0a%3c $ doas newaliases%0a%3c @]%0a%3c That will update the mail system without needing to restart it.%0a%3c %0a%3c The alias modification is required to send email to the mailing list handling software, however, there is still some other things that need to be done periodically to keep your mailing lists working smoothly. You need to add a task to your crontab that looks like:%0a%3c 0 */2 * * * /bin/sh -c "/usr/local/bin/mlmmj-maintd -F -d /var/spool/mlmmj >>/var/log/mlmmj.log 2>&1"%0a%3c The above is needed, and not like how the documentation shows it. If you don't add the '/bin/sh -c' you will get a weird 'file not found' error in your crontab logs. Use this form of the command so that mlmmj-maintd is run on all mailing lists running. The documentation shows a slightly different syntax that can be used for a specific mailing list, but that is not suggested.%0a%3c %0a%3c The mlmmj tools send all email from 127.0.0.1, which needs to be explicitly added to the /etc/mail/hosts file, having 'localhost' present is not enough.%0a%3c %0a%3c Normally the mailing list is only handled on the server, all emails sent to it are for virtual users, or external users. If you have a need to send to a local user, meaning someone with a /home/bangcat directory, you need to modify /etc/mail/smtpd.conf to add a 'table locals file:/etc/mail/locals' and an action to forward email to local users like 'action "local" mbox alias %3clocals>'. The /etc/mail/locals should have a line for each local user that needs to get email.%0a%3c This is not required in most cases.%0a%3c %0a%3c You are now done with the initial setup. You should start back on the official read me file at https://mlmmj.org/docs/readme to fine tune your setup. Although you can sign up people manually with mlmmj-sub, it is better to have the actual users send mail to the mailing list to do that themselves. All the files you need to tweak for an individual list will be located at /var/spool/mlmmj/%3cmailing-list-name>.%0a +host:1625737290=38.81.163.143 blob - 5831c26273c3ad6e0ff7eb045f5930b8a768bd59 blob + 7c6bd22c01ee86a191e1c4af4008384d70664f9f --- wiki.d/Openbsd.Ngircd +++ wiki.d/Openbsd.Ngircd @@ -1,196 +1,377 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=w3m/0.5.3+git20190105 -author=jrmu +agent=Mozilla/5.0 (Windows NT 10.0; rv:105.0) Gecko/20100101 Firefox/105.0 +author=fossdev charset=UTF-8 -csum= -ctime=1597288187 -host=125.224.16.135 -name=Openbsd.Ngircd -rev=61 -targets=Openbsd.Netcat,Password.Management,Openbsd.Chroot,Rcctl.Rcctl,Ngircd.Ssl,Ngircd.Link,Anope.Install,Achurch.Install,Hopm.Install,Acopm.Install -text=(:redirect ngircd.install:)%0a(:title Ngircd -- The Next Generation IRCd:)%0a%0aIn this guide, we'll setup ngircd, a free, portable, lightweight IRC server.%0a%0aAdvantages:%0a%0a# The source code runs well on OpenBSD%0a# The server has a very simple, easy-to-understand configuration%0a# Fewer features means the manual pages are short%0a# The server is a clean implementation which was written from scratch%0a# The source code is written in modern, portable C. It will be easy to fork to new features such as:%0a # Customized censorship to block NSFW content%0a # Spam filters%0a# The lead developer po||ux actively hangs out on the IRC server barton.ngircd.de on #ngircd%0a%0aBefore you begin, please read the official [[https://ngircd.barton.de/documentation.php.en|ngIRCd documentation]].%0a%0a!! Installation%0a%0a!!! From packages%0a%0a[@%0a$ doas pkg_add ngircd%0a$ doas cp /usr/local/share/examples/ngircd/sample-ngircd.conf /etc/ngircd/ngircd.conf%0a@]%0a%0angIRCd v26 provided by OpenBSD 6.8 ports does not have ident support. You must eventually compile from source to get ident support, which is necessary on a production server.%0a%0a!!! From source%0a%0a[@%0a$ ftp https://ircnow.org/software/ngircd.tgz%0a$ tar xvzf ngircd.tgz%0a$ cd ngircd-26.1/%0a$ sh build.sh%0a@]%0a%0a!! Configuration%0a%0aEdit /etc/ngircd/ngircd.conf:%0a%0a'''Note''': Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line.%0a%0a!!! Global Block%0a%0a[@%0a[Global]%0a Name = username.fruit.ircnow.org%0a AdminInfo1 = Fruit Server on IRCNow%0a AdminInfo2 = Planet Earth%0a AdminEMail = admin@username.fruit.ircnow.org%0a Info = username.fruit.ircnow.org%0a@]%0a%0aFor Name, use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. For AdminInfo1, provide a description; for AdminInfo2, provide the location.%0a%0a[@%0a Listen = 127.0.0.1,192.168.1.1,2001:db8::%0a@]%0a%0aUncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a%0a'''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a%0a[@%0a MotdFile = /etc/ngircd/ngircd.motd%0a Network = IRCNow%0a@]%0a%0aPaste your Message of the Day in /etc/ngircd/ngircd.motd. Here's a suggested template:%0a%0a[@%0aIRCNow - The Users' Network%0a%0aIRCNow is the network of the user, by the user, for the user.%0a%0a * No porn / illegal drugs / promotion of violence%0a * No slander / libel / gambling%0a * No spam, illegal cracking, or DDoS%0a * No copyright infrigement%0a%0aYou must agree to our terms of service and our privacy policy %0ato use this network:%0a%0ahttps://wiki.ircnow.org/index.php?n=Terms.Terms%0a%0aOnly 5 connections per IP address. If you need help, please speak with staff on #help.%0a@]%0a%0a[@%0a Ports = 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 7000, 16667%0a MaxConnectionsIP = 0%0a MaxJoins = 300%0a MaxNickLength = 16%0a MaxListSize = 1000%0a PingTimeout = 300%0a PongTimeout = 300%0a@]%0a%0aThe above are default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls. Note that the MaxNickLength must be identical to all servers on the network. On IRCNow, MaxNickLength is 16.%0a%0a!!! Options Block%0a%0a[@%0a[Options]%0a AllowRemoteOper = no%0a ChrootDir = /var/ngircd%0a CloakHost = %25x%0a CloakHostModeX = jrmu.coconut.ircnow.org%0a CloakHostSalt = abcdefghijklmnopqrstuvwxyz%0a DefaultUserModes = iC%0a NoticeBeforeRegistration = yes%0a OperChanPAutoOp = no %0a RequireAuthPing = yes%0a SyslogFacility = daemon%0a@]%0a%0aFor security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you may not necessarily trust an oper on another server. We want to chroot to /var/ngircd to prevent a security compromise. We will cloak the host using a unique salt; contact another sysadmin for the exact salt.%0a%0aUserMode i keeps the user invisible, and C means that only users that share channels can send a message. Both settings help reduce spam, stalking, and harassment. Receiving a notice before registration can help with debugging with [[openbsd/netcat|netcat]]. We're going to log using syslog (see section below).%0a%0a!!! Configuring syslog%0a%0aYou want all the messages from ngircd to go to /var/log/ngircd.log and not anywhere else, so we insert these three lines starting at line 3 (at the top) in /etc/syslog.conf:%0a%0a[@%0a!!ngircd%0a*.* /var/log/ngircd.log%0a!*%0a@]%0a%0aThis directs all logs from ngircd to go straight to /var/log/ngircd.log and nowhere else.%0a%0aNext, create the file /var/log/ngircd.log and restart syslogd:%0a%0a[@%0a$ doas touch /var/log/ngircd.log%0a$ doas rcctl restart syslogd%0a@]%0a%0a!!! Operator Block%0a%0a[@%0a[Operator]%0a Name = username%0a Password = password%0a@]%0a%0aPlease use a [[password/management|long, random string]] for your password.%0a%0aIf you uncomment Mask, your hostmask must match the operator hostmask in order for the /OPER command to be accepted. If it differs at all, then your /OPER command will be rejected. If you don't want to check the hostmask, leave Mask commented out.%0a%0aFor more security, you can uncomment Mask and have it match your vhost. However, please be aware that this will make it impossible to authenticate if you ever have to connect from a different IP address.%0a%0a!! Chroot%0a%0aWe need to set up the [[openbsd/chroot|chroot]] for ngircd. Let's copy the files into the chroot:%0a%0a[@%0a$ doas mkdir /var/ngircd/etc/%0a$ doas cp -R /etc/ngircd /var/ngircd/etc/%0a$ doas chown -R _ngircd:_ngircd /var/ngircd/%0a$ doas rm -r /etc/ngircd%0a$ doas ln -s /var/ngircd/etc/ngircd /etc/ngircd%0a@]%0a%0aThis will create a symlink so that only one set of configuration files needs to be maintained inside and outside of the chroot. Otherwise, ngircd will require two sets of configuration files, one inside and the other outside of the chroot.%0a%0a!! Starting ngircd%0a%0aTo start ngircd:%0a%0a[@%0adoas rcctl enable ngircd%0adoas rcctl start ngircd%0a@]%0a%0a[[rcctl/rcctl|rcctl]] controls how system daemons are run.%0a%0aNext, use your IRC client to connect to the server, which may have the hostname user.fruit.ircnow.org. Join a few channels and chat inside.%0a%0a!! Troubleshooting%0a%0aIf you run into any errors, you can test to see if your configuration file has errors:%0a%0a[@%0a$ doas ngircd -t%0a@]%0a%0aTo run ngircd in debug mode:%0a%0a[@%0a$ doas ngircd -n%0a@]%0a%0aCheck /var/log/ngircd.log to see if ngircd is listening on the correct IP addresses and ports. Connect to those ports using your IRC client to verify that the server is working as intended.%0a%0aRemember, if you are connecting using port 6667 without SSL, any eavesdropper can read all your text, including your passwords. Don't send any sensitive information until you have upgraded to [[ngircd/ssl|SSL]].%0a%0a!! Reloading and Restarting ngIRCd%0a%0aAfter you edit /etc/ngircd/ngircd.conf for a running ngircd server, you will need to reload the configuration file:%0a%0a[@%0a$ doas rcctl reload ngircd%0a@]%0a%0aAlternatively, you can run:%0a%0a[@%0a$ doas pkill -HUP ngircd%0a@]%0a%0a'''Reloading''' a configuration file will '''not''' disconnect any active connections. So, try to reload the configuration where possible.%0a%0aTo restart the ircd:%0a%0a[@%0a$ doas rcctl restart ngircd%0a@]%0a%0a'''WARNING''': '''Restarting''' the ircd '''will''' disconnect all existing connections. So, try to restart ngircd only when absolutely necessary.%0a%0a'''Warning''': ngircd appears to have a bug where the ircd will crash if you reload the configuration file while a message is being sent. Be careful to avoid reloading configuration files when many users are chatting.%0a%0a!! See Also%0a%0a# Configure [[ngircd/ssl|SSL]] for ngircd to ensure secure connections%0a# [[ngircd/link|Link your ngircd]] with another server to create a network%0a# Install [[anope/install|anope]] to provide services%0a# Install [[achurch/install|achurch]] to test achurch services%0a# Configure [[hopm/install|hopm]], an open proxy monitor to stop spammers.%0a# Configure [[acopm/install|acopm]], a minimalist open proxy monitor to stop spammers.%0a -time=1624414865 -title=Ngircd -- The Next Generation IRCd -author:1624414865=jrmu -diff:1624414865:1612974527:=1d0%0a%3c (:redirect ngircd.install:)%0a234c233%0a%3c # Configure [[acopm/install|acopm]], a minimalist open proxy monitor to stop spammers.%0a---%0a> # Configure [[acopm/install|acopm]], a minimalist open proxy monitor to stop spammers.%0a\ No newline at end of file%0a -host:1624414865=125.224.16.135 -author:1612974527=jrmu -diff:1612974527:1612974496:=232a233%0a> # Configure [[acopm/install|acopm]], a minimalist open proxy monitor to stop spammers.%0a -host:1612974527=198.251.81.119 -author:1612974496=jrmu -diff:1612974496:1612974269:=226,234c226,232%0a%3c !! See Also%0a%3c %0a%3c # Configure [[ngircd/ssl|SSL]] for ngircd to ensure secure connections%0a%3c # [[ngircd/link|Link your ngircd]] with another server to create a network%0a%3c # Install [[anope/install|anope]] to provide services%0a%3c # Install [[achurch/install|achurch]] to test achurch services%0a%3c # Configure [[hopm/install|hopm]], an open proxy monitor to stop spammers.%0a%3c # Configure [[acopm/install|acopm]], a minimalist open proxy monitor to stop spammers.%0a%3c # Configure [[acopm/install|acopm]], a minimalist open proxy monitor to stop spammers.%0a\ No newline at end of file%0a---%0a> Make sure to configure [[openbsd/hopm|hopm]].%0a> %0a> !! Related Software%0a> %0a> You will want to install, configure, and run [[openbsd/hopm|HOPM]] to block spammers. Eventually, IRCNow plans to use a fork of [[openbsd/acopm|ACOPM]].%0a> %0a> ngIRCd can be linked with [[https://github.com/ngircd/ngircd/blob/master/doc/Services.txt|services]]. The services currently used is anope but IRCNow plans to switch over to [[openbsd/achurch|achurch]].%0a\ No newline at end of file%0a -host:1612974496=198.251.81.119 -author:1612974269=jrmu -diff:1612974269:1612973813:=155,158c155,158%0a%3c !! Chroot%0a%3c %0a%3c We need to set up the [[openbsd/chroot|chroot]] for ngircd. Let's copy the files into the chroot:%0a%3c %0a---%0a> !! Starting ngircd%0a> %0a> To start ngircd:%0a> %0a160,164c160,161%0a%3c $ doas mkdir /var/ngircd/etc/%0a%3c $ doas cp -R /etc/ngircd /var/ngircd/etc/%0a%3c $ doas chown -R _ngircd:_ngircd /var/ngircd/%0a%3c $ doas rm -r /etc/ngircd%0a%3c $ doas ln -s /var/ngircd/etc/ngircd /etc/ngircd%0a---%0a> doas rcctl enable ngircd%0a> doas rcctl start ngircd%0a167,177d163%0a%3c This will create a symlink so that only one set of configuration files needs to be maintained inside and outside of the chroot. Otherwise, ngircd will require two sets of configuration files, one inside and the other outside of the chroot.%0a%3c %0a%3c !! Starting ngircd%0a%3c %0a%3c To start ngircd:%0a%3c %0a%3c [@%0a%3c doas rcctl enable ngircd%0a%3c doas rcctl start ngircd%0a%3c @]%0a%3c %0a196,199c182,185%0a%3c Check /var/log/ngircd.log to see if ngircd is listening on the correct IP addresses and ports. Connect to those ports using your IRC client to verify that the server is working as intended.%0a%3c %0a%3c Remember, if you are connecting using port 6667 without SSL, any eavesdropper can read all your text, including your passwords. Don't send any sensitive information until you have upgraded to [[ngircd/ssl|SSL]].%0a%3c %0a---%0a> Check ''/var/log/messages'' to see if it is also listening on ports ''6697'' and ''9999''. Then connect to those ports via your IRC client to verify that SSL does work as intended.%0a> %0a> Now, connect to ngircd using your IRC client. Use the OPER command to log in as operator.%0a> %0a202,203c188,189%0a%3c After you edit /etc/ngircd/ngircd.conf for a running ngircd server, you will need to reload the configuration file:%0a%3c %0a---%0a> To reload the configuration file, you can:%0a> %0a208,209c194,195%0a%3c Alternatively, you can run:%0a%3c %0a---%0a> or:%0a> %0a214,215d199%0a%3c '''Reloading''' a configuration file will '''not''' disconnect any active connections. So, try to reload the configuration where possible.%0a%3c %0a222,224c206,239%0a%3c '''WARNING''': '''Restarting''' the ircd '''will''' disconnect all existing connections. So, try to restart ngircd only when absolutely necessary.%0a%3c %0a%3c '''Warning''': ngircd appears to have a bug where the ircd will crash if you reload the configuration file while a message is being sent. Be careful to avoid reloading configuration files when many users are chatting.%0a---%0a> '''WARNING''': '''Reloading''' a configuration file will '''not''' disconnect any active connections. However, '''restarting''' the ircd '''will''' disconnect all existing connections. So make sure to restart ngircd only when absolutely necessary.%0a> %0a> ''Note'': ngircd appears to have a bug where the ircd will crash if you reload the configuration file while a message is being sent. Be careful to avoid reloading configuration files when many users are chatting.%0a> %0a> MaxNickLength must be the same on all servers on a network. On IRCNow, MaxNickLength = 16.%0a> %0a> In the server block, for Host, it is better to use a [[openbsd/dns|symbolic hostname]] (don't use an IP address).%0a> %0a> [@%0a> [Server]%0a> Name = irc.example.ircnow.org%0a> Host = irc.example.ircnow.org%0a> Port = 6667%0a> MyPassword = password12345%0a> PeerPassword = password12345%0a> @]%0a> %0a> Notice that Host = irc.example.ircnow.org and not an IP address like 1.2.3.4. This makes it less work to configure when the other server changes its IP address.%0a> %0a> !! Chroot%0a> %0a> Make sure to [[openbsd/chroot|chroot]] ngircd.%0a> %0a> Once you have finished configuring /etc/ngircd/ngircd.conf, you can copy the files into the chroot:%0a> %0a> [@%0a> $ doas mkdir /var/ngircd/etc/%0a> $ doas cp -R /etc/ngircd /var/ngircd/etc/%0a> $ doas chown -R _ngircd:_ngircd /var/ngircd/%0a> $ doas rm -r /etc/ngircd%0a> $ doas ln -s /var/ngircd/etc/ngircd /etc/ngircd%0a> @]%0a> %0a> This will create a symlink so that only one set of configuration files needs to be maintained inside and outside of the chroot. Otherwise, ngircd will require two sets of configuration files, one inside and the other outside of the chroot.%0a -host:1612974269=198.251.81.119 -author:1612973813=jrmu -diff:1612973813:1612973386:=240a241,311%0a> !! SSL%0a> %0a> Use [[openbsd/acme-client|acme-client]] to get an SSL certificate signed by Let's Encrypt.%0a> %0a> [@%0a> $ doas cp /etc/ssl/example.com.fullchain.pem /etc/ngircd/%0a> $ doas cp /etc/ssl/private/example.com.key /etc/ngircd/%0a> @]%0a> %0a> In /etc/ngircd/ngircd.conf, change the following lines in the [SSL] block:%0a> %0a> [@%0a> # SSL Server Key Certificate%0a> CertFile = /etc/ngircd/example.com.fullchain.pem%0a> ...%0a> # SSL Server Key%0a> KeyFile = /etc/ngircd/example.com.key%0a> ...%0a> # Additional Listen Ports that expect SSL/TLS encrypted connections%0a> Ports = 6697, 9999, 16697%0a> @]%0a> %0a> ''Optional'': If you want to have a DHFile,%0a> %0a> [@%0a> $ doas openssl dhparam -out /etc/ngircd/dhparams.pem 2048%0a> $ doas chown _ngircd:_ngircd /etc/ngircd/dhparams.pem%0a> @]%0a> %0a> Then, uncomment @@DHFile = /etc/ngircd/dhparams.pem@@ in /etc/ngircd/ngircd.conf.%0a> %0a> !! Autostart%0a> %0a> To automatically restart ngIRCd if it was terminated unexpectedly, create a script in /usr/local/libexec/project/ngircd.sh:%0a> %0a> [@%0a> doas touch /usr/local/libexec/project/ngircd.sh%0a> doas chmod +x /usr/local/libexec/project/ngircd.sh%0a> @]%0a> %0a> Inside /usr/local/libexec/project/ngircd.sh:%0a> %0a> [@%0a> #!/bin/sh%0a> %0a> SERVICE_NAME="ngircd"%0a> SERVICE_USER="_ngircd"%0a> SERVICE_PID="/var/ngircd/var/run/ngircd/ngircd.pid"%0a> %0a> if ! pgrep -u $SERVICE_USER -x "$SERVICE_NAME" > /dev/null%0a> then%0a> if [ -f $SERVICE_PID ]; then%0a> rm -f $SERVICE_PID%0a> rcctl -d start $SERVICE_NAME%0a> fi%0a> fi%0a> @]%0a> %0a> Add this as a cronjob:%0a> %0a> [@%0a> $ doas crontab -e%0a> %0a> * * * * * /usr/local/libexec/project/checker_ngircd.sh > /dev/null 2>&1%0a> @]%0a> %0a> For the solution to work, you need to enable the use of pid files in /etc/ngircd/ngircd.conf:%0a> [@%0a> PidFile = /var/run/ngircd/ngircd.pid%0a> @]%0a> %0a247c318,389%0a%3c ngIRCd can be linked with [[https://github.com/ngircd/ngircd/blob/master/doc/Services.txt|services]]. The services currently used is anope but IRCNow plans to switch over to [[openbsd/achurch|achurch]].%0a\ No newline at end of file%0a---%0a> ngIRCd can be linked with [[https://github.com/ngircd/ngircd/blob/master/doc/Services.txt|services]]. The services currently used is anope but IRCNow plans to switch over to [[openbsd/achurch|achurch]].%0a> %0a> %0a> %0a> %0a> %0a> === Example ngIRCd server configurations ===%0a> To illustrate what I mean is, say for example, you have two ''ngircd'' servers that you want to connect to each other. Let's say that the server "foo" has this configuration,%0a> [@%0a> [Global]%0a> Name = irc.foo.org%0a> Ports = 6667%0a> ...%0a> [Server]%0a> MyPassword = Jp5meaikMiRAKsbBy6G6%0a> @]%0a> %0a> Server "bar" has the following configuration,%0a> [@%0a> [Global]%0a> Name = irc.bar.org%0a> Ports = 6667%0a> ...%0a> [Server]%0a> MyPassword = HpNSbcDbrTVQ3lkkqSfq%0a> @]%0a> %0a> [@%0a> [Server]%0a> Name = irc.bar.org%0a> Host = irc.bar.org%0a> Port = 6667%0a> MyPassword = Jp5meaikMiRAKsbBy6G6%0a> PeerPassword = HpNSbcDbrTVQ3lkkqSfq%0a> @]%0a> %0a> Likewise under server "bar",%0a> [@%0a> [Server]%0a> Name = irc.foo.org%0a> Host = irc.foo.org%0a> Port = 6667%0a> MyPassword = HpNSbcDbrTVQ3lkkqSfq%0a> PeerPassword = Jp5meaikMiRAKsbBy6G6%0a> @]%0a> %0a> Sysadmins should have proper [[openbsd/passwords|password management]].%0a> %0a> Keep in mind that ''MyPassword'' is used for linking with other servers. **It is stored in plaintext and has nothing to do with the server password specified under [Global] section, nor is it related to your [Operator] password!**. When other servers connects to you, they **need** to know **your** ''MyPassword'', in which they will then set it as their ''PeerPassword'' on their end. The same thing likewise when you need to peer with them, you **need** to know their ''MyPassword'' so that you can set it as **your** ''PeerPassword''.%0a> %0a> See how in the example above how ''irc.foo.org'' ''MyPassword'' is set as ''Jp5meaikMiRAKsbBy6G6'' but when linking with ''irc.bar.org'', whose ''MyPassword'' is set as ''HpNSbcDbrTVQ3lkkqSfq'', that ''irc.foo.org'' ''PeerPassword'' is therefore ''HpNSbcDbrTVQ3lkkqSfq'' for linking to ''irc.bar.org''? The same logic also applies in reverse for when ''irc.bar.org'' is to link up with ''irc.foo.org''.%0a> %0a> === Summing it up ===%0a> To sum it up in the prior example,%0a> Server ''irc.foo.org'' has the following for ''irc.bar.org'',%0a> [@%0a> [Server]%0a> Name = irc.bar.org%0a> Host = irc.bar.org%0a> Port = 6667%0a> MyPassword = Password_To_Be_Set_On_IRCBARORG's_PeerPassword%0a> PeerPassword = Password_That_Is_To_Be_received_from_owner_of_IRCBARORG's_MyPassword%0a> @]%0a> and the same likewise, for ''irc.bar.org'' when linking to ''irc.foo.org'',%0a> [@%0a> [Server]%0a> Name = irc.foo.org%0a> Host = irc.foo.org%0a> Port = 6667%0a> MyPassword = Password_To_Be_Set_On_IRCFOOORG's_PeerPassword%0a> PeerPassword = Password_That_Is_To_Be_received_from_owner_of_IRCFOOORG's_MyPassword%0a> @]%0a -host:1612973813=198.251.81.119 -author:1612973386=jrmu -diff:1612973386:1612972811:=155,158c155,158%0a%3c !! Starting ngircd%0a%3c %0a%3c To start ngircd:%0a%3c %0a---%0a> !! Debug%0a> %0a> To test your configuration:%0a> %0a160,161c160%0a%3c doas rcctl enable ngircd%0a%3c doas rcctl start ngircd%0a---%0a> $ doas ngircd -t%0a164,171c163,164%0a%3c [[rcctl/rcctl|rcctl]] controls how system daemons are run.%0a%3c %0a%3c Next, use your IRC client to connect to the server, which may have the hostname user.fruit.ircnow.org. Join a few channels and chat inside.%0a%3c %0a%3c !! Troubleshooting%0a%3c %0a%3c If you run into any errors, you can test to see if your configuration file has errors:%0a%3c %0a---%0a> To run ngircd in debug mode:%0a> %0a173c166%0a%3c $ doas ngircd -t%0a---%0a> $ doas ngircd -n%0a176,177c169,170%0a%3c To run ngircd in debug mode:%0a%3c %0a---%0a> To start ngircd:%0a> %0a179c172,173%0a%3c $ doas ngircd -n%0a---%0a> doas rcctl enable ngircd%0a> doas rcctl start ngircd%0a180a175,176%0a> %0a> OpenBSD uses [[https://www.openbsd.org/faq/faq10.html#rc|rcctl]] to control how system daemons are run.%0a -host:1612973386=198.251.81.119 -author:1612972811=jrmu -diff:1612972811:1612972391:=149,153d148%0a%3c Please use a [[password/management|long, random string]] for your password.%0a%3c %0a%3c If you uncomment Mask, your hostmask must match the operator hostmask in order for the /OPER command to be accepted. If it differs at all, then your /OPER command will be rejected. If you don't want to check the hostmask, leave Mask commented out.%0a%3c %0a%3c For more security, you can uncomment Mask and have it match your vhost. However, please be aware that this will make it impossible to authenticate if you ever have to connect from a different IP address.%0a -host:1612972811=198.251.81.119 -author:1612972391=jrmu -diff:1612972391:1612972215:=44,45d43%0a%3c !!! Global Block%0a%3c %0a102,103d99%0a%3c !!! Options Block%0a%3c %0a122,123c118,119%0a%3c !!! Configuring syslog%0a%3c %0a---%0a> !! Configuring syslog%0a> %0a140,148d135%0a%3c %0a%3c !!! Operator Block%0a%3c %0a%3c [@%0a%3c [Operator]%0a%3c Name = username%0a%3c Password = password%0a%3c @]%0a%3c %0a -host:1612972391=198.251.81.119 -author:1612972215=jrmu -diff:1612972215:1612971710:=111d110%0a%3c SyslogFacility = daemon%0a116,117c115,116%0a%3c UserMode i keeps the user invisible, and C means that only users that share channels can send a message. Both settings help reduce spam, stalking, and harassment. Receiving a notice before registration can help with debugging with [[openbsd/netcat|netcat]]. We're going to log using syslog (see section below).%0a%3c %0a---%0a> UserMode i keeps the user invisible, and C means that only users that share channels can send a message. Both settings help reduce spam, stalking, and harassment. Receiving a notice before registration can help with debugging with [[openbsd/netcat|netcat]].%0a> %0a120,121c119,120%0a%3c You want all the messages from ngircd to go to /var/log/ngircd.log and not anywhere else, so we insert these three lines starting at line 3 (at the top) in /etc/syslog.conf:%0a%3c %0a---%0a> You want all the messages from ngircd to go to /var/log/ngircd.log and not /var/log/messages, so we insert these three lines starting at line 3 (at the top) in /etc/syslog.conf:%0a> %0a130c129%0a%3c Next, create the file /var/log/ngircd.log and restart syslogd:%0a---%0a> Next, restart syslogd:%0a -host:1612972215=198.251.81.119 -author:1612971710=jrmu -diff:1612971710:1612971598:=132d131%0a%3c $ doas touch /var/log/ngircd.log%0a -host:1612971710=198.251.81.119 -author:1612971598=jrmu -diff:1612971598:1612949587:=116,133d115%0a%3c %0a%3c !! Configuring syslog%0a%3c %0a%3c You want all the messages from ngircd to go to /var/log/ngircd.log and not /var/log/messages, so we insert these three lines starting at line 3 (at the top) in /etc/syslog.conf:%0a%3c %0a%3c [@%0a%3c !!ngircd%0a%3c *.* /var/log/ngircd.log%0a%3c !*%0a%3c @]%0a%3c %0a%3c This directs all logs from ngircd to go straight to /var/log/ngircd.log and nowhere else.%0a%3c %0a%3c Next, restart syslogd:%0a%3c %0a%3c [@%0a%3c $ doas rcctl restart syslogd%0a%3c @]%0a -host:1612971598=198.251.81.119 -author:1612949587=jrmu -diff:1612949587:1612947944:= -host:1612949587=198.251.81.119 -author:1612947944=jrmu -diff:1612947944:1612947223:=115c115,117%0a%3c UserMode i keeps the user invisible, and C means that only users that share channels can send a message. Both settings help reduce spam, stalking, and harassment. Receiving a notice before registration can help with debugging with [[openbsd/netcat|netcat]].%0a---%0a> DefaultUserModes%0a> %0a> NoticeBeforeRegistration%0a -host:1612947944=198.251.81.119 -author:1612947223=jrmu -diff:1612947223:1612947072:=16c16%0a%3c Before you begin, please read the official [[https://ngircd.barton.de/documentation.php.en|ngIRCd documentation]].%0a---%0a> Before you begin, read the official [[https://ngircd.barton.de/documentation.php.en|ngIRCd documentation]].%0a -host:1612947223=198.251.81.119 -author:1612947072=jrmu -diff:1612947072:1612946671:=1,15d0%0a%3c (:title Ngircd -- The Next Generation IRCd:)%0a%3c %0a%3c In this guide, we'll setup ngircd, a free, portable, lightweight IRC server.%0a%3c %0a%3c Advantages:%0a%3c %0a%3c # The source code runs well on OpenBSD%0a%3c # The server has a very simple, easy-to-understand configuration%0a%3c # Fewer features means the manual pages are short%0a%3c # The server is a clean implementation which was written from scratch%0a%3c # The source code is written in modern, portable C. It will be easy to fork to new features such as:%0a%3c # Customized censorship to block NSFW content%0a%3c # Spam filters%0a%3c # The lead developer po||ux actively hangs out on the IRC server barton.ngircd.de on #ngircd%0a%3c %0a -host:1612947072=198.251.81.119 -author:1612946671=jrmu -diff:1612946671:1612946480:=99,102d98%0a%3c %0a%3c DefaultUserModes%0a%3c %0a%3c NoticeBeforeRegistration%0a -host:1612946671=198.251.81.119 -author:1612946480=jrmu -diff:1612946480:1612946274:=95a96%0a> %0a97,98d97%0a%3c %0a%3c For security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you may not necessarily trust an oper on another server. We want to chroot to /var/ngircd to prevent a security compromise. We will cloak the host using a unique salt; contact another sysadmin for the exact salt.%0a -host:1612946480=198.251.81.119 -author:1612946274=jrmu -diff:1612946274:1612945592:=88,95d87%0a%3c ChrootDir = /var/ngircd%0a%3c CloakHost = %25x%0a%3c CloakHostModeX = jrmu.coconut.ircnow.org%0a%3c CloakHostSalt = abcdefghijklmnopqrstuvwxyz%0a%3c DefaultUserModes = iC%0a%3c NoticeBeforeRegistration = yes%0a%3c OperChanPAutoOp = no %0a%3c RequireAuthPing = yes%0a -host:1612946274=198.251.81.119 -author:1612945592=jrmu -diff:1612945592:1612945145:=80a81%0a> %0a83,89c84%0a%3c The above are default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls. Note that the MaxNickLength must be identical to all servers on the network. On IRCNow, MaxNickLength is 16.%0a%3c %0a%3c [@%0a%3c [Options]%0a%3c AllowRemoteOper = no%0a%3c %0a%3c @]%0a---%0a> The above are default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls.%0a -host:1612945592=198.251.81.119 -author:1612945145=jrmu -diff:1612945145:1612945079:= -host:1612945145=198.251.81.119 -author:1612945079=jrmu -diff:1612945079:1612944533:=78,81d77%0a%3c MaxListSize = 1000%0a%3c PingTimeout = 300%0a%3c PongTimeout = 300%0a%3c %0a -host:1612945079=198.251.81.119 -author:1612944533=jrmu -diff:1612944533:1612944382:=77d76%0a%3c MaxNickLength = 16%0a -host:1612944533=198.251.81.119 -author:1612944382=jrmu -diff:1612944382:1612943875:=74,76c74,75%0a%3c Ports = 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 7000, 16667%0a%3c MaxConnectionsIP = 0%0a%3c MaxJoins = 300%0a---%0a> Ports = 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 7000, 16667%0a> MaxConnectionsIP = 0%0a -host:1612944382=198.251.81.119 -author:1612943875=jrmu -diff:1612943875:1612942979:=50d49%0a%3c Network = IRCNow%0a53,54c52,53%0a%3c Paste your Message of the Day in /etc/ngircd/ngircd.motd. Here's a suggested template:%0a%3c %0a---%0a> Paste your Message of the Dat in /etc/ngircd/ngircd.motd. Here's a suggested template:%0a> %0a72,78d70%0a%3c %0a%3c [@%0a%3c Ports = 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 7000, 16667%0a%3c MaxConnectionsIP = 0%0a%3c @]%0a%3c %0a%3c The above are default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls.%0a -host:1612943875=198.251.81.119 -author:1612942979=jrmu -diff:1612942979:1612942732:=44,70c44,49%0a%3c Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a%3c %0a%3c '''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a%3c %0a%3c [@%0a%3c MotdFile = /etc/ngircd/ngircd.motd%0a%3c @]%0a%3c %0a%3c Paste your Message of the Dat in /etc/ngircd/ngircd.motd. Here's a suggested template:%0a%3c %0a%3c [@%0a%3c IRCNow - The Users' Network%0a%3c %0a%3c IRCNow is the network of the user, by the user, for the user.%0a%3c %0a%3c * No porn / illegal drugs / promotion of violence%0a%3c * No slander / libel / gambling%0a%3c * No spam, illegal cracking, or DDoS%0a%3c * No copyright infrigement%0a%3c %0a%3c You must agree to our terms of service and our privacy policy %0a%3c to use this network:%0a%3c %0a%3c https://wiki.ircnow.org/index.php?n=Terms.Terms%0a%3c %0a%3c Only 5 connections per IP address. If you need help, please speak with staff on #help.%0a%3c @]%0a---%0a> We must provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. If you are hosting a public service and not on training, avoid using IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a> %0a> !! Debug%0a> %0a> To test your configuration:%0a> %0a -host:1612942979=198.251.81.119 -author:1612942732=jrmu -diff:1612942732:1612942212:=39,44d38%0a%3c %0a%3c [@%0a%3c Listen = 127.0.0.1,192.168.1.1,2001:db8::%0a%3c @]%0a%3c %0a%3c We must provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. If you are hosting a public service and not on training, avoid using IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a -host:1612942732=198.251.81.119 -author:1612942212=jrmu -diff:1612942212:1612941602:=35c35%0a%3c Info = username.fruit.ircnow.org%0a---%0a> Info = Server Info Text%0a -host:1612942212=198.251.81.119 -author:1612941602=jrmu -diff:1612941602:1612941572:=35d34%0a%3c Info = Server Info Text%0a -host:1612941602=198.251.81.119 -author:1612941572=jrmu -diff:1612941572:1612941501:=27,28d26%0a%3c '''Note''': Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line.%0a%3c %0a37a36,37%0a> %0a> **Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line%0a -host:1612941572=198.251.81.119 -author:1612941501=jrmu -diff:1612941501:1612941400:=35c35%0a%3c For Name, use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. For AdminInfo1, provide a description; for AdminInfo2, provide the location.%0a---%0a> For Name, use your hostname (like username.fruit.ircnow.org).. For AdminInfo1, provide a description; for AdminInfo2, provide the location.%0a -host:1612941501=198.251.81.119 -author:1612941400=jrmu -diff:1612941400:1612941192:=29,32c29,34%0a%3c Name = username.fruit.ircnow.org%0a%3c AdminInfo1 = Fruit Server on IRCNow%0a%3c AdminInfo2 = Planet Earth%0a%3c AdminEMail = admin@username.fruit.ircnow.org%0a---%0a> Name = irc.example.net%0a> # Information about the server and the administrator, used by the%0a> # ADMIN command. Not required by server but by RFC!%0a> ;AdminInfo1 = Description%0a> ;AdminInfo2 = Location%0a> ;AdminEMail = admin@irc.server%0a35c37%0a%3c For Name, use your hostname (like username.fruit.ircnow.org).. For AdminInfo1, provide a description; for AdminInfo2, provide the location.%0a---%0a> For Name, use your hostname (like username.fruit.ircnow.org).%0a -host:1612941400=198.251.81.119 -author:1612941192=jrmu -diff:1612941192:1612940983:=26a27,32%0a> **Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line%0a> %0a> !! Debug%0a> %0a> To test your configuration:%0a> %0a28,34c34%0a%3c [Global]%0a%3c Name = irc.example.net%0a%3c # Information about the server and the administrator, used by the%0a%3c # ADMIN command. Not required by server but by RFC!%0a%3c ;AdminInfo1 = Description%0a%3c ;AdminInfo2 = Location%0a%3c ;AdminEMail = admin@irc.server%0a---%0a> $ doas ngircd -t%0a37,44c37,38%0a%3c For Name, use your hostname (like username.fruit.ircnow.org).%0a%3c %0a%3c **Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line%0a%3c %0a%3c !! Debug%0a%3c %0a%3c To test your configuration:%0a%3c %0a---%0a> To run ngircd in debug mode:%0a> %0a46c40%0a%3c $ doas ngircd -t%0a---%0a> $ doas ngircd -n%0a49,50c43,44%0a%3c To run ngircd in debug mode:%0a%3c %0a---%0a> To start ngircd:%0a> %0a52c46,47%0a%3c $ doas ngircd -n%0a---%0a> doas rcctl enable ngircd%0a> doas rcctl start ngircd%0a55,61d49%0a%3c To start ngircd:%0a%3c %0a%3c [@%0a%3c doas rcctl enable ngircd%0a%3c doas rcctl start ngircd%0a%3c @]%0a%3c %0a204a193,197%0a> %0a> %0a> %0a> ==== MyPassword and PeerPassword dilemma ====%0a> Another simpler catch involves the MyPassword and PeerPassword keys. Your MyPassword should be the password that you set for other servers/peers to connect to your server. On their (these other server/peer end), should be set as PeerPassword when connecting to you. However, when you are connecting to them you need to know their PeerPassword.%0a -host:1612941192=198.251.81.119 -author:1612940983=jrmu -diff:1612940983:1612940885:=25c25,27%0a%3c Edit /etc/ngircd/ngircd.conf:%0a---%0a> [@%0a> $ doas vi /etc/ngircd/ngircd.conf%0a> @]%0a -host:1612940983=198.251.81.119 -author:1612940885=jrmu -diff:1612940885:1612940824:= -host:1612940885=198.251.81.119 -author:1612940824=jrmu -diff:1612940824:1609606061:=2a3,4%0a> If you are unfamiliar with [[https://www.openbsd.org/faq/faq15.html|OpenBSD's package system]], please read the FAQ first.%0a> %0a5,6c7,8%0a%3c !!! From packages%0a%3c %0a---%0a> To install from packages:%0a> %0a11a14,15%0a> !! Warnings%0a> %0a14,15c18,19%0a%3c !!! From source%0a%3c %0a---%0a> To build from source:%0a> %0a17,20c21,31%0a%3c $ ftp https://ircnow.org/software/ngircd.tgz%0a%3c $ tar xvzf ngircd.tgz%0a%3c $ cd ngircd-26.1/%0a%3c $ sh build.sh%0a---%0a> $ doas pkg_add ngircd # this will provide files /etc/rc.d/ startup scripts%0a> $ export CFLAGS=-static%0a> $ doas pkg_add libiconv-1.16p0%0a> $ doas pkg_add libident-0.32p1%0a> $ doas pkg_add autoconf-2.69p3%0a> $ doas pkg_add automake-1.11.6p3%0a> $ ./autogen.sh%0a> $ ./configure --enable-ipv6 --with-openssl --with-ident=/usr/local/ --with-iconv=/usr/local/ --with-syslog --sysconfdir=/etc/ngircd/ --mandir=/usr/local/man/%0a> $ export AUTOCONF_VERSION="2.69"%0a> $ make%0a> $ doas make install%0a -host:1612940824=198.251.81.119 -author:1609606061=jrmu -diff:1609606061:1604504975:=29d28%0a%3c $ export AUTOCONF_VERSION="2.69"%0a -host:1609606061=125.231.63.134 -author:1604504975=jrmu -diff:1604504975:1604504607:=154,157c154,159%0a%3c !! Autostart%0a%3c %0a%3c To automatically restart ngIRCd if it was terminated unexpectedly, create a script in /usr/local/libexec/project/ngircd.sh:%0a%3c %0a---%0a> '''Autostart'''%0a> %0a> This solution automatically restarts the service if its work was terminated unexpectedly.%0a> %0a> Create an executable worker script%0a> %0a159,160c161,162%0a%3c doas touch /usr/local/libexec/project/ngircd.sh%0a%3c doas chmod +x /usr/local/libexec/project/ngircd.sh%0a---%0a> doas touch /usr/local/libexec/project/checker_ngircd.sh%0a> doas chmod +x /usr/local/libexec/project/checker_ngircd.sh%0a163,164c165,166%0a%3c Inside /usr/local/libexec/project/ngircd.sh:%0a%3c %0a---%0a> /usr/local/libexec/project/checker_ngircd.sh:%0a> %0a181,182c183%0a%3c Add this as a cronjob:%0a%3c %0a---%0a> Add it to the operating system planner%0a184,185c185%0a%3c $ doas crontab -e%0a%3c %0a---%0a> doas crontab -e%0a189c189%0a%3c For the solution to work, you need to enable the use of pid files in /etc/ngircd/ngircd.conf:%0a---%0a> For the solution to work, you need to enable the use of pid files. Like this:%0a -host:1604504975=38.81.163.7 -author:1604504607=jrmu -diff:1604504607:1604503920:=94,95c94,98%0a%3c In the server block, for Host, it is better to use a [[openbsd/dns|symbolic hostname]] (don't use an IP address).%0a%3c %0a---%0a> ==== MyPassword and PeerPassword dilemma ====%0a> Another simpler catch involves the MyPassword and PeerPassword keys. Your MyPassword should be the password that you set for other servers/peers to connect to your server. On their (these other server/peer end), should be set as PeerPassword when connecting to you. However, when you are connecting to them you need to know their PeerPassword.%0a> %0a> === Example ngIRCd server configurations ===%0a> To illustrate what I mean is, say for example, you have two ''ngircd'' servers that you want to connect to each other. Let's say that the server "foo" has this configuration,%0a96a100,103%0a> [Global]%0a> Name = irc.foo.org%0a> Ports = 6667%0a> ...%0a98,102c105%0a%3c Name = irc.example.ircnow.org%0a%3c Host = irc.example.ircnow.org%0a%3c Port = 6667%0a%3c MyPassword = password12345%0a%3c PeerPassword = password12345%0a---%0a> MyPassword = Jp5meaikMiRAKsbBy6G6%0a105,112c108%0a%3c Notice that Host = irc.example.ircnow.org and not an IP address like 1.2.3.4. This makes it less work to configure when the other server changes its IP address.%0a%3c %0a%3c !! Chroot%0a%3c %0a%3c Make sure to [[openbsd/chroot|chroot]] ngircd.%0a%3c %0a%3c Once you have finished configuring /etc/ngircd/ngircd.conf, you can copy the files into the chroot:%0a%3c %0a---%0a> Server "bar" has the following configuration,%0a114,118c110,115%0a%3c $ doas mkdir /var/ngircd/etc/%0a%3c $ doas cp -R /etc/ngircd /var/ngircd/etc/%0a%3c $ doas chown -R _ngircd:_ngircd /var/ngircd/%0a%3c $ doas rm -r /etc/ngircd%0a%3c $ doas ln -s /var/ngircd/etc/ngircd /etc/ngircd%0a---%0a> [Global]%0a> Name = irc.bar.org%0a> Ports = 6667%0a> ...%0a> [Server]%0a> MyPassword = HpNSbcDbrTVQ3lkkqSfq%0a121,126c118%0a%3c This will create a symlink so that only one set of configuration files needs to be maintained inside and outside of the chroot. Otherwise, ngircd will require two sets of configuration files, one inside and the other outside of the chroot.%0a%3c %0a%3c !! SSL%0a%3c %0a%3c Use [[openbsd/acme-client|acme-client]] to get an SSL certificate signed by Let's Encrypt.%0a%3c %0a---%0a> Under "[Server]" section (**not global section**), it should be added as the following for server "foo". Ideally, I would put it in a separate ''[Server]'' section, which would have the following,%0a128,129c120,134%0a%3c $ doas cp /etc/ssl/example.com.fullchain.pem /etc/ngircd/%0a%3c $ doas cp /etc/ssl/private/example.com.key /etc/ngircd/%0a---%0a> # Define a (case insensitive) list of masks matching nicknames that%0a> # should be treated as IRC services when introduced via this remote%0a> # server, separated by commas (",").%0a> # REGULAR SERVERS DON'T NEED this parameter, so leave it empty%0a> # (which is the default).%0a> # When you are connecting IRC services which mask as a IRC server%0a> # and which use "virtual users" to communicate with, for example%0a> # "NickServ" and "ChanServ", you should set this parameter to%0a> # something like "*Serv" or "NickServ,ChanServ,XyzServ".%0a> ;ServiceMask = *Serv,Global%0a> %0a> [Server]%0a> # More [Server] sections, if you like ...%0a> %0a> [Channel]%0a132,133c137%0a%3c In /etc/ngircd/ngircd.conf, change the following lines in the [SSL] block:%0a%3c %0a---%0a> See ''# More [Server] sections, if you like ...''? I would replace that line with the following below,%0a135,142c139,144%0a%3c # SSL Server Key Certificate%0a%3c CertFile = /etc/ngircd/example.com.fullchain.pem%0a%3c ...%0a%3c # SSL Server Key%0a%3c KeyFile = /etc/ngircd/example.com.key%0a%3c ...%0a%3c # Additional Listen Ports that expect SSL/TLS encrypted connections%0a%3c Ports = 6697, 9999, 16697%0a---%0a> [Server]%0a> Name = irc.bar.org%0a> Host = irc.bar.org%0a> Port = 6667%0a> MyPassword = Jp5meaikMiRAKsbBy6G6%0a> PeerPassword = HpNSbcDbrTVQ3lkkqSfq%0a145,146c147%0a%3c ''Optional'': If you want to have a DHFile,%0a%3c %0a---%0a> Likewise under server "bar",%0a148,149c149,154%0a%3c $ doas openssl dhparam -out /etc/ngircd/dhparams.pem 2048%0a%3c $ doas chown _ngircd:_ngircd /etc/ngircd/dhparams.pem%0a---%0a> [Server]%0a> Name = irc.foo.org%0a> Host = irc.foo.org%0a> Port = 6667%0a> MyPassword = HpNSbcDbrTVQ3lkkqSfq%0a> PeerPassword = Jp5meaikMiRAKsbBy6G6%0a152,159c157,165%0a%3c Then, uncomment @@DHFile = /etc/ngircd/dhparams.pem@@ in /etc/ngircd/ngircd.conf.%0a%3c %0a%3c '''Autostart'''%0a%3c %0a%3c This solution automatically restarts the service if its work was terminated unexpectedly.%0a%3c %0a%3c Create an executable worker script%0a%3c %0a---%0a> Sysadmins should have proper [[openbsd/passwords|password management]].%0a> %0a> Keep in mind that ''MyPassword'' is used for linking with other servers. **It is stored in plaintext and has nothing to do with the server password specified under [Global] section, nor is it related to your [Operator] password!**. When other servers connects to you, they **need** to know **your** ''MyPassword'', in which they will then set it as their ''PeerPassword'' on their end. The same thing likewise when you need to peer with them, you **need** to know their ''MyPassword'' so that you can set it as **your** ''PeerPassword''.%0a> %0a> See how in the example above how ''irc.foo.org'' ''MyPassword'' is set as ''Jp5meaikMiRAKsbBy6G6'' but when linking with ''irc.bar.org'', whose ''MyPassword'' is set as ''HpNSbcDbrTVQ3lkkqSfq'', that ''irc.foo.org'' ''PeerPassword'' is therefore ''HpNSbcDbrTVQ3lkkqSfq'' for linking to ''irc.bar.org''? The same logic also applies in reverse for when ''irc.bar.org'' is to link up with ''irc.foo.org''.%0a> %0a> === Summing it up ===%0a> To sum it up in the prior example,%0a> Server ''irc.foo.org'' has the following for ''irc.bar.org'',%0a161,162c167,172%0a%3c doas touch /usr/local/libexec/project/checker_ngircd.sh%0a%3c doas chmod +x /usr/local/libexec/project/checker_ngircd.sh%0a---%0a> [Server]%0a> Name = irc.bar.org%0a> Host = irc.bar.org%0a> Port = 6667%0a> MyPassword = Password_To_Be_Set_On_IRCBARORG's_PeerPassword%0a> PeerPassword = Password_That_Is_To_Be_received_from_owner_of_IRCBARORG's_MyPassword%0a164,166c174%0a%3c %0a%3c /usr/local/libexec/project/checker_ngircd.sh:%0a%3c %0a---%0a> and the same likewise, for ''irc.bar.org'' when linking to ''irc.foo.org'',%0a168,180c176,181%0a%3c #!/bin/sh%0a%3c %0a%3c SERVICE_NAME="ngircd"%0a%3c SERVICE_USER="_ngircd"%0a%3c SERVICE_PID="/var/ngircd/var/run/ngircd/ngircd.pid"%0a%3c %0a%3c if ! pgrep -u $SERVICE_USER -x "$SERVICE_NAME" > /dev/null%0a%3c then%0a%3c if [ -f $SERVICE_PID ]; then%0a%3c rm -f $SERVICE_PID%0a%3c rcctl -d start $SERVICE_NAME%0a%3c fi%0a%3c fi%0a---%0a> [Server]%0a> Name = irc.foo.org%0a> Host = irc.foo.org%0a> Port = 6667%0a> MyPassword = Password_To_Be_Set_On_IRCFOOORG's_PeerPassword%0a> PeerPassword = Password_That_Is_To_Be_received_from_owner_of_IRCFOOORG's_MyPassword%0a183c184,194%0a%3c Add it to the operating system planner%0a---%0a> You replace the contents of,%0a> * ''Name'', ''Host'' and ''Port'', keeping in mind that ''[Server]'' needs to be explicitly implied in the ''/etc/ngircd/ngircd.conf'' or ''ngircd'' will not understand what to do with the following contents.%0a> %0a> The following should be very self explanatory, on the string that is to be replaced,%0a> * ''Password_To_Be_Set_On_IRCBARORG's_PeerPassword'',%0a> * ''Password_That_Is_To_Be_received_from_owner_of_IRCBARORG's_MyPassword'',%0a> * ''Password_To_Be_Set_On_IRCFOOORG's_PeerPassword'', and%0a> * ''Password_That_Is_To_Be_received_from_owner_of_IRCFOOORG's_MyPassword''%0a> %0a> In the server block, for Host, it is better to use a [[openbsd/dns|symbolic hostname]] (don't use an IP address).%0a> %0a185,186c196,201%0a%3c doas crontab -e%0a%3c * * * * * /usr/local/libexec/project/checker_ngircd.sh > /dev/null 2>&1%0a---%0a> [Server]%0a> Name = irc.example.ircnow.org%0a> Host = irc.example.ircnow.org%0a> Port = 6667%0a> MyPassword = password12345%0a> PeerPassword = password12345%0a189c204,211%0a%3c For the solution to work, you need to enable the use of pid files. Like this:%0a---%0a> Notice that Host = irc.example.ircnow.org and not an IP address like 1.2.3.4. This makes it less work to configure when the other server changes its IP address.%0a> %0a> !! Chroot%0a> %0a> Make sure to [[openbsd/chroot|chroot]] ngircd.%0a> %0a> Once you have finished configuring /etc/ngircd/ngircd.conf, you can copy the files into the chroot:%0a> %0a191c213,217%0a%3c PidFile = /var/run/ngircd/ngircd.pid%0a---%0a> $ doas mkdir /var/ngircd/etc/%0a> $ doas cp -R /etc/ngircd /var/ngircd/etc/%0a> $ doas chown -R _ngircd:_ngircd /var/ngircd/%0a> $ doas rm -r /etc/ngircd%0a> $ doas ln -s /var/ngircd/etc/ngircd /etc/ngircd%0a194,212c220,225%0a%3c Make sure to configure [[openbsd/hopm|hopm]].%0a%3c %0a%3c !! Related Software%0a%3c %0a%3c You will want to install, configure, and run [[openbsd/hopm|HOPM]] to block spammers. Eventually, IRCNow plans to use a fork of [[openbsd/acopm|ACOPM]].%0a%3c %0a%3c ngIRCd can be linked with [[https://github.com/ngircd/ngircd/blob/master/doc/Services.txt|services]]. The services currently used is anope but IRCNow plans to switch over to [[openbsd/achurch|achurch]].%0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c ==== MyPassword and PeerPassword dilemma ====%0a%3c Another simpler catch involves the MyPassword and PeerPassword keys. Your MyPassword should be the password that you set for other servers/peers to connect to your server. On their (these other server/peer end), should be set as PeerPassword when connecting to you. However, when you are connecting to them you need to know their PeerPassword.%0a%3c %0a%3c === Example ngIRCd server configurations ===%0a%3c To illustrate what I mean is, say for example, you have two ''ngircd'' servers that you want to connect to each other. Let's say that the server "foo" has this configuration,%0a---%0a> This will create a symlink so that only one set of configuration files needs to be maintained inside and outside of the chroot. Otherwise, ngircd will require two sets of configuration files, one inside and the other outside of the chroot.%0a> %0a> !! SSL%0a> %0a> Use [[openbsd/acme-client|acme-client]] to get an SSL certificate signed by Let's Encrypt.%0a> %0a214,219c227,228%0a%3c [Global]%0a%3c Name = irc.foo.org%0a%3c Ports = 6667%0a%3c ...%0a%3c [Server]%0a%3c MyPassword = Jp5meaikMiRAKsbBy6G6%0a---%0a> $ doas cp /etc/ssl/example.com.fullchain.pem /etc/ngircd/%0a> $ doas cp /etc/ssl/private/example.com.key /etc/ngircd/%0a222c231,232%0a%3c Server "bar" has the following configuration,%0a---%0a> In /etc/ngircd/ngircd.conf, change the following lines in the [SSL] block:%0a> %0a224,226c234,235%0a%3c [Global]%0a%3c Name = irc.bar.org%0a%3c Ports = 6667%0a---%0a> # SSL Server Key Certificate%0a> CertFile = /etc/ngircd/example.com.fullchain.pem%0a228,229c237,241%0a%3c [Server]%0a%3c MyPassword = HpNSbcDbrTVQ3lkkqSfq%0a---%0a> # SSL Server Key%0a> KeyFile = /etc/ngircd/example.com.key%0a> ...%0a> # Additional Listen Ports that expect SSL/TLS encrypted connections%0a> Ports = 6697, 9999, 16697%0a231a244,245%0a> ''Optional'': If you want to have a DHFile,%0a> %0a233,238c247,248%0a%3c [Server]%0a%3c Name = irc.bar.org%0a%3c Host = irc.bar.org%0a%3c Port = 6667%0a%3c MyPassword = Jp5meaikMiRAKsbBy6G6%0a%3c PeerPassword = HpNSbcDbrTVQ3lkkqSfq%0a---%0a> $ doas openssl dhparam -out /etc/ngircd/dhparams.pem 2048%0a> $ doas chown _ngircd:_ngircd /etc/ngircd/dhparams.pem%0a241c251,258%0a%3c Likewise under server "bar",%0a---%0a> Then, uncomment @@DHFile = /etc/ngircd/dhparams.pem@@ in /etc/ngircd/ngircd.conf.%0a> %0a> '''Autostart'''%0a> %0a> This solution automatically restarts the service if its work was terminated unexpectedly.%0a> %0a> Create an executable worker script%0a> %0a243,248c260,261%0a%3c [Server]%0a%3c Name = irc.foo.org%0a%3c Host = irc.foo.org%0a%3c Port = 6667%0a%3c MyPassword = HpNSbcDbrTVQ3lkkqSfq%0a%3c PeerPassword = Jp5meaikMiRAKsbBy6G6%0a---%0a> doas touch /usr/local/libexec/project/checker_ngircd.sh%0a> doas chmod +x /usr/local/libexec/project/checker_ngircd.sh%0a251,259c264,265%0a%3c Sysadmins should have proper [[openbsd/passwords|password management]].%0a%3c %0a%3c Keep in mind that ''MyPassword'' is used for linking with other servers. **It is stored in plaintext and has nothing to do with the server password specified under [Global] section, nor is it related to your [Operator] password!**. When other servers connects to you, they **need** to know **your** ''MyPassword'', in which they will then set it as their ''PeerPassword'' on their end. The same thing likewise when you need to peer with them, you **need** to know their ''MyPassword'' so that you can set it as **your** ''PeerPassword''.%0a%3c %0a%3c See how in the example above how ''irc.foo.org'' ''MyPassword'' is set as ''Jp5meaikMiRAKsbBy6G6'' but when linking with ''irc.bar.org'', whose ''MyPassword'' is set as ''HpNSbcDbrTVQ3lkkqSfq'', that ''irc.foo.org'' ''PeerPassword'' is therefore ''HpNSbcDbrTVQ3lkkqSfq'' for linking to ''irc.bar.org''? The same logic also applies in reverse for when ''irc.bar.org'' is to link up with ''irc.foo.org''.%0a%3c %0a%3c === Summing it up ===%0a%3c To sum it up in the prior example,%0a%3c Server ''irc.foo.org'' has the following for ''irc.bar.org'',%0a---%0a> /usr/local/libexec/project/checker_ngircd.sh:%0a> %0a261,266c267,279%0a%3c [Server]%0a%3c Name = irc.bar.org%0a%3c Host = irc.bar.org%0a%3c Port = 6667%0a%3c MyPassword = Password_To_Be_Set_On_IRCBARORG's_PeerPassword%0a%3c PeerPassword = Password_That_Is_To_Be_received_from_owner_of_IRCBARORG's_MyPassword%0a---%0a> #!/bin/sh%0a> %0a> SERVICE_NAME="ngircd"%0a> SERVICE_USER="_ngircd"%0a> SERVICE_PID="/var/ngircd/var/run/ngircd/ngircd.pid"%0a> %0a> if ! pgrep -u $SERVICE_USER -x "$SERVICE_NAME" > /dev/null%0a> then%0a> if [ -f $SERVICE_PID ]; then%0a> rm -f $SERVICE_PID%0a> rcctl -d start $SERVICE_NAME%0a> fi%0a> fi%0a268c281,282%0a%3c and the same likewise, for ''irc.bar.org'' when linking to ''irc.foo.org'',%0a---%0a> %0a> Add it to the operating system planner%0a270,275c284,285%0a%3c [Server]%0a%3c Name = irc.foo.org%0a%3c Host = irc.foo.org%0a%3c Port = 6667%0a%3c MyPassword = Password_To_Be_Set_On_IRCFOOORG's_PeerPassword%0a%3c PeerPassword = Password_That_Is_To_Be_received_from_owner_of_IRCFOOORG's_MyPassword%0a---%0a> doas crontab -e%0a> * * * * * /usr/local/libexec/project/checker_ngircd.sh > /dev/null 2>&1%0a276a287,299%0a> %0a> For the solution to work, you need to enable the use of pid files. Like this:%0a> [@%0a> PidFile = /var/run/ngircd/ngircd.pid%0a> @]%0a> %0a> Make sure to configure [[openbsd/hopm|hopm]].%0a> %0a> !! Related Software%0a> %0a> You will want to install, configure, and run [[openbsd/hopm|HOPM]] to block spammers. Eventually, IRCNow plans to use a fork of [[openbsd/acopm|ACOPM]].%0a> %0a> ngIRCd can be linked with [[https://github.com/ngircd/ngircd/blob/master/doc/Services.txt|services]]. The services currently used is anope but IRCNow plans to switch over to [[openbsd/achurch|achurch]].%0a\ No newline at end of file%0a -host:1604504607=38.81.163.7 -author:1604503920=jrmu -diff:1604503920:1604503822:=297c297%0a%3c You will want to install, configure, and run [[openbsd/hopm|HOPM]] to block spammers. Eventually, IRCNow plans to use a fork of [[openbsd/acopm|ACOPM]].%0a---%0a> [[https://packages.alphachat.net/projects/ACOPM.git/plain/README.md|AlphaChat Open Proxy Monitor (ACOPM)]] can be configured for ''ngircd''. [[openbsd:irc:acopm|Click here to read more about it]].%0a -host:1604503920=38.81.163.7 -author:1604503822=jrmu -diff:1604503822:1604503580:=64,65d63%0a%3c Check ''/var/log/messages'' to see if it is also listening on ports ''6697'' and ''9999''. Then connect to those ports via your IRC client to verify that SSL does work as intended.%0a%3c %0a160a159,161%0a> %0a> You can also choose to have this ''pw'' command whenever you login, by putting it inside your ''.%3cshell>rc'', where ''%3cshell>'' implies the shell you are currently using, by default on OpenBSD, it is ''ksh'' and therefore it would be ''.kshrc''.%0a> %0a244,245c245,246%0a%3c ''Optional'': If you want to have a DHFile,%0a%3c %0a---%0a> ''Optional'': If you want have a DHFile,%0a> %0a248c249%0a%3c $ doas chown _ngircd:_ngircd /etc/ngircd/dhparams.pem%0a---%0a> $ doas cp /etc/ngircd/dhparams.pem /var/ngircd/etc/ngircd%0a250,251c251,253%0a%3c %0a%3c Then, uncomment @@DHFile = /etc/ngircd/dhparams.pem@@ in /etc/ngircd/ngircd.conf.%0a---%0a> Then once you have generated that file. Make sure you uncomment it in your ''ngircd.conf''%0a> %0a> Save, and reload/restart your ''ngircd''. Check ''/var/log/messages'' to see if it is also listening on ports ''6697'' and ''9999''. Then connect to those ports via your IRC client to verify that SSL does work as intended.%0a -host:1604503822=38.81.163.7 -author:1604503580=jrmu -diff:1604503580:1604503263:=90c90,99%0a%3c MaxNickLength must be the same on all servers on a network. On IRCNow, MaxNickLength = 16.%0a---%0a> ===== Linking (Peering) =====%0a> ==== MaxNickLength ====%0a> There's a few gotchas with linking multiple ''ngircd'' servers. First and foremost, ensure that all your ''ngircd.conf'' has ''MaxNickLength'' set to a specific value.%0a> [@%0a> # Maximum length of an user nickname (Default: 9, as in RFC 2812).%0a> # Please note that all servers in an IRC network MUST use the same%0a> # maximum nickname length!%0a> ;MaxNickLength = 9%0a> @]%0a> **If one or more servers has a value that isn't 9 and/or that field is commented out, you will not be able to link up with that server.** So please ascertain what value to set **prior** to linking.%0a -host:1604503580=38.81.163.7 -author:1604503263=jrmu -diff:1604503263:1604503059:=41,44c41%0a%3c !! Debug%0a%3c %0a%3c To test your configuration:%0a%3c %0a---%0a> You will then need to create missing directories within your ''ChrootDir''. Assuming you are using the defaults, for which ''ChrootDir'' is ''/var/ngircd'', you will need to create the following base layout,%0a46c43,47%0a%3c $ doas ngircd -t%0a---%0a> /var%0a> /var/ngircd%0a> /var/ngircd/etc%0a> /var/ngircd/etc/ngircd%0a> /var/ngircd/etc/ngircd.conf%0a48,50c49,51%0a%3c %0a%3c To run ngircd in debug mode:%0a%3c %0a---%0a> ''man 7 hier'' to get an understanding of how the filesystem is laid out.%0a> %0a> This means you will need to create parent directories leading up to ''/var/ngircd/etc/ngircd/ngircd.conf'',%0a52c53%0a%3c $ doas ngircd -n%0a---%0a> $ doas mkdir -p /var/ngircd/etc/ngircd%0a55,56c56%0a%3c To start ngircd:%0a%3c %0a---%0a> Copy the ''ngircd.conf'' from ''/etc/ngircd'' into ''/var/ngircd/etc/ngircd'',%0a58,59c58%0a%3c doas rcctl enable ngircd%0a%3c doas rcctl start ngircd%0a---%0a> $ doas cp /etc/ngircd/ngircd.conf /var/ngircd/etc/ngircd%0a62,69c61%0a%3c OpenBSD uses [[https://www.openbsd.org/faq/faq10.html#rc|rcctl]] to control how system daemons are run.%0a%3c %0a%3c Now, connect to ngircd using your IRC client. Use the OPER command to log in as operator.%0a%3c %0a%3c !! Reloading and Restarting ngIRCd%0a%3c %0a%3c To reload the configuration file, you can:%0a%3c %0a---%0a> Make sure the path to ''/var/ngircd/etc/ngircd'' has the correct permissions. The following sets permissions as ''drwxrw-rw'', ''man chmod'' if in doubt,%0a71c63%0a%3c $ doas rcctl reload ngircd%0a---%0a> $ find /var/ngircd -type d -exec doas chmod 755 '{}' \;%0a74,75c66,100%0a%3c or:%0a%3c %0a---%0a> Make sure any of the files within ''/var/ngircd'' does not have others/world read/write/execute capability. You currently only have one file within it anyway,%0a> [@%0a> $ find /var/ngircd -type f -exec doas chmod 640 '{}' \;%0a> @]%0a> %0a> You should now be able to execute either ''doas rcctl reload ngircd'' or ''/quote rehash'' from either the console or your IRC client respectively.%0a> %0a> !! Debug%0a> %0a> To test your configuration:%0a> %0a> [@%0a> $ doas ngircd -t%0a> @]%0a> %0a> To run ngircd in debug mode:%0a> %0a> [@%0a> $ doas ngircd -n%0a> @]%0a> %0a> To start ngircd:%0a> %0a> [@%0a> doas rcctl enable ngircd%0a> doas rcctl start ngircd%0a> @]%0a> %0a> OpenBSD uses [[https://www.openbsd.org/faq/faq10.html#rc|rcctl]] to control how system daemons are run.%0a> %0a> Now, connect to ngircd using your IRC client. Use the OPER command to log in as operator.%0a> %0a> !! Reloading and Restarting ngIRCd%0a> %0a> To reload the configuration file, run:%0a -host:1604503263=38.81.163.7 -author:1604503059=jrmu -diff:1604503059:1604502251:=267,268c267,268%0a%3c In /etc/ngircd/ngircd.conf, change the following lines in the [SSL] block:%0a%3c %0a---%0a> ==== Configuration ====%0a> In your ''ngircd.conf'', you will need to have the following,%0a269a270,274%0a> [SSL]%0a> # SSL-related configuration options. Please note that this section%0a> # is only available when ngIRCd is compiled with support for SSL!%0a> # So don't forget to remove the ";" above if this is the case ...%0a> %0a272c277,289%0a%3c ...%0a---%0a> %0a> # Select cipher suites allowed for SSL/TLS connections. This defaults%0a> # to HIGH:!aNULL:@STRENGTH (OpenSSL) or SECURE128 (GnuTLS).%0a> # See 'man 1ssl ciphers' (OpenSSL) or 'man 3 gnutls_priority_init'%0a> # (GnuTLS) for details.%0a> # For OpenSSL:%0a> CipherList = HIGH:!aNULL:@STRENGTH:!SSLv3%0a> # For GnuTLS:%0a> ;CipherList = SECURE128:-VERS-SSL3.0%0a> %0a> # Diffie-Hellman parameters%0a> ;DHFile = /etc/ngircd/dhparams.pem%0a> %0a275c292,295%0a%3c ...%0a---%0a> %0a> # password to decrypt SSLKeyFile (OpenSSL only)%0a> ;KeyFilePassword = secret%0a> %0a277c297%0a%3c Ports = 6697, 9999, 16697%0a---%0a> Ports = 6697, 9999%0a280,281c300,302%0a%3c ''Optional'': If you want have a DHFile,%0a%3c %0a---%0a> Notice how I,%0a> * Left the ''CipherList'' under the words ''For GnuTLS'' as-is, without uncommenting it? We're not using GnuTLS as OpenBSD does not include that by default.%0a> * Left ''DHFile'' commented out? This is **unnecessary**, however, if you feel you must have a DHFile set, you can do,%0a -host:1604503059=38.81.163.7 -author:1604502251=jrmu -diff:1604502251:1604502186:= -host:1604502251=38.81.163.7 -author:1604502186=jrmu -diff:1604502186:1604501312:=246,247c246,247%0a%3c Once you have finished configuring /etc/ngircd/ngircd.conf, you can copy the files into the chroot:%0a%3c %0a---%0a> Once you have %0a> %0a249,253c249%0a%3c $ doas mkdir /var/ngircd/etc/%0a%3c $ doas cp -R /etc/ngircd /var/ngircd/etc/%0a%3c $ doas chown -R _ngircd:_ngircd /var/ngircd/%0a%3c $ doas rm -r /etc/ngircd%0a%3c $ doas ln -s /var/ngircd/etc/ngircd /etc/ngircd%0a---%0a> $ doas cp -R /etc/ngircd /var/ngircd/%0a255,256d250%0a%3c %0a%3c This will create a symlink so that only one set of configuration files needs to be maintained inside and outside of the chroot. Otherwise, ngircd will require two sets of configuration files, one inside and the other outside of the chroot.%0a -host:1604502186=38.81.163.7 -author:1604501312=jrmu -diff:1604501312:1604500973:=115a116,119%0a> !! Enable SSL%0a> %0a> Use [[openbsd/acme-client|acme-client]] to get an SSL certificate signed by Let's Encrypt.%0a> %0a246,247c250,253%0a%3c Once you have %0a%3c %0a---%0a> ==== Pre-configuration ====%0a> Copy the necessary certificates into both your ''/etc/ngircd'' directory and your chrooted ''ngircd'' directory. Chrooted ''ngircd'' directory by default is ''/var/ngircd'' but can be altered. If you have a custom chroot directory, you will need to copy the certificates there.%0a> %0a> Assuming you got your certificates from Let's Encrypt via following the aforementioned [[https://ircnow.org/kb/doku.php?id=openbsd:acme-client|acme-client]] guide,%0a249c255,256%0a%3c $ doas cp -R /etc/ngircd /var/ngircd/%0a---%0a> $ doas cp /etc/ssl/example.com.fullchain.pem /etc/ngircd%0a> $ doas cp /etc/ssl/private/example.com.key /etc/ngircd%0a252,255c259%0a%3c !! SSL%0a%3c %0a%3c Use [[openbsd/acme-client|acme-client]] to get an SSL certificate signed by Let's Encrypt.%0a%3c %0a---%0a> The same with your chrooted ''ngircd''. Again assuming defaults,%0a257,258c261,262%0a%3c $ doas cp /etc/ssl/example.com.fullchain.pem /etc/ngircd/%0a%3c $ doas cp /etc/ssl/private/example.com.key /etc/ngircd/%0a---%0a> $ doas cp /etc/ssl/example.com.fullchain.pem /var/ngircd/etc/ngircd%0a> $ doas cp /etc/ssl/private/example.com.key /var/ngircd/etc/ngircd%0a259a264,265%0a> %0a> Note: if /var/ngircd/etc/ doesn't exist, you can create it.%0a -host:1604501312=38.81.163.7 -author:1604500973=jrmu -diff:1604500973:1604500528:=233,234c233,241%0a%3c In the server block, for Host, it is better to use a [[openbsd/dns|symbolic hostname]] (don't use an IP address).%0a%3c %0a---%0a> ==== Fancy IRC domain names ====%0a> If you or other ''ngircd'' owners chooses to use a domain name that resolves to a different IP, say ''irc.freenode.net'', you **must** set ''Host'' parameter, which points to their actual ''ngircd'''s [[https://en.wikipedia.org/wiki/Fully_qualified_domain_name|Fully Qualified Domain Name (FQDN)]] ''or'' their ''ngircd'''s IP address. I personally **do not** condone the notion of using FQDN that does not belong to you, as the consequences of going public with the named servers //can// potentially end up in lawsuits, for falsely misrepresenting a domain name.%0a> %0a> Let's use the prior example with the ''[Server]'' block. This time we assume,%0a> * ''irc.bar.org'' is owned by another operator, and%0a> * the owner of ''irc.bar.org'' wants to use ''irc.freenode.net'',%0a> * the owner has indicated under their ''Name'' key, under ''[Global]'' section is ''irc.freenode.net''%0a> %0a> You **should** try to check if it resolves,%0a236,241c243%0a%3c [Server]%0a%3c Name = irc.example.ircnow.org%0a%3c Host = irc.example.ircnow.org%0a%3c Port = 6667%0a%3c MyPassword = password12345%0a%3c PeerPassword = password12345%0a---%0a> $ host irc.freenode.net%0a244,256c246,275%0a%3c Notice that Host = irc.example.ircnow.org and not an IP address like 1.2.3.4. This makes it less work to configure when the other server changes its IP address.%0a%3c %0a%3c !! Chroot%0a%3c %0a%3c Make sure to [[openbsd/chroot|chroot]] ngircd.%0a%3c %0a%3c ==== Pre-configuration ====%0a%3c Copy the necessary certificates into both your ''/etc/ngircd'' directory and your chrooted ''ngircd'' directory. Chrooted ''ngircd'' directory by default is ''/var/ngircd'' but can be altered. If you have a custom chroot directory, you will need to copy the certificates there.%0a%3c %0a%3c Assuming you got your certificates from Let's Encrypt via following the aforementioned [[https://ircnow.org/kb/doku.php?id=openbsd:acme-client|acme-client]] guide,%0a%3c [@%0a%3c $ doas cp /etc/ssl/example.com.fullchain.pem /etc/ngircd%0a%3c $ doas cp /etc/ssl/private/example.com.key /etc/ngircd%0a---%0a> Regardless if it resolves or not, you need to confirm whether or not it points to their server's FQDN or their IP address. The owner of ''irc.foo.org'' needs to confirm the FQDN/IP address(es) for the owner of ''irc.freenode.net'' who is formerly the owner of ''irc.bar.org'', by asking the operator to perform the following,%0a> [@%0a> $ ifconfig | grep broadcast%0a> @]%0a> %0a> Note that it is the literal pipe character ''|'' , not the letter ''l'' in between ''ifconfig'' and ''grep''.%0a> %0a> If the IP address(es) irc.bar.org states does not match the output of ''irc.freenode.net'', or say for example ''host irc.freenode.net'' returns not found, you should then, decide to ask for their FQDN or the IP address to connect to. Now, there's two ways to go about on this, in terms of filling in the information. You can either choose to fill in (as owner of ''irc.foo.org''),%0a> %0a> [@%0a> [Server]%0a> Name = irc.freenode.net%0a> Host = irc.bar.org%0a> Port = 6667%0a> MyPassword = Jp5meaikMiRAKsbBy6G6%0a> PeerPassword = HpNSbcDbrTVQ3lkkqSfq%0a> @]%0a> %0a> See how ''Host = irc.bar.org'' is specified when the name they provided from within their config mentions ''irc.freenode.net''? This is one way. Assume that they give you the IP address to connect to on their server, and assume that the IP address is ''127.0.0.2'',%0a> %0a> [@%0a> [Server]%0a> Name = irc.freenode.net%0a> Host = 127.0.0.2%0a> Port = 6667%0a> MyPassword = Jp5meaikMiRAKsbBy6G6%0a> PeerPassword = HpNSbcDbrTVQ3lkkqSfq%0a> @]%0a> %0a> ''Host = 127.0.0.2'' is implied, instead of ''Host = irc.bar.org''. Specifying the IP address in the ''Host'' key is more //ideal// as it does not require ''ngircd'' to query the [[https://en.wikipedia.org/wiki/Domain_Name_System#Address_resolution_mechanism|Domain Name System (DNS)]] for the IP address of a given FQDN. As an added bonus, connections to the said server via IP address //persists// even when the domain name has expired or changed hands (and therefore resolves to different IP address).%0a -host:1604500973=38.81.163.7 -author:1604500528=jrmu -diff:1604500528:1604500249:=98,101c98,100%0a%3c !! Reloading and Restarting ngIRCd%0a%3c %0a%3c To reload the configuration file, run:%0a%3c %0a---%0a> ===== Linking (Peering) =====%0a> ==== MaxNickLength ====%0a> There's a few gotchas with linking multiple ''ngircd'' servers. First and foremost, ensure that all your ''ngircd.conf'' has ''MaxNickLength'' set to a specific value.%0a103c102,105%0a%3c $ doas pkill -HUP ngircd%0a---%0a> # Maximum length of an user nickname (Default: 9, as in RFC 2812).%0a> # Please note that all servers in an IRC network MUST use the same%0a> # maximum nickname length!%0a> ;MaxNickLength = 9%0a105,107c107,113%0a%3c %0a%3c To restart the ircd:%0a%3c %0a---%0a> **If one or more servers has a value that isn't 9 and/or that field is commented out, you will not be able to link up with that server.** So please ascertain what value to set **prior** to linking.%0a> %0a> ==== MyPassword and PeerPassword dilemma ====%0a> Another simpler catch involves the MyPassword and PeerPassword keys. Your MyPassword should be the password that you set for other servers/peers to connect to your server. On their (these other server/peer end), should be set as PeerPassword when connecting to you. However, when you are connecting to them you need to know their PeerPassword.%0a> %0a> === Example ngIRCd server configurations ===%0a> To illustrate what I mean is, say for example, you have two ''ngircd'' servers that you want to connect to each other. Let's say that the server "foo" has this configuration,%0a109c115,120%0a%3c $ doas rcctl restart ngircd%0a---%0a> [Global]%0a> Name = irc.foo.org%0a> Ports = 6667%0a> ...%0a> [Server]%0a> MyPassword = Jp5meaikMiRAKsbBy6G6%0a112,122c123%0a%3c '''WARNING''': '''Reloading''' a configuration file will '''not''' disconnect any active connections. However, '''restarting''' the ircd '''will''' disconnect all existing connections. So make sure to restart ngircd only when absolutely necessary.%0a%3c %0a%3c ''Note'': ngircd appears to have a bug where the ircd will crash if you reload the configuration file while a message is being sent. Be careful to avoid reloading configuration files when many users are chatting.%0a%3c %0a%3c !! Enable SSL%0a%3c %0a%3c Use [[openbsd/acme-client|acme-client]] to get an SSL certificate signed by Let's Encrypt.%0a%3c %0a%3c ===== Linking (Peering) =====%0a%3c ==== MaxNickLength ====%0a%3c There's a few gotchas with linking multiple ''ngircd'' servers. First and foremost, ensure that all your ''ngircd.conf'' has ''MaxNickLength'' set to a specific value.%0a---%0a> Server "bar" has the following configuration,%0a124,127c125,130%0a%3c # Maximum length of an user nickname (Default: 9, as in RFC 2812).%0a%3c # Please note that all servers in an IRC network MUST use the same%0a%3c # maximum nickname length!%0a%3c ;MaxNickLength = 9%0a---%0a> [Global]%0a> Name = irc.bar.org%0a> Ports = 6667%0a> ...%0a> [Server]%0a> MyPassword = HpNSbcDbrTVQ3lkkqSfq%0a129,135c132,133%0a%3c **If one or more servers has a value that isn't 9 and/or that field is commented out, you will not be able to link up with that server.** So please ascertain what value to set **prior** to linking.%0a%3c %0a%3c ==== MyPassword and PeerPassword dilemma ====%0a%3c Another simpler catch involves the MyPassword and PeerPassword keys. Your MyPassword should be the password that you set for other servers/peers to connect to your server. On their (these other server/peer end), should be set as PeerPassword when connecting to you. However, when you are connecting to them you need to know their PeerPassword.%0a%3c %0a%3c === Example ngIRCd server configurations ===%0a%3c To illustrate what I mean is, say for example, you have two ''ngircd'' servers that you want to connect to each other. Let's say that the server "foo" has this configuration,%0a---%0a> %0a> Under "[Server]" section (**not global section**), it should be added as the following for server "foo". Ideally, I would put it in a separate ''[Server]'' section, which would have the following,%0a137,140c135,145%0a%3c [Global]%0a%3c Name = irc.foo.org%0a%3c Ports = 6667%0a%3c ...%0a---%0a> # Define a (case insensitive) list of masks matching nicknames that%0a> # should be treated as IRC services when introduced via this remote%0a> # server, separated by commas (",").%0a> # REGULAR SERVERS DON'T NEED this parameter, so leave it empty%0a> # (which is the default).%0a> # When you are connecting IRC services which mask as a IRC server%0a> # and which use "virtual users" to communicate with, for example%0a> # "NickServ" and "ChanServ", you should set this parameter to%0a> # something like "*Serv" or "NickServ,ChanServ,XyzServ".%0a> ;ServiceMask = *Serv,Global%0a> %0a142c147,149%0a%3c MyPassword = Jp5meaikMiRAKsbBy6G6%0a---%0a> # More [Server] sections, if you like ...%0a> %0a> [Channel]%0a145c152%0a%3c Server "bar" has the following configuration,%0a---%0a> See ''# More [Server] sections, if you like ...''? I would replace that line with the following below,%0a147c154%0a%3c [Global]%0a---%0a> [Server]%0a149,152c156,159%0a%3c Ports = 6667%0a%3c ...%0a%3c [Server]%0a%3c MyPassword = HpNSbcDbrTVQ3lkkqSfq%0a---%0a> Host = irc.bar.org%0a> Port = 6667%0a> MyPassword = Jp5meaikMiRAKsbBy6G6%0a> PeerPassword = HpNSbcDbrTVQ3lkkqSfq%0a155c162%0a%3c Under "[Server]" section (**not global section**), it should be added as the following for server "foo". Ideally, I would put it in a separate ''[Server]'' section, which would have the following,%0a---%0a> Likewise under server "bar",%0a157,167d163%0a%3c # Define a (case insensitive) list of masks matching nicknames that%0a%3c # should be treated as IRC services when introduced via this remote%0a%3c # server, separated by commas (",").%0a%3c # REGULAR SERVERS DON'T NEED this parameter, so leave it empty%0a%3c # (which is the default).%0a%3c # When you are connecting IRC services which mask as a IRC server%0a%3c # and which use "virtual users" to communicate with, for example%0a%3c # "NickServ" and "ChanServ", you should set this parameter to%0a%3c # something like "*Serv" or "NickServ,ChanServ,XyzServ".%0a%3c ;ServiceMask = *Serv,Global%0a%3c %0a169,171c165,169%0a%3c # More [Server] sections, if you like ...%0a%3c %0a%3c [Channel]%0a---%0a> Name = irc.foo.org%0a> Host = irc.foo.org%0a> Port = 6667%0a> MyPassword = HpNSbcDbrTVQ3lkkqSfq%0a> PeerPassword = Jp5meaikMiRAKsbBy6G6%0a174c172,185%0a%3c See ''# More [Server] sections, if you like ...''? I would replace that line with the following below,%0a---%0a> === Password considerations ===%0a> %0a> [[openbsd/passwords|Password Management]]%0a> %0a> Keep in mind that ''MyPassword'' is used for linking with other servers. **It is stored in plaintext and has nothing to do with the server password specified under [Global] section, nor is it related to your [Operator] password!**. When other servers connects to you, they **need** to know **your** ''MyPassword'', in which they will then set it as their ''PeerPassword'' on their end. The same thing likewise when you need to peer with them, you **need** to know their ''MyPassword'' so that you can set it as **your** ''PeerPassword''.%0a> %0a> %0a> You can also choose to have this ''pw'' command whenever you login, by putting it inside your ''.%3cshell>rc'', where ''%3cshell>'' implies the shell you are currently using, by default on OpenBSD, it is ''ksh'' and therefore it would be ''.kshrc''.%0a> %0a> See how in the example above how ''irc.foo.org'' ''MyPassword'' is set as ''Jp5meaikMiRAKsbBy6G6'' but when linking with ''irc.bar.org'', whose ''MyPassword'' is set as ''HpNSbcDbrTVQ3lkkqSfq'', that ''irc.foo.org'' ''PeerPassword'' is therefore ''HpNSbcDbrTVQ3lkkqSfq'' for linking to ''irc.bar.org''? The same logic also applies in reverse for when ''irc.bar.org'' is to link up with ''irc.foo.org''.%0a> %0a> === Summing it up ===%0a> To sum it up in the prior example,%0a> Server ''irc.foo.org'' has the following for ''irc.bar.org'',%0a180,181c191,192%0a%3c MyPassword = Jp5meaikMiRAKsbBy6G6%0a%3c PeerPassword = HpNSbcDbrTVQ3lkkqSfq%0a---%0a> MyPassword = Password_To_Be_Set_On_IRCBARORG's_PeerPassword%0a> PeerPassword = Password_That_Is_To_Be_received_from_owner_of_IRCBARORG's_MyPassword%0a183,184c194%0a%3c %0a%3c Likewise under server "bar",%0a---%0a> and the same likewise, for ''irc.bar.org'' when linking to ''irc.foo.org'',%0a190,191c200,201%0a%3c MyPassword = HpNSbcDbrTVQ3lkkqSfq%0a%3c PeerPassword = Jp5meaikMiRAKsbBy6G6%0a---%0a> MyPassword = Password_To_Be_Set_On_IRCFOOORG's_PeerPassword%0a> PeerPassword = Password_That_Is_To_Be_received_from_owner_of_IRCFOOORG's_MyPassword%0a194,223d203%0a%3c Sysadmins should have proper [[openbsd/passwords|password management]].%0a%3c %0a%3c Keep in mind that ''MyPassword'' is used for linking with other servers. **It is stored in plaintext and has nothing to do with the server password specified under [Global] section, nor is it related to your [Operator] password!**. When other servers connects to you, they **need** to know **your** ''MyPassword'', in which they will then set it as their ''PeerPassword'' on their end. The same thing likewise when you need to peer with them, you **need** to know their ''MyPassword'' so that you can set it as **your** ''PeerPassword''.%0a%3c %0a%3c %0a%3c You can also choose to have this ''pw'' command whenever you login, by putting it inside your ''.%3cshell>rc'', where ''%3cshell>'' implies the shell you are currently using, by default on OpenBSD, it is ''ksh'' and therefore it would be ''.kshrc''.%0a%3c %0a%3c See how in the example above how ''irc.foo.org'' ''MyPassword'' is set as ''Jp5meaikMiRAKsbBy6G6'' but when linking with ''irc.bar.org'', whose ''MyPassword'' is set as ''HpNSbcDbrTVQ3lkkqSfq'', that ''irc.foo.org'' ''PeerPassword'' is therefore ''HpNSbcDbrTVQ3lkkqSfq'' for linking to ''irc.bar.org''? The same logic also applies in reverse for when ''irc.bar.org'' is to link up with ''irc.foo.org''.%0a%3c %0a%3c === Summing it up ===%0a%3c To sum it up in the prior example,%0a%3c Server ''irc.foo.org'' has the following for ''irc.bar.org'',%0a%3c [@%0a%3c [Server]%0a%3c Name = irc.bar.org%0a%3c Host = irc.bar.org%0a%3c Port = 6667%0a%3c MyPassword = Password_To_Be_Set_On_IRCBARORG's_PeerPassword%0a%3c PeerPassword = Password_That_Is_To_Be_received_from_owner_of_IRCBARORG's_MyPassword%0a%3c @]%0a%3c and the same likewise, for ''irc.bar.org'' when linking to ''irc.foo.org'',%0a%3c [@%0a%3c [Server]%0a%3c Name = irc.foo.org%0a%3c Host = irc.foo.org%0a%3c Port = 6667%0a%3c MyPassword = Password_To_Be_Set_On_IRCFOOORG's_PeerPassword%0a%3c PeerPassword = Password_That_Is_To_Be_received_from_owner_of_IRCFOOORG's_MyPassword%0a%3c @]%0a%3c %0a279a260,279%0a> %0a> To reload the configuration file, run:%0a> %0a> [@%0a> $ doas pkill -HUP ngircd%0a> @]%0a> %0a> To restart the ircd:%0a> %0a> [@%0a> $ doas rcctl restart ngircd%0a> @]%0a> %0a> '''WARNING''': '''Reloading''' a configuration file will '''not''' disconnect any active connections. However, '''restarting''' the ircd '''will''' disconnect all existing connections. So make sure to restart ngircd only when absolutely necessary.%0a> %0a> ''Note'': ngircd appears to have a bug where the ircd will crash if you reload the configuration file while a message is being sent. Be careful to avoid reloading configuration files when many users are chatting.%0a> %0a> !! Enable SSL%0a> %0a> Use [[openbsd/acme-client|acme-client]] to get an SSL certificate signed by Let's Encrypt.%0a -host:1604500528=38.81.163.7 -author:1604500249=jrmu -diff:1604500249:1604496192:=14,17d13%0a%3c !! Warnings%0a%3c %0a%3c ngIRCd v26 provided by OpenBSD 6.8 ports does not have ident support. You must eventually compile from source to get ident support, which is necessary on a production server.%0a%3c %0a384,385c380%0a%3c !! Related Software%0a%3c %0a---%0a> ===== ACOPM =====%0a388c383,388%0a%3c ngIRCd can be linked with [[https://github.com/ngircd/ngircd/blob/master/doc/Services.txt|services]]. The services currently used is anope but IRCNow plans to switch over to [[openbsd/achurch|achurch]].%0a\ No newline at end of file%0a---%0a> ===== IRC services =====%0a> You may wish to refer to [[https://github.com/ngircd/ngircd/blob/master/doc/Services.txt|this link]] for more information on hints with setting up IRC services for ''ngircd''.%0a> %0a> !! Warnings%0a> %0a> ngIRCd v26 provided by OpenBSD 6.8 ports does not have ident support. You must eventually compile from source to get ident support, which is necessary on a production server.%0a\ No newline at end of file%0a -host:1604500249=38.81.163.7 -author:1604496192=jrmu -diff:1604496192:1604496033:=386,388c386,395%0a%3c !! Warnings%0a%3c %0a%3c ngIRCd v26 provided by OpenBSD 6.8 ports does not have ident support. You must eventually compile from source to get ident support, which is necessary on a production server.%0a\ No newline at end of file%0a---%0a> ===== Caveats =====%0a> ngIRCd v25 provided by OpenBSD 6.6 via ports does not have the following compiled:%0a> * IDENT support,%0a> * PAM support%0a> ngIRCd without these compiled **can not** be enabled in ''/etc/ngircd/ngircd.conf''! %0a> %0a> IDENT support will be covered in [[openbsd:irc:ngircd:adv_topics|advanced topics]].%0a> %0a> ===== See also =====%0a> * [[openbsd:irc:ngircd:adv_topics|Advanced topics on ngIRCd]].%0a\ No newline at end of file%0a -host:1604496192=38.81.163.7 -author:1604496033=jrmu -diff:1604496033:1604495476:=169,171d168%0a%3c %0a%3c [[openbsd/passwords|Password Management]]%0a%3c %0a173a171,191%0a> Considering how the passwords for linking are revealed when linking, you //do not// need to generate by hand a password that is to either be shared amongst your peering server(s), or for every new peer server(s), that you need to arbitrarily give it a different password. According to [[https://www.reddit.com/r/openbsd/comments/a1fyd5/generating_a_pseudorandom_password_from_the/|this link (reddit)]], you can simply make the system generate a pseudo random password, which isn't dictionary based, and can be arbitrarily lengthened (or shortened) to however long you wish,%0a> [@%0a> $ alias pw="%3c/dev/random tr -cd [:alnum:] | fold -w 20 | head -1"%0a> @]%0a> %0a> This will generate a pseudo password of up to 21 characters long, whenever you type the command ''pw'',%0a> [@%0a> $ pw%0a> LwF33FVlnBbHLFlgA6pc%0a> @]%0a> %0a> If you want to lengthen or shorten the length of the password, in the ''fold -w 20'', replace ''20'' with whatever number you wish. Keep in mind that the number you specify, doesn't include the very first character. In other words, specifying ''fold -w 29'' instead of ''fold -w 20'',%0a> [@%0a> $ alias pw="%3c/dev/random tr -cd [:alnum:] | fold -w 29 | head -1"%0a> @]%0a> %0a> This will generate a pseudo password of up to 30 characters long,%0a> [@%0a> $ pw%0a> dtkqvMhZDxBs5OJYewWBlK1Gnqbpa%0a> @]%0a -host:1604496033=38.81.163.7 -author:1604495476=jrmu -diff:1604495476:1604495420:= -host:1604495476=38.81.163.7 -author:1604495420=jrmu -diff:1604495420:1604494868:=4a5%0a> %0a37c38,41%0a%3c You will then need to create missing directories within your ''ChrootDir''. Assuming you are using the defaults, for which ''ChrootDir'' is ''/var/ngircd'', you will need to create the following base layout,%0a---%0a> !! Debug%0a> %0a> To test your configuration:%0a> %0a39,43c43%0a%3c /var%0a%3c /var/ngircd%0a%3c /var/ngircd/etc%0a%3c /var/ngircd/etc/ngircd%0a%3c /var/ngircd/etc/ngircd.conf%0a---%0a> $ doas ngircd -t%0a45,47c45,47%0a%3c ''man 7 hier'' to get an understanding of how the filesystem is laid out.%0a%3c %0a%3c This means you will need to create parent directories leading up to ''/var/ngircd/etc/ngircd/ngircd.conf'',%0a---%0a> %0a> To run ngircd in debug mode:%0a> %0a49c49%0a%3c $ doas mkdir -p /var/ngircd/etc/ngircd%0a---%0a> $ doas ngircd -n%0a52c52,53%0a%3c Copy the ''ngircd.conf'' from ''/etc/ngircd'' into ''/var/ngircd/etc/ngircd'',%0a---%0a> To start ngircd:%0a> %0a54c55,56%0a%3c $ doas cp /etc/ngircd/ngircd.conf /var/ngircd/etc/ngircd%0a---%0a> doas rcctl enable ngircd%0a> doas rcctl start ngircd%0a57c59,65%0a%3c Make sure the path to ''/var/ngircd/etc/ngircd'' has the correct permissions. The following sets permissions as ''drwxrw-rw'', ''man chmod'' if in doubt,%0a---%0a> OpenBSD uses [[https://www.openbsd.org/faq/faq10.html#rc|rcctl]] to control how system daemons are run.%0a> %0a> Now, connect to ngircd using your IRC client. Use the OPER command to log in as operator.%0a> %0a> ===== Linking (Peering) =====%0a> ==== MaxNickLength ====%0a> There's a few gotchas with linking multiple ''ngircd'' servers. First and foremost, ensure that all your ''ngircd.conf'' has ''MaxNickLength'' set to a specific value.%0a59c67,70%0a%3c $ find /var/ngircd -type d -exec doas chmod 755 '{}' \;%0a---%0a> # Maximum length of an user nickname (Default: 9, as in RFC 2812).%0a> # Please note that all servers in an IRC network MUST use the same%0a> # maximum nickname length!%0a> ;MaxNickLength = 9%0a61,62c72,78%0a%3c %0a%3c Make sure any of the files within ''/var/ngircd'' does not have others/world read/write/execute capability. You currently only have one file within it anyway,%0a---%0a> **If one or more servers has a value that isn't 9 and/or that field is commented out, you will not be able to link up with that server.** So please ascertain what value to set **prior** to linking.%0a> %0a> ==== MyPassword and PeerPassword dilemma ====%0a> Another simpler catch involves the MyPassword and PeerPassword keys. Your MyPassword should be the password that you set for other servers/peers to connect to your server. On their (these other server/peer end), should be set as PeerPassword when connecting to you. However, when you are connecting to them you need to know their PeerPassword.%0a> %0a> === Example ngIRCd server configurations ===%0a> To illustrate what I mean is, say for example, you have two ''ngircd'' servers that you want to connect to each other. Let's say that the server "foo" has this configuration,%0a64c80,85%0a%3c $ find /var/ngircd -type f -exec doas chmod 640 '{}' \;%0a---%0a> [Global]%0a> Name = irc.foo.org%0a> Ports = 6667%0a> ...%0a> [Server]%0a> MyPassword = Jp5meaikMiRAKsbBy6G6%0a67,72c88%0a%3c You should now be able to execute either ''doas rcctl reload ngircd'' or ''/quote rehash'' from either the console or your IRC client respectively.%0a%3c %0a%3c !! Debug%0a%3c %0a%3c To test your configuration:%0a%3c %0a---%0a> Server "bar" has the following configuration,%0a74c90,95%0a%3c $ doas ngircd -t%0a---%0a> [Global]%0a> Name = irc.bar.org%0a> Ports = 6667%0a> ...%0a> [Server]%0a> MyPassword = HpNSbcDbrTVQ3lkkqSfq%0a77,78c98%0a%3c To run ngircd in debug mode:%0a%3c %0a---%0a> Under "[Server]" section (**not global section**), it should be added as the following for server "foo". Ideally, I would put it in a separate ''[Server]'' section, which would have the following,%0a80c100,114%0a%3c $ doas ngircd -n%0a---%0a> # Define a (case insensitive) list of masks matching nicknames that%0a> # should be treated as IRC services when introduced via this remote%0a> # server, separated by commas (",").%0a> # REGULAR SERVERS DON'T NEED this parameter, so leave it empty%0a> # (which is the default).%0a> # When you are connecting IRC services which mask as a IRC server%0a> # and which use "virtual users" to communicate with, for example%0a> # "NickServ" and "ChanServ", you should set this parameter to%0a> # something like "*Serv" or "NickServ,ChanServ,XyzServ".%0a> ;ServiceMask = *Serv,Global%0a> %0a> [Server]%0a> # More [Server] sections, if you like ...%0a> %0a> [Channel]%0a83,84c117%0a%3c To start ngircd:%0a%3c %0a---%0a> See ''# More [Server] sections, if you like ...''? I would replace that line with the following below,%0a86,87c119,124%0a%3c doas rcctl enable ngircd%0a%3c doas rcctl start ngircd%0a---%0a> [Server]%0a> Name = irc.bar.org%0a> Host = irc.bar.org%0a> Port = 6667%0a> MyPassword = Jp5meaikMiRAKsbBy6G6%0a> PeerPassword = HpNSbcDbrTVQ3lkkqSfq%0a90,96c127%0a%3c OpenBSD uses [[https://www.openbsd.org/faq/faq10.html#rc|rcctl]] to control how system daemons are run.%0a%3c %0a%3c Now, connect to ngircd using your IRC client. Use the OPER command to log in as operator.%0a%3c %0a%3c ===== Linking (Peering) =====%0a%3c ==== MaxNickLength ====%0a%3c There's a few gotchas with linking multiple ''ngircd'' servers. First and foremost, ensure that all your ''ngircd.conf'' has ''MaxNickLength'' set to a specific value.%0a---%0a> Likewise under server "bar",%0a98,101c129,134%0a%3c # Maximum length of an user nickname (Default: 9, as in RFC 2812).%0a%3c # Please note that all servers in an IRC network MUST use the same%0a%3c # maximum nickname length!%0a%3c ;MaxNickLength = 9%0a---%0a> [Server]%0a> Name = irc.foo.org%0a> Host = irc.foo.org%0a> Port = 6667%0a> MyPassword = HpNSbcDbrTVQ3lkkqSfq%0a> PeerPassword = Jp5meaikMiRAKsbBy6G6%0a103,109c136,140%0a%3c **If one or more servers has a value that isn't 9 and/or that field is commented out, you will not be able to link up with that server.** So please ascertain what value to set **prior** to linking.%0a%3c %0a%3c ==== MyPassword and PeerPassword dilemma ====%0a%3c Another simpler catch involves the MyPassword and PeerPassword keys. Your MyPassword should be the password that you set for other servers/peers to connect to your server. On their (these other server/peer end), should be set as PeerPassword when connecting to you. However, when you are connecting to them you need to know their PeerPassword.%0a%3c %0a%3c === Example ngIRCd server configurations ===%0a%3c To illustrate what I mean is, say for example, you have two ''ngircd'' servers that you want to connect to each other. Let's say that the server "foo" has this configuration,%0a---%0a> %0a> === Password considerations ===%0a> Keep in mind that ''MyPassword'' is used for linking with other servers. **It is stored in plaintext and has nothing to do with the server password specified under [Global] section, nor is it related to your [Operator] password!**. When other servers connects to you, they **need** to know **your** ''MyPassword'', in which they will then set it as their ''PeerPassword'' on their end. The same thing likewise when you need to peer with them, you **need** to know their ''MyPassword'' so that you can set it as **your** ''PeerPassword''.%0a> %0a> Considering how the passwords for linking are revealed when linking, you //do not// need to generate by hand a password that is to either be shared amongst your peering server(s), or for every new peer server(s), that you need to arbitrarily give it a different password. According to [[https://www.reddit.com/r/openbsd/comments/a1fyd5/generating_a_pseudorandom_password_from_the/|this link (reddit)]], you can simply make the system generate a pseudo random password, which isn't dictionary based, and can be arbitrarily lengthened (or shortened) to however long you wish,%0a111,116c142%0a%3c [Global]%0a%3c Name = irc.foo.org%0a%3c Ports = 6667%0a%3c ...%0a%3c [Server]%0a%3c MyPassword = Jp5meaikMiRAKsbBy6G6%0a---%0a> $ alias pw="%3c/dev/random tr -cd [:alnum:] | fold -w 20 | head -1"%0a119c145%0a%3c Server "bar" has the following configuration,%0a---%0a> This will generate a pseudo password of up to 21 characters long, whenever you type the command ''pw'',%0a121,126c147,148%0a%3c [Global]%0a%3c Name = irc.bar.org%0a%3c Ports = 6667%0a%3c ...%0a%3c [Server]%0a%3c MyPassword = HpNSbcDbrTVQ3lkkqSfq%0a---%0a> $ pw%0a> LwF33FVlnBbHLFlgA6pc%0a129c151%0a%3c Under "[Server]" section (**not global section**), it should be added as the following for server "foo". Ideally, I would put it in a separate ''[Server]'' section, which would have the following,%0a---%0a> If you want to lengthen or shorten the length of the password, in the ''fold -w 20'', replace ''20'' with whatever number you wish. Keep in mind that the number you specify, doesn't include the very first character. In other words, specifying ''fold -w 29'' instead of ''fold -w 20'',%0a131,145c153%0a%3c # Define a (case insensitive) list of masks matching nicknames that%0a%3c # should be treated as IRC services when introduced via this remote%0a%3c # server, separated by commas (",").%0a%3c # REGULAR SERVERS DON'T NEED this parameter, so leave it empty%0a%3c # (which is the default).%0a%3c # When you are connecting IRC services which mask as a IRC server%0a%3c # and which use "virtual users" to communicate with, for example%0a%3c # "NickServ" and "ChanServ", you should set this parameter to%0a%3c # something like "*Serv" or "NickServ,ChanServ,XyzServ".%0a%3c ;ServiceMask = *Serv,Global%0a%3c %0a%3c [Server]%0a%3c # More [Server] sections, if you like ...%0a%3c %0a%3c [Channel]%0a---%0a> $ alias pw="%3c/dev/random tr -cd [:alnum:] | fold -w 29 | head -1"%0a148c156%0a%3c See ''# More [Server] sections, if you like ...''? I would replace that line with the following below,%0a---%0a> This will generate a pseudo password of up to 30 characters long,%0a150,155c158,159%0a%3c [Server]%0a%3c Name = irc.bar.org%0a%3c Host = irc.bar.org%0a%3c Port = 6667%0a%3c MyPassword = Jp5meaikMiRAKsbBy6G6%0a%3c PeerPassword = HpNSbcDbrTVQ3lkkqSfq%0a---%0a> $ pw%0a> dtkqvMhZDxBs5OJYewWBlK1Gnqbpa%0a158c162,168%0a%3c Likewise under server "bar",%0a---%0a> You can also choose to have this ''pw'' command whenever you login, by putting it inside your ''.%3cshell>rc'', where ''%3cshell>'' implies the shell you are currently using, by default on OpenBSD, it is ''ksh'' and therefore it would be ''.kshrc''.%0a> %0a> See how in the example above how ''irc.foo.org'' ''MyPassword'' is set as ''Jp5meaikMiRAKsbBy6G6'' but when linking with ''irc.bar.org'', whose ''MyPassword'' is set as ''HpNSbcDbrTVQ3lkkqSfq'', that ''irc.foo.org'' ''PeerPassword'' is therefore ''HpNSbcDbrTVQ3lkkqSfq'' for linking to ''irc.bar.org''? The same logic also applies in reverse for when ''irc.bar.org'' is to link up with ''irc.foo.org''.%0a> %0a> === Summing it up ===%0a> To sum it up in the prior example,%0a> Server ''irc.foo.org'' has the following for ''irc.bar.org'',%0a161,162c171,172%0a%3c Name = irc.foo.org%0a%3c Host = irc.foo.org%0a---%0a> Name = irc.bar.org%0a> Host = irc.bar.org%0a164,165c174,175%0a%3c MyPassword = HpNSbcDbrTVQ3lkkqSfq%0a%3c PeerPassword = Jp5meaikMiRAKsbBy6G6%0a---%0a> MyPassword = Password_To_Be_Set_On_IRCBARORG's_PeerPassword%0a> PeerPassword = Password_That_Is_To_Be_received_from_owner_of_IRCBARORG's_MyPassword%0a167,171c177%0a%3c %0a%3c === Password considerations ===%0a%3c Keep in mind that ''MyPassword'' is used for linking with other servers. **It is stored in plaintext and has nothing to do with the server password specified under [Global] section, nor is it related to your [Operator] password!**. When other servers connects to you, they **need** to know **your** ''MyPassword'', in which they will then set it as their ''PeerPassword'' on their end. The same thing likewise when you need to peer with them, you **need** to know their ''MyPassword'' so that you can set it as **your** ''PeerPassword''.%0a%3c %0a%3c Considering how the passwords for linking are revealed when linking, you //do not// need to generate by hand a password that is to either be shared amongst your peering server(s), or for every new peer server(s), that you need to arbitrarily give it a different password. According to [[https://www.reddit.com/r/openbsd/comments/a1fyd5/generating_a_pseudorandom_password_from_the/|this link (reddit)]], you can simply make the system generate a pseudo random password, which isn't dictionary based, and can be arbitrarily lengthened (or shortened) to however long you wish,%0a---%0a> and the same likewise, for ''irc.bar.org'' when linking to ''irc.foo.org'',%0a173c179,184%0a%3c $ alias pw="%3c/dev/random tr -cd [:alnum:] | fold -w 20 | head -1"%0a---%0a> [Server]%0a> Name = irc.foo.org%0a> Host = irc.foo.org%0a> Port = 6667%0a> MyPassword = Password_To_Be_Set_On_IRCFOOORG's_PeerPassword%0a> PeerPassword = Password_That_Is_To_Be_received_from_owner_of_IRCFOOORG's_MyPassword%0a176c187,204%0a%3c This will generate a pseudo password of up to 21 characters long, whenever you type the command ''pw'',%0a---%0a> You replace the contents of,%0a> * ''Name'', ''Host'' and ''Port'', keeping in mind that ''[Server]'' needs to be explicitly implied in the ''/etc/ngircd/ngircd.conf'' or ''ngircd'' will not understand what to do with the following contents.%0a> %0a> The following should be very self explanatory, on the string that is to be replaced,%0a> * ''Password_To_Be_Set_On_IRCBARORG's_PeerPassword'',%0a> * ''Password_That_Is_To_Be_received_from_owner_of_IRCBARORG's_MyPassword'',%0a> * ''Password_To_Be_Set_On_IRCFOOORG's_PeerPassword'', and%0a> * ''Password_That_Is_To_Be_received_from_owner_of_IRCFOOORG's_MyPassword''%0a> %0a> ==== Fancy IRC domain names ====%0a> If you or other ''ngircd'' owners chooses to use a domain name that resolves to a different IP, say ''irc.freenode.net'', you **must** set ''Host'' parameter, which points to their actual ''ngircd'''s [[https://en.wikipedia.org/wiki/Fully_qualified_domain_name|Fully Qualified Domain Name (FQDN)]] ''or'' their ''ngircd'''s IP address. I personally **do not** condone the notion of using FQDN that does not belong to you, as the consequences of going public with the named servers //can// potentially end up in lawsuits, for falsely misrepresenting a domain name.%0a> %0a> Let's use the prior example with the ''[Server]'' block. This time we assume,%0a> * ''irc.bar.org'' is owned by another operator, and%0a> * the owner of ''irc.bar.org'' wants to use ''irc.freenode.net'',%0a> * the owner has indicated under their ''Name'' key, under ''[Global]'' section is ''irc.freenode.net''%0a> %0a> You **should** try to check if it resolves,%0a178,179c206%0a%3c $ pw%0a%3c LwF33FVlnBbHLFlgA6pc%0a---%0a> $ host irc.freenode.net%0a182c209%0a%3c If you want to lengthen or shorten the length of the password, in the ''fold -w 20'', replace ''20'' with whatever number you wish. Keep in mind that the number you specify, doesn't include the very first character. In other words, specifying ''fold -w 29'' instead of ''fold -w 20'',%0a---%0a> Regardless if it resolves or not, you need to confirm whether or not it points to their server's FQDN or their IP address. The owner of ''irc.foo.org'' needs to confirm the FQDN/IP address(es) for the owner of ''irc.freenode.net'' who is formerly the owner of ''irc.bar.org'', by asking the operator to perform the following,%0a184c211%0a%3c $ alias pw="%3c/dev/random tr -cd [:alnum:] | fold -w 29 | head -1"%0a---%0a> $ ifconfig | grep broadcast%0a187c214,217%0a%3c This will generate a pseudo password of up to 30 characters long,%0a---%0a> Note that it is the literal pipe character ''|'' , not the letter ''l'' in between ''ifconfig'' and ''grep''.%0a> %0a> If the IP address(es) irc.bar.org states does not match the output of ''irc.freenode.net'', or say for example ''host irc.freenode.net'' returns not found, you should then, decide to ask for their FQDN or the IP address to connect to. Now, there's two ways to go about on this, in terms of filling in the information. You can either choose to fill in (as owner of ''irc.foo.org''),%0a> %0a189,190c219,224%0a%3c $ pw%0a%3c dtkqvMhZDxBs5OJYewWBlK1Gnqbpa%0a---%0a> [Server]%0a> Name = irc.freenode.net%0a> Host = irc.bar.org%0a> Port = 6667%0a> MyPassword = Jp5meaikMiRAKsbBy6G6%0a> PeerPassword = HpNSbcDbrTVQ3lkkqSfq%0a193,199c227,228%0a%3c You can also choose to have this ''pw'' command whenever you login, by putting it inside your ''.%3cshell>rc'', where ''%3cshell>'' implies the shell you are currently using, by default on OpenBSD, it is ''ksh'' and therefore it would be ''.kshrc''.%0a%3c %0a%3c See how in the example above how ''irc.foo.org'' ''MyPassword'' is set as ''Jp5meaikMiRAKsbBy6G6'' but when linking with ''irc.bar.org'', whose ''MyPassword'' is set as ''HpNSbcDbrTVQ3lkkqSfq'', that ''irc.foo.org'' ''PeerPassword'' is therefore ''HpNSbcDbrTVQ3lkkqSfq'' for linking to ''irc.bar.org''? The same logic also applies in reverse for when ''irc.bar.org'' is to link up with ''irc.foo.org''.%0a%3c %0a%3c === Summing it up ===%0a%3c To sum it up in the prior example,%0a%3c Server ''irc.foo.org'' has the following for ''irc.bar.org'',%0a---%0a> See how ''Host = irc.bar.org'' is specified when the name they provided from within their config mentions ''irc.freenode.net''? This is one way. Assume that they give you the IP address to connect to on their server, and assume that the IP address is ''127.0.0.2'',%0a> %0a202,203c231,232%0a%3c Name = irc.bar.org%0a%3c Host = irc.bar.org%0a---%0a> Name = irc.freenode.net%0a> Host = 127.0.0.2%0a205,206c234,235%0a%3c MyPassword = Password_To_Be_Set_On_IRCBARORG's_PeerPassword%0a%3c PeerPassword = Password_That_Is_To_Be_received_from_owner_of_IRCBARORG's_MyPassword%0a---%0a> MyPassword = Jp5meaikMiRAKsbBy6G6%0a> PeerPassword = HpNSbcDbrTVQ3lkkqSfq%0a208c237,249%0a%3c and the same likewise, for ''irc.bar.org'' when linking to ''irc.foo.org'',%0a---%0a> %0a> ''Host = 127.0.0.2'' is implied, instead of ''Host = irc.bar.org''. Specifying the IP address in the ''Host'' key is more //ideal// as it does not require ''ngircd'' to query the [[https://en.wikipedia.org/wiki/Domain_Name_System#Address_resolution_mechanism|Domain Name System (DNS)]] for the IP address of a given FQDN. As an added bonus, connections to the said server via IP address //persists// even when the domain name has expired or changed hands (and therefore resolves to different IP address).%0a> %0a> ===== Chrooting =====%0a> ==== Why chroot ====%0a> You can simply reload your daemon without needing to restart it.%0a> %0a> Reloading your daemon makes it re-read any of the associated configuration files without restarting. In the case of ''ngircd'' the existing IRC connections/sessions you have active will be kept active.%0a> %0a> Restarting your daemon will also make it re-read any of the associated configuration files. **However**, it will also terminate any of your existing IRC connection/sessions.%0a> %0a> ==== Configuration ====%0a> There are three values that you will need to unset it as a key. These are (in ''ngircd.conf''),%0a210,215c251,273%0a%3c [Server]%0a%3c Name = irc.foo.org%0a%3c Host = irc.foo.org%0a%3c Port = 6667%0a%3c MyPassword = Password_To_Be_Set_On_IRCFOOORG's_PeerPassword%0a%3c PeerPassword = Password_That_Is_To_Be_received_from_owner_of_IRCFOOORG's_MyPassword%0a---%0a> [Global]%0a> ...%0a> # Group ID under which the ngIRCd should run; you can use the name%0a> # of the group or the numerical ID. ATTENTION: For this to work the%0a> # server must have been started with root privileges!%0a> ServerGID = _ngircd%0a> %0a> # User ID under which the server should run; you can use the name%0a> # of the user or the numerical ID. ATTENTION: For this to work the%0a> # server must have been started with root privileges! In addition,%0a> # the configuration and MOTD files must be readable by this user,%0a> # otherwise RESTART and REHASH won't work!%0a> ServerUID = _ngircd%0a> ...%0a> [Options]%0a> ...%0a> # A directory to chroot in when everything is initialized. It%0a> # doesn't need to be populated if ngIRCd is compiled as a static%0a> # binary. By default ngIRCd won't use the chroot() feature.%0a> # ATTENTION: For this to work the server must have been started%0a> # with root privileges!%0a> ChrootDir = /var/ngircd%0a> ...%0a218,235c276%0a%3c You replace the contents of,%0a%3c * ''Name'', ''Host'' and ''Port'', keeping in mind that ''[Server]'' needs to be explicitly implied in the ''/etc/ngircd/ngircd.conf'' or ''ngircd'' will not understand what to do with the following contents.%0a%3c %0a%3c The following should be very self explanatory, on the string that is to be replaced,%0a%3c * ''Password_To_Be_Set_On_IRCBARORG's_PeerPassword'',%0a%3c * ''Password_That_Is_To_Be_received_from_owner_of_IRCBARORG's_MyPassword'',%0a%3c * ''Password_To_Be_Set_On_IRCFOOORG's_PeerPassword'', and%0a%3c * ''Password_That_Is_To_Be_received_from_owner_of_IRCFOOORG's_MyPassword''%0a%3c %0a%3c ==== Fancy IRC domain names ====%0a%3c If you or other ''ngircd'' owners chooses to use a domain name that resolves to a different IP, say ''irc.freenode.net'', you **must** set ''Host'' parameter, which points to their actual ''ngircd'''s [[https://en.wikipedia.org/wiki/Fully_qualified_domain_name|Fully Qualified Domain Name (FQDN)]] ''or'' their ''ngircd'''s IP address. I personally **do not** condone the notion of using FQDN that does not belong to you, as the consequences of going public with the named servers //can// potentially end up in lawsuits, for falsely misrepresenting a domain name.%0a%3c %0a%3c Let's use the prior example with the ''[Server]'' block. This time we assume,%0a%3c * ''irc.bar.org'' is owned by another operator, and%0a%3c * the owner of ''irc.bar.org'' wants to use ''irc.freenode.net'',%0a%3c * the owner has indicated under their ''Name'' key, under ''[Global]'' section is ''irc.freenode.net''%0a%3c %0a%3c You **should** try to check if it resolves,%0a---%0a> You will then need to create missing directories within your ''ChrootDir''. Assuming you are using the defaults, for which ''ChrootDir'' is ''/var/ngircd'', you will need to create the following base layout,%0a237c278,282%0a%3c $ host irc.freenode.net%0a---%0a> /var%0a> /var/ngircd%0a> /var/ngircd/etc%0a> /var/ngircd/etc/ngircd%0a> /var/ngircd/etc/ngircd.conf%0a239,240c284,286%0a%3c %0a%3c Regardless if it resolves or not, you need to confirm whether or not it points to their server's FQDN or their IP address. The owner of ''irc.foo.org'' needs to confirm the FQDN/IP address(es) for the owner of ''irc.freenode.net'' who is formerly the owner of ''irc.bar.org'', by asking the operator to perform the following,%0a---%0a> ''man 7 hier'' to get an understanding of how the filesystem is laid out.%0a> %0a> This means you will need to create parent directories leading up to ''/var/ngircd/etc/ngircd/ngircd.conf'',%0a242c288%0a%3c $ ifconfig | grep broadcast%0a---%0a> $ doas mkdir -p /var/ngircd/etc/ngircd%0a245,248c291%0a%3c Note that it is the literal pipe character ''|'' , not the letter ''l'' in between ''ifconfig'' and ''grep''.%0a%3c %0a%3c If the IP address(es) irc.bar.org states does not match the output of ''irc.freenode.net'', or say for example ''host irc.freenode.net'' returns not found, you should then, decide to ask for their FQDN or the IP address to connect to. Now, there's two ways to go about on this, in terms of filling in the information. You can either choose to fill in (as owner of ''irc.foo.org''),%0a%3c %0a---%0a> Copy the ''ngircd.conf'' from ''/etc/ngircd'' into ''/var/ngircd/etc/ngircd'',%0a250,255c293%0a%3c [Server]%0a%3c Name = irc.freenode.net%0a%3c Host = irc.bar.org%0a%3c Port = 6667%0a%3c MyPassword = Jp5meaikMiRAKsbBy6G6%0a%3c PeerPassword = HpNSbcDbrTVQ3lkkqSfq%0a---%0a> $ doas cp /etc/ngircd/ngircd.conf /var/ngircd/etc/ngircd%0a258,259c296%0a%3c See how ''Host = irc.bar.org'' is specified when the name they provided from within their config mentions ''irc.freenode.net''? This is one way. Assume that they give you the IP address to connect to on their server, and assume that the IP address is ''127.0.0.2'',%0a%3c %0a---%0a> Make sure the path to ''/var/ngircd/etc/ngircd'' has the correct permissions. The following sets permissions as ''drwxrw-rw'', ''man chmod'' if in doubt,%0a261,266c298%0a%3c [Server]%0a%3c Name = irc.freenode.net%0a%3c Host = 127.0.0.2%0a%3c Port = 6667%0a%3c MyPassword = Jp5meaikMiRAKsbBy6G6%0a%3c PeerPassword = HpNSbcDbrTVQ3lkkqSfq%0a---%0a> $ find /var/ngircd -type d -exec doas chmod 755 '{}' \;%0a269,276c301%0a%3c ''Host = 127.0.0.2'' is implied, instead of ''Host = irc.bar.org''. Specifying the IP address in the ''Host'' key is more //ideal// as it does not require ''ngircd'' to query the [[https://en.wikipedia.org/wiki/Domain_Name_System#Address_resolution_mechanism|Domain Name System (DNS)]] for the IP address of a given FQDN. As an added bonus, connections to the said server via IP address //persists// even when the domain name has expired or changed hands (and therefore resolves to different IP address).%0a%3c %0a%3c !! Chroot%0a%3c %0a%3c Make sure to [[openbsd/chroot|chroot]] ngircd.%0a%3c %0a%3c To reload the configuration file, run:%0a%3c %0a---%0a> Make sure any of the files within ''/var/ngircd'' does not have others/world read/write/execute capability. You currently only have one file within it anyway,%0a278c303%0a%3c $ doas pkill -HUP ngircd%0a---%0a> $ find /var/ngircd -type f -exec doas chmod 640 '{}' \;%0a281,289c306%0a%3c To restart the ircd:%0a%3c %0a%3c [@%0a%3c $ doas rcctl restart ngircd%0a%3c @]%0a%3c %0a%3c '''WARNING''': '''Reloading''' a configuration file will '''not''' disconnect any active connections. However, '''restarting''' the ircd '''will''' disconnect all existing connections. So make sure to restart ngircd only when absolutely necessary.%0a%3c %0a%3c ''Note'': ngircd appears to have a bug where the ircd will crash if you reload the configuration file while a message is being sent. Be careful to avoid reloading configuration files when many users are chatting.%0a---%0a> You should now be able to execute either ''doas rcctl reload ngircd'' or ''/quote rehash'' from either the console or your IRC client respectively.%0a -host:1604495420=38.81.163.7 -author:1604494868=jrmu -diff:1604494868:1604494583:=33c33%0a%3c $ doas vi /etc/ngircd/ngircd.conf%0a---%0a> doas vi /etc/ngircd/ngircd.conf%0a43c43%0a%3c $ doas ngircd -t%0a---%0a> doas ngircd -t%0a46,47c46,47%0a%3c To run ngircd in debug mode:%0a%3c %0a---%0a> To start ngircd:%0a> %0a49c49,50%0a%3c $ doas ngircd -n%0a---%0a> doas rcctl enable ngircd%0a> doas rcctl start ngircd%0a52,58d52%0a%3c To start ngircd:%0a%3c %0a%3c [@%0a%3c doas rcctl enable ngircd%0a%3c doas rcctl start ngircd%0a%3c @]%0a%3c %0a61,62c55,56%0a%3c Now, connect to ngircd using your IRC client. Use the OPER command to log in as operator.%0a%3c %0a---%0a> Once all that is set, connect to your IRCd via your IRC client. Test to see if you can connect and can login as an IRC Operator.%0a> %0a308,310c302,304%0a%3c !! Enable SSL%0a%3c %0a%3c Use [[openbsd/acme-client|acme-client]] to get an SSL certificate signed by Let's Encrypt.%0a---%0a> ===== SSL via TLS =====%0a> ==== Pre-requisites ====%0a> * You have a certificate that you can use with ''ngircd''. If you do not have one, I **recommend** that you obtain a free certificate from Let's Encrypt, following [[https://ircnow.org/kb/doku.php?id=openbsd:acme-client|this guide]].%0a -host:1604494868=38.81.163.7 -author:1604494583=jrmu -diff:1604494583:1604494496:=407c407,408%0a%3c Make sure to configure [[openbsd/hopm|hopm]].%0a---%0a> ===== HOPM =====%0a> [[https://github.com/ircd-hybrid/hopm/blob/master/README|Hybrid Open Proxy Monitor (HOPM)]] can be configured for ''ngircd''. [[openbsd:irc:hopm|Click here to read more about it]].%0a -host:1604494583=38.81.163.7 -author:1604494496=jrmu -diff:1604494496:1604494333:=36,41c36,39%0a%3c **Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line%0a%3c %0a%3c !! Debug%0a%3c %0a%3c To test your configuration:%0a%3c %0a---%0a> ==== Configuration file ====%0a> **Any lines begins with either "#" or ";" in ''ngircd.conf'' are comments. The example configuration file has lots of these lines, make sure you un-comment it where needed**%0a> %0a> **Example**%0a43c41,42%0a%3c doas ngircd -t%0a---%0a> # This is a comment in ngircd.conf. ngircd will ignore this line.%0a> ;This is a also a comment in ngircd.conf. ngircd will ignore this line as well.%0a46,47c45,46%0a%3c To start ngircd:%0a%3c %0a---%0a> Example within ''ngircd.conf'',%0a> %0a49,50c48,57%0a%3c doas rcctl enable ngircd%0a%3c doas rcctl start ngircd%0a---%0a> [Global]%0a> # The [Global] section of this file is used to define the main%0a> # configuration of the server, like the server name and the ports%0a> # on which the server should be listening.%0a> # These settings depend on your personal preferences, so you should%0a> # make sure that they correspond to your installation and setup!%0a> %0a> # Server name in the IRC network, must contain at least one dot%0a> # (".") and be unique in the IRC network. Required!%0a> ;Name = irc.example.com%0a52,59c59,105%0a%3c %0a%3c OpenBSD uses [[https://www.openbsd.org/faq/faq10.html#rc|rcctl]] to control how system daemons are run.%0a%3c %0a%3c Once all that is set, connect to your IRCd via your IRC client. Test to see if you can connect and can login as an IRC Operator.%0a%3c %0a%3c ===== Linking (Peering) =====%0a%3c ==== MaxNickLength ====%0a%3c There's a few gotchas with linking multiple ''ngircd'' servers. First and foremost, ensure that all your ''ngircd.conf'' has ''MaxNickLength'' set to a specific value.%0a---%0a> This should really be,%0a> [@%0a> [Global]%0a> # The [Global] section of this file is used to define the main%0a> # configuration of the server, like the server name and the ports%0a> # on which the server should be listening.%0a> # These settings depend on your personal preferences, so you should%0a> # make sure that they correspond to your installation and setup!%0a> %0a> # Server name in the IRC network, must contain at least one dot%0a> # (".") and be unique in the IRC network. Required!%0a> Name = irc.acme.ircnow.org%0a> @]%0a> %0a> Note how:%0a> %0a> [@%0a> ;Name = irc.acme.ircnow.org%0a> @]%0a> %0a> Became:%0a> %0a> [@%0a> Name = irc.acme.ircnow.org%0a> @]%0a> %0a> You have now successfully turned from what was a comment into an actual parameter.%0a> %0a> You will need to uncomment and set any line that begins with semi-colon (;) character at the beginning of the line for any feature that you want. **Without removing that semi-colon that feature is either disabled or the defaults are used!**%0a> %0a> ===== Testing and running =====%0a> To save yourself the hassles of finding out why ''ngircd'' fails to start, it is advised that you make ''ngircd'' test your configuration,%0a> [@%0a> doas ngircd -t%0a> @]%0a> Any errors and such will be shown along with waiting for you to press enter to show the configuration, without the comments. Remember how I emphasised that both "#" and ";" are at the beginning of the line, indicates a comment? those will not be visible by ''ngircd''! instead they are ignored.%0a> %0a> Once you are happy with your configuration and that ''ngircd'' no longer is reporting errors and such, simply,%0a> [@%0a> doas rcctl start ngircd%0a> @]%0a> To start ''ngircd'', if you want to have it started whenever you reboot the machine, replace the words "start" with "enable", e.g.,%0a> [@%0a> doas rcctl enable ngircd%0a> @]%0a> %0a> Read [[https://www.openbsd.org/faq/faq10.html#rc|here]] on how to control system daemons such as using ''rcctl'' command above. %0a -host:1604494496=38.81.163.7 -author:1604494333=jrmu -diff:1604494333:1604494049:=33c33%0a%3c doas vi /etc/ngircd/ngircd.conf%0a---%0a> doas vim /etc/ngircd/ngircd.conf%0a34a35,42%0a> %0a> ''vim'' is not installed by default on OpenBSD! so you will need to install it before you can use it. In the previous example with installing ngircd, you just replace it with ''vim'', e.g.%0a> %0a> [@%0a> doas pkg_add vim%0a> @]%0a> %0a> **If your favourite text editor is not ''vim'', please do not simply just install ''vim''! Instead, replace ''vim'' with whatever text editor you are familiar with. If you are a novice to command line text editors, I suggest you to install/use ''nano'' or ''pico'' instead. Please also do ensure that you read up the relevant text editor documentation of your choice.**%0a -host:1604494333=38.81.163.7 -author:1604494049=jrmu -diff:1604494049:1602321545:=1,9c1,10%0a%3c Before you begin, read the official [[https://ngircd.barton.de/documentation.php.en|ngIRCd documentation]].%0a%3c %0a%3c If you are unfamiliar with [[https://www.openbsd.org/faq/faq15.html|OpenBSD's package system]], please read the FAQ first.%0a%3c %0a%3c %0a%3c !! Installation%0a%3c %0a%3c To install from packages:%0a%3c %0a---%0a> ===== Pre-requisites ======%0a> It is assumed the following:%0a> * You have already read the official [[https://ngircd.barton.de/documentation.php.en|ngIRCd documentation]]. This wiki page is **just a supplementary guide**%0a> * You already have configured ''[[openbsd:doas|doas]]''. If you have not configured ''doas'' and are running everything as root (user), you are asking for trouble!%0a> * You already have a text editor you prefer using. If you **do not** have a preference or have no idea about text editors. I personally suggest ''nano''%0a> * This guide will not help you understand how to use ''nano'' or ''vim'' or whatever other editors that you may fancy%0a> * You already know how to install packages on OpenBSD, if not [[https://www.openbsd.org/faq/faq15.html#PkgInstall|read here]].%0a> %0a> ===== Installation =====%0a> %0a15,16c16,17%0a%3c To build from source:%0a%3c %0a---%0a> If you want to build from source: %0a> %0a20,22c21%0a%3c $ doas pkg_add libiconv-1.16p0%0a%3c $ doas pkg_add libident-0.32p1%0a%3c $ doas pkg_add autoconf-2.69p3%0a---%0a> $ doas pkg_add autoconf-2.69p2%0a24c23,24%0a%3c $ ./autogen.sh%0a---%0a> $ doas pkg_add libident%0a> $ doas pkg_add libiconv%0a30c30,32%0a%3c !! Configuration%0a---%0a> ===== Configuration =====%0a> ==== Text editors ====%0a> Edit ''/etc/ngircd/ngircd.conf'' **with your favourite editor**, making sure to prefix doas at the beginning. For example, if your favourite editor is ''vim'', you would do,%0a -host:1604494049=38.81.163.7 -author:1602321545=jrmu -diff:1602321545:1597827205:=10,11c10%0a%3c %0a%3c [@%0a---%0a> %3ccode>%0a14,15c13,14%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a18c17%0a%3c [@%0a---%0a> %3ccode>%0a25c24,25%0a%3c $ ./configure --enable-ipv6 --with-openssl --with-ident=/usr/local/ --with-iconv=/usr/local/ --with-syslog --sysconfdir=/etc/ngircd/ --mandir=/usr/local/man/%0a---%0a> $ ./configure --enable-ipv6 --with-openssl --with-ident=/usr/local/ --with-iconv=/usr/loca%0a> l/ --with-syslog --sysconfdir=/etc/ngircd/ --mandir=/usr/local/man/%0a28,29c28,29%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a34c34%0a%3c [@%0a---%0a> %3ccode>%0a36,37c36,37%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a40c40%0a%3c [@%0a---%0a> %3ccode>%0a42,43c42,43%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a50c50%0a%3c [@%0a---%0a> %3ccode>%0a51a52,54%0a> %3c/code>%0a> %0a> %3ccode>%0a53,54c56,57%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a56,57c59%0a%3c %0a%3c [@%0a---%0a> %3ccode>%0a68c70%0a%3c @]%0a---%0a> %3c/code>%0a70c72%0a%3c [@%0a---%0a> %3ccode>%0a81,82c83,84%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a85c87%0a%3c [@%0a---%0a> %3ccode>%0a87,88c89,90%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a91c93%0a%3c [@%0a---%0a> %3ccode>%0a93,94c95,96%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a101c103%0a%3c [@%0a---%0a> %3ccode>%0a103c105%0a%3c @]%0a---%0a> %3c/code>%0a107c109%0a%3c [@%0a---%0a> %3ccode>%0a109c111%0a%3c @]%0a---%0a> %3c/code>%0a111c113%0a%3c [@%0a---%0a> %3ccode>%0a113,114c115,116%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a122c124%0a%3c [@%0a---%0a> %3ccode>%0a127c129%0a%3c @]%0a---%0a> %3c/code>%0a135c137%0a%3c [@%0a---%0a> %3ccode>%0a142,143c144,145%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a145c147%0a%3c [@%0a---%0a> %3ccode>%0a152,153c154,155%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a155c157%0a%3c [@%0a---%0a> %3ccode>%0a171,172c173,174%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a174c176%0a%3c [@%0a---%0a> %3ccode>%0a181,182c183,184%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a184c186%0a%3c [@%0a---%0a> %3ccode>%0a191,192c193,194%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a197c199%0a%3c [@%0a---%0a> %3ccode>%0a199,200c201,202%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a202c204%0a%3c [@%0a---%0a> %3ccode>%0a205,206c207,208%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a208c210%0a%3c [@%0a---%0a> %3ccode>%0a210,211c212,213%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a213c215%0a%3c [@%0a---%0a> %3ccode>%0a216,217c218,219%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a225c227%0a%3c [@%0a---%0a> %3ccode>%0a232c234%0a%3c @]%0a---%0a> %3c/code>%0a234c236%0a%3c [@%0a---%0a> %3ccode>%0a241,242c243,244%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a261c263%0a%3c [@%0a---%0a> %3ccode>%0a263,264c265,266%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a266c268%0a%3c [@%0a---%0a> %3ccode>%0a268,269c270,271%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a274c276%0a%3c [@%0a---%0a> %3ccode>%0a281,282c283,284%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a285c287%0a%3c [@%0a---%0a> %3ccode>%0a292,293c294,295%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a306c308%0a%3c [@%0a---%0a> %3ccode>%0a330,331c332,333%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a333c335%0a%3c [@%0a---%0a> %3ccode>%0a339c341%0a%3c @]%0a---%0a> %3c/code>%0a343c345%0a%3c [@%0a---%0a> %3ccode>%0a345,346c347,348%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a348c350%0a%3c [@%0a---%0a> %3ccode>%0a350,351c352,353%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a353c355%0a%3c [@%0a---%0a> %3ccode>%0a355,356c357,358%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a358c360%0a%3c [@%0a---%0a> %3ccode>%0a360,361c362,363%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a372c374%0a%3c [@%0a---%0a> %3ccode>%0a375,376c377,378%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a378c380%0a%3c [@%0a---%0a> %3ccode>%0a381,382c383,384%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a387c389%0a%3c [@%0a---%0a> %3ccode>%0a416,417c418,419%0a%3c @]%0a%3c %0a---%0a> %3c/code>%0a> %0a421c423%0a%3c [@%0a---%0a> %3ccode>%0a424c426%0a%3c @]%0a---%0a> %3c/code>%0a434,435c436%0a%3c %0a%3c [@%0a---%0a> [=%0a438,439c439,440%0a%3c @]%0a%3c %0a---%0a> =]%0a> %0a441,442c442%0a%3c %0a%3c [@%0a---%0a> [=%0a456,457c456,457%0a%3c @]%0a%3c %0a---%0a> =]%0a> %0a459c459%0a%3c [@%0a---%0a> [=%0a462,463c462,463%0a%3c @]%0a%3c %0a---%0a> =]%0a> %0a465c465%0a%3c [@%0a---%0a> [=%0a467c467%0a%3c @]%0a---%0a> =]%0a -host:1602321545=125.231.67.217 -author:1597827205=baytuch -diff:1597827205:1597288187:=430,467d429%0a%3c %0a%3c '''Autostart'''%0a%3c %0a%3c This solution automatically restarts the service if its work was terminated unexpectedly.%0a%3c %0a%3c Create an executable worker script%0a%3c [=%0a%3c doas touch /usr/local/libexec/project/checker_ngircd.sh%0a%3c doas chmod +x /usr/local/libexec/project/checker_ngircd.sh%0a%3c =]%0a%3c %0a%3c /usr/local/libexec/project/checker_ngircd.sh:%0a%3c [=%0a%3c #!/bin/sh%0a%3c %0a%3c SERVICE_NAME="ngircd"%0a%3c SERVICE_USER="_ngircd"%0a%3c SERVICE_PID="/var/ngircd/var/run/ngircd/ngircd.pid"%0a%3c %0a%3c if ! pgrep -u $SERVICE_USER -x "$SERVICE_NAME" > /dev/null%0a%3c then%0a%3c if [ -f $SERVICE_PID ]; then%0a%3c rm -f $SERVICE_PID%0a%3c rcctl -d start $SERVICE_NAME%0a%3c fi%0a%3c fi%0a%3c =]%0a%3c %0a%3c Add it to the operating system planner%0a%3c [=%0a%3c doas crontab -e%0a%3c * * * * * /usr/local/libexec/project/checker_ngircd.sh > /dev/null 2>&1%0a%3c =]%0a%3c %0a%3c For the solution to work, you need to enable the use of pid files. Like this:%0a%3c [=%0a%3c PidFile = /var/run/ngircd/ngircd.pid%0a%3c =]%0a -host:1597827205=91.228.147.58 -author:1597288187=searchsocial -diff:1597288187:1597288187:=1,449d0%0a%3c ===== Pre-requisites ======%0a%3c It is assumed the following:%0a%3c * You have already read the official [[https://ngircd.barton.de/documentation.php.en|ngIRCd documentation]]. This wiki page is **just a supplementary guide**%0a%3c * You already have configured ''[[openbsd:doas|doas]]''. If you have not configured ''doas'' and are running everything as root (user), you are asking for trouble!%0a%3c * You already have a text editor you prefer using. If you **do not** have a preference or have no idea about text editors. I personally suggest ''nano''%0a%3c * This guide will not help you understand how to use ''nano'' or ''vim'' or whatever other editors that you may fancy%0a%3c * You already know how to install packages on OpenBSD, if not [[https://www.openbsd.org/faq/faq15.html#PkgInstall|read here]].%0a%3c %0a%3c ===== Installation =====%0a%3c %3ccode>%0a%3c $ doas pkg_add ngircd%0a%3c $ doas cp /usr/local/share/examples/ngircd/sample-ngircd.conf /etc/ngircd/ngircd.conf%0a%3c %3c/code>%0a%3c %0a%3c If you want to build from source: %0a%3c %0a%3c %3ccode>%0a%3c $ doas pkg_add ngircd # this will provide files /etc/rc.d/ startup scripts%0a%3c $ export CFLAGS=-static%0a%3c $ doas pkg_add autoconf-2.69p2%0a%3c $ doas pkg_add automake-1.11.6p3%0a%3c $ doas pkg_add libident%0a%3c $ doas pkg_add libiconv%0a%3c $ ./configure --enable-ipv6 --with-openssl --with-ident=/usr/local/ --with-iconv=/usr/loca%0a%3c l/ --with-syslog --sysconfdir=/etc/ngircd/ --mandir=/usr/local/man/%0a%3c $ make%0a%3c $ doas make install%0a%3c %3c/code>%0a%3c %0a%3c ===== Configuration =====%0a%3c ==== Text editors ====%0a%3c Edit ''/etc/ngircd/ngircd.conf'' **with your favourite editor**, making sure to prefix doas at the beginning. For example, if your favourite editor is ''vim'', you would do,%0a%3c %0a%3c %3ccode>%0a%3c doas vim /etc/ngircd/ngircd.conf%0a%3c %3c/code>%0a%3c %0a%3c ''vim'' is not installed by default on OpenBSD! so you will need to install it before you can use it. In the previous example with installing ngircd, you just replace it with ''vim'', e.g.%0a%3c %0a%3c %3ccode>%0a%3c doas pkg_add vim%0a%3c %3c/code>%0a%3c %0a%3c **If your favourite text editor is not ''vim'', please do not simply just install ''vim''! Instead, replace ''vim'' with whatever text editor you are familiar with. If you are a novice to command line text editors, I suggest you to install/use ''nano'' or ''pico'' instead. Please also do ensure that you read up the relevant text editor documentation of your choice.**%0a%3c %0a%3c ==== Configuration file ====%0a%3c **Any lines begins with either "#" or ";" in ''ngircd.conf'' are comments. The example configuration file has lots of these lines, make sure you un-comment it where needed**%0a%3c %0a%3c **Example**%0a%3c %3ccode>%0a%3c # This is a comment in ngircd.conf. ngircd will ignore this line.%0a%3c %3c/code>%0a%3c %0a%3c %3ccode>%0a%3c ;This is a also a comment in ngircd.conf. ngircd will ignore this line as well.%0a%3c %3c/code>%0a%3c %0a%3c Example within ''ngircd.conf'',%0a%3c %3ccode>%0a%3c [Global]%0a%3c # The [Global] section of this file is used to define the main%0a%3c # configuration of the server, like the server name and the ports%0a%3c # on which the server should be listening.%0a%3c # These settings depend on your personal preferences, so you should%0a%3c # make sure that they correspond to your installation and setup!%0a%3c %0a%3c # Server name in the IRC network, must contain at least one dot%0a%3c # (".") and be unique in the IRC network. Required!%0a%3c ;Name = irc.example.com%0a%3c %3c/code>%0a%3c This should really be,%0a%3c %3ccode>%0a%3c [Global]%0a%3c # The [Global] section of this file is used to define the main%0a%3c # configuration of the server, like the server name and the ports%0a%3c # on which the server should be listening.%0a%3c # These settings depend on your personal preferences, so you should%0a%3c # make sure that they correspond to your installation and setup!%0a%3c %0a%3c # Server name in the IRC network, must contain at least one dot%0a%3c # (".") and be unique in the IRC network. Required!%0a%3c Name = irc.acme.ircnow.org%0a%3c %3c/code>%0a%3c %0a%3c Note how:%0a%3c %0a%3c %3ccode>%0a%3c ;Name = irc.acme.ircnow.org%0a%3c %3c/code>%0a%3c %0a%3c Became:%0a%3c %0a%3c %3ccode>%0a%3c Name = irc.acme.ircnow.org%0a%3c %3c/code>%0a%3c %0a%3c You have now successfully turned from what was a comment into an actual parameter.%0a%3c %0a%3c You will need to uncomment and set any line that begins with semi-colon (;) character at the beginning of the line for any feature that you want. **Without removing that semi-colon that feature is either disabled or the defaults are used!**%0a%3c %0a%3c ===== Testing and running =====%0a%3c To save yourself the hassles of finding out why ''ngircd'' fails to start, it is advised that you make ''ngircd'' test your configuration,%0a%3c %3ccode>%0a%3c doas ngircd -t%0a%3c %3c/code>%0a%3c Any errors and such will be shown along with waiting for you to press enter to show the configuration, without the comments. Remember how I emphasised that both "#" and ";" are at the beginning of the line, indicates a comment? those will not be visible by ''ngircd''! instead they are ignored.%0a%3c %0a%3c Once you are happy with your configuration and that ''ngircd'' no longer is reporting errors and such, simply,%0a%3c %3ccode>%0a%3c doas rcctl start ngircd%0a%3c %3c/code>%0a%3c To start ''ngircd'', if you want to have it started whenever you reboot the machine, replace the words "start" with "enable", e.g.,%0a%3c %3ccode>%0a%3c doas rcctl enable ngircd%0a%3c %3c/code>%0a%3c %0a%3c Read [[https://www.openbsd.org/faq/faq10.html#rc|here]] on how to control system daemons such as using ''rcctl'' command above. %0a%3c %0a%3c Once all that is set, connect to your IRCd via your IRC client. Test to see if you can connect and can login as an IRC Operator.%0a%3c %0a%3c ===== Linking (Peering) =====%0a%3c ==== MaxNickLength ====%0a%3c There's a few gotchas with linking multiple ''ngircd'' servers. First and foremost, ensure that all your ''ngircd.conf'' has ''MaxNickLength'' set to a specific value.%0a%3c %3ccode>%0a%3c # Maximum length of an user nickname (Default: 9, as in RFC 2812).%0a%3c # Please note that all servers in an IRC network MUST use the same%0a%3c # maximum nickname length!%0a%3c ;MaxNickLength = 9%0a%3c %3c/code>%0a%3c **If one or more servers has a value that isn't 9 and/or that field is commented out, you will not be able to link up with that server.** So please ascertain what value to set **prior** to linking.%0a%3c %0a%3c ==== MyPassword and PeerPassword dilemma ====%0a%3c Another simpler catch involves the MyPassword and PeerPassword keys. Your MyPassword should be the password that you set for other servers/peers to connect to your server. On their (these other server/peer end), should be set as PeerPassword when connecting to you. However, when you are connecting to them you need to know their PeerPassword.%0a%3c %0a%3c === Example ngIRCd server configurations ===%0a%3c To illustrate what I mean is, say for example, you have two ''ngircd'' servers that you want to connect to each other. Let's say that the server "foo" has this configuration,%0a%3c %3ccode>%0a%3c [Global]%0a%3c Name = irc.foo.org%0a%3c Ports = 6667%0a%3c ...%0a%3c [Server]%0a%3c MyPassword = Jp5meaikMiRAKsbBy6G6%0a%3c %3c/code>%0a%3c %0a%3c Server "bar" has the following configuration,%0a%3c %3ccode>%0a%3c [Global]%0a%3c Name = irc.bar.org%0a%3c Ports = 6667%0a%3c ...%0a%3c [Server]%0a%3c MyPassword = HpNSbcDbrTVQ3lkkqSfq%0a%3c %3c/code>%0a%3c %0a%3c Under "[Server]" section (**not global section**), it should be added as the following for server "foo". Ideally, I would put it in a separate ''[Server]'' section, which would have the following,%0a%3c %3ccode>%0a%3c # Define a (case insensitive) list of masks matching nicknames that%0a%3c # should be treated as IRC services when introduced via this remote%0a%3c # server, separated by commas (",").%0a%3c # REGULAR SERVERS DON'T NEED this parameter, so leave it empty%0a%3c # (which is the default).%0a%3c # When you are connecting IRC services which mask as a IRC server%0a%3c # and which use "virtual users" to communicate with, for example%0a%3c # "NickServ" and "ChanServ", you should set this parameter to%0a%3c # something like "*Serv" or "NickServ,ChanServ,XyzServ".%0a%3c ;ServiceMask = *Serv,Global%0a%3c %0a%3c [Server]%0a%3c # More [Server] sections, if you like ...%0a%3c %0a%3c [Channel]%0a%3c %3c/code>%0a%3c %0a%3c See ''# More [Server] sections, if you like ...''? I would replace that line with the following below,%0a%3c %3ccode>%0a%3c [Server]%0a%3c Name = irc.bar.org%0a%3c Host = irc.bar.org%0a%3c Port = 6667%0a%3c MyPassword = Jp5meaikMiRAKsbBy6G6%0a%3c PeerPassword = HpNSbcDbrTVQ3lkkqSfq%0a%3c %3c/code>%0a%3c %0a%3c Likewise under server "bar",%0a%3c %3ccode>%0a%3c [Server]%0a%3c Name = irc.foo.org%0a%3c Host = irc.foo.org%0a%3c Port = 6667%0a%3c MyPassword = HpNSbcDbrTVQ3lkkqSfq%0a%3c PeerPassword = Jp5meaikMiRAKsbBy6G6%0a%3c %3c/code>%0a%3c %0a%3c === Password considerations ===%0a%3c Keep in mind that ''MyPassword'' is used for linking with other servers. **It is stored in plaintext and has nothing to do with the server password specified under [Global] section, nor is it related to your [Operator] password!**. When other servers connects to you, they **need** to know **your** ''MyPassword'', in which they will then set it as their ''PeerPassword'' on their end. The same thing likewise when you need to peer with them, you **need** to know their ''MyPassword'' so that you can set it as **your** ''PeerPassword''.%0a%3c %0a%3c Considering how the passwords for linking are revealed when linking, you //do not// need to generate by hand a password that is to either be shared amongst your peering server(s), or for every new peer server(s), that you need to arbitrarily give it a different password. According to [[https://www.reddit.com/r/openbsd/comments/a1fyd5/generating_a_pseudorandom_password_from_the/|this link (reddit)]], you can simply make the system generate a pseudo random password, which isn't dictionary based, and can be arbitrarily lengthened (or shortened) to however long you wish,%0a%3c %3ccode>%0a%3c $ alias pw="%3c/dev/random tr -cd [:alnum:] | fold -w 20 | head -1"%0a%3c %3c/code>%0a%3c %0a%3c This will generate a pseudo password of up to 21 characters long, whenever you type the command ''pw'',%0a%3c %3ccode>%0a%3c $ pw%0a%3c LwF33FVlnBbHLFlgA6pc%0a%3c %3c/code>%0a%3c %0a%3c If you want to lengthen or shorten the length of the password, in the ''fold -w 20'', replace ''20'' with whatever number you wish. Keep in mind that the number you specify, doesn't include the very first character. In other words, specifying ''fold -w 29'' instead of ''fold -w 20'',%0a%3c %3ccode>%0a%3c $ alias pw="%3c/dev/random tr -cd [:alnum:] | fold -w 29 | head -1"%0a%3c %3c/code>%0a%3c %0a%3c This will generate a pseudo password of up to 30 characters long,%0a%3c %3ccode>%0a%3c $ pw%0a%3c dtkqvMhZDxBs5OJYewWBlK1Gnqbpa%0a%3c %3c/code>%0a%3c %0a%3c You can also choose to have this ''pw'' command whenever you login, by putting it inside your ''.%3cshell>rc'', where ''%3cshell>'' implies the shell you are currently using, by default on OpenBSD, it is ''ksh'' and therefore it would be ''.kshrc''.%0a%3c %0a%3c See how in the example above how ''irc.foo.org'' ''MyPassword'' is set as ''Jp5meaikMiRAKsbBy6G6'' but when linking with ''irc.bar.org'', whose ''MyPassword'' is set as ''HpNSbcDbrTVQ3lkkqSfq'', that ''irc.foo.org'' ''PeerPassword'' is therefore ''HpNSbcDbrTVQ3lkkqSfq'' for linking to ''irc.bar.org''? The same logic also applies in reverse for when ''irc.bar.org'' is to link up with ''irc.foo.org''.%0a%3c %0a%3c === Summing it up ===%0a%3c To sum it up in the prior example,%0a%3c Server ''irc.foo.org'' has the following for ''irc.bar.org'',%0a%3c %3ccode>%0a%3c [Server]%0a%3c Name = irc.bar.org%0a%3c Host = irc.bar.org%0a%3c Port = 6667%0a%3c MyPassword = Password_To_Be_Set_On_IRCBARORG's_PeerPassword%0a%3c PeerPassword = Password_That_Is_To_Be_received_from_owner_of_IRCBARORG's_MyPassword%0a%3c %3c/code>%0a%3c and the same likewise, for ''irc.bar.org'' when linking to ''irc.foo.org'',%0a%3c %3ccode>%0a%3c [Server]%0a%3c Name = irc.foo.org%0a%3c Host = irc.foo.org%0a%3c Port = 6667%0a%3c MyPassword = Password_To_Be_Set_On_IRCFOOORG's_PeerPassword%0a%3c PeerPassword = Password_That_Is_To_Be_received_from_owner_of_IRCFOOORG's_MyPassword%0a%3c %3c/code>%0a%3c %0a%3c You replace the contents of,%0a%3c * ''Name'', ''Host'' and ''Port'', keeping in mind that ''[Server]'' needs to be explicitly implied in the ''/etc/ngircd/ngircd.conf'' or ''ngircd'' will not understand what to do with the following contents.%0a%3c %0a%3c The following should be very self explanatory, on the string that is to be replaced,%0a%3c * ''Password_To_Be_Set_On_IRCBARORG's_PeerPassword'',%0a%3c * ''Password_That_Is_To_Be_received_from_owner_of_IRCBARORG's_MyPassword'',%0a%3c * ''Password_To_Be_Set_On_IRCFOOORG's_PeerPassword'', and%0a%3c * ''Password_That_Is_To_Be_received_from_owner_of_IRCFOOORG's_MyPassword''%0a%3c %0a%3c ==== Fancy IRC domain names ====%0a%3c If you or other ''ngircd'' owners chooses to use a domain name that resolves to a different IP, say ''irc.freenode.net'', you **must** set ''Host'' parameter, which points to their actual ''ngircd'''s [[https://en.wikipedia.org/wiki/Fully_qualified_domain_name|Fully Qualified Domain Name (FQDN)]] ''or'' their ''ngircd'''s IP address. I personally **do not** condone the notion of using FQDN that does not belong to you, as the consequences of going public with the named servers //can// potentially end up in lawsuits, for falsely misrepresenting a domain name.%0a%3c %0a%3c Let's use the prior example with the ''[Server]'' block. This time we assume,%0a%3c * ''irc.bar.org'' is owned by another operator, and%0a%3c * the owner of ''irc.bar.org'' wants to use ''irc.freenode.net'',%0a%3c * the owner has indicated under their ''Name'' key, under ''[Global]'' section is ''irc.freenode.net''%0a%3c %0a%3c You **should** try to check if it resolves,%0a%3c %3ccode>%0a%3c $ host irc.freenode.net%0a%3c %3c/code>%0a%3c %0a%3c Regardless if it resolves or not, you need to confirm whether or not it points to their server's FQDN or their IP address. The owner of ''irc.foo.org'' needs to confirm the FQDN/IP address(es) for the owner of ''irc.freenode.net'' who is formerly the owner of ''irc.bar.org'', by asking the operator to perform the following,%0a%3c %3ccode>%0a%3c $ ifconfig | grep broadcast%0a%3c %3c/code>%0a%3c %0a%3c Note that it is the literal pipe character ''|'' , not the letter ''l'' in between ''ifconfig'' and ''grep''.%0a%3c %0a%3c If the IP address(es) irc.bar.org states does not match the output of ''irc.freenode.net'', or say for example ''host irc.freenode.net'' returns not found, you should then, decide to ask for their FQDN or the IP address to connect to. Now, there's two ways to go about on this, in terms of filling in the information. You can either choose to fill in (as owner of ''irc.foo.org''),%0a%3c %0a%3c %3ccode>%0a%3c [Server]%0a%3c Name = irc.freenode.net%0a%3c Host = irc.bar.org%0a%3c Port = 6667%0a%3c MyPassword = Jp5meaikMiRAKsbBy6G6%0a%3c PeerPassword = HpNSbcDbrTVQ3lkkqSfq%0a%3c %3c/code>%0a%3c %0a%3c See how ''Host = irc.bar.org'' is specified when the name they provided from within their config mentions ''irc.freenode.net''? This is one way. Assume that they give you the IP address to connect to on their server, and assume that the IP address is ''127.0.0.2'',%0a%3c %0a%3c %3ccode>%0a%3c [Server]%0a%3c Name = irc.freenode.net%0a%3c Host = 127.0.0.2%0a%3c Port = 6667%0a%3c MyPassword = Jp5meaikMiRAKsbBy6G6%0a%3c PeerPassword = HpNSbcDbrTVQ3lkkqSfq%0a%3c %3c/code>%0a%3c %0a%3c ''Host = 127.0.0.2'' is implied, instead of ''Host = irc.bar.org''. Specifying the IP address in the ''Host'' key is more //ideal// as it does not require ''ngircd'' to query the [[https://en.wikipedia.org/wiki/Domain_Name_System#Address_resolution_mechanism|Domain Name System (DNS)]] for the IP address of a given FQDN. As an added bonus, connections to the said server via IP address //persists// even when the domain name has expired or changed hands (and therefore resolves to different IP address).%0a%3c %0a%3c ===== Chrooting =====%0a%3c ==== Why chroot ====%0a%3c You can simply reload your daemon without needing to restart it.%0a%3c %0a%3c Reloading your daemon makes it re-read any of the associated configuration files without restarting. In the case of ''ngircd'' the existing IRC connections/sessions you have active will be kept active.%0a%3c %0a%3c Restarting your daemon will also make it re-read any of the associated configuration files. **However**, it will also terminate any of your existing IRC connection/sessions.%0a%3c %0a%3c ==== Configuration ====%0a%3c There are three values that you will need to unset it as a key. These are (in ''ngircd.conf''),%0a%3c %3ccode>%0a%3c [Global]%0a%3c ...%0a%3c # Group ID under which the ngIRCd should run; you can use the name%0a%3c # of the group or the numerical ID. ATTENTION: For this to work the%0a%3c # server must have been started with root privileges!%0a%3c ServerGID = _ngircd%0a%3c %0a%3c # User ID under which the server should run; you can use the name%0a%3c # of the user or the numerical ID. ATTENTION: For this to work the%0a%3c # server must have been started with root privileges! In addition,%0a%3c # the configuration and MOTD files must be readable by this user,%0a%3c # otherwise RESTART and REHASH won't work!%0a%3c ServerUID = _ngircd%0a%3c ...%0a%3c [Options]%0a%3c ...%0a%3c # A directory to chroot in when everything is initialized. It%0a%3c # doesn't need to be populated if ngIRCd is compiled as a static%0a%3c # binary. By default ngIRCd won't use the chroot() feature.%0a%3c # ATTENTION: For this to work the server must have been started%0a%3c # with root privileges!%0a%3c ChrootDir = /var/ngircd%0a%3c ...%0a%3c %3c/code>%0a%3c %0a%3c You will then need to create missing directories within your ''ChrootDir''. Assuming you are using the defaults, for which ''ChrootDir'' is ''/var/ngircd'', you will need to create the following base layout,%0a%3c %3ccode>%0a%3c /var%0a%3c /var/ngircd%0a%3c /var/ngircd/etc%0a%3c /var/ngircd/etc/ngircd%0a%3c /var/ngircd/etc/ngircd.conf%0a%3c %3c/code>%0a%3c ''man 7 hier'' to get an understanding of how the filesystem is laid out.%0a%3c %0a%3c This means you will need to create parent directories leading up to ''/var/ngircd/etc/ngircd/ngircd.conf'',%0a%3c %3ccode>%0a%3c $ doas mkdir -p /var/ngircd/etc/ngircd%0a%3c %3c/code>%0a%3c %0a%3c Copy the ''ngircd.conf'' from ''/etc/ngircd'' into ''/var/ngircd/etc/ngircd'',%0a%3c %3ccode>%0a%3c $ doas cp /etc/ngircd/ngircd.conf /var/ngircd/etc/ngircd%0a%3c %3c/code>%0a%3c %0a%3c Make sure the path to ''/var/ngircd/etc/ngircd'' has the correct permissions. The following sets permissions as ''drwxrw-rw'', ''man chmod'' if in doubt,%0a%3c %3ccode>%0a%3c $ find /var/ngircd -type d -exec doas chmod 755 '{}' \;%0a%3c %3c/code>%0a%3c %0a%3c Make sure any of the files within ''/var/ngircd'' does not have others/world read/write/execute capability. You currently only have one file within it anyway,%0a%3c %3ccode>%0a%3c $ find /var/ngircd -type f -exec doas chmod 640 '{}' \;%0a%3c %3c/code>%0a%3c %0a%3c You should now be able to execute either ''doas rcctl reload ngircd'' or ''/quote rehash'' from either the console or your IRC client respectively.%0a%3c %0a%3c ===== SSL via TLS =====%0a%3c ==== Pre-requisites ====%0a%3c * You have a certificate that you can use with ''ngircd''. If you do not have one, I **recommend** that you obtain a free certificate from Let's Encrypt, following [[https://ircnow.org/kb/doku.php?id=openbsd:acme-client|this guide]].%0a%3c %0a%3c ==== Pre-configuration ====%0a%3c Copy the necessary certificates into both your ''/etc/ngircd'' directory and your chrooted ''ngircd'' directory. Chrooted ''ngircd'' directory by default is ''/var/ngircd'' but can be altered. If you have a custom chroot directory, you will need to copy the certificates there.%0a%3c %0a%3c Assuming you got your certificates from Let's Encrypt via following the aforementioned [[https://ircnow.org/kb/doku.php?id=openbsd:acme-client|acme-client]] guide,%0a%3c %3ccode>%0a%3c $ doas cp /etc/ssl/example.com.fullchain.pem /etc/ngircd%0a%3c $ doas cp /etc/ssl/private/example.com.key /etc/ngircd%0a%3c %3c/code>%0a%3c %0a%3c The same with your chrooted ''ngircd''. Again assuming defaults,%0a%3c %3ccode>%0a%3c $ doas cp /etc/ssl/example.com.fullchain.pem /var/ngircd/etc/ngircd%0a%3c $ doas cp /etc/ssl/private/example.com.key /var/ngircd/etc/ngircd%0a%3c %3c/code>%0a%3c %0a%3c Note: if /var/ngircd/etc/ doesn't exist, you can create it.%0a%3c %0a%3c ==== Configuration ====%0a%3c In your ''ngircd.conf'', you will need to have the following,%0a%3c %3ccode>%0a%3c [SSL]%0a%3c # SSL-related configuration options. Please note that this section%0a%3c # is only available when ngIRCd is compiled with support for SSL!%0a%3c # So don't forget to remove the ";" above if this is the case ...%0a%3c %0a%3c # SSL Server Key Certificate%0a%3c CertFile = /etc/ngircd/example.com.fullchain.pem%0a%3c %0a%3c # Select cipher suites allowed for SSL/TLS connections. This defaults%0a%3c # to HIGH:!aNULL:@STRENGTH (OpenSSL) or SECURE128 (GnuTLS).%0a%3c # See 'man 1ssl ciphers' (OpenSSL) or 'man 3 gnutls_priority_init'%0a%3c # (GnuTLS) for details.%0a%3c # For OpenSSL:%0a%3c CipherList = HIGH:!aNULL:@STRENGTH:!SSLv3%0a%3c # For GnuTLS:%0a%3c ;CipherList = SECURE128:-VERS-SSL3.0%0a%3c %0a%3c # Diffie-Hellman parameters%0a%3c ;DHFile = /etc/ngircd/dhparams.pem%0a%3c %0a%3c # SSL Server Key%0a%3c KeyFile = /etc/ngircd/example.com.key%0a%3c %0a%3c # password to decrypt SSLKeyFile (OpenSSL only)%0a%3c ;KeyFilePassword = secret%0a%3c %0a%3c # Additional Listen Ports that expect SSL/TLS encrypted connections%0a%3c Ports = 6697, 9999%0a%3c %3c/code>%0a%3c %0a%3c Notice how I,%0a%3c * Left the ''CipherList'' under the words ''For GnuTLS'' as-is, without uncommenting it? We're not using GnuTLS as OpenBSD does not include that by default.%0a%3c * Left ''DHFile'' commented out? This is **unnecessary**, however, if you feel you must have a DHFile set, you can do,%0a%3c %3ccode>%0a%3c $ doas openssl dhparam -out /etc/ngircd/dhparams.pem 2048%0a%3c $ doas cp /etc/ngircd/dhparams.pem /var/ngircd/etc/ngircd%0a%3c %3c/code>%0a%3c Then once you have generated that file. Make sure you uncomment it in your ''ngircd.conf''%0a%3c %0a%3c Save, and reload/restart your ''ngircd''. Check ''/var/log/messages'' to see if it is also listening on ports ''6697'' and ''9999''. Then connect to those ports via your IRC client to verify that SSL does work as intended.%0a%3c %0a%3c ===== HOPM =====%0a%3c [[https://github.com/ircd-hybrid/hopm/blob/master/README|Hybrid Open Proxy Monitor (HOPM)]] can be configured for ''ngircd''. [[openbsd:irc:hopm|Click here to read more about it]].%0a%3c %0a%3c ===== ACOPM =====%0a%3c [[https://packages.alphachat.net/projects/ACOPM.git/plain/README.md|AlphaChat Open Proxy Monitor (ACOPM)]] can be configured for ''ngircd''. [[openbsd:irc:acopm|Click here to read more about it]].%0a%3c %0a%3c ===== IRC services =====%0a%3c You may wish to refer to [[https://github.com/ngircd/ngircd/blob/master/doc/Services.txt|this link]] for more information on hints with setting up IRC services for ''ngircd''.%0a%3c %0a%3c ===== Caveats =====%0a%3c ngIRCd v25 provided by OpenBSD 6.6 via ports does not have the following compiled:%0a%3c * IDENT support,%0a%3c * PAM support%0a%3c ngIRCd without these compiled **can not** be enabled in ''/etc/ngircd/ngircd.conf''! %0a%3c %0a%3c IDENT support will be covered in [[openbsd:irc:ngircd:adv_topics|advanced topics]].%0a%3c %0a%3c ===== See also =====%0a%3c * [[openbsd:irc:ngircd:adv_topics|Advanced topics on ngIRCd]].%0a\ No newline at end of file%0a -host:1597288187=2600:1700:71b0:2420:aed5:64ff:fedd:25f +csum=Edit +ctime=1612974683 +host=2405:201:a40c:a132:4223:43ff:fec0:1a01 +name=Openbsd.Install +rev=121 +targets=Irc.Guide,IP.Myaddress,Ddos.Intro,Chroot.Intro,Netcat.Irc,Hopm.Install,Ngircd.Ssl,Password.Management,Dns.Vhost,Ngircd.Link,Syslogd.Configure,Openbsd.Rcctl,Anope.Install,Acopm.Install +text=(:title Ngircd Install Guide:)%0a%0aIn this guide, we'll setup [[https://ngircd.barton.de/documentation.php.en|ngircd]], a free, portable, lightweight IRC server.%0a%0a!!Overview%0a%0angircd is an [[Irc/Guide|IRC]] server. It helps IRC clients send messages to one another.%0a%0aAdvantages:%0a%0a# The source code is written in modern, portable C.%0a# The code compiles easily on all BSDs, Linux, and other platforms.%0a# The code is easy to fork to add new features such as spam filters%0a# The server has a very simple, easy-to-understand configuration%0a# Documentation is short and easy to understand%0a# The server is a clean implementation which was written from scratch%0a# The lead developer po||ux actively hangs out on the IRC server barton.ngircd.de on #ngircd%0a%0a!! Docs and references%0a%0aBefore installation, please consult:%0a%0a# The [[https://ngircd.barton.de/documentation.php.en|Official ngIRCd documentation]] %0a# After installation, see also /usr/local/share/doc/ngircd/ for local documentation%0a# Consult the man pages:%0a # @@$ man 5 ngircd.conf@@%0a # @@$ man 8 ngircd@@%0a%0a!! Installation%0a%0a!!! Installing from OpenBSD packages%0a%0a[@%0a$ doas pkg_add ngircd%0a@]%0a%0aCopy the sample configuration file:%0a%0a[@%0a$ doas cp /usr/local/share/examples/ngircd/sample-ngircd.conf /etc/ngircd/ngircd.conf%0a@]%0a%0angIRCd v26.1 provided by OpenBSD 7.1 ports does not have ident support. On a production server, ident support is essential, so we will need to compile from source (described below). You will want to do this after installing from packages, so that rc.d scripts are created automatically.%0a%0a!!! Building from source%0a%0a'''Note''': Before building from source, make sure you have ngircd package installed using the instructions from above.%0a%0aDownload the IRC server, extract the code, and build it:%0a%0a[@ %0a$ ftp https://ircnow.org/software/ircnowd.tgz%0a$ tar xvzf ircnowd.tgz%0a$ cd ircnowd/%0a$ sh build.sh %0a@]%0a%0a!! Configuring ngircd%0a%0aEdit @@/etc/ngircd/ngircd.conf@@ as root:%0a%0a'''Note''': Lines that begin with # or ; are comments and will be ignored. You will need to remove # or ; to uncomment.%0a%0aTypically, ";" precedes a line of code that has been commented, while a "#" precedes an actual note that should not be uncommented.%0a%0a!!! Global Block%0a%0a[@%0a[Global]%0a Name = irc.example.com%0a AdminInfo1 = Example Network%0a AdminInfo2 = Planet Earth%0a AdminEMail = admin@example.com%0a HelpFile = /usr/local/share/doc/ngircd/Commands.txt%0a Info = irc.example.com%0a@]%0a%0a* Name: Use your server's domain name.%0a* Info: Use your server's domain name.%0a%0a[@%0a Listen = 127.0.0.1,::1,192.168.1.1,2001:db8::%0a@]%0a%0aProvide every single IP address you want ngircd to listen on. This includes localhost (127.0.0.1 and ::1), and [[IP/Myaddress|our public IPv4 and IPv6 addresses]]. Keep 127.0.0.1 and ::1 untouched, but replace 192.168.1.1 and 2001:db8:: with your real public IPs. If you are hosting a public service, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily [[ddos/intro|DDoSed]] and using an unfiltered IP may get you nullrouted.%0a%0a'''Note''': if you do not uncomment this line, you will listen to all IPs by default, which is probably a mistake.%0a%0a[@%0a MotdFile = /etc/ngircd/ngircd.motd%0a ;MotdPhrase = "Hello world!"%0a Network = ExampleNet%0a ;Password = abc%0a@]%0a%0a* Network: Your network name; this usually contains no periods.%0a%0aKeep the MotdPhrase and Password commented out. First, we will be using a MotdFile instead. Secondly, we do not want a global password for a public server.%0a%0a[@%0a PidFile = /var/run/ngircd/ngircd.pid%0a@]%0a%0aThe Pid file is where ngircd writes its process ID.%0a%0a[@%0a Ports = 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 7000, 16667%0a ServerGID = _ngircd%0a ServerUID = _ngircd%0a@]%0a%0aIt's recommended to provide ports besides the standard 6667 to allow users to bypass network firewalls. %0a%0a'''NOTE''': Make sure to set the ServerUID and ServerGID to _ngircd. Otherwise, it runs as the user nobody by default.%0a%0a!!! Limits Block%0a%0a[@%0a[Limits]%0a MaxConnectionsIP = 0%0a MaxJoins = 300%0a MaxNickLength = 16%0a MaxListSize = 3000%0a PingTimeout = 300%0a PongTimeout = 300%0a@]%0a%0aWe allow unlimited connections per IP and handle abuse with other techniques.%0a%0aMaxNickLength: '''must''' be identical for all servers on the network. On IRCNow, MaxNickLength is [@16@].%0a%0a!!! Options Block%0a%0a[@%0a[Options]%0a AllowRemoteOper = yes%0a ChrootDir = /var/ngircd%0a ;CloakHost = %25x%0a CloakHostModeX = %25x%0a CloakHostSalt = abcdefghijklmnopqrstuvwxyz%0a DefaultUserModes = ix%0a DNS = yes%0a Ident = yes%0a@]%0a%0aWe will turn on AllowRemoteOpers so that GLINEs function properly.%0a%0aWe want to [[Chroot.Intro|chroot]] to /var/ngircd to prevent a security compromise. %0a%0aWe will cloak the host using a unique salt; contact another sysadmin for the exact salt. If not linking to another network, you can leave it commented to use a random salt each time it runs, or you can generate your own random salt.%0a%0aWe use CloakHostModeX so that users are cloaked when mode +x is set. Users can then turn off mode x in order to remove the cloak (to show a custom hostmask). If we had used CloakHost instead, uncloaking a user would not be possible.%0a%0aUser mode +i keeps the user invisible so that /whois does not show all channels a user has joined. This helps reduce stalking and harassment.%0a%0aWe want to perform DNS lookups when a client connects so that we can validate a user's hostmask. We also want to perform IDENT lookups.%0a%0a[@%0a NoticeBeforeRegistration = yes%0a OperCanUseMode = yes%0a OperChanPAutoOp = no %0a PAM = no%0a RequireAuthPing = yes%0a SyslogFacility = daemon%0a@]%0a%0aReceiving a notice before registration can help with debugging with [[netcat/irc|netcat]]. It is also necessary for [[hopm/install|hopm]].%0a%0aOperCanUseMode will allow opers the ability to use mode commands when needed. '''Opers should use this power sparingly''', generally only if the channel owner is unable to moderate his channel.%0a%0aOperChanPAutoOp should be set to no so that opers are not automatically op'd in every channel they join. Opers should not interfere with normal channel operation.%0a%0aSet PAM to no because enabling PAM on OpenBSD causes issues.%0a%0aWe set RequireAuthPing to yes because it may help reduce spam.%0a%0aWe're going to log using syslog (see below) to log events.%0a%0a!!! SSL block%0a%0a[@ %0a;[SSL]%0a@]%0a%0a'''This entire block should be commented'''. When you are ready to set up [[ngircd/ssl|SSL/TLS encryption]], un-comment the entire block.%0a%0a'''WARNING''': Do not send passwords or sensitive data over this server until SSL is set up.%0a%0a!!! Operator Block%0a%0aCreate one Operator block for each operator on the server:%0a%0a[@%0a[Operator]%0a Name = username%0a Password = password%0a ;Mask = *!ident@somewhere.example.com%0a@]%0a%0aPlease use a [[password/management|long, random string]] for your password.%0a%0aIf you uncomment Mask, your hostmask must match the operator hostmask in order for the /OPER command to work. If the hostmask differs by even a single character, then your /OPER command will be rejected. It's best to leave Mask commented out until you are familiar with ngircd.%0a%0aOnce your configuration is tested and stable, you can uncomment Mask and have it match your [[dns/vhost|vhost]]. However, please be aware that this will make it impossible to become IRC Operator if you connect from a different IP address.%0a%0a!!! Server Block%0a%0a[@%0a;[Server]%0a@]%0a%0aThe server block is used to connect to other servers to form a network. You can have multiple server blocks. For now, leave it commented out until you are ready to [[ngircd/link|link ngircd]].%0a%0aYou are now finished editing ngircd.conf, so we turn to edit other files.%0a%0a!! MOTD file%0a%0aCreate the Message of the Day in /etc/ngircd/ngircd.motd. Here is a suggested template:%0a%0a[@%0aIRCNow - The Users' Network%0a%0aIRCNow is the network of the user, by the user, for the user.%0a%0a * No porn / illegal drugs / threats of violence%0a * No slander / libel / gambling%0a * No spam, illegal cracking, or DDoS%0a * No copyright infrigement%0a%0aYou must agree to our terms of service and our privacy policy %0ato use this network:%0a%0ahttps://wiki.ircnow.org/index.php?n=Terms.Terms%0a%0aOnly 5 connections per IP address. If you need help, please speak with staff on #help.%0a@]%0a%0a!! Configuring [[syslogd/configure|syslog]]%0a%0aAll log messages from ngircd should go to [@ /var/log/ngircd.log @]. Insert these three lines starting at line 3 (at the top) in [@/etc/syslog.conf@]:%0a%0a[@%0a!!ngircd%0a*.* /var/log/ngircd.log%0a!*%0a@]%0a%0aThis directs all logs from ngircd to go straight to /var/log/ngircd.log.%0a%0aSyslogd expects all logfiles to already exist with the correct permissions. So, we will create the file /var/log/ngircd.log and restart syslogd:%0a%0a[@%0a$ doas touch /var/log/ngircd.log%0a$ doas rcctl restart syslogd%0a@]%0a%0a!! Chroot%0a%0aWe need to set up the [[chroot/intro|chroot]] for ngircd. Let's copy the files into the chroot:%0a%0a[@%0a$ doas mkdir /var/ngircd/etc/%0a$ doas cp /etc/resolv.conf /var/ngircd/etc/%0a$ doas cp -R /etc/ngircd /var/ngircd/etc/%0a$ doas chown -R _ngircd:_ngircd /var/ngircd/%0a$ doas rm -r /etc/ngircd%0a$ doas ln -s /var/ngircd/etc/ngircd /etc/ngircd%0a$ doas mkdir -p /var/ngircd/usr/local/share/doc/%0a$ doas cp -R /usr/local/share/doc/ngircd/ /var/ngircd/usr/local/share/doc/%0a$ doas chown -R _ngircd:_ngircd /var/ngircd/usr/local/share/doc/ngircd/%0a@]%0a%0aThis will create a symlink so that only one set of configuration files needs to be maintained inside and outside of the chroot. Otherwise, ngircd will require two sets of configuration files, one inside and the other outside of the chroot.%0a%0a!! Automation%0a%0aTo automatically restart ngIRCd if it was terminated unexpectedly, create a script in /usr/local/libexec/ngircd/restart.sh:%0a%0a[@%0a$ doas mkdir -p /usr/local/libexec/ngircd/%0a$ doas touch /usr/local/libexec/ngircd/restart.sh%0a$ doas chmod +x /usr/local/libexec/ngircd/restart.sh%0a@]%0a%0aEdit @@/usr/local/libexec/ngircd/restart.sh@@:%0a%0a[@%0a#!/bin/sh%0a%0aSERVICE_NAME="ngircd"%0aSERVICE_USER="_ngircd"%0aSERVICE_PID="/var/ngircd/var/run/ngircd/ngircd.pid"%0a%0aif ! pgrep -u $SERVICE_USER -x "$SERVICE_NAME" > /dev/null%0athen%0a if [ -f $SERVICE_PID ]; then%0a rm -f $SERVICE_PID%0a rcctl -d restart $SERVICE_NAME%0a fi%0afi%0a@]%0a%0aAdd this as a cronjob:%0a%0a[@%0a$ doas crontab -e%0a%0a*/5 * * * * /usr/local/libexec/ngircd/restart.sh > /dev/null 2>&1%0a@]%0a%0aFor the solution to work, make sure you have enabled the use of pid files in /etc/ngircd/ngircd.conf:%0a%0a[@%0aPidFile = /var/run/ngircd/ngircd.pid%0a@]%0a%0a!! Starting ngircd%0a%0aTo start ngircd via [[openbsd/rcctl|rcctl]]:%0a%0a[@%0adoas rcctl enable ngircd%0adoas rcctl start ngircd%0a@]%0a%0aNext, use your IRC client to connect to the server. Join a few channels and chat inside. You will need to invite your friends, since a new IRC server will have no other users on it.%0a%0a!! Troubleshooting%0a%0aIf you run into any errors, you can test to see if your configuration file has errors:%0a%0a[@%0a$ doas ngircd -t%0a@]%0a%0aTo run ngircd in debug mode:%0a%0a[@%0a$ doas ngircd -n%0a@]%0a%0aCheck [@ /var/log/ngircd.log @] to see if ngircd is listening on the correct IP addresses and ports. Connect to those ports using your IRC client to verify that the server is working as intended.%0a%0aRemember, if you are connecting using port 6667 without SSL, any eavesdropper can read all your text, including your passwords. '''Don't send any sensitive information until you have upgraded to [[ngircd/ssl|SSL]].'''%0a%0a!! Reloading and Restarting ngIRCd%0a%0aAfter you edit [@ /etc/ngircd/ngircd.conf @] for a running ngircd server, you will need to reload the configuration file:%0a%0a[@%0a$ doas rcctl reload ngircd%0a@]%0a%0aAlternatively, you can run:%0a%0a[@%0a$ doas pkill -HUP ngircd%0a@]%0a%0a'''Reloading''' a configuration file will '''not''' disconnect any active connections. So, try to reload the configuration where possible '''instead of restarting the service'''.%0a%0aTo restart the ircd:%0a%0a[@%0a$ doas rcctl restart ngircd%0a@]%0a%0a'''WARNING''': '''Restarting''' the ircd '''will''' disconnect all existing connections. So, try to restart ngircd only when absolutely necessary.%0a%0a'''WARNING''': ngircd appears to have a bug where the ircd will crash if you reload the configuration file while a message is being sent. Be careful to avoid reloading configuration files when many users are chatting.%0a%0a!! See Also%0a%0a# Configure [[ngircd/ssl|SSL]] for ngircd to ensure secure connections%0a# [[ngircd/link|Link your ngircd]] with another server to create a network%0a# Install [[anope/install|anope]] to provide services%0a# Configure [[hopm/install|hopm]], an open proxy monitor to stop spammers.%0a# Configure [[acopm/install|acopm]], a minimalist open proxy monitor to stop spammers.%0a +time=1667565713 +title=Ngircd Install Guide +author:1667565713=fossdev +csum:1667565713=Edit +diff:1667565713:1659546979:= +host:1667565713=2405:201:a40c:a132:4223:43ff:fec0:1a01 +author:1659546979=mkf +diff:1659546979:1659053857:=26,28c26,28%0a%3c # @@$ man 5 ngircd.conf@@%0a%3c # @@$ man 8 ngircd@@%0a%3c %0a---%0a> # $ man 5 ngircd.conf%0a> # $ man 8 ngircd%0a> %0a33,36c33,34%0a%3c [@%0a%3c $ doas pkg_add ngircd%0a%3c @]%0a%3c %0a---%0a> [@$ doas pkg_add ngircd @]%0a> %0a39,40c37%0a%3c [@%0a%3c $ doas cp /usr/local/share/examples/ngircd/sample-ngircd.conf /etc/ngircd/ngircd.conf%0a---%0a> [@$ doas cp /usr/local/share/examples/ngircd/sample-ngircd.conf /etc/ngircd/ngircd.conf%0a43,44c40,41%0a%3c ngIRCd v26.1 provided by OpenBSD 7.1 ports does not have ident support. On a production server, ident support is essential, so we will need to compile from source (described below). You will want to do this after installing from packages, so that rc.d scripts are created automatically.%0a%3c %0a---%0a> ngIRCd v26.1 provided by OpenBSD 7.0 ports does not have ident support. On a production server, ident support is essential, so we will need to compile from source (described below). You will want to do this after installing from packages, so that rc.d scripts are created automatically.%0a> %0a60c57%0a%3c Edit @@/etc/ngircd/ngircd.conf@@ as root:%0a---%0a> Edit [@ /etc/ngircd/ngircd.conf @] as root:%0a +host:1659546979=2.178.202.141 +author:1659053857=tiramisu +diff:1659053857:1656939139:minor=57,58c57,58%0a%3c Edit [@ /etc/ngircd/ngircd.conf @] as root:%0a%3c %0a---%0a> Edit [@ /etc/ngircd/ngircd.conf @]:%0a> %0a323c323%0a%3c Next, use your IRC client to connect to the server. Join a few channels and chat inside. You will need to invite your friends, since a new IRC server will have no other users on it.%0a---%0a> Next, use your IRC client to connect to the server. Join a few channels and chat inside.%0a +host:1659053857=2607:fb90:b949:326f:fee6:ed30:3814:d501 +author:1656939139=baytuch +diff:1656939139:1649316468:=295c295%0a%3c rcctl -d restart $SERVICE_NAME%0a---%0a> rcctl -d start $SERVICE_NAME%0a +host:1656939139=2001:bc8:1830:1533::2 +author:1649316468=jrmu +diff:1649316468:1649315205:=312a313,314%0a> %0a> Make sure to configure [[hopm/install|hopm]].%0a +host:1649316468=38.87.162.154 +author:1649315205=jrmu +diff:1649315205:1649314785:=375a376%0a> # Install [[achurch/install|achurch]] to test achurch services%0a +host:1649315205=38.87.162.154 +author:1649314785=jrmu +diff:1649314785:1648181477:=271,314d270%0a%3c %0a%3c !! Automation%0a%3c %0a%3c To automatically restart ngIRCd if it was terminated unexpectedly, create a script in /usr/local/libexec/ngircd/restart.sh:%0a%3c %0a%3c [@%0a%3c $ doas mkdir -p /usr/local/libexec/ngircd/%0a%3c $ doas touch /usr/local/libexec/ngircd/restart.sh%0a%3c $ doas chmod +x /usr/local/libexec/ngircd/restart.sh%0a%3c @]%0a%3c %0a%3c Edit @@/usr/local/libexec/ngircd/restart.sh@@:%0a%3c %0a%3c [@%0a%3c #!/bin/sh%0a%3c %0a%3c SERVICE_NAME="ngircd"%0a%3c SERVICE_USER="_ngircd"%0a%3c SERVICE_PID="/var/ngircd/var/run/ngircd/ngircd.pid"%0a%3c %0a%3c if ! pgrep -u $SERVICE_USER -x "$SERVICE_NAME" > /dev/null%0a%3c then%0a%3c if [ -f $SERVICE_PID ]; then%0a%3c rm -f $SERVICE_PID%0a%3c rcctl -d start $SERVICE_NAME%0a%3c fi%0a%3c fi%0a%3c @]%0a%3c %0a%3c Add this as a cronjob:%0a%3c %0a%3c [@%0a%3c $ doas crontab -e%0a%3c %0a%3c */5 * * * * /usr/local/libexec/ngircd/restart.sh > /dev/null 2>&1%0a%3c @]%0a%3c %0a%3c For the solution to work, make sure you have enabled the use of pid files in /etc/ngircd/ngircd.conf:%0a%3c %0a%3c [@%0a%3c PidFile = /var/run/ngircd/ngircd.pid%0a%3c @]%0a%3c %0a%3c Make sure to configure [[hopm/install|hopm]].%0a +host:1649314785=38.87.162.154 +author:1648181477=jrmu +diff:1648181477:1648181362:=247c247%0a%3c Syslogd expects all logfiles to already exist with the correct permissions. So, we will create the file /var/log/ngircd.log and restart syslogd:%0a---%0a> Next, create the file /var/log/ngircd.log and restart syslogd:%0a +host:1648181477=38.87.162.154 +author:1648181362=jrmu +diff:1648181362:1648180006:=235c235%0a%3c !! Configuring [[syslogd/configure|syslog]]%0a---%0a> !! Configuring syslog%0a +host:1648181362=38.87.162.154 +author:1648180006=jrmu +diff:1648180006:1648141852:=7c7%0a%3c ngircd is an [[Irc/Guide|IRC]] server. It helps IRC clients send messages to one another.%0a---%0a> ngircd is an [[IRC/Guide|IRC]] server. It helps IRC clients send messages to one another.%0a +host:1648180006=38.87.162.154 +author:1648141852=jrmu +diff:1648141852:1648141818:= +host:1648141852=38.87.162.154 +author:1648141818=jrmu +diff:1648141818:1648141334:=204d203%0a%3c %0a206c205%0a%3c ;[Server]%0a---%0a> [Server]%0a209,213c208,213%0a%3c The server block is used to connect to other servers to form a network. You can have multiple server blocks. For now, leave it commented out until you are ready to [[ngircd/link|link ngircd]].%0a%3c %0a%3c You are now finished editing ngircd.conf, so we turn to edit other files.%0a%3c %0a%3c !! MOTD file%0a---%0a> The server block is used to connect to other servers to form a network. You can have multiple server blocks. See: [[ngircd/link|Link your ngircd]] %0a> %0a> %0a> You are finished editing ngircd.conf%0a> %0a> !!MOTD file%0a +host:1648141818=38.87.162.154 +author:1648141334=jrmu +diff:1648141334:1648141026:=188,189c188,189%0a%3c Create one Operator block for each operator on the server:%0a%3c %0a---%0a> You may have as many Operator Blocks as you like, one for each Operator.%0a> %0a194d193%0a%3c ;Mask = *!ident@somewhere.example.com%0a199,201c198,200%0a%3c If you uncomment Mask, your hostmask must match the operator hostmask in order for the /OPER command to work. If the hostmask differs by even a single character, then your /OPER command will be rejected. It's best to leave Mask commented out until you are familiar with ngircd.%0a%3c %0a%3c Once your configuration is tested and stable, you can uncomment Mask and have it match your [[dns/vhost|vhost]]. However, please be aware that this will make it impossible to become IRC Operator if you connect from a different IP address.%0a---%0a> If you uncomment Mask, your hostmask must match the operator hostmask in order for the /OPER command to be accepted. If it differs at all, then your /OPER command will be rejected. If you don't want to check the hostmask, leave Mask commented out.%0a> %0a> For more security, you can uncomment Mask and have it match your vhost. However, please be aware that this will make it impossible to authenticate if you ever have to connect from a different IP address.%0a +host:1648141334=38.87.162.154 +author:1648141026=jrmu +diff:1648141026:1648140259:=151,152d150%0a%3c User mode +i keeps the user invisible so that /whois does not show all channels a user has joined. This helps reduce stalking and harassment.%0a%3c %0a159d156%0a%3c PAM = no%0a164,175c161,165%0a%3c Receiving a notice before registration can help with debugging with [[netcat/irc|netcat]]. It is also necessary for [[hopm/install|hopm]].%0a%3c %0a%3c OperCanUseMode will allow opers the ability to use mode commands when needed. '''Opers should use this power sparingly''', generally only if the channel owner is unable to moderate his channel.%0a%3c %0a%3c OperChanPAutoOp should be set to no so that opers are not automatically op'd in every channel they join. Opers should not interfere with normal channel operation.%0a%3c %0a%3c Set PAM to no because enabling PAM on OpenBSD causes issues.%0a%3c %0a%3c We set RequireAuthPing to yes because it may help reduce spam.%0a%3c %0a%3c We're going to log using syslog (see below) to log events.%0a%3c %0a---%0a> %0a> User mode +i keeps the user invisible so that /whois does not show all channels a user has joined. This helps reduce stalking and harassment.%0a> %0a> Receiving a notice before registration can help with debugging with [[netcat/irc|netcat]]. It is necessary for [[hopm/install|hopm]]. We're going to log using syslog (see below).%0a> %0a182c172%0a%3c '''This entire block should be commented'''. When you are ready to set up [[ngircd/ssl|SSL/TLS encryption]], un-comment the entire block.%0a---%0a> This entire block should be commented. When you are ready to set up [[ngircd/ssl|SSL/TLS encryption]], un-comment the entire block.%0a +host:1648141026=38.87.162.154 +author:1648140259=jrmu +diff:1648140259:1648139583:=135,136c135,136%0a%3c ;CloakHost = %25x%0a%3c CloakHostModeX = %25x%0a---%0a> CloakHost = %25x%0a> ;CloakHostModeX = cloaked.user%0a138,140c138,143%0a%3c DefaultUserModes = ix%0a%3c DNS = yes%0a%3c Ident = yes%0a---%0a> DefaultUserModes = i%0a> ;DNS = no%0a> NoticeBeforeRegistration = yes%0a> OperChanPAutoOp = no %0a> RequireAuthPing = yes%0a> SyslogFacility = daemon%0a147,160c150%0a%3c We will cloak the host using a unique salt; contact another sysadmin for the exact salt. If not linking to another network, you can leave it commented to use a random salt each time it runs, or you can generate your own random salt.%0a%3c %0a%3c We use CloakHostModeX so that users are cloaked when mode +x is set. Users can then turn off mode x in order to remove the cloak (to show a custom hostmask). If we had used CloakHost instead, uncloaking a user would not be possible.%0a%3c %0a%3c We want to perform DNS lookups when a client connects so that we can validate a user's hostmask. We also want to perform IDENT lookups.%0a%3c %0a%3c [@%0a%3c NoticeBeforeRegistration = yes%0a%3c OperCanUseMode = yes%0a%3c OperChanPAutoOp = no %0a%3c RequireAuthPing = yes%0a%3c SyslogFacility = daemon%0a%3c @]%0a%3c %0a---%0a> We will cloak the host using a unique salt; contact another sysadmin for the exact salt. If not linking to a network, you can leave it commented for a random salt each time it runs or you can provide your own random salt.%0a +host:1648140259=38.87.162.154 +author:1648139583=jrmu +diff:1648139583:1648138974:=88d87%0a%3c ;MotdPhrase = "Hello world!"%0a90d88%0a%3c ;Password = abc%0a93,96c91,93%0a%3c * Network: Your network name; this usually contains no periods.%0a%3c %0a%3c Keep the MotdPhrase and Password commented out. First, we will be using a MotdFile instead. Secondly, we do not want a global password for a public server.%0a%3c %0a---%0a> * Motdfile stands for "Message of the Day"; we will create this file later on.%0a> * Network: Your network name.%0a> %0a98c95,97%0a%3c PidFile = /var/run/ngircd/ngircd.pid%0a---%0a> Ports = 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 7000, 16667%0a> ServerGID = _ngircd%0a> ServerUID = _ngircd%0a101,108d99%0a%3c The Pid file is where ngircd writes its process ID.%0a%3c %0a%3c [@%0a%3c Ports = 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 7000, 16667%0a%3c ServerGID = _ngircd%0a%3c ServerUID = _ngircd%0a%3c @]%0a%3c %0a125,127c116%0a%3c We allow unlimited connections per IP and handle abuse with other techniques.%0a%3c %0a%3c MaxNickLength: '''must''' be identical for all servers on the network. On IRCNow, MaxNickLength is [@16@].%0a---%0a> MaxNickLength: '''must''' be identical to all servers on the network. On IRCNow, MaxNickLength is [@16@].%0a +host:1648139583=38.87.162.154 +author:1648138974=jrmu +diff:1648138974:1648138103:=42,43c42,44%0a%3c !!! Building from source%0a%3c %0a---%0a> !!! Installing from source%0a> %0a> %0a59,60c60,61%0a%3c '''Note''': Lines that begin with # or ; are comments and will be ignored. You will need to remove # or ; to uncomment.%0a%3c %0a---%0a> '''Note''': Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment%0a> %0a71d71%0a%3c HelpFile = /usr/local/share/doc/ngircd/Commands.txt%0a82c82%0a%3c Provide every single IP address you want ngircd to listen on. This includes localhost (127.0.0.1 and ::1), and [[IP/Myaddress|our public IPv4 and IPv6 addresses]]. Keep 127.0.0.1 and ::1 untouched, but replace 192.168.1.1 and 2001:db8:: with your real public IPs. If you are hosting a public service, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily [[ddos/intro|DDoSed]] and using an unfiltered IP may get you nullrouted.%0a---%0a> Uncomment this line and provide every single IP address you want ngircd to listen on. This includes localhost (127.0.0.1 and ::1), and [[IP/Myaddress|our public IPv4 and IPv6 addresses]]. Keep 127.0.0.1 and ::1 untouched, but replace 192.168.1.1 and 2001:db8:: with your real public IPs. If you are hosting a public service, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a +host:1648138974=38.87.162.154 +author:1648138103=jrmu +diff:1648138103:1648137933:=25,29c25,27%0a%3c # Consult the man pages:%0a%3c # $ man 5 ngircd.conf%0a%3c # $ man 8 ngircd%0a%3c %0a%3c !! Installation%0a---%0a> # Consult the man pages%0a> %0a> !!Installation%0a +host:1648138103=38.87.162.154 +author:1648137933=jrmu +diff:1648137933:1648137542:=19,26c19,22%0a%3c !! Docs and references%0a%3c %0a%3c Before installation, please consult:%0a%3c %0a%3c # The [[https://ngircd.barton.de/documentation.php.en|Official ngIRCd documentation]] %0a%3c # After installation, see also /usr/local/share/doc/ngircd/ for local documentation%0a%3c # Consult the man pages%0a%3c %0a---%0a> !!Docs and references%0a> %0a> # [[https://ngircd.barton.de/documentation.php.en|Official ngIRCd documentation]] %0a> %0a58c54%0a%3c '''Note''': Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment%0a---%0a> '''Note''': Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line if that is desired.%0a +host:1648137933=38.87.162.154 +author:1648137542=jrmu +diff:1648137542:1644786667:=41c41%0a%3c Download the IRC server, extract the code, and build it:%0a---%0a> Pull the codebase from IRCNow's file servers, extract the code, and install it%0a +host:1648137542=38.87.162.154 +author:1644786667=jrmu +diff:1644786667:1644786645:=85,86c85,86%0a%3c * Motdfile stands for "Message of the Day"; we will create this file later on.%0a%3c * Network: Your network name.%0a---%0a> Motdfile stands for "Message of the Day"; we will create this file later on.%0a> Network: Your network name.%0a +host:1644786667=38.87.162.154 +author:1644786645=jrmu +diff:1644786645:1644786622:=78c78%0a%3c '''Note''': if you do not uncomment this line, you will listen to all IPs by default, which is probably a mistake.%0a---%0a> '''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a +host:1644786645=38.87.162.154 +author:1644786622=jrmu +diff:1644786622:1644786528:=76c76%0a%3c Uncomment this line and provide every single IP address you want ngircd to listen on. This includes localhost (127.0.0.1 and ::1), and [[IP/Myaddress|our public IPv4 and IPv6 addresses]]. Keep 127.0.0.1 and ::1 untouched, but replace 192.168.1.1 and 2001:db8:: with your real public IPs. If you are hosting a public service, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a---%0a> Uncomment this line and provide every single IP address you want ngircd to listen on. This includes localhost (127.0.0.1 and ::1), and our public IPv4 and IPv6 addresses. Keep 127.0.0.1 and ::1 untouched, but replace 192.168.1.1 and 2001:db8:: with your real public IPs. If you are hosting a public service, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a +host:1644786622=38.87.162.154 +author:1644786528=jrmu +diff:1644786528:1644785351:=69,70c69,70%0a%3c * Name: Use your server's domain name.%0a%3c * Info: Use your server's domain name.%0a---%0a> *Name: Use your server's domain name.%0a> *Info: Use your server's domain name.%0a +host:1644786528=38.87.162.154 +author:1644785351=jrmu +diff:1644785351:1642657833:=34c34%0a%3c ngIRCd v26.1 provided by OpenBSD 7.0 ports does not have ident support. On a production server, ident support is essential, so we will need to compile from source (described below). You will want to do this after installing from packages, so that rc.d scripts are created automatically.%0a---%0a> ngIRCd v26.1 provided by OpenBSD 6.9 ports does not have ident support. On a production server, ident support is essential, so we will need to compile from source (described below). You will want to do this after installing from packages, so that rc.d scripts are created automatically.%0a +host:1644785351=38.87.162.154 +author:1642657833=jrmu +diff:1642657833:1639821547:=105c105%0a%3c MaxListSize = 3000%0a---%0a> MaxListSize = 1000%0a +host:1642657833=38.87.162.8 +author:1639821547=jrmu +diff:1639821547:1639821534:=122c122%0a%3c ;DNS = no%0a---%0a> ;DNS = yes%0a +host:1639821547=38.87.162.8 +author:1639821534=jrmu +diff:1639821534:1639817882:=119,126c119,124%0a%3c ;CloakHostModeX = cloaked.user%0a%3c CloakHostSalt = abcdefghijklmnopqrstuvwxyz%0a%3c DefaultUserModes = i%0a%3c ;DNS = yes%0a%3c NoticeBeforeRegistration = yes%0a%3c OperChanPAutoOp = no %0a%3c RequireAuthPing = yes%0a%3c SyslogFacility = daemon%0a---%0a> CloakHostSalt = abcdefghijklmnopqrstuvwxyz%0a> DefaultUserModes = i%0a> NoticeBeforeRegistration = yes%0a> OperChanPAutoOp = no %0a> RequireAuthPing = yes%0a> SyslogFacility = daemon%0a +host:1639821534=38.87.162.8 +author:1639817882=jrmu +diff:1639817882:1639817723:=44,46c44,46%0a%3c $ ftp https://ircnow.org/software/ircnowd.tgz%0a%3c $ tar xvzf ircnowd.tgz%0a%3c $ cd ircnowd/%0a---%0a> $ ftp https://ircnow.org/software/ngircd.tgz%0a> $ tar xvzf ngircd.tgz%0a> $ cd ngircd-26.1/%0a +host:1639817882=38.87.162.47 +author:1639817723=jrmu +diff:1639817723:1638884657:=118a119%0a> CloakHostModeX = %25x%0a120c121%0a%3c DefaultUserModes = i%0a---%0a> DefaultUserModes = ix%0a133c134%0a%3c User mode +i keeps the user invisible so that /whois does not show all channels a user has joined. This helps reduce stalking and harassment.%0a---%0a> User mode +i keeps the user invisible so that /whois does not show all channels a user has joined. This helps reduce stalking and harassment. User mode +x cloaks the user by default.%0a +host:1639817723=38.87.162.47 +author:1638884657=jrmu +diff:1638884657:1638845897:=118d117%0a%3c CloakHost = %25x%0a +host:1638884657=38.87.162.47 +author:1638845897=jrmu +diff:1638845897:1638840723:=117a118%0a> CloakHost = %25x%0a +host:1638845897=38.87.162.8 +author:1638840723=jrmu +diff:1638840723:1637366855:=73c73%0a%3c Listen = 127.0.0.1,::1,192.168.1.1,2001:db8::%0a---%0a> Listen = 127.0.0.1,192.168.1.1,2001:db8::%0a76c76%0a%3c Uncomment this line and provide every single IP address you want ngircd to listen on. This includes localhost (127.0.0.1 and ::1), and our public IPv4 and IPv6 addresses. Keep 127.0.0.1 and ::1 untouched, but replace 192.168.1.1 and 2001:db8:: with your real public IPs. If you are hosting a public service, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a---%0a> Uncomment this line and provide every single IP address you want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Keep 127.0.0.1 but replace 192.168.1.1 and 2001:db8:: with your real public IPs. If you are hosting a public service, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a +host:1638840723=38.87.162.8 +author:1637366855=bugzbunny +diff:1637366855:1636462605:=37,39d36%0a%3c %0a%3c %0a%3c '''Note''': Before building from source, make sure you have ngircd package installed using the instructions from above.%0a +host:1637366855=72.78.238.236 +author:1636462605=jrmu +diff:1636462605:1635167345:=116d115%0a%3c CloakHostModeX = %25x%0a118c117%0a%3c DefaultUserModes = ix%0a---%0a> DefaultUserModes = i%0a131c130%0a%3c User mode +i keeps the user invisible so that /whois does not show all channels a user has joined. This helps reduce stalking and harassment. User mode +x cloaks the user by default.%0a---%0a> User mode +i keeps the user invisible so that /whois does not show all channels a user has joined. This helps reduce stalking and harassment. %0a +host:1636462605=38.87.162.8 +author:1635167345=jrmu +diff:1635167345:1633228664:=113c113%0a%3c AllowRemoteOper = yes%0a---%0a> AllowRemoteOper = no%0a124,125c124,125%0a%3c We will turn on AllowRemoteOpers so that GLINEs function properly.%0a%3c %0a---%0a> For security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you might not trust an oper on another server.%0a> %0a +host:1635167345=38.87.162.8 +author:1633228664=jrmu +diff:1633228664:1631975364:=116c116%0a%3c CloakHostSalt = abcdefghijklmnopqrstuvwxyz%0a---%0a> CloakHostSalt = %3cabcdefghijklmnopqrstuvwxyz>%0a +host:1633228664=125.231.16.47 +author:1631975364=jrmu +diff:1631975364:1631964903:=222,224d221%0a%3c $ doas mkdir -p /var/ngircd/usr/local/share/doc/%0a%3c $ doas cp -R /usr/local/share/doc/ngircd/ /var/ngircd/usr/local/share/doc/%0a%3c $ doas chown -R _ngircd:_ngircd /var/ngircd/usr/local/share/doc/ngircd/%0a +host:1631975364=38.87.162.8 +author:1631964903=jrmu +diff:1631964903:1631956282:=73,76c73,74%0a%3c Uncomment this line and provide every single IP address you want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Keep 127.0.0.1 but replace 192.168.1.1 and 2001:db8:: with your real public IPs. If you are hosting a public service, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a%3c %0a%3c '''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a%3c %0a---%0a> Listen: Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted. '''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a> %0a79c77%0a%3c Network = ExampleNet%0a---%0a> Network = IRCNow%0a82,84c80,83%0a%3c Motdfile stands for "Message of the Day"; we will create this file later on.%0a%3c Network: Your network name.%0a%3c %0a---%0a> Motdfile: Stands for "Message of the Day", we will create this at that file location later on.%0a> %0a> Network: IRCNow, or your network (Liberachat, freenode, etc...)%0a> %0a91,94c90,95%0a%3c It's recommended to provide ports besides the standard 6667 to allow users to bypass network firewalls. %0a%3c %0a%3c '''NOTE''': Make sure to set the ServerUID and ServerGID to _ngircd. Otherwise, it runs as the user nobody by default.%0a%3c %0a---%0a> Ports: listed are the default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls (censorship). %0a> %0a> ServerGID: Uncomment, name (or number) of the Group to run as%0a> %0a> ServerUID: Uncomment, name (or number) of the User to run as%0a> %0a117c118%0a%3c DefaultUserModes = i%0a---%0a> DefaultUserModes = iC%0a124c125%0a%3c For security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you might not trust an oper on another server.%0a---%0a> AllowRemoteOper: For security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you may not necessarily trust an oper on another server.%0a126,133c127,134%0a%3c We want to [[Chroot.Intro|chroot]] to /var/ngircd to prevent a security compromise. %0a%3c %0a%3c We will cloak the host using a unique salt; contact another sysadmin for the exact salt. If not linking to a network, you can leave it commented for a random salt each time it runs or you can provide your own random salt.%0a%3c %0a%3c User mode +i keeps the user invisible so that /whois does not show all channels a user has joined. This helps reduce stalking and harassment. %0a%3c %0a%3c Receiving a notice before registration can help with debugging with [[netcat/irc|netcat]]. It is necessary for [[hopm/install|hopm]]. We're going to log using syslog (see below).%0a%3c %0a---%0a> ChrootDir: We want to [[Chroot.Intro|chroot]] to /var/ngircd to prevent a security compromise. %0a> %0a> CloakHostSalt: We will cloak the host using a unique salt; contact another sysadmin for the exact salt. For a Practice VPS or if not linking to a network, you can leave it commented for a random Salt each time it runs or you can provide your own random Salt%0a> %0a> DefaultUserModes: UserMode +i keeps the user invisible, and +C means that only users that share channels can send a message. Both settings help reduce spam, stalking, and harassment. %0a> %0a> NoticeBeforeRegistration: Receiving a notice before registration can help with debugging with [[netcat/irc|netcat]]. We're going to log using syslog (see section below).%0a> %0a140,143c141,142%0a%3c This entire block should be commented. When you are ready to set up [[ngircd/ssl|SSL/TLS encryption]], un-comment the entire block.%0a%3c %0a%3c '''WARNING''': Do not send passwords or sensitive data over this server until SSL is set up.%0a%3c %0a---%0a> This entire block is commented, when you are ready to set up [[ngircd/ssl|SSL/TLS encryption]], un-comment it and follow the instructions on the SSL page. '''Note''': do not send passwords/sensitive data over IRC to this server until SSL is set up %0a> %0a150,151c149,150%0a%3c Name = username%0a%3c Password = password%0a---%0a> Name = %3cusername>%0a> Password = %3cpassword>%0a154,155c153,156%0a%3c Please use a [[password/management|long, random string]] for your password.%0a%3c %0a---%0a> Name: your IRC username%0a> %0a> Password: Please use a [[password/management|long, random string]] for your password.%0a> %0a172,173c173,174%0a%3c Create the Message of the Day in /etc/ngircd/ngircd.motd. Here is a suggested template:%0a%3c %0a---%0a> Paste your Message of the Day in /etc/ngircd/ngircd.motd. Here's a suggested template:%0a> %0a179c180%0a%3c * No porn / illegal drugs / threats of violence%0a---%0a> * No porn / illegal drugs / promotion of violence%0a191a193%0a> %0a194,195c196,197%0a%3c All log messages from ngircd should go to [@ /var/log/ngircd.log @]. Insert these three lines starting at line 3 (at the top) in [@/etc/syslog.conf@]:%0a%3c %0a---%0a> You want all the log messages from ngircd (Errors, system reports) to go to [@ /var/log/ngircd.log @] and not anywhere else, so we insert these three lines starting at line 3 (from the top) in [@ /etc/syslog.conf @]:%0a> %0a202,203c204,205%0a%3c This directs all logs from ngircd to go straight to /var/log/ngircd.log.%0a%3c %0a---%0a> This directs all logs from ngircd to go straight to /var/log/ngircd.log and nowhere else.%0a> %0a213,214c215%0a%3c We need to set up the [[chroot/intro|chroot]] for ngircd. Let's copy the files into the chroot:%0a%3c %0a---%0a> We need to set up the [[openbsd/chroot|chroot]] for ngircd. Let's copy the files into the chroot:%0a235c236,237%0a%3c Next, use your IRC client to connect to the server. Join a few channels and chat inside.%0a---%0a> Next, use your IRC client to connect to the server, which may have the hostname [@ %3cuser>.%3cfruit>.ircnow.org @]. %0a> Join a few channels and chat inside.%0a +host:1631964903=38.87.162.8 +author:1631956282=jrmu +diff:1631956282:1631956227:=66,67c66,67%0a%3c *Name: Use your server's domain name.%0a%3c *Info: Use your server's domain name.%0a---%0a> Name: Use your server's domain name.%0a> Info: Use your server's domain name%0a +host:1631956282=38.87.162.8 +author:1631956227=jrmu +diff:1631956227:1631955807:=54a55%0a> %0a59,63c60,64%0a%3c Name = irc.example.com%0a%3c AdminInfo1 = Example Network%0a%3c AdminInfo2 = Planet Earth%0a%3c AdminEMail = admin@example.com%0a%3c Info = irc.example.com%0a---%0a> Name = %3circ.example.com>%0a> AdminInfo1 = %3cExample Network>%0a> AdminInfo2 = %3cPlanet Earth>%0a> AdminEMail = %3cadmin@example.com>%0a> Info = %3cusername.fruit.ircnow.org>%0a66,68c67,76%0a%3c Name: Use your server's domain name.%0a%3c Info: Use your server's domain name%0a%3c %0a---%0a> Name: use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. %0a> %0a> AdminInfo1: provide a description of your IRC server.%0a> %0a> AdminInfo2: provide the location%0a> %0a> AdminEmail: your Email where bug reports and complaints may be sent%0a> %0a> Info: your server's domain name%0a> %0a70c78%0a%3c Listen = 127.0.0.1,192.168.1.1,2001:db8::%0a---%0a> Listen = 127.0.0.1,%3c192.168.1.1>,%3c2001:db8::>%0a152a161%0a> %0a171a181%0a> %0a +host:1631956227=38.87.162.8 +author:1631955807=jrmu +diff:1631955807:1631253991:=3,4c3,10%0a%3c In this guide, we'll setup [[https://ngircd.barton.de/documentation.php.en|ngircd]], a free, portable, lightweight IRC server.%0a%3c %0a---%0a> %0a> %0a> %0a> %0a> In this guide, we'll setup ngircd, a free, portable, lightweight IRC server.%0a> %0a> %0a> %0a7,13c13,21%0a%3c ngircd is an [[IRC/Guide|IRC]] server. It helps IRC clients send messages to one another.%0a%3c %0a%3c Advantages:%0a%3c %0a%3c # The source code is written in modern, portable C.%0a%3c # The code compiles easily on all BSDs, Linux, and other platforms.%0a%3c # The code is easy to fork to add new features such as spam filters%0a---%0a> %0a> ngircd is an IRC (Internet Relay Chat) server. It connects IRC clients (such as hexchat, irssi, etc) and transfers messages between them. In this article, we will set up ngircd so that irc clents can connect to it and communicate with each other.%0a> %0a> %0a> %0a> %0a> There are many irc servers we could have used, but the advantages of using ngircd are:%0a> %0a> # The source code runs well on OpenBSD%0a15c23%0a%3c # Documentation is short and easy to understand%0a---%0a> # Fewer features means the manual pages are short%0a16a25,27%0a> # The source code is written in modern, portable C. It will be easy to fork to new features such as:%0a> # Customized censorship to block NSFW content%0a> # Spam filters%0a18a30,33%0a> %0a> %0a> %0a> %0a21,22c36,43%0a%3c # [[https://ngircd.barton.de/documentation.php.en|Official ngIRCd documentation]] %0a%3c %0a---%0a> %0a> #official [[https://ngircd.barton.de/documentation.php.en|ngIRCd documentation]] %0a> %0a> #read the man pages%0a> %0a> %0a> %0a> %0a24a46,50%0a> %0a> %0a> %0a> %0a> %0a26a53,55%0a> %0a> Install ngircd%0a> %0a29,30c58,59%0a%3c Copy the sample configuration file:%0a%3c %0a---%0a> Copy the sample configuration file%0a> %0a34,39c63,71%0a%3c ngIRCd v26.1 provided by OpenBSD 6.9 ports does not have ident support. On a production server, ident support is essential, so we will need to compile from source (described below). You will want to do this after installing from packages, so that rc.d scripts are created automatically.%0a%3c %0a%3c !!! Installing from source%0a%3c %0a%3c Pull the codebase from IRCNow's file servers, extract the code, and install it%0a%3c %0a---%0a> %0a> %0a> ngIRCd v26.1 provided by OpenBSD 6.9 ports does not have ident support. We need to compile from source to get ident support, which is necessary on a production server. You will want to do this after installing from packages, so that rc.d tags are created properly. It is best to do this now.%0a> %0a> !!! Reinstalling from source%0a> %0a> %0a> Pull the codebase from IRCnow's file servers, extract the code, and install it%0a> %0a41,43c73,75%0a%3c $ ftp https://ircnow.org/software/ngircd.tgz%0a%3c $ tar xvzf ngircd.tgz%0a%3c $ cd ngircd-26.1/%0a---%0a> $ ftp https://ircnow.org/software/ngircd.tgz %0a> $ tar xvzf ngircd.tgz %0a> $ cd ngircd-26.1/ %0a45,48c77,88%0a%3c @]%0a%3c %0a%3c !! Configuring ngircd%0a%3c %0a---%0a> @] %0a> %0a> %0a> %0a> %0a> %0a> %0a> !!Configuring ngircd%0a> %0a> %0a> Now that you have ngircd installed, its time to set it up. When installing, you copied the sample configuration file. Now edit it to make it work for you.%0a> %0a51,52c91,96%0a%3c '''Note''': Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line if that is desired.%0a%3c %0a---%0a> Note you may have to use the [[https://wiki.ircnow.org/index.php?n=Doas.Configure | doas]] command to have write access to the file.%0a> %0a> '''When you see [@%3ctext>@] it indicates that you must replace the text with something that fits your unique situation; do not just copy it in.'''%0a> %0a> '''Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line if that is desired.'''%0a> %0a60,61c104,105%0a%3c Name = %3circ.example.com>%0a%3c AdminInfo1 = %3cExample Network>%0a---%0a> Name = %3cusername.fruit.ircnow.org>%0a> AdminInfo1 = %3cFruit Server on IRCNow>%0a63c107%0a%3c AdminEMail = %3cadmin@example.com>%0a---%0a> AdminEMail = %3cadmin@username.fruit.ircnow.org>%0a66a111%0a> %0a76a122%0a> %0a115a162,163%0a> %0a> %0a205a254%0a> %0a222a272,274%0a> %0a> %0a> %0a224a277%0a> %0a238a292%0a> %0a245a300%0a> %0a250a306%0a> %0a267a324%0a> %0a +host:1631955807=38.87.162.8 +author:1631253991=mkf +diff:1631253991:1630332626:=65c65%0a%3c ngIRCd v26.1 provided by OpenBSD 6.9 ports does not have ident support. We need to compile from source to get ident support, which is necessary on a production server. You will want to do this after installing from packages, so that rc.d tags are created properly. It is best to do this now.%0a---%0a> ngIRCd v26 provided by OpenBSD 6.8 ports does not have ident support. We need to compile from source to get ident support, which is necessary on a production server. You will want to do this after installing from packages, so that rc.d tags are created properly. It is best to do this now.%0a +host:1631253991=2.178.154.172 +author:1630332626=jrmu +diff:1630332626:1627916713:=281d280%0a%3c $ doas cp /etc/resolv.conf /var/ngircd/etc/%0a357c356%0a%3c # Configure [[acopm/install|acopm]], a minimalist open proxy monitor to stop spammers.%0a---%0a> # Configure [[acopm/install|acopm]], a minimalist open proxy monitor to stop spammers.%0a\ No newline at end of file%0a +host:1630332626=125.231.32.127 +author:1627916713=mkf +diff:1627916713:1626787596:=292,293c292,293%0a%3c To start ngircd via [[openbsd/rcctl|rcctl]]:%0a%3c %0a---%0a> To start ngircd:%0a> %0a298a299%0a> [[rcctl/rcctl|rcctl]] controls how system daemons are run.%0a +host:1627916713=198.251.81.133 +author:1626787596=mistera +diff:1626787596:1625883365:=11c11%0a%3c !!Overview%0a---%0a> !!Theory%0a +host:1626787596=204.111.39.57 +author:1625883365=mistera +diff:1625883365:1625881706:=218,223d217%0a%3c !!! Server Block%0a%3c [@%0a%3c [Server]%0a%3c @]%0a%3c %0a%3c The server block is used to connect to other servers to form a network. You can have multiple server blocks. See: [[ngircd/link|Link your ngircd]] %0a +host:1625883365=204.111.39.57 +author:1625881706=mistera +diff:1625881706:1625880174:=58,59c58,59%0a%3c Copy the sample configuration file%0a%3c %0a---%0a> copy the sample configuration file into the location where the program can read it (we will edit it to suit our needs)%0a> %0a89c89%0a%3c Edit [@ /etc/ngircd/ngircd.conf @]:%0a---%0a> Use your favorite text editor to edit [@ /etc/ngircd/ngircd.conf @]:%0a +host:1625881706=204.111.39.57 +author:1625880174=mistera +diff:1625880174:1625878603:=140,141d139%0a%3c ServerGID = _ngircd%0a%3c ServerUID = _ngircd%0a145,148d142%0a%3c %0a%3c ServerGID: Uncomment, name (or number) of the Group to run as%0a%3c %0a%3c ServerUID: Uncomment, name (or number) of the User to run as%0a +host:1625880174=204.111.39.57 +author:1625878603=mistera +diff:1625878603:1625878567:=205d204%0a%3c %0a +host:1625878603=204.111.39.57 +author:1625878567=mistera +diff:1625878567:1625878195:=194,195d193%0a%3c %0a%3c You may have as many Operator Blocks as you like, one for each Operator.%0a +host:1625878567=204.111.39.57 +author:1625878195=mistera +diff:1625878195:1625878071:=191c191%0a%3c This entire block is commented, when you are ready to set up [[ngircd/ssl|SSL/TLS encryption]], un-comment it and follow the instructions on the SSL page. '''Note''': do not send passwords/sensitive data over IRC to this server until SSL is set up %0a---%0a> This entire block is commented, when you are ready to set up [[ngircd/ssl|SSL]], un-comment it and follow the instructions on the SSL page.%0a +host:1625878195=204.111.39.57 +author:1625878071=mistera +diff:1625878071:1625877684:=185,191d184%0a%3c !!! SSL block%0a%3c %0a%3c [@ %0a%3c ;[SSL]%0a%3c @]%0a%3c %0a%3c This entire block is commented, when you are ready to set up [[ngircd/ssl|SSL]], un-comment it and follow the instructions on the SSL page.%0a +host:1625878071=204.111.39.57 +author:1625877684=mistera +diff:1625877684:1625877095:=179c179%0a%3c CloakHostSalt: We will cloak the host using a unique salt; contact another sysadmin for the exact salt. For a Practice VPS or if not linking to a network, you can leave it commented for a random Salt each time it runs or you can provide your own random Salt%0a---%0a> CloakHostSalt: We will cloak the host using a unique salt; contact another sysadmin for the exact salt.%0a +host:1625877684=204.111.39.57 +author:1625877095=mistera +diff:1625877095:1625877023:=147d146%0a%3c [Limits]%0a +host:1625877095=204.111.39.57 +author:1625877023=mistera +diff:1625877023:1625869975:=139a140,145%0a> MaxConnectionsIP = 0%0a> MaxJoins = 300%0a> MaxNickLength = 16%0a> MaxListSize = 1000%0a> PingTimeout = 300%0a> PongTimeout = 300%0a143,155d148%0a%3c %0a%3c !!! Limits Block%0a%3c %0a%3c [@%0a%3c MaxConnectionsIP = 0%0a%3c MaxJoins = 300%0a%3c MaxNickLength = 16%0a%3c MaxListSize = 1000%0a%3c PingTimeout = 300%0a%3c PongTimeout = 300%0a%3c @]%0a%3c %0a%3c %0a +host:1625877023=204.111.39.57 +author:1625869975=mistera +diff:1625869975:1625867210:=91c91%0a%3c Note you may have to use the [[https://wiki.ircnow.org/index.php?n=Doas.Configure | doas]] command to have write access to the file.%0a---%0a> Note you may have to use the doas command to have write access to the file.%0a +host:1625869975=204.111.39.57 +author:1625867210=mistera +diff:1625867210:1625867173:=318c318%0a%3c '''WARNING''': ngircd appears to have a bug where the ircd will crash if you reload the configuration file while a message is being sent. Be careful to avoid reloading configuration files when many users are chatting.%0a---%0a> '''Warning''': ngircd appears to have a bug where the ircd will crash if you reload the configuration file while a message is being sent. Be careful to avoid reloading configuration files when many users are chatting.%0a +host:1625867210=204.111.39.57 +author:1625867173=mistera +diff:1625867173:1625867124:=308c308%0a%3c '''Reloading''' a configuration file will '''not''' disconnect any active connections. So, try to reload the configuration where possible '''instead of restarting the service'''.%0a---%0a> '''Reloading''' a configuration file will '''not''' disconnect any active connections. So, try to reload the configuration where possible.%0a +host:1625867173=204.111.39.57 +author:1625867124=mistera +diff:1625867124:1625867095:=296c296%0a%3c After you edit [@ /etc/ngircd/ngircd.conf @] for a running ngircd server, you will need to reload the configuration file:%0a---%0a> After you edit /etc/ngircd/ngircd.conf for a running ngircd server, you will need to reload the configuration file:%0a +host:1625867124=204.111.39.57 +author:1625867095=mistera +diff:1625867095:1625867078:=294d293%0a%3c %0a +host:1625867095=204.111.39.57 +author:1625867078=mistera +diff:1625867078:1625867029:=291c291%0a%3c Remember, if you are connecting using port 6667 without SSL, any eavesdropper can read all your text, including your passwords. '''Don't send any sensitive information until you have upgraded to [[ngircd/ssl|SSL]].'''%0a---%0a> Remember, if you are connecting using port 6667 without SSL, any eavesdropper can read all your text, including your passwords. Don't send any sensitive information until you have upgraded to [[ngircd/ssl|SSL]].%0a +host:1625867078=204.111.39.57 +author:1625867029=mistera +diff:1625867029:1625866998:=289c289%0a%3c Check [@ /var/log/ngircd.log @] to see if ngircd is listening on the correct IP addresses and ports. Connect to those ports using your IRC client to verify that the server is working as intended.%0a---%0a> Check /var/log/ngircd.log to see if ngircd is listening on the correct IP addresses and ports. Connect to those ports using your IRC client to verify that the server is working as intended.%0a +host:1625867029=204.111.39.57 +author:1625866998=mistera +diff:1625866998:1625866962:=275d274%0a%3c %0a +host:1625866998=204.111.39.57 +author:1625866962=mistera +diff:1625866962:1625866954:=271,272c271%0a%3c Next, use your IRC client to connect to the server, which may have the hostname [@ %3cuser>.%3cfruit>.ircnow.org @]. %0a%3c Join a few channels and chat inside.%0a---%0a> Next, use your IRC client to connect to the server, which may have the hostname [@ %3cuser>.%3cfruit>.ircnow.org @]. Join a few channels and chat inside.%0a +host:1625866962=204.111.39.57 +author:1625866954=mistera +diff:1625866954:1625866895:=271c271%0a%3c Next, use your IRC client to connect to the server, which may have the hostname [@ %3cuser>.%3cfruit>.ircnow.org @]. Join a few channels and chat inside.%0a---%0a> Next, use your IRC client to connect to the server, which may have the hostname user.fruit.ircnow.org. Join a few channels and chat inside.%0a +host:1625866954=204.111.39.57 +author:1625866895=mistera +diff:1625866895:1625866831:=260d259%0a%3c %0a +host:1625866895=204.111.39.57 +author:1625866831=mistera +diff:1625866831:1625866757:=247d246%0a%3c %0a248a248%0a> if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a +host:1625866831=204.111.39.57 +author:1625866757=mistera +diff:1625866757:1625866748:=223d222%0a%3c %0a +host:1625866757=204.111.39.57 +author:1625866748=mistera +diff:1625866748:1625866700:=222,224c222,224%0a%3c !! Configuring syslog%0a%3c %0a%3c You want all the log messages from ngircd (Errors, system reports) to go to [@ /var/log/ngircd.log @] and not anywhere else, so we insert these three lines starting at line 3 (from the top) in [@ /etc/syslog.conf @]:%0a---%0a> !!! Configuring syslog%0a> %0a> You want all the log messages from ngircd (Errors, system reports) to go to [@ /var/log/ngircd.log @] and not anywhere else, so we insert these three lines starting at line 3 (at the top) in [@ /etc/syslog.conf @]:%0a +host:1625866748=204.111.39.57 +author:1625866700=mistera +diff:1625866700:1625866675:=224c224%0a%3c You want all the log messages from ngircd (Errors, system reports) to go to [@ /var/log/ngircd.log @] and not anywhere else, so we insert these three lines starting at line 3 (at the top) in [@ /etc/syslog.conf @]:%0a---%0a> You want all the log messages from ngircd (Errors, system reports) to go to [@ /var/log/ngircd.log @] and not anywhere else, so we insert these three lines starting at line 3 (at the top) in /etc/syslog.conf:%0a +host:1625866700=204.111.39.57 +author:1625866675=mistera +diff:1625866675:1625866591:=224c224%0a%3c You want all the log messages from ngircd (Errors, system reports) to go to [@ /var/log/ngircd.log @] and not anywhere else, so we insert these three lines starting at line 3 (at the top) in /etc/syslog.conf:%0a---%0a> You want all the messages from ngircd to go to /var/log/ngircd.log and not anywhere else, so we insert these three lines starting at line 3 (at the top) in /etc/syslog.conf:%0a +host:1625866675=204.111.39.57 +author:1625866591=mistera +diff:1625866591:1625866542:=195,196d194%0a%3c %0a%3c You are finished editing ngircd.conf%0a +host:1625866591=204.111.39.57 +author:1625866542=mistera +diff:1625866542:1625866371:=196c196%0a%3c !!MOTD file%0a---%0a> !!!MOTD file%0a +host:1625866542=204.111.39.57 +author:1625866371=mistera +diff:1625866371:1625866117:=91,92c91,94%0a%3c Note you may have to use the doas command to have write access to the file.%0a%3c %0a---%0a> We use the doas command to have all privs to edit the file. You might not have permission to write to the file without doas.%0a> %0a> As you go through the configuration file, find the sections listed below, and change their contents to match the values listed here.%0a> %0a136,137c138,139%0a%3c Network: IRCNow, or your network (Liberachat, freenode, etc...)%0a%3c %0a---%0a> Network: IRCnow, or your network (Liberachat, freenode, etc...)%0a> %0a148c150%0a%3c Ports: listed are the default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls (censorship). %0a---%0a> Ports: listed are the default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls. %0a +host:1625866371=204.111.39.57 +author:1625866117=mistera +diff:1625866117:1625866092:=89c89%0a%3c Use your favorite text editor to edit [@ /etc/ngircd/ngircd.conf @]:%0a---%0a> Use your favorite text editor to edit /etc/ngircd/ngircd.conf:%0a +host:1625866117=204.111.39.57 +author:1625866092=mistera +diff:1625866092:1625866084:=89c89%0a%3c Use your favorite text editor to edit /etc/ngircd/ngircd.conf:%0a---%0a> use your favorite text editor to edit /etc/ngircd/ngircd.conf:%0a +host:1625866092=204.111.39.57 +author:1625866084=mistera +diff:1625866084:1625866032:=89c89,95%0a%3c use your favorite text editor to edit /etc/ngircd/ngircd.conf:%0a---%0a> Edit /etc/ngircd/ngircd.conf:%0a> %0a> Use your favorite text editor; for example:%0a> to use vi, %0a> [@ $ doas vi /etc/ngircd/ngircd.conf @] %0a> or to use vim,%0a> [@ $ doas vim /etc/ngircd/ngircd.conf @] %0a +host:1625866084=204.111.39.57 +author:1625866032=mistera +diff:1625866032:1625233534:=87c87%0a%3c Now that you have ngircd installed, its time to set it up. When installing, you copied the sample configuration file. Now edit it to make it work for you.%0a---%0a> Now that we have ngircd installed, its time to set it up. When installing, we copied the sample configuration file. We will now edit it to make it work for us.%0a +host:1625866032=204.111.39.57 +author:1625233534=mistera +diff:1625233534:1625231673:=33c33,35%0a%3c %0a---%0a> ----%0a> %0a> %0a43a46,48%0a> %0a> ----%0a> %0a56,57c61,62%0a%3c [@$ doas pkg_add ngircd @]%0a%3c %0a---%0a> -> [@$ doas pkg_add ngircd @]%0a> %0a60c65%0a%3c [@$ doas cp /usr/local/share/examples/ngircd/sample-ngircd.conf /etc/ngircd/ngircd.conf%0a---%0a> ->[@$ doas cp /usr/local/share/examples/ngircd/sample-ngircd.conf /etc/ngircd/ngircd.conf%0a72c77%0a%3c [@ %0a---%0a> ->[@ %0a83a89,90%0a> ----%0a> %0a91,107c98,114%0a%3c Use your favorite text editor; for example:%0a%3c to use vi, %0a%3c [@ $ doas vi /etc/ngircd/ngircd.conf @] %0a%3c or to use vim,%0a%3c [@ $ doas vim /etc/ngircd/ngircd.conf @] %0a%3c %0a%3c We use the doas command to have all privs to edit the file. You might not have permission to write to the file without doas.%0a%3c %0a%3c As you go through the configuration file, find the sections listed below, and change their contents to match the values listed here.%0a%3c %0a%3c '''When you see [@%3ctext>@] it indicates that you must replace the text with something that fits your unique situation; do not just copy it in.'''%0a%3c %0a%3c '''Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line if that is desired.'''%0a%3c %0a%3c Typically, ";" precedes a line of code that has been commented, while a "#" precedes an actual note that should not be uncommented.%0a%3c %0a%3c %0a---%0a> ->Use your favorite text editor; for example:%0a> -->to use vi, %0a> --->[@ $ doas vi /etc/ngircd/ngircd.conf @] %0a> -->or to use vim,%0a> --->[@ $ doas vim /etc/ngircd/ngircd.conf @] %0a> %0a> ->We use the doas command to have all privs to edit the file. You might not have permission to write to the file without doas.%0a> %0a> ->As you go through the configuration file, find the sections listed below, and change their contents to match the values listed here.%0a> %0a> ->'''When you see [@%3ctext>@] it indicates that you must replace the text with something that fits your unique situation; do not just copy it in.'''%0a> %0a> ->'''Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line if that is desired.'''%0a> %0a> ->Typically, ";" precedes a line of code that has been commented, while a "#" precedes an actual note that should not be uncommented.%0a> %0a> %0a120,130c127,137%0a%3c Name: use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. %0a%3c %0a%3c AdminInfo1: provide a description of your IRC server.%0a%3c %0a%3c AdminInfo2: provide the location%0a%3c %0a%3c AdminEmail: your Email where bug reports and complaints may be sent%0a%3c %0a%3c Info: your server's domain name%0a%3c %0a%3c %0a---%0a> --->Name: use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. %0a> %0a> --->AdminInfo1: provide a description of your IRC server.%0a> %0a> --->AdminInfo2: provide the location%0a> %0a> --->AdminEmail: your Email where bug reports and complaints may be sent%0a> %0a> --->Info: your server's domain name%0a> %0a> %0a135,136c142,143%0a%3c Listen: Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted. '''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a%3c %0a---%0a> --->Listen: Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted. '''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a> %0a142,145c149,152%0a%3c Motdfile: Stands for "Message of the Day", we will create this at that file location later on.%0a%3c %0a%3c Network: IRCnow, or your network (Liberachat, freenode, etc...)%0a%3c %0a---%0a> --->Motdfile: Stands for "Message of the Day", we will create this at that file location later on.%0a> %0a> --->Network: IRCnow, or your network (Liberachat, freenode, etc...)%0a> %0a156,159c163,166%0a%3c Ports: listed are the default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls. %0a%3c %0a%3c MaxNickLength: '''must''' be identical to all servers on the network. On IRCNow, MaxNickLength is [@16@].%0a%3c %0a---%0a> --->Ports: listed are the default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls. %0a> %0a> --->MaxNickLength: '''must''' be identical to all servers on the network. On IRCNow, MaxNickLength is [@16@].%0a> %0a175c182%0a%3c AllowRemoteOper: For security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you may not necessarily trust an oper on another server.%0a---%0a> --->AllowRemoteOper: For security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you may not necessarily trust an oper on another server.%0a177,185c184,192%0a%3c ChrootDir: We want to [[Chroot.Intro|chroot]] to /var/ngircd to prevent a security compromise. %0a%3c %0a%3c CloakHostSalt: We will cloak the host using a unique salt; contact another sysadmin for the exact salt.%0a%3c %0a%3c DefaultUserModes: UserMode +i keeps the user invisible, and +C means that only users that share channels can send a message. Both settings help reduce spam, stalking, and harassment. %0a%3c %0a%3c NoticeBeforeRegistration: Receiving a notice before registration can help with debugging with [[netcat/irc|netcat]]. We're going to log using syslog (see section below).%0a%3c %0a%3c %0a---%0a> --->ChrootDir: We want to [[Chroot.Intro|chroot]] to /var/ngircd to prevent a security compromise. %0a> %0a> --->CloakHostSalt: We will cloak the host using a unique salt; contact another sysadmin for the exact salt.%0a> %0a> --->DefaultUserModes: UserMode +i keeps the user invisible, and +C means that only users that share channels can send a message. Both settings help reduce spam, stalking, and harassment. %0a> %0a> --->NoticeBeforeRegistration: Receiving a notice before registration can help with debugging with [[netcat/irc|netcat]]. We're going to log using syslog (see section below).%0a> %0a> %0a195,196c202,203%0a%3c Name: your IRC username%0a%3c Password: Please use a [[password/management|long, random string]] for your password.%0a---%0a> --->Name: your IRC username%0a> --->Password: Please use a [[password/management|long, random string]] for your password.%0a +host:1625233534=204.111.39.57 +author:1625231673=mistera +diff:1625231673:1625230726:=11,13c11,13%0a%3c !!Theory%0a%3c %0a%3c %0a---%0a> !!!Theory%0a> %0a> %0a36,38c36,38%0a%3c !!Docs and references%0a%3c %0a%3c %0a---%0a> !!!Docs and references%0a> %0a> %0a49,58c49,58%0a%3c !!Installation%0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c !!! Installing from OpenBSD packages%0a%3c %0a%3c %0a---%0a> !!!Installation%0a> %0a> %0a> %0a> %0a> %0a> %0a> !! Installing from OpenBSD packages%0a> %0a> %0a72,74c72,74%0a%3c !!! Reinstalling from source%0a%3c %0a%3c %0a---%0a> !! Reinstalling from source%0a> %0a> %0a91,93c91,93%0a%3c !!Configuring ngircd%0a%3c %0a%3c %0a---%0a> !!!Configuring ngircd%0a> %0a> %0a115,116c115,116%0a%3c !!! Global Block%0a%3c %0a---%0a> !! Global Block%0a> %0a167,168c167,168%0a%3c !!! Options Block%0a%3c %0a---%0a> !! Options Block%0a> %0a193c193%0a%3c !!! Operator Block%0a---%0a> !! Operator Block%0a +host:1625231673=204.111.39.57 +author:1625230726=mistera +diff:1625230726:1625230483:=5,13c5,15%0a%3c %0a%3c %0a%3c In this guide, we'll setup ngircd, a free, portable, lightweight IRC server.%0a%3c %0a%3c %0a%3c %0a%3c !!!Theory%0a%3c %0a%3c %0a---%0a> ----%0a> %0a> %0a> %25center%25In this guide, we'll setup ngircd, a free, portable, lightweight IRC server.%0a> %0a> ----%0a> %0a> %0a> %25center%25'+'''Theory'''+'%0a> %0a> %0a36,38c38,40%0a%3c !!!Docs and references%0a%3c %0a%3c %0a---%0a> %25center%25'+'''Docs and references'''+'%0a> %0a> %0a49,58c51,60%0a%3c !!!Installation%0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c !! Installing from OpenBSD packages%0a%3c %0a%3c %0a---%0a> %25center%25'+'''Installation'''+'%0a> %0a> %0a> %0a> %0a> %0a> %0a> !!! Installing from OpenBSD packages%0a> %0a> %0a72,74c74,76%0a%3c !! Reinstalling from source%0a%3c %0a%3c %0a---%0a> !!! Reinstalling from source%0a> %0a> %0a91,93c93,95%0a%3c !!!Configuring ngircd%0a%3c %0a%3c %0a---%0a> %25center%25'+'''Configuring ngircd'''+'%0a> %0a> %0a115,116c117,118%0a%3c !! Global Block%0a%3c %0a---%0a> !!! Global Block%0a> %0a167,168c169,170%0a%3c !! Options Block%0a%3c %0a---%0a> !!! Options Block%0a> %0a193c195%0a%3c !! Operator Block%0a---%0a> !!! Operator Block%0a +host:1625230726=204.111.39.57 +author:1625230483=mistera +diff:1625230483:1625060991:=200c200%0a%3c Password = %3cpassword>%0a---%0a> Password = password%0a205c205,206%0a%3c --->Password: Please use a [[password/management|long, random string]] for your password.%0a---%0a> --->%0a> Please use a [[password/management|long, random string]] for your password.%0a +host:1625230483=204.111.39.57 +author:1625060991=mistera +diff:1625060991:1625060312:=43c43,48%0a%3c #read the man pages%0a---%0a> #read the man pages:%0a> %0a> ->[@ $ man ngircd @]%0a> %0a> %0a> %0a +host:1625060991=204.111.39.57 +author:1625060312=mistera +diff:1625060312:1625060136:=40a41,43%0a> %0a> Getting to know the documentation is important! Before you begin, at least look over the documentation. It will begin to make sense as you use ngircd, and the man pages will eventually become your best friend when you run into errors. Don't understand it yet? Thats ok; Familiarity breeds understanding.%0a> %0a43c46,47%0a%3c #read the man pages:%0a---%0a> #read the man pages: in your terminal, after you install ngircd,%0a> %0a +host:1625060312=204.111.39.57 +author:1625060136=mistera +diff:1625060136:1625060108:=85,86c85%0a%3c %0a%3c Pull the codebase from IRCnow's file servers, extract the code, and install it%0a---%0a> 1. pull the codebase from IRCnow's file servers, extract the code, and install it%0a +host:1625060136=204.111.39.57 +author:1625060108=mistera +diff:1625060108:1625059326:=85,92c85,99%0a%3c 1. pull the codebase from IRCnow's file servers, extract the code, and install it%0a%3c %0a%3c ->[@ %0a%3c $ ftp https://ircnow.org/software/ngircd.tgz %0a%3c $ tar xvzf ngircd.tgz %0a%3c $ cd ngircd-26.1/ %0a%3c $ sh build.sh %0a%3c @] %0a---%0a> 1. pull the codebase from IRCnow's file servers%0a> %0a> ->[@ $ ftp https://ircnow.org/software/ngircd.tgz @]%0a> %0a> 2. extract the code from the compressed tarball %0a> %0a> ->[@ $ tar xvzf ngircd.tgz @] %0a> %0a> 3. change directory into the newly uncompressed folder %0a> %0a> ->[@ $ cd ngircd-26.1/ @] %0a> %0a> 4. run the shell script "build.sh" found there, which will reinstall from source %0a> %0a> ->[@ $ sh build.sh @] %0a +host:1625060108=204.111.39.57 +author:1625059326=mistera +diff:1625059326:1625056854:=16,20c16,20%0a%3c ngircd is an IRC (Internet Relay Chat) server. It connects IRC clients (such as hexchat, irssi, etc) and transfers messages between them. In this article, we will set up ngircd so that irc clents can connect to it and communicate with each other.%0a%3c %0a%3c %0a%3c %0a%3c %0a---%0a> ngircd is an IRC (Internet Relay Chat) server. Irc is comprised of a server-client model. The client (such as hexchat, irssi, etc) can receive messages from the server and send messages to the server, but the server connects all the clients and transfers messages between them. In this article, we will set up ngircd so that irc clents can connect to it and communicate with each other.%0a> %0a> %0a> %0a> %0a220c220%0a%3c --->%0a---%0a> ----%0a +host:1625059326=204.111.39.57 +author:1625056854=mistera +diff:1625056854:1625056833:=159c159%0a%3c --->Listen: Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted. '''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a---%0a> --->Listen: Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.'''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a +host:1625056854=204.111.39.57 +author:1625056833=mistera +diff:1625056833:1625055431:=159,160c159,162%0a%3c --->Listen: Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.'''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a%3c %0a---%0a> --->Listen: Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a> %0a> ---->'''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a> %0a214c216%0a%3c Name = %3cusername>%0a---%0a> Name = username%0a218,220d219%0a%3c %0a%3c --->Name: your IRC username%0a%3c ----%0a278c277%0a%3c if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a---%0a> %0a +host:1625056833=204.111.39.57 +author:1625055431=mistera +diff:1625055431:1625055293:=212,213c212,216%0a%3c !!! Operator Block%0a%3c %0a---%0a> !!!MOTD file%0a> %0a> %0a> Paste your Message of the Day in /etc/ngircd/ngircd.motd. Here's a suggested template:%0a> %0a215,217c218,232%0a%3c [Operator]%0a%3c Name = username%0a%3c Password = password%0a---%0a> IRCNow - The Users' Network%0a> %0a> IRCNow is the network of the user, by the user, for the user.%0a> %0a> * No porn / illegal drugs / promotion of violence%0a> * No slander / libel / gambling%0a> * No spam, illegal cracking, or DDoS%0a> * No copyright infrigement%0a> %0a> You must agree to our terms of service and our privacy policy %0a> to use this network:%0a> %0a> https://wiki.ircnow.org/index.php?n=Terms.Terms%0a> %0a> Only 5 connections per IP address. If you need help, please speak with staff on #help.%0a220,232c235,239%0a%3c Please use a [[password/management|long, random string]] for your password.%0a%3c %0a%3c If you uncomment Mask, your hostmask must match the operator hostmask in order for the /OPER command to be accepted. If it differs at all, then your /OPER command will be rejected. If you don't want to check the hostmask, leave Mask commented out.%0a%3c %0a%3c For more security, you can uncomment Mask and have it match your vhost. However, please be aware that this will make it impossible to authenticate if you ever have to connect from a different IP address.%0a%3c %0a%3c %0a%3c %0a%3c !!!MOTD file%0a%3c %0a%3c %0a%3c Paste your Message of the Day in /etc/ngircd/ngircd.motd. Here's a suggested template:%0a%3c %0a---%0a> %0a> !!! Configuring syslog%0a> %0a> You want all the messages from ngircd to go to /var/log/ngircd.log and not anywhere else, so we insert these three lines starting at line 3 (at the top) in /etc/syslog.conf:%0a> %0a234,248c241,243%0a%3c IRCNow - The Users' Network%0a%3c %0a%3c IRCNow is the network of the user, by the user, for the user.%0a%3c %0a%3c * No porn / illegal drugs / promotion of violence%0a%3c * No slander / libel / gambling%0a%3c * No spam, illegal cracking, or DDoS%0a%3c * No copyright infrigement%0a%3c %0a%3c You must agree to our terms of service and our privacy policy %0a%3c to use this network:%0a%3c %0a%3c https://wiki.ircnow.org/index.php?n=Terms.Terms%0a%3c %0a%3c Only 5 connections per IP address. If you need help, please speak with staff on #help.%0a---%0a> !!ngircd%0a> *.* /var/log/ngircd.log%0a> !*%0a251,255c246,249%0a%3c %0a%3c !!! Configuring syslog%0a%3c %0a%3c You want all the messages from ngircd to go to /var/log/ngircd.log and not anywhere else, so we insert these three lines starting at line 3 (at the top) in /etc/syslog.conf:%0a%3c %0a---%0a> This directs all logs from ngircd to go straight to /var/log/ngircd.log and nowhere else.%0a> %0a> Next, create the file /var/log/ngircd.log and restart syslogd:%0a> %0a257,259c251,252%0a%3c !!ngircd%0a%3c *.* /var/log/ngircd.log%0a%3c !*%0a---%0a> $ doas touch /var/log/ngircd.log%0a> $ doas rcctl restart syslogd%0a262,265c255,256%0a%3c This directs all logs from ngircd to go straight to /var/log/ngircd.log and nowhere else.%0a%3c %0a%3c Next, create the file /var/log/ngircd.log and restart syslogd:%0a%3c %0a---%0a> !!! Operator Block%0a> %0a267,268c258,260%0a%3c $ doas touch /var/log/ngircd.log%0a%3c $ doas rcctl restart syslogd%0a---%0a> [Operator]%0a> Name = username%0a> Password = password%0a270a263,267%0a> Please use a [[password/management|long, random string]] for your password.%0a> %0a> If you uncomment Mask, your hostmask must match the operator hostmask in order for the /OPER command to be accepted. If it differs at all, then your /OPER command will be rejected. If you don't want to check the hostmask, leave Mask commented out.%0a> %0a> For more security, you can uncomment Mask and have it match your vhost. However, please be aware that this will make it impossible to authenticate if you ever have to connect from a different IP address.%0a +host:1625055431=204.111.39.57 +author:1625055293=mistera +diff:1625055293:1625054364:=1,4c1,4%0a%3c (:title Ngircd Install Guide:)%0a%3c %0a%3c %0a%3c %0a---%0a> %25center%25(:title Ngircd Install Guide:)%0a> %0a> %0a> %0a203,204c203%0a%3c --->ChrootDir: We want to [[Chroot.Intro|chroot]] to /var/ngircd to prevent a security compromise. %0a%3c %0a---%0a> --->ChrootDir: We want to chroot to /var/ngircd to prevent a security compromise. %0a207,209c206%0a%3c --->DefaultUserModes: UserMode +i keeps the user invisible, and +C means that only users that share channels can send a message. Both settings help reduce spam, stalking, and harassment. %0a%3c %0a%3c --->NoticeBeforeRegistration: Receiving a notice before registration can help with debugging with [[netcat/irc|netcat]]. We're going to log using syslog (see section below).%0a---%0a> UserMode +i keeps the user invisible, and +C means that only users that share channels can send a message. Both settings help reduce spam, stalking, and harassment. Receiving a notice before registration can help with debugging with [[netcat/irc|netcat]]. We're going to log using syslog (see section below).%0a +host:1625055293=204.111.39.57 +author:1625054364=mistera +diff:1625054364:1625054290:=203,204c203%0a%3c --->ChrootDir: We want to chroot to /var/ngircd to prevent a security compromise. %0a%3c --->CloakHostSalt: We will cloak the host using a unique salt; contact another sysadmin for the exact salt.%0a---%0a> --->ChrootDir: We want to chroot to /var/ngircd to prevent a security compromise. We will cloak the host using a unique salt; contact another sysadmin for the exact salt.%0a +host:1625054364=204.111.39.57 +author:1625054290=mistera +diff:1625054290:1625054230:=193c193%0a%3c CloakHostSalt = %3cabcdefghijklmnopqrstuvwxyz>%0a---%0a> CloakHostSalt = abcdefghijklmnopqrstuvwxyz%0a +host:1625054290=204.111.39.57 +author:1625054230=mistera +diff:1625054230:1625054213:=201,202c201%0a%3c --->AllowRemoteOper: For security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you may not necessarily trust an oper on another server.%0a%3c %0a---%0a> --->AllowRemoteOper: For security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you may not necessarily trust an oper on another server. %0a +host:1625054230=204.111.39.57 +author:1625054213=mistera +diff:1625054213:1625053351:=201,202c201%0a%3c --->AllowRemoteOper: For security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you may not necessarily trust an oper on another server. %0a%3c --->ChrootDir: We want to chroot to /var/ngircd to prevent a security compromise. We will cloak the host using a unique salt; contact another sysadmin for the exact salt.%0a---%0a> For security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you may not necessarily trust an oper on another server. We want to chroot to /var/ngircd to prevent a security compromise. We will cloak the host using a unique salt; contact another sysadmin for the exact salt.%0a +host:1625054213=204.111.39.57 +author:1625053351=mistera +diff:1625053351:1625053318:=169d168%0a%3c %0a183d181%0a%3c %0a +host:1625053351=204.111.39.57 +author:1625053318=mistera +diff:1625053318:1625053282:=181c181%0a%3c --->Ports: listed are the default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls. %0a---%0a> --->Ports:listed are the default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls. %0a +host:1625053318=204.111.39.57 +author:1625053282=mistera +diff:1625053282:1625053102:=181,182c181%0a%3c --->Ports:listed are the default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls. %0a%3c --->MaxNickLength: '''must''' be identical to all servers on the network. On IRCNow, MaxNickLength is [@16@].%0a---%0a> The above are default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls. Note that the MaxNickLength must be identical to all servers on the network. On IRCNow, MaxNickLength is 16.%0a +host:1625053282=204.111.39.57 +author:1625053102=mistera +diff:1625053102:1625052936:=168,169d167%0a%3c --->Motdfile: Stands for "Message of the Day", we will create this at that file location later on.%0a%3c --->Network: IRCnow, or your network (Liberachat, freenode, etc...)%0a +host:1625053102=204.111.39.57 +author:1625052936=mistera +diff:1625052936:1625052913:=164,165c164,165%0a%3c MotdFile = /etc/ngircd/ngircd.motd%0a%3c Network = IRCNow%0a---%0a> MotdFile = /etc/ngircd/ngircd.motd%0a> Network = IRCNow%0a +host:1625052936=204.111.39.57 +author:1625052913=mistera +diff:1625052913:1625052885:=161c161%0a%3c ---->'''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a---%0a> '''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a +host:1625052913=204.111.39.57 +author:1625052885=mistera +diff:1625052885:1625052855:=159c159%0a%3c --->Listen: Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a---%0a> --->Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a +host:1625052885=204.111.39.57 +author:1625052855=mistera +diff:1625052855:1625052777:=159c159%0a%3c --->Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a---%0a> ->Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a +host:1625052855=204.111.39.57 +author:1625052777=mistera +diff:1625052777:1625052767:=144c144%0a%3c --->Name: use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. %0a---%0a> ---->Name: use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. %0a +host:1625052777=204.111.39.57 +author:1625052767=mistera +diff:1625052767:1625052738:=144c144%0a%3c ---->Name: use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. %0a---%0a> -->Name: use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. %0a +host:1625052767=204.111.39.57 +author:1625052738=mistera +diff:1625052738:1625052728:=146,152c146,152%0a%3c --->AdminInfo1: provide a description of your IRC server.%0a%3c %0a%3c --->AdminInfo2: provide the location%0a%3c %0a%3c --->AdminEmail: your Email where bug reports and complaints may be sent%0a%3c %0a%3c --->Info: your server's domain name%0a---%0a> -->AdminInfo1: provide a description of your IRC server.%0a> %0a> -->AdminInfo2: provide the location%0a> %0a> -->AdminEmail: your Email where bug reports and complaints may be sent%0a> %0a> -->Info: your server's domain name%0a +host:1625052738=204.111.39.57 +author:1625052728=mistera +diff:1625052728:1625052654:=144,152c144,152%0a%3c -->Name: use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. %0a%3c %0a%3c -->AdminInfo1: provide a description of your IRC server.%0a%3c %0a%3c -->AdminInfo2: provide the location%0a%3c %0a%3c -->AdminEmail: your Email where bug reports and complaints may be sent%0a%3c %0a%3c -->Info: your server's domain name%0a---%0a> ->Name: use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. %0a> %0a> ->AdminInfo1: provide a description of your IRC server.%0a> %0a> ->AdminInfo2: provide the location%0a> %0a> ->AdminEmail: your Email where bug reports and complaints may be sent%0a> %0a> ->Info: your server's domain name%0a +host:1625052728=204.111.39.57 +author:1625052654=mistera +diff:1625052654:1625052551:=115,116c115,116%0a%3c ->Use your favorite text editor; for example:%0a%3c -->to use vi, %0a---%0a> ->Use your favorite text editor; %0a> -->to use vi, for example:%0a121,123c121,123%0a%3c ->We use the doas command to have all privs to edit the file. You might not have permission to write to the file without doas.%0a%3c %0a%3c ->As you go through the configuration file, find the sections listed below, and change their contents to match the values listed here.%0a---%0a> ->We use the doas command to have all privs to edit the file. ->You might not have permission to write to the file without ->doas.%0a> %0a> ->As you go through the configuration file, find the sections ->listed below, and change their contents to match the values ->listed here.%0a +host:1625052654=204.111.39.57 +author:1625052551=mistera +diff:1625052551:1625052534:=117c117%0a%3c --->[@ $ doas vi /etc/ngircd/ngircd.conf @] %0a---%0a> --->[@ doas vi /etc/ngircd/ngircd.conf @] %0a119c119%0a%3c --->[@ $ doas vim /etc/ngircd/ngircd.conf @] %0a---%0a> --->[@ doas vim /etc/ngircd/ngircd.conf @] %0a +host:1625052551=204.111.39.57 +author:1625052534=mistera +diff:1625052534:1625052505:=117,119c117,119%0a%3c --->[@ doas vi /etc/ngircd/ngircd.conf @] %0a%3c -->or to use vim,%0a%3c --->[@ doas vim /etc/ngircd/ngircd.conf @] %0a---%0a> ->[@ doas vi /etc/ngircd/ngircd.conf @] %0a> ->or to use vim,%0a> ->[@ doas vim /etc/ngircd/ngircd.conf @] %0a +host:1625052534=204.111.39.57 +author:1625052505=mistera +diff:1625052505:1625052489:=116c116%0a%3c -->to use vi, for example:%0a---%0a> ->to use vi, for example:%0a +host:1625052505=204.111.39.57 +author:1625052489=mistera +diff:1625052489:1625052381:=115,123c115,123%0a%3c ->Use your favorite text editor; %0a%3c ->to use vi, for example:%0a%3c ->[@ doas vi /etc/ngircd/ngircd.conf @] %0a%3c ->or to use vim,%0a%3c ->[@ doas vim /etc/ngircd/ngircd.conf @] %0a%3c %0a%3c ->We use the doas command to have all privs to edit the file. ->You might not have permission to write to the file without ->doas.%0a%3c %0a%3c ->As you go through the configuration file, find the sections ->listed below, and change their contents to match the values ->listed here.%0a---%0a> Use your favorite text editor; %0a> to use vi, for example:%0a> [@ doas vi /etc/ngircd/ngircd.conf @] %0a> or to use vim,%0a> [@ doas vim /etc/ngircd/ngircd.conf @] %0a> %0a> We use the doas command to have all privs to edit the file. You might not have permission to write to the file without doas.%0a> %0a> As you go through the configuration file, find the sections listed below, and change their contents to match the values listed here.%0a +host:1625052489=204.111.39.57 +author:1625052381=mistera +diff:1625052381:1625052351:=85,86c85,86%0a%3c 1. pull the codebase from IRCnow's file servers%0a%3c %0a---%0a> # pull the codebase from IRCnow's file servers%0a> %0a89,90c89,90%0a%3c 2. extract the code from the compressed tarball %0a%3c %0a---%0a> # extract the code from the compressed tarball %0a> %0a93,94c93,94%0a%3c 3. change directory into the newly uncompressed folder %0a%3c %0a---%0a> # change directory into the newly uncompressed folder %0a> %0a97c97%0a%3c 4. run the shell script "build.sh" found there, which will reinstall from source %0a---%0a> # run the shell script "build.sh" found there, which will reinstall from source %0a +host:1625052381=204.111.39.57 +author:1625052351=mistera +diff:1625052351:1625052301:=87,88c87,88%0a%3c ->[@ $ ftp https://ircnow.org/software/ngircd.tgz @]%0a%3c %0a---%0a> [@ $ ftp https://ircnow.org/software/ngircd.tgz @]%0a> %0a91,92c91,92%0a%3c ->[@ $ tar xvzf ngircd.tgz @] %0a%3c %0a---%0a> [@ $ tar xvzf ngircd.tgz @] %0a> %0a95,96c95,96%0a%3c ->[@ $ cd ngircd-26.1/ @] %0a%3c %0a---%0a> [@ $ cd ngircd-26.1/ @] %0a> %0a99c99%0a%3c ->[@ $ sh build.sh @] %0a---%0a> [@ $ sh build.sh @] %0a +host:1625052351=204.111.39.57 +author:1625052301=mistera +diff:1625052301:1624972917:=85,99c85,88%0a%3c # pull the codebase from IRCnow's file servers%0a%3c %0a%3c [@ $ ftp https://ircnow.org/software/ngircd.tgz @]%0a%3c %0a%3c # extract the code from the compressed tarball %0a%3c %0a%3c [@ $ tar xvzf ngircd.tgz @] %0a%3c %0a%3c # change directory into the newly uncompressed folder %0a%3c %0a%3c [@ $ cd ngircd-26.1/ @] %0a%3c %0a%3c # run the shell script "build.sh" found there, which will reinstall from source %0a%3c %0a%3c [@ $ sh build.sh @] %0a---%0a> [@ $ ftp https://ircnow.org/software/ngircd.tgz @] # pull the codebase from IRCnow's file servers%0a> [@ $ tar xvzf ngircd.tgz @] # extract the code from the compressed tarball%0a> [@ $ cd ngircd-26.1/ @] # change directory into the newly uncompressed folder%0a> [@ $ sh build.sh @] # run the shell script "build.sh" found there, which will reinstall from source%0a +host:1625052301=204.111.39.57 +author:1624972917=mistera +diff:1624972917:1624968302:=5,22c5,10%0a%3c ----%0a%3c %0a%3c %0a%3c %25center%25In this guide, we'll setup ngircd, a free, portable, lightweight IRC server.%0a%3c %0a%3c ----%0a%3c %0a%3c %0a%3c %25center%25'+'''Theory'''+'%0a%3c %0a%3c %0a%3c ngircd is an IRC (Internet Relay Chat) server. Irc is comprised of a server-client model. The client (such as hexchat, irssi, etc) can receive messages from the server and send messages to the server, but the server connects all the clients and transfers messages between them. In this article, we will set up ngircd so that irc clents can connect to it and communicate with each other.%0a%3c %0a%3c %0a%3c %0a%3c %0a%3c There are many irc servers we could have used, but the advantages of using ngircd are:%0a%3c %0a---%0a> In this guide, we'll setup ngircd, a free, portable, lightweight IRC server.%0a> %0a> %0a> %0a> Advantages:%0a> %0a32,76c20,28%0a%3c %0a%3c %0a%3c %0a%3c ----%0a%3c %0a%3c %0a%3c %25center%25'+'''Docs and references'''+'%0a%3c %0a%3c %0a%3c %0a%3c Getting to know the documentation is important! Before you begin, at least look over the documentation. It will begin to make sense as you use ngircd, and the man pages will eventually become your best friend when you run into errors. Don't understand it yet? Thats ok; Familiarity breeds understanding.%0a%3c %0a%3c #official [[https://ngircd.barton.de/documentation.php.en|ngIRCd documentation]] %0a%3c %0a%3c #read the man pages: in your terminal, after you install ngircd,%0a%3c %0a%3c %0a%3c ->[@ $ man ngircd @]%0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c ----%0a%3c %0a%3c %25center%25'+'''Installation'''+'%0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c !!! Installing from OpenBSD packages%0a%3c %0a%3c %0a%3c Install ngircd%0a%3c %0a%3c -> [@$ doas pkg_add ngircd @]%0a%3c %0a%3c copy the sample configuration file into the location where the program can read it (we will edit it to suit our needs)%0a%3c %0a%3c ->[@$ doas cp /usr/local/share/examples/ngircd/sample-ngircd.conf /etc/ngircd/ngircd.conf%0a---%0a> Before you begin, please read the official [[https://ngircd.barton.de/documentation.php.en|ngIRCd documentation]] and its man pages.%0a> %0a> !! Installation%0a> %0a> !!! From packages%0a> %0a> [@%0a> $ doas pkg_add ngircd%0a> $ doas cp /usr/local/share/examples/ngircd/sample-ngircd.conf /etc/ngircd/ngircd.conf%0a79,101c31,43%0a%3c %0a%3c %0a%3c ngIRCd v26 provided by OpenBSD 6.8 ports does not have ident support. We need to compile from source to get ident support, which is necessary on a production server. You will want to do this after installing from packages, so that rc.d tags are created properly. It is best to do this now.%0a%3c %0a%3c !!! Reinstalling from source%0a%3c %0a%3c [@ $ ftp https://ircnow.org/software/ngircd.tgz @] # pull the codebase from IRCnow's file servers%0a%3c [@ $ tar xvzf ngircd.tgz @] # extract the code from the compressed tarball%0a%3c [@ $ cd ngircd-26.1/ @] # change directory into the newly uncompressed folder%0a%3c [@ $ sh build.sh @] # run the shell script "build.sh" found there, which will reinstall from source%0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c %0a%3c ----%0a%3c %0a%3c %25center%25'+'''Configuring ngircd'''+'%0a%3c %0a%3c %0a%3c Now that we have ngircd installed, its time to set it up. When installing, we copied the sample configuration file. We will now edit it to make it work for us.%0a%3c %0a---%0a> ngIRCd v26 provided by OpenBSD 6.8 ports does not have ident support. You must eventually compile from source to get ident support, which is necessary on a production server. You will want to do this after installing from packages, so that rc.d tags are created properly.%0a> %0a> !!! From source%0a> %0a> [@%0a> $ ftp https://ircnow.org/software/ngircd.tgz%0a> $ tar xvzf ngircd.tgz%0a> $ cd ngircd-26.1/%0a> $ sh build.sh%0a> @]%0a> %0a> !! Configuration%0a> %0a104,120c46,47%0a%3c Use your favorite text editor; %0a%3c to use vi, for example:%0a%3c [@ doas vi /etc/ngircd/ngircd.conf @] %0a%3c or to use vim,%0a%3c [@ doas vim /etc/ngircd/ngircd.conf @] %0a%3c %0a%3c We use the doas command to have all privs to edit the file. You might not have permission to write to the file without doas.%0a%3c %0a%3c As you go through the configuration file, find the sections listed below, and change their contents to match the values listed here.%0a%3c %0a%3c ->'''When you see [@%3ctext>@] it indicates that you must replace the text with something that fits your unique situation; do not just copy it in.'''%0a%3c %0a%3c ->'''Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line if that is desired.'''%0a%3c %0a%3c ->Typically, ";" precedes a line of code that has been commented, while a "#" precedes an actual note that should not be uncommented.%0a%3c %0a%3c %0a---%0a> '''Note''': Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line.%0a> %0a125,129c52,56%0a%3c Name = %3cusername.fruit.ircnow.org>%0a%3c AdminInfo1 = %3cFruit Server on IRCNow>%0a%3c AdminInfo2 = %3cPlanet Earth>%0a%3c AdminEMail = %3cadmin@username.fruit.ircnow.org>%0a%3c Info = %3cusername.fruit.ircnow.org>%0a---%0a> Name = username.fruit.ircnow.org%0a> AdminInfo1 = Fruit Server on IRCNow%0a> AdminInfo2 = Planet Earth%0a> AdminEMail = admin@username.fruit.ircnow.org%0a> Info = username.fruit.ircnow.org%0a132,143c59,60%0a%3c %0a%3c ->Name: use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. %0a%3c %0a%3c ->AdminInfo1: provide a description of your IRC server.%0a%3c %0a%3c ->AdminInfo2: provide the location%0a%3c %0a%3c ->AdminEmail: your Email where bug reports and complaints may be sent%0a%3c %0a%3c ->Info: your server's domain name%0a%3c %0a%3c %0a---%0a> For Name, use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. For AdminInfo1, provide a description; for AdminInfo2, provide the location.%0a> %0a145c62%0a%3c Listen = 127.0.0.1,%3c192.168.1.1>,%3c2001:db8::>%0a---%0a> Listen = 127.0.0.1,192.168.1.1,2001:db8::%0a148,149c65,66%0a%3c ->Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IPs. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a%3c %0a---%0a> Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IP. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a> %0a157c74,75%0a%3c %0a---%0a> Paste your Message of the Day in /etc/ngircd/ngircd.motd. Here's a suggested template:%0a> %0a158a77,94%0a> IRCNow - The Users' Network%0a> %0a> IRCNow is the network of the user, by the user, for the user.%0a> %0a> * No porn / illegal drugs / promotion of violence%0a> * No slander / libel / gambling%0a> * No spam, illegal cracking, or DDoS%0a> * No copyright infrigement%0a> %0a> You must agree to our terms of service and our privacy policy %0a> to use this network:%0a> %0a> https://wiki.ircnow.org/index.php?n=Terms.Terms%0a> %0a> Only 5 connections per IP address. If you need help, please speak with staff on #help.%0a> @]%0a> %0a> [@%0a189,194c125,128%0a%3c %0a%3c !!!MOTD file%0a%3c %0a%3c %0a%3c Paste your Message of the Day in /etc/ngircd/ngircd.motd. Here's a suggested template:%0a%3c %0a---%0a> !!! Configuring syslog%0a> %0a> You want all the messages from ngircd to go to /var/log/ngircd.log and not anywhere else, so we insert these three lines starting at line 3 (at the top) in /etc/syslog.conf:%0a> %0a196,210c130,132%0a%3c IRCNow - The Users' Network%0a%3c %0a%3c IRCNow is the network of the user, by the user, for the user.%0a%3c %0a%3c * No porn / illegal drugs / promotion of violence%0a%3c * No slander / libel / gambling%0a%3c * No spam, illegal cracking, or DDoS%0a%3c * No copyright infrigement%0a%3c %0a%3c You must agree to our terms of service and our privacy policy %0a%3c to use this network:%0a%3c %0a%3c https://wiki.ircnow.org/index.php?n=Terms.Terms%0a%3c %0a%3c Only 5 connections per IP address. If you need help, please speak with staff on #help.%0a---%0a> !!ngircd%0a> *.* /var/log/ngircd.log%0a> !*%0a213,217c135,138%0a%3c %0a%3c !!! Configuring syslog%0a%3c %0a%3c You want all the messages from ngircd to go to /var/log/ngircd.log and not anywhere else, so we insert these three lines starting at line 3 (at the top) in /etc/syslog.conf:%0a%3c %0a---%0a> This directs all logs from ngircd to go straight to /var/log/ngircd.log and nowhere else.%0a> %0a> Next, create the file /var/log/ngircd.log and restart syslogd:%0a> %0a219,221c140,141%0a%3c !!ngircd%0a%3c *.* /var/log/ngircd.log%0a%3c !*%0a---%0a> $ doas touch /var/log/ngircd.log%0a> $ doas rcctl restart syslogd%0a224,227c144,145%0a%3c This directs all logs from ngircd to go straight to /var/log/ngircd.log and nowhere else.%0a%3c %0a%3c Next, create the file /var/log/ngircd.log and restart syslogd:%0a%3c %0a---%0a> !!! Operator Block%0a> %0a229,230c147,149%0a%3c $ doas touch /var/log/ngircd.log%0a%3c $ doas rcctl restart syslogd%0a---%0a> [Operator]%0a> Name = username%0a> Password = password%0a233,240d151%0a%3c !!! Operator Block%0a%3c %0a%3c [@%0a%3c [Operator]%0a%3c Name = username%0a%3c Password = password%0a%3c @]%0a%3c %0a246,247d156%0a%3c %0a%3c %0a +host:1624972917=204.111.39.57 +author:1624968302=mistera +diff:1624968302:1620722004:=1,4c1,2%0a%3c %25center%25(:title Ngircd Install Guide:)%0a%3c %0a%3c %0a%3c %0a---%0a> (:title Ngircd Install Guide:)%0a> %0a6,7d3%0a%3c %0a%3c %0a +host:1624968302=204.111.39.57 +author:1620722004=jrmu +diff:1620722004:1614857898:=16,17c16,17%0a%3c Before you begin, please read the official [[https://ngircd.barton.de/documentation.php.en|ngIRCd documentation]] and its man pages.%0a%3c %0a---%0a> Before you begin, please read the official [[https://ngircd.barton.de/documentation.php.en|ngIRCd documentation]].%0a> %0a27,28c27,28%0a%3c ngIRCd v26 provided by OpenBSD 6.8 ports does not have ident support. You must eventually compile from source to get ident support, which is necessary on a production server. You will want to do this after installing from packages, so that rc.d tags are created properly.%0a%3c %0a---%0a> ngIRCd v26 provided by OpenBSD 6.8 ports does not have ident support. You must eventually compile from source to get ident support, which is necessary on a production server.%0a> %0a61,62c61,62%0a%3c Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. Replace these with your real public IP. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a%3c %0a---%0a> Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a> %0a119c119%0a%3c UserMode +i keeps the user invisible, and +C means that only users that share channels can send a message. Both settings help reduce spam, stalking, and harassment. Receiving a notice before registration can help with debugging with [[netcat/irc|netcat]]. We're going to log using syslog (see section below).%0a---%0a> UserMode i keeps the user invisible, and C means that only users that share channels can send a message. Both settings help reduce spam, stalking, and harassment. Receiving a notice before registration can help with debugging with [[openbsd/netcat|netcat]]. We're going to log using syslog (see section below).%0a +host:1620722004=198.251.81.119 +author:1614857898=jrmu +diff:1614857898:1612974683:=108a109%0a> CloakHostModeX = jrmu.coconut.ircnow.org%0a +host:1614857898=198.251.81.119 +author:1612974683=jrmu +diff:1612974683:1612974683:=1,233d0%0a%3c (:title Ngircd Install Guide:)%0a%3c %0a%3c In this guide, we'll setup ngircd, a free, portable, lightweight IRC server.%0a%3c %0a%3c Advantages:%0a%3c %0a%3c # The source code runs well on OpenBSD%0a%3c # The server has a very simple, easy-to-understand configuration%0a%3c # Fewer features means the manual pages are short%0a%3c # The server is a clean implementation which was written from scratch%0a%3c # The source code is written in modern, portable C. It will be easy to fork to new features such as:%0a%3c # Customized censorship to block NSFW content%0a%3c # Spam filters%0a%3c # The lead developer po||ux actively hangs out on the IRC server barton.ngircd.de on #ngircd%0a%3c %0a%3c Before you begin, please read the official [[https://ngircd.barton.de/documentation.php.en|ngIRCd documentation]].%0a%3c %0a%3c !! Installation%0a%3c %0a%3c !!! From packages%0a%3c %0a%3c [@%0a%3c $ doas pkg_add ngircd%0a%3c $ doas cp /usr/local/share/examples/ngircd/sample-ngircd.conf /etc/ngircd/ngircd.conf%0a%3c @]%0a%3c %0a%3c ngIRCd v26 provided by OpenBSD 6.8 ports does not have ident support. You must eventually compile from source to get ident support, which is necessary on a production server.%0a%3c %0a%3c !!! From source%0a%3c %0a%3c [@%0a%3c $ ftp https://ircnow.org/software/ngircd.tgz%0a%3c $ tar xvzf ngircd.tgz%0a%3c $ cd ngircd-26.1/%0a%3c $ sh build.sh%0a%3c @]%0a%3c %0a%3c !! Configuration%0a%3c %0a%3c Edit /etc/ngircd/ngircd.conf:%0a%3c %0a%3c '''Note''': Lines that begin with # or ; are comments and will be ignored. Remove # or ; to uncomment the line.%0a%3c %0a%3c !!! Global Block%0a%3c %0a%3c [@%0a%3c [Global]%0a%3c Name = username.fruit.ircnow.org%0a%3c AdminInfo1 = Fruit Server on IRCNow%0a%3c AdminInfo2 = Planet Earth%0a%3c AdminEMail = admin@username.fruit.ircnow.org%0a%3c Info = username.fruit.ircnow.org%0a%3c @]%0a%3c %0a%3c For Name, use your hostname (like username.fruit.ircnow.org). If you are on a team, use irc.example.com, replacing example.com with your team's custom domain. For AdminInfo1, provide a description; for AdminInfo2, provide the location.%0a%3c %0a%3c [@%0a%3c Listen = 127.0.0.1,192.168.1.1,2001:db8::%0a%3c @]%0a%3c %0a%3c Uncomment this line and provide every single IP address we want ngircd to listen on. This includes localhost (127.0.0.1), and our public IPv4 and IPv6 addresses. If you are hosting a public service and not on training, avoid listing IPs that are not DDoS-filtered. IRC servers are heavily DDoSed and using an unfiltered IP will get you nullrouted.%0a%3c %0a%3c '''Note''': if you do not uncomment on this line, you will listen to all IPs by default, which is probably a mistake.%0a%3c %0a%3c [@%0a%3c MotdFile = /etc/ngircd/ngircd.motd%0a%3c Network = IRCNow%0a%3c @]%0a%3c %0a%3c Paste your Message of the Day in /etc/ngircd/ngircd.motd. Here's a suggested template:%0a%3c %0a%3c [@%0a%3c IRCNow - The Users' Network%0a%3c %0a%3c IRCNow is the network of the user, by the user, for the user.%0a%3c %0a%3c * No porn / illegal drugs / promotion of violence%0a%3c * No slander / libel / gambling%0a%3c * No spam, illegal cracking, or DDoS%0a%3c * No copyright infrigement%0a%3c %0a%3c You must agree to our terms of service and our privacy policy %0a%3c to use this network:%0a%3c %0a%3c https://wiki.ircnow.org/index.php?n=Terms.Terms%0a%3c %0a%3c Only 5 connections per IP address. If you need help, please speak with staff on #help.%0a%3c @]%0a%3c %0a%3c [@%0a%3c Ports = 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 7000, 16667%0a%3c MaxConnectionsIP = 0%0a%3c MaxJoins = 300%0a%3c MaxNickLength = 16%0a%3c MaxListSize = 1000%0a%3c PingTimeout = 300%0a%3c PongTimeout = 300%0a%3c @]%0a%3c %0a%3c The above are default plaintext ports we listen on; we provide ports besides the standard 6667 to allow users to evade their network firewalls. Note that the MaxNickLength must be identical to all servers on the network. On IRCNow, MaxNickLength is 16.%0a%3c %0a%3c !!! Options Block%0a%3c %0a%3c [@%0a%3c [Options]%0a%3c AllowRemoteOper = no%0a%3c ChrootDir = /var/ngircd%0a%3c CloakHost = %25x%0a%3c CloakHostModeX = jrmu.coconut.ircnow.org%0a%3c CloakHostSalt = abcdefghijklmnopqrstuvwxyz%0a%3c DefaultUserModes = iC%0a%3c NoticeBeforeRegistration = yes%0a%3c OperChanPAutoOp = no %0a%3c RequireAuthPing = yes%0a%3c SyslogFacility = daemon%0a%3c @]%0a%3c %0a%3c For security reasons, we do not want to allow remote opers. Each team appoints their own opers, so you may not necessarily trust an oper on another server. We want to chroot to /var/ngircd to prevent a security compromise. We will cloak the host using a unique salt; contact another sysadmin for the exact salt.%0a%3c %0a%3c UserMode i keeps the user invisible, and C means that only users that share channels can send a message. Both settings help reduce spam, stalking, and harassment. Receiving a notice before registration can help with debugging with [[openbsd/netcat|netcat]]. We're going to log using syslog (see section below).%0a%3c %0a%3c !!! Configuring syslog%0a%3c %0a%3c You want all the messages from ngircd to go to /var/log/ngircd.log and not anywhere else, so we insert these three lines starting at line 3 (at the top) in /etc/syslog.conf:%0a%3c %0a%3c [@%0a%3c !!ngircd%0a%3c *.* /var/log/ngircd.log%0a%3c !*%0a%3c @]%0a%3c %0a%3c This directs all logs from ngircd to go straight to /var/log/ngircd.log and nowhere else.%0a%3c %0a%3c Next, create the file /var/log/ngircd.log and restart syslogd:%0a%3c %0a%3c [@%0a%3c $ doas touch /var/log/ngircd.log%0a%3c $ doas rcctl restart syslogd%0a%3c @]%0a%3c %0a%3c !!! Operator Block%0a%3c %0a%3c [@%0a%3c [Operator]%0a%3c Name = username%0a%3c Password = password%0a%3c @]%0a%3c %0a%3c Please use a [[password/management|long, random string]] for your password.%0a%3c %0a%3c If you uncomment Mask, your hostmask must match the operator hostmask in order for the /OPER command to be accepted. If it differs at all, then your /OPER command will be rejected. If you don't want to check the hostmask, leave Mask commented out.%0a%3c %0a%3c For more security, you can uncomment Mask and have it match your vhost. However, please be aware that this will make it impossible to authenticate if you ever have to connect from a different IP address.%0a%3c %0a%3c !! Chroot%0a%3c %0a%3c We need to set up the [[openbsd/chroot|chroot]] for ngircd. Let's copy the files into the chroot:%0a%3c %0a%3c [@%0a%3c $ doas mkdir /var/ngircd/etc/%0a%3c $ doas cp -R /etc/ngircd /var/ngircd/etc/%0a%3c $ doas chown -R _ngircd:_ngircd /var/ngircd/%0a%3c $ doas rm -r /etc/ngircd%0a%3c $ doas ln -s /var/ngircd/etc/ngircd /etc/ngircd%0a%3c @]%0a%3c %0a%3c This will create a symlink so that only one set of configuration files needs to be maintained inside and outside of the chroot. Otherwise, ngircd will require two sets of configuration files, one inside and the other outside of the chroot.%0a%3c %0a%3c !! Starting ngircd%0a%3c %0a%3c To start ngircd:%0a%3c %0a%3c [@%0a%3c doas rcctl enable ngircd%0a%3c doas rcctl start ngircd%0a%3c @]%0a%3c %0a%3c [[rcctl/rcctl|rcctl]] controls how system daemons are run.%0a%3c %0a%3c Next, use your IRC client to connect to the server, which may have the hostname user.fruit.ircnow.org. Join a few channels and chat inside.%0a%3c %0a%3c !! Troubleshooting%0a%3c %0a%3c If you run into any errors, you can test to see if your configuration file has errors:%0a%3c %0a%3c [@%0a%3c $ doas ngircd -t%0a%3c @]%0a%3c %0a%3c To run ngircd in debug mode:%0a%3c %0a%3c [@%0a%3c $ doas ngircd -n%0a%3c @]%0a%3c %0a%3c Check /var/log/ngircd.log to see if ngircd is listening on the correct IP addresses and ports. Connect to those ports using your IRC client to verify that the server is working as intended.%0a%3c %0a%3c Remember, if you are connecting using port 6667 without SSL, any eavesdropper can read all your text, including your passwords. Don't send any sensitive information until you have upgraded to [[ngircd/ssl|SSL]].%0a%3c %0a%3c !! Reloading and Restarting ngIRCd%0a%3c %0a%3c After you edit /etc/ngircd/ngircd.conf for a running ngircd server, you will need to reload the configuration file:%0a%3c %0a%3c [@%0a%3c $ doas rcctl reload ngircd%0a%3c @]%0a%3c %0a%3c Alternatively, you can run:%0a%3c %0a%3c [@%0a%3c $ doas pkill -HUP ngircd%0a%3c @]%0a%3c %0a%3c '''Reloading''' a configuration file will '''not''' disconnect any active connections. So, try to reload the configuration where possible.%0a%3c %0a%3c To restart the ircd:%0a%3c %0a%3c [@%0a%3c $ doas rcctl restart ngircd%0a%3c @]%0a%3c %0a%3c '''WARNING''': '''Restarting''' the ircd '''will''' disconnect all existing connections. So, try to restart ngircd only when absolutely necessary.%0a%3c %0a%3c '''Warning''': ngircd appears to have a bug where the ircd will crash if you reload the configuration file while a message is being sent. Be careful to avoid reloading configuration files when many users are chatting.%0a%3c %0a%3c !! See Also%0a%3c %0a%3c # Configure [[ngircd/ssl|SSL]] for ngircd to ensure secure connections%0a%3c # [[ngircd/link|Link your ngircd]] with another server to create a network%0a%3c # Install [[anope/install|anope]] to provide services%0a%3c # Install [[achurch/install|achurch]] to test achurch services%0a%3c # Configure [[hopm/install|hopm]], an open proxy monitor to stop spammers.%0a%3c # Configure [[acopm/install|acopm]], a minimalist open proxy monitor to stop spammers.%0a\ No newline at end of file%0a +host:1612974683=198.251.81.119 blob - 26ada68d7f2d85aef37250518e921a42812a96fa blob + b0f5fae5bd05ef249ba5e54e5c3e5c6f9735924e --- wiki.d/Openbsd.Php +++ wiki.d/Openbsd.Php @@ -1,21 +1,48 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=w3m/0.5.3+git20210102 -author=jrmu +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 +author=mkf charset=UTF-8 csum= -ctime=1597744296 -host=38.87.162.8 +ctime=1627380291 +host=198.251.82.194 name=Openbsd.Php -rev=3 -targets= -text=(:redirect Php.Install:)%0a[@%0a$ doas pkg_add php%0a@]%0a%0a[@%0a$ doas rcctl enable php74_fpm%0a$ doas rcctl start php74_fpm%0a@]%0a%0a[@%0aserver "example.com" {%0a listen on * port 8080%0a location "*.php" {%0a fastcgi socket "/run/php-fpm.sock"%0a }%0a}%0a@]%0a%0aTo check for PHP configuration errors:%0a%0a[@%0a# less /var/www/logs/access.log%0a# less /var/www/logs/error.log%0a@]%0a -time=1627397623 -author:1627397623=jrmu -diff:1627397623:1598250366:=1d0%0a%3c (:redirect Php.Install:)%0a25c24%0a%3c @]%0a---%0a> @]%0a\ No newline at end of file%0a -host:1627397623=38.87.162.8 -author:1598250366=baytuch -diff:1598250366:1597744296:= -host:1598250366=91.228.147.58 -author:1597744296=jrmu -diff:1597744296:1597744296:=1,24d0%0a%3c [@%0a%3c $ doas pkg_add php%0a%3c @]%0a%3c %0a%3c [@%0a%3c $ doas rcctl enable php74_fpm%0a%3c $ doas rcctl start php74_fpm%0a%3c @]%0a%3c %0a%3c [@%0a%3c server "example.com" {%0a%3c listen on * port 8080%0a%3c location "*.php" {%0a%3c fastcgi socket "/run/php-fpm.sock"%0a%3c }%0a%3c }%0a%3c @]%0a%3c %0a%3c To check for PHP configuration errors:%0a%3c %0a%3c [@%0a%3c # less /var/www/logs/access.log%0a%3c # less /var/www/logs/error.log%0a%3c @]%0a\ No newline at end of file%0a -host:1597744296=38.81.163.143 +rev=11 +targets=Acme-client.Configure,Openhttpd.TLS,Relayd.Acceleration +text=(:title Install PHP for OpenHTTPd:)%0a%0aYou'll first want to choose the version of PHP you use:%0a%0a!! Install PHP7%0a%0a[@%0a$ doas pkg_add php%257%0a$ doas rcctl enable php74_fpm%0a$ doas rcctl start php74_fpm%0a@]%0a%0a!! Install PHP8%0a%0a[@%0a$ doas pkg_add php%258%0a$ doas rcctl enable php80_fpm%0a$ doas rcctl start php80_fpm%0a@]%0a%0aThen, in /etc/httpd.conf, add the following block:%0a%0a[@%0aserver "example.com" {%0a listen on * port 80%0a location "/.well-known/acme-challenge/*" {%0a root "/acme"%0a request strip 2%0a }%0a location "*.php" {%0a fastcgi socket "/run/php-fpm.sock"%0a root "/htdocs/example.com"%0a }%0a}%0a@]%0a%0aLines 3-7, the @@location "/.well-known/acme-challenge/*"@@ block, is for [[acme-client/configure|acme-client]], for requesting new SSL certs.%0a%0aLines 8-11, the @@location "*.php"@@ block, tells the web server to use PHP for any file that ends with a @@.php@@ file extension.%0a%0aLine 10 says where the '''document root''' is located -- where web files should be placed. By default, openhttpd chroots into /var/www, so if your document root is /htdocs/example.com, then your actual web files need to be placed in /var/www/htdocs/example.com. %0a%0a'''NOTE''': Make sure to replace example.com with your real domain.%0a%0aTo test your installation, create the file /var/www/htdocs/example.com/index.php:%0a%0a[@%0a%3c?php phpinfo(); ?>%0a@]%0a%0aThen, have your web browser visit http://example.com/ . If you set everything up correctly, you should see a screen full of PHP installation information.%0a%0aFor SSL, you will want to follow the [[openhttpd/TLS|OpenHTTPD TLS]] or [[relayd/acceleration|relayd]] guides.%0a%0a!! Troubleshooting %0a%0aIf you run into any PHP configuration errors, check the logs folder in /var/www/logs:%0a%0a[@%0a$ less /var/www/logs/access.log%0a$ less /var/www/logs/error.log%0a@]%0a%0a!! Files%0a|| border=1 class="sortable simpletable"%0a||! File Path ||! Purpose ||%0a|| /var/www/logs/access.log || Web access logs ||%0a|| /var/www/logs/error.log || Web error logs ||%0a%0a%0a!! Upgrading Notes%0a%0aIf you are upgrading to php8.0 and you have got pmwiki, then make sure that you update your pmwiki, else it will spam your logs and it will be within a minute that you got no space left on /var %0a%0a +time=1674240664 +title=Install PHP for OpenHTTPd +author:1674240664=mkf +diff:1674240664:1674240647:=65c65%0a%3c || border=1 class="sortable simpletable"%0a---%0a> || border=1 width=100%25 class="sortable simpletable"%0a +host:1674240664=198.251.82.194 +author:1674240647=mkf +diff:1674240647:1651619461:=65,66c65,66%0a%3c || border=1 width=100%25 class="sortable simpletable"%0a%3c ||! File Path ||! Purpose ||%0a---%0a> %0a> || File Path || Purpose ||%0a +host:1674240647=198.251.82.194 +author:1651619461=jrmu +diff:1651619461:1644140531:=3,6c3,4%0a%3c You'll first want to choose the version of PHP you use:%0a%3c %0a%3c !! Install PHP7%0a%3c %0a---%0a> !! Install%0a> %0a8,10c6,8%0a%3c $ doas pkg_add php%257%0a%3c $ doas rcctl enable php74_fpm%0a%3c $ doas rcctl start php74_fpm%0a---%0a> $ doas pkg_add php-8.0.8%0a> $ doas rcctl enable php80_fpm%0a> $ doas rcctl start php80_fpm%0a13,14c11,12%0a%3c !! Install PHP8%0a%3c %0a---%0a> Then, in /etc/httpd.conf, add the following block:%0a> %0a16,23d13%0a%3c $ doas pkg_add php%258%0a%3c $ doas rcctl enable php80_fpm%0a%3c $ doas rcctl start php80_fpm%0a%3c @]%0a%3c %0a%3c Then, in /etc/httpd.conf, add the following block:%0a%3c %0a%3c [@%0a74d63%0a%3c %0a +host:1651619461=38.87.162.154 +author:1644140531=Naglfar +csum:1644140531=Update SquirrelMail version to 1.4.23 [SVN] and PHP 8.0.x +diff:1644140531:1637932804:=9a10,11%0a> %0a> '''Note''': SquirrleMail does not support PHP-8.x. The latest known supported PHP version is 7.x.%0a +host:1644140531=92.191.225.58 +author:1637932804=miniontoby +csum:1637932804=Added upgarding notes +diff:1637932804:1637797470:=61,65d60%0a%3c %0a%3c %0a%3c !! Upgrading Notes%0a%3c %0a%3c If you are upgrading to php8.0 and you have got pmwiki, then make sure that you update your pmwiki, else it will spam your logs and it will be within a minute that you got no space left on /var %0a +host:1637932804=82.170.78.91 +author:1637797470=bugzbunny +diff:1637797470:1627381487:=10,11d9%0a%3c %0a%3c '''Note''': SquirrleMail does not support PHP-8.x. The latest known supported PHP version is 7.x.%0a +host:1637797470=72.78.238.236 +author:1627381487=jrmu +diff:1627381487:1627381296:=35,43c35%0a%3c To test your installation, create the file /var/www/htdocs/example.com/index.php:%0a%3c %0a%3c [@%0a%3c %3c?php phpinfo(); ?>%0a%3c @]%0a%3c %0a%3c Then, have your web browser visit http://example.com/ . If you set everything up correctly, you should see a screen full of PHP installation information.%0a%3c %0a%3c For SSL, you will want to follow the [[openhttpd/TLS|OpenHTTPD TLS]] or [[relayd/acceleration|relayd]] guides.%0a---%0a> To test your installation,%0a +host:1627381487=38.87.162.8 +author:1627381296=jrmu +diff:1627381296:1627380982:=22d21%0a%3c root "/htdocs/example.com"%0a29,35c28%0a%3c Lines 8-11, the @@location "*.php"@@ block, tells the web server to use PHP for any file that ends with a @@.php@@ file extension.%0a%3c %0a%3c Line 10 says where the '''document root''' is located -- where web files should be placed. By default, openhttpd chroots into /var/www, so if your document root is /htdocs/example.com, then your actual web files need to be placed in /var/www/htdocs/example.com. %0a%3c %0a%3c '''NOTE''': Make sure to replace example.com with your real domain.%0a%3c %0a%3c To test your installation,%0a---%0a> Lines 8-10, the @@location "*.php"@@ block, tells the web server to use PHP for any file that ends with a @@.php@@ file extension.%0a +host:1627381296=38.87.162.8 +author:1627380982=jrmu +diff:1627380982:1627380946:=42,43c42,43%0a%3c || /var/www/logs/access.log || Web access logs ||%0a%3c || /var/www/logs/error.log || Web error logs ||%0a---%0a> || /var/www/logs/ || Web logs ||%0a> || ||%0a +host:1627380982=38.87.162.8 +author:1627380946=jrmu +diff:1627380946:1627380291:=6,8c6%0a%3c $ doas pkg_add php-8.0.8%0a%3c $ doas rcctl enable php80_fpm%0a%3c $ doas rcctl start php80_fpm%0a---%0a> $ doas pkg_add php%0a11,12d8%0a%3c Then, in /etc/httpd.conf, add the following block:%0a%3c %0a13a10,14%0a> $ doas rcctl enable php74_fpm%0a> $ doas rcctl start php74_fpm%0a> @]%0a> %0a> [@%0a15,19c16%0a%3c listen on * port 80%0a%3c location "/.well-known/acme-challenge/*" {%0a%3c root "/acme"%0a%3c request strip 2%0a%3c }%0a---%0a> listen on * port 8080%0a26,33c23,24%0a%3c Lines 3-7, the @@location "/.well-known/acme-challenge/*"@@ block, is for [[acme-client/configure|acme-client]], for requesting new SSL certs.%0a%3c %0a%3c Lines 8-10, the @@location "*.php"@@ block, tells the web server to use PHP for any file that ends with a @@.php@@ file extension.%0a%3c %0a%3c !! Troubleshooting %0a%3c %0a%3c If you run into any PHP configuration errors, check the logs folder in /var/www/logs:%0a%3c %0a---%0a> To check for PHP configuration errors:%0a> %0a35,36c26,27%0a%3c $ less /var/www/logs/access.log%0a%3c $ less /var/www/logs/error.log%0a---%0a> # less /var/www/logs/access.log%0a> # less /var/www/logs/error.log%0a38,43d28%0a%3c %0a%3c !! Files%0a%3c %0a%3c || File Path || Purpose ||%0a%3c || /var/www/logs/ || Web logs ||%0a%3c || ||%0a +host:1627380946=38.87.162.8 +author:1627380291=jrmu +diff:1627380291:1627380291:=1,28d0%0a%3c (:title Install PHP for OpenHTTPd:)%0a%3c %0a%3c !! Install%0a%3c %0a%3c [@%0a%3c $ doas pkg_add php%0a%3c @]%0a%3c %0a%3c [@%0a%3c $ doas rcctl enable php74_fpm%0a%3c $ doas rcctl start php74_fpm%0a%3c @]%0a%3c %0a%3c [@%0a%3c server "example.com" {%0a%3c listen on * port 8080%0a%3c location "*.php" {%0a%3c fastcgi socket "/run/php-fpm.sock"%0a%3c }%0a%3c }%0a%3c @]%0a%3c %0a%3c To check for PHP configuration errors:%0a%3c %0a%3c [@%0a%3c # less /var/www/logs/access.log%0a%3c # less /var/www/logs/error.log%0a%3c @]%0a +host:1627380291=38.87.162.8 blob - 7edd0657225d0edae3ab0d6348590c26bdedc850 blob + 626ae522a01d30e621bd88b30aecf46a7446ea82 --- wiki.d/Openbsd.Pmwiki +++ wiki.d/Openbsd.Pmwiki @@ -1,60 +1,135 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36 -author=miniontoby +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:68.0) Gecko/20100101 Firefox/68.0 SeaMonkey/2.53.11.1 +author=mkf charset=UTF-8 -csum=added credits -ctime=1597537582 -host=77.168.188.164 +csum=replace * with +, which means it needs more than one characters. +ctime=1627378629 +host=91.185.139.136 name=Openbsd.Pmwiki -rev=14 -targets= -text=pmwiki is a 2 step install. It's on the official pmwiki page, there's not that much to do.%0a%0aTo change the password prompt page, edit Site.AuthForm.%0a%0aTo create a password hash for https://example.com/index.php?n=SiteAdmin.AuthUser, run this command:%0a%0a[@%0a$ php-7.4 %0a%3c?php echo password_hash("PASSWORD", PASSWORD_BCRYPT); ?>%0a@]%0a%0aReplace PASSWORD with your real password.%0a%0a!! Clean url's %0a%0aIf you want clean url's you need to do the following (written by Miniontoby) %0a%0aChange your httpd.conf block for your wiki so it looks like:%0a[@%0aserver "wiki.example.com" {%0a listen on * port 80%0a location "/.well-known/acme-challenge/*" {%0a root "/acme"%0a request strip 2%0a }%0a location "*.php" {%0a fastcgi socket "/run/php-fpm.sock"%0a root "/htdocs/wiki.example.com"%0a }%0a directory {%0a index "index.php"%0a }%0a location match "/pub/(.*)" {%0a request rewrite "/pub/%251"%0a }%0a location match "/cookbook/(.*)" {%0a request rewrite "/cookbook/%251"%0a }%0a location match "/uploads/(.*)" {%0a request rewrite "/uploads/%251"%0a }%0a location match "/local/(.*)" {%0a request rewrite "/local/%251"%0a }%0a location match "/favicon.(.*)" {%0a request rewrite "/favicon.%251"%0a }%0a location match "/(.*)/(.*)" {%0a request rewrite "/pmwiki.php?n=%251.%252?$QUERY_STRING"%0a }%0a location match "/(.*)" {%0a request rewrite "/pmwiki.php?n=%251?$QUERY_STRING"%0a }%0a connection max request body 104857600%0a}%0a@]%0a%0aand edit your /var/www/htdocs/pmwiki/local/config.php:%0a[@$EnablePathInfo = 1; //for enabling automatic use%0a$ScriptUrl = 'https://wiki.example.com'; //for the homepage%0a$PubDirUrl = 'https://wiki.example.com/pub'; //for the pub dir%0a$UploadDir = "/var/www/htdocs/pmwiki/uploads"; //for the upload dir (plz make it firstly if not exist)%0a$UploadUrlFmt = "https://wiki.example.com/uploads"; //for upload dir on the wiki@]%0a%0a!! Mirroring%0a%0aWhen mirroring, make sure to delete:%0a%0a[@%0alocal/config.php%0awiki.d/SiteAdmin.AuthUser%0a@]%0a -time=1634220888 -author:1634220888=miniontoby -csum:1634220888=added credits -diff:1634220888:1632320745:=16c16%0a%3c If you want clean url's you need to do the following (written by Miniontoby) %0a---%0a> If you want clean url's you need to do the following (which I (Miniontoby) didn't really wanted to share) %0a -host:1634220888=77.168.188.164 -author:1632320745=miniontoby -csum:1632320745=smarter -diff:1632320745:1632320367:minor=36c36%0a%3c location match "/cookbook/(.*)" {%0a---%0a> location "/cookbook/*" {%0a39c39%0a%3c location match "/uploads/(.*)" {%0a---%0a> location "/uploads/*" {%0a42c42%0a%3c location match "/local/(.*)" {%0a---%0a> location "/local/*" {%0a45,46c45,46%0a%3c location match "/favicon.(.*)" {%0a%3c request rewrite "/favicon.%251"%0a---%0a> location "/favicon.jpg" {%0a> request rewrite "/favicon.jpg"%0a -host:1632320745=77.168.188.164 -author:1632320367=miniontoby -csum:1632320367=updated the code -diff:1632320367:1632320226:minor=21,25c21,27%0a%3c listen on * port 80%0a%3c location "/.well-known/acme-challenge/*" {%0a%3c root "/acme"%0a%3c request strip 2%0a%3c }%0a---%0a> listen on * port 8080%0a> root "/htdocs/pmwiki"%0a> directory index "pmwiki.php"%0a> location "/.well-known/acme-challenge/*" {%0a> root "/acme"%0a> request strip 2%0a> }%0a28d29%0a%3c root "/htdocs/wiki.example.com"%0a30,32d30%0a%3c directory {%0a%3c index "index.php"%0a%3c }%0a54d51%0a%3c connection max request body 104857600%0a -host:1632320367=77.168.188.164 -author:1632320226=miniontoby -csum:1632320226=changed the httpd.conf adding to just the whole thing -diff:1632320226:1628699195:=18c18%0a%3c Change your httpd.conf block for your wiki so it looks like:%0a---%0a> add to your httpd.conf wiki block%0a20,26c20,21%0a%3c server "wiki.example.com" {%0a%3c listen on * port 8080%0a%3c root "/htdocs/pmwiki"%0a%3c directory index "pmwiki.php"%0a%3c location "/.well-known/acme-challenge/*" {%0a%3c root "/acme"%0a%3c request strip 2%0a---%0a> location match "/pub/(.*)" {%0a> request rewrite "/pub/%251"%0a28,29c23,24%0a%3c location "*.php" {%0a%3c fastcgi socket "/run/php-fpm.sock"%0a---%0a> location match "/cookbook/(.*)" {%0a> request rewrite "/cookbook/%251"%0a31,32c26,27%0a%3c location match "/pub/(.*)" {%0a%3c request rewrite "/pub/%251"%0a---%0a> location match "/uploads/(.*)" {%0a> request rewrite "/uploads/%251"%0a34,35c29,30%0a%3c location "/cookbook/*" {%0a%3c request rewrite "/cookbook/%251"%0a---%0a> location match "/(.*)/(.*)" {%0a> request rewrite "/pmwiki.php?n=%251.%252?$QUERY_STRING"%0a37,38c32,33%0a%3c location "/uploads/*" {%0a%3c request rewrite "/uploads/%251"%0a---%0a> location match "/(.*)" {%0a> request rewrite "/pmwiki.php?n=%251?$QUERY_STRING"%0a40,52d34%0a%3c location "/local/*" {%0a%3c request rewrite "/local/%251"%0a%3c }%0a%3c location "/favicon.jpg" {%0a%3c request rewrite "/favicon.jpg"%0a%3c }%0a%3c location match "/(.*)/(.*)" {%0a%3c request rewrite "/pmwiki.php?n=%251.%252?$QUERY_STRING"%0a%3c }%0a%3c location match "/(.*)" {%0a%3c request rewrite "/pmwiki.php?n=%251?$QUERY_STRING"%0a%3c }%0a%3c }%0a -host:1632320226=77.168.188.164 -author:1628699195=jrmu -diff:1628699195:1628699177:=48d47%0a%3c [@%0a50,51c49%0a%3c wiki.d/SiteAdmin.AuthUser%0a%3c @]%0a---%0a> wiki.d/iteAdmin.AuthUser%0a -host:1628699195=38.87.162.8 -author:1628699177=jrmu -diff:1628699177:1628699173:= -host:1628699177=38.87.162.8 -author:1628699173=jrmu -diff:1628699173:1614565409:=43,49d42%0a%3c %0a%3c !! Mirroring%0a%3c %0a%3c When mirroring, make sure to delete:%0a%3c %0a%3c local/config.php%0a%3c wiki.d/iteAdmin.AuthUser%0a -host:1628699173=38.87.162.8 -author:1614565409=jrmu -diff:1614565409:1614565297:=9c9%0a%3c %3c?php echo password_hash("PASSWORD", PASSWORD_BCRYPT); ?>%0a---%0a> %3c?php echo password_hash("PASSWORD", PASSWORD_DEFAULT); ?>%0a -host:1614565409=125.224.26.27 -author:1614565297=jrmu -diff:1614565297:1614565286:=12c12%0a%3c Replace PASSWORD with your real password.%0a---%0a> Replace PASSWORD with your rela password.%0a -host:1614565297=125.224.26.27 -author:1614565286=jrmu -diff:1614565286:1609771974:=5,12d4%0a%3c To create a password hash for https://example.com/index.php?n=SiteAdmin.AuthUser, run this command:%0a%3c %0a%3c [@%0a%3c $ php-7.4 %0a%3c %3c?php echo password_hash("PASSWORD", PASSWORD_DEFAULT); ?>%0a%3c @]%0a%3c %0a%3c Replace PASSWORD with your rela password.%0a -host:1614565286=125.224.26.27 -author:1609771974=miniontoby -csum:1609771974=Clean urls -diff:1609771974:1600397456:=3,34c3%0a%3c To change the password prompt page, edit Site.AuthForm.%0a%3c %0a%3c %0a%3c !! Clean url's %0a%3c %0a%3c If you want clean url's you need to do the following (which I (Miniontoby) didn't really wanted to share) %0a%3c %0a%3c add to your httpd.conf wiki block%0a%3c [@%0a%3c location match "/pub/(.*)" {%0a%3c request rewrite "/pub/%251"%0a%3c }%0a%3c location match "/cookbook/(.*)" {%0a%3c request rewrite "/cookbook/%251"%0a%3c }%0a%3c location match "/uploads/(.*)" {%0a%3c request rewrite "/uploads/%251"%0a%3c }%0a%3c location match "/(.*)/(.*)" {%0a%3c request rewrite "/pmwiki.php?n=%251.%252?$QUERY_STRING"%0a%3c }%0a%3c location match "/(.*)" {%0a%3c request rewrite "/pmwiki.php?n=%251?$QUERY_STRING"%0a%3c }%0a%3c @]%0a%3c %0a%3c and edit your /var/www/htdocs/pmwiki/local/config.php:%0a%3c [@$EnablePathInfo = 1; //for enabling automatic use%0a%3c $ScriptUrl = 'https://wiki.example.com'; //for the homepage%0a%3c $PubDirUrl = 'https://wiki.example.com/pub'; //for the pub dir%0a%3c $UploadDir = "/var/www/htdocs/pmwiki/uploads"; //for the upload dir (plz make it firstly if not exist)%0a%3c $UploadUrlFmt = "https://wiki.example.com/uploads"; //for upload dir on the wiki@]%0a---%0a> To change the password prompt page, edit Site.AuthForm.%0a\ No newline at end of file%0a -host:1609771974=145.132.146.30 -author:1600397456=gry -csum:1600397456=+ -diff:1600397456:1597537605:=1,2d0%0a%3c pmwiki is a 2 step install. It's on the official pmwiki page, there's not that much to do.%0a%3c %0a -host:1600397456=203.129.25.247 -author:1597537605=jrmu -diff:1597537605:1597537582:=1c1,3%0a%3c To change the password prompt page, edit Site.AuthForm.%0a\ No newline at end of file%0a---%0a> How do I change the password prompt screen?%0a> %0a> If your question is about how to make changes to that page... edit Site.AuthForm. If your question is about how to change which page you are sent to when prompted for a password, you might check out the Cookbook:CustomAuthForm for help.%0a\ No newline at end of file%0a -host:1597537605=38.81.163.143 -author:1597537582=jrmu -diff:1597537582:1597537582:=1,3d0%0a%3c How do I change the password prompt screen?%0a%3c %0a%3c If your question is about how to make changes to that page... edit Site.AuthForm. If your question is about how to change which page you are sent to when prompted for a password, you might check out the Cookbook:CustomAuthForm for help. %0a\ No newline at end of file%0a -host:1597537582=38.81.163.143 +rev=39 +targets=Nsd.Configure,Nsd.Zone,Php.Install,Relayd.Acceleration,Openhttpd.Tls +text=(:title Install PmWiki:)%0a%0a!! Overview%0a%0a[[https://www.pmwiki.org|PmWiki]] is a simple and lightweight wiki that doesn't require a database. Instead, content for the wiki is stored in simple text files. Its only requirement is PHP, making it very simple to host with OpenBSD's openhttpd. It also does not require the user's browser to support javascript, which helps improve accessibility.%0a%0a!! Install%0a%0a[[https://www.pmwiki.org/wiki/PmWiki/Download|Download a copy]] of PmWiki. In this guide, we'll grab [[https://www.pmwiki.org/pub/pmwiki/pmwiki-latest.tgz|the latest stable release]].%0a%0a[@%0a$ ftp https://www.pmwiki.org/pub/pmwiki/pmwiki-latest.tgz%0a$ tar xvzf pmwiki-latest.tgz%0a$ doas mv pmwiki-2.2.141/ /var/www/htdocs/wiki.example.com%0a$ doas chown -R www:daemon /var/www/htdocs/wiki.example.com%0a@]%0a%0aMake sure to replace wiki.example.com with your actual domain name. For flexibility, we recommend you run your own nameserver using [[nsd/configure|nsd]] and [[nsd/zone|create a records]] for wiki.example.com.%0a%0a!! Configure OpenHTTPd%0a%0aBefore you begin, make sure you have [[php/install|PHP installed]].%0a%0aNext, add a new block to @@/etc/httpd.conf@@:%0a%0a[@%0aserver "wiki.example.com" {%0a listen on * port 80%0a root "/htdocs/wiki.example.com"%0a location "/.well-known/acme-challenge/*" {%0a root "/acme"%0a request strip 2%0a }%0a location "*.php" {%0a fastcgi socket "/run/php-fpm.sock"%0a }%0a directory {%0a index "index.php"%0a }%0a connection max request body 104857600%0a}%0a@]%0a%0aLines 7-8 above tell httpd to evaluate any file that ends with .php as a PHP script. Line 9 says that the document root for the web files is /htdocs/wiki.example.com. Keep in mind, however, that httpd automatically chroots to /var/www/, so the actual path will be /var/www/htdocs/wiki.example.com/.%0a%0aLine 11-13 tell httpd to automatically serve index.php as the default file when a directory is requested by the user. In other words, if a user requests @@https://wiki.example.com@@, he will actually receive @@https://wiki.example.com/index.php@@.%0a%0aLine 14 tells httpd that it can receive uploads as large as 100MB. By default, httpd is limited to only 1MB, so this setting is necessary if you want to allow large file uploads for your wiki.%0a%0aWhile not required, it helps to put in /var/www/htdocs/wiki.example.com/index.php:%0a%0a[@%0a%3c?php include('pmwiki.php');%0a@]%0a%0aThen give it proper permissions:%0a%0a[@%0a$ doas chown www:daemon /var/www/htdocs/wiki.example.com/index.php%0a@]%0a%0aFinally, restart httpd:%0a%0a[@%0a$ doas rcctl restart httpd%0a@]%0a%0aUse your browser to view @@http://wiki.example.com@@.%0a%0aTo add TLS, you can use either [[relayd/acceleration|relayd for TLS acceleration]] (recommended) or [[openhttpd/tls|openhttpd's TLS]].%0a%0a!! Configuring PmWiki%0a%0aCopy the sample configuration file and then edit it:%0a%0a[@%0a$ doas cp /var/www/htdocs/wiki.ircnow.org/docs/sample-config.php /var/www/htdocs/wiki.ircnow.org/local/config.php%0a@]%0a%0aEdit @@/var/www/htdocs/wiki.ircnow.org/local/config.php@@.%0a%0a!! Documentation%0a%0aMake sure you get familiar with the docs. They are located in:%0a%0a[@%0a/var/www/htdocs/wiki.ircnow.org/README.txt%0a/var/www/htdocs/wiki.ircnow.org/docs/%0a@]%0a%0a!! Mirroring Content%0a%0aWhen mirroring content, you want to skip the passwords in these two files:%0a%0a[@%0a/var/www/htdocs/wiki.example.com/local/config.php%0a/var/www/htdocs/wiki.example.com/wiki.d/SiteAdmin.AuthUser%0a@]%0a%0a(:if false:)%0a[@%0a$ doas cp -R wiki.example.com/ /var/www/htdocs/wiki.example.com/%0a$ doas chown -R www:daemon /var/www/htdocs/wiki.example.com/%0a@]%0a(:ifend:)%0a%0a!! Password Protect Pages%0a%0aTo change the password prompt page, edit Site.AuthForm.%0a%0aBy default, PmWiki allows creation of password hashes using blowfish, so in the command line, you can type:%0a%0a[@%0a$ encrypt%0aTypeYourPasswordThenPressCtrl+d%0a$2b$09$KcHFdL42rABog//yC9qehuv0wHgu19QqVHOnhW1zutMC/esVfDfwa%0a@]%0a%0aYou can use these password hashes for https://example.com/index.php?n=SiteAdmin.AuthUser%0a%0a!! Read user password from file%0a%0aPlease, create passwd file (pass.txt) in the local forlder of the pmwiki location and update config.php like this:%0a%0a[@%0a$DefaultPasswords['admin'] = pmcrypt(trim(file_get_contents('pass.txt', true)));%0a@]%0a%0a!! Clean URLs%0a%0aThe following URL rewrite rules can provide 'clean' URLs:%0a%0a[@%0a location match "/pub/(.*)" {%0a request rewrite "/pub/%251"%0a }%0a location match "/cookbook/(.*)" {%0a request rewrite "/cookbook/%251"%0a }%0a location match "/uploads/(.*)" {%0a request rewrite "/uploads/%251"%0a }%0a location match "/local/(.*)" {%0a request rewrite "/local/%251"%0a }%0a location match "/favicon.(.*)" {%0a request rewrite "/favicon.%251"%0a }%0a location match "/(.+)/(.+)" {%0a request rewrite "/index.php?n=%251.%252?$QUERY_STRING"%0a }%0a location match "/(.+)" {%0a request rewrite "/index.php?n=%251?$QUERY_STRING"%0a }%0a@]%0a%0aEdit /var/www/htdocs/pmwiki/local/config.php:%0a%0a[@%0a$EnablePathInfo = 1;%0a$ScriptUrl = 'https://wiki.example.com';%0a$PubDirUrl = 'https://wiki.example.com/pub';%0a$UploadDir = "/var/www/htdocs/wiki.example.com/pmwiki/uploads";%0a$UploadUrlFmt = "https://wiki.example.com/uploads";%0a@]%0a%0a!! Syncing with Got%0a%0aCreating the almanack got repo, assuming ~/almanack will be the working directory:%0a%0a[@%0a$ openrsync -a --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a$ got init /var/git/almanack%0a$ got import -m "Import sources" -r /var/git/almanack ~/almanack%0a@]%0a%0aDelete the copy of the almanack and then check it out:%0a%0a[@%0a$ rm -r ~/almanack%0a$ cd ~/%0a$ got checkout /var/git/almanack%0a@]%0a%0aThen, set up a cronjob as a regular user:%0a%0a[@%0a$ crontab -e%0a@daily openrsync -a --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a@daily export GOT_AUTHOR="$USER %3cusername@example.com>" && cd ~/almanack && got commit -m "Daily backup" && sleep 360 && got add -R ~/almanack%0a@]%0a%0aReplace $USER and @@username@example.com@@ with your real username and email.%0a%0a!! Forking IRCNow%0a%0aTo fork the IRCNow almanack:%0a%0a[@%0a$ git clone git://got.ircnow.org/almanack%0a@]%0a +time=1660122023 +title=Install PmWiki +author:1660122023=mkf +csum:1660122023=replace * with +, which means it needs more than one characters. +diff:1660122023:1649753994:=149c149%0a%3c location match "/(.+)/(.+)" {%0a---%0a> location match "/(.*)/(.*)" {%0a152c152%0a%3c location match "/(.+)" {%0a---%0a> location match "/(.*)" {%0a +host:1660122023=91.185.139.136 +author:1649753994=baytuch +diff:1649753994:1649265531:=120,127d119%0a%3c %0a%3c !! Read user password from file%0a%3c %0a%3c Please, create passwd file (pass.txt) in the local forlder of the pmwiki location and update config.php like this:%0a%3c %0a%3c [@%0a%3c $DefaultPasswords['admin'] = pmcrypt(trim(file_get_contents('pass.txt', true)));%0a%3c @]%0a +host:1649753994=2001:bc8:1830:1533::1 +author:1649265531=jrmu +diff:1649265531:1649010058:=182c182%0a%3c @daily export GOT_AUTHOR="$USER %3cusername@example.com>" && cd ~/almanack && got commit -m "Daily backup" && sleep 360 && got add -R ~/almanack%0a---%0a> @daily export GOT_AUTHOR="$USER %3cusername@example.com>" && cd ~/almanack && got add -R ~/almanack && got commit -m "Daily backup"%0a +host:1649265531=38.87.162.8 +author:1649010058=xfnw +csum:1649010058=the utility for creating blowfish passwords on openbsd is called encrypt +diff:1649010058:1648926302:=114c114%0a%3c $ encrypt%0a---%0a> $ blowfish%0a +host:1649010058=71.178.25.201 +author:1648926302=jrmu +diff:1648926302:1648926247:=186,193d185%0a%3c %0a%3c !! Forking IRCNow%0a%3c %0a%3c To fork the IRCNow almanack:%0a%3c %0a%3c [@%0a%3c $ git clone git://got.ircnow.org/almanack%0a%3c @]%0a +host:1648926302=38.87.162.154 +author:1648926247=jrmu +diff:1648926247:1641287455:=182c182%0a%3c @daily export GOT_AUTHOR="$USER %3cusername@example.com>" && cd ~/almanack && got add -R ~/almanack && got commit -m "Daily backup"%0a---%0a> @daily export GOT_AUTHOR="$USER %3cusername@example.com>" && cd ~/almanack && got commit -m "Daily backup"%0a +host:1648926247=38.87.162.154 +author:1641287455=gtlsgamr +csum:1641287455=moved the root block inside the server block so that css files can be loaded. +diff:1641287455:1639923795:=29d28%0a%3c root "/htdocs/wiki.example.com"%0a35a35%0a> root "/htdocs/wiki.example.com"%0a +host:1641287455=103.246.40.191 +author:1639923795=jrmu +diff:1639923795:1639923283:=177c177%0a%3c Then, set up a cronjob as a regular user:%0a---%0a> Then, set up a cronjob:%0a +host:1639923795=38.87.162.8 +author:1639923283=jrmu +diff:1639923283:1639760237:=182c182%0a%3c @daily export GOT_AUTHOR="$USER %3cusername@example.com>" && cd ~/almanack && got commit -m "Daily backup"%0a---%0a> @daily cd ~/almanack && got commit -m "Daily backup"%0a184,185d183%0a%3c %0a%3c Replace $USER and @@username@example.com@@ with your real username and email.%0a +host:1639923283=38.87.162.8 +author:1639760237=jrmu +diff:1639760237:1639760191:=181,182c181,182%0a%3c @daily openrsync -a --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a%3c @daily cd ~/almanack && got commit -m "Daily backup"%0a---%0a> */5 * * * * openrsync -a --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a> */5 * * * * cd ~/almanack && got commit -m "Daily backup"%0a +host:1639760237=198.251.82.194 +author:1639760191=jrmu +diff:1639760191:1639759892:= +host:1639760191=198.251.82.194 +author:1639759892=jrmu +diff:1639759892:1639759332:=164c164%0a%3c $ openrsync -a --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a---%0a> $ openrsync -a --delete --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a181c181%0a%3c */5 * * * * openrsync -a --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a---%0a> */5 * * * * openrsync -a --delete --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a183a184%0a> %0a +host:1639759892=198.251.82.194 +author:1639759332=jrmu +diff:1639759332:1639758782:=182c182%0a%3c */5 * * * * cd ~/almanack && got commit -m "Daily backup"%0a---%0a> */5 * * * * cd ~/ && got -r /var/git/almanack -m "Daily backup" commit%0a +host:1639759332=198.251.82.194 +author:1639758782=jrmu +diff:1639758782:1639758763:=181,182c181,182%0a%3c */5 * * * * openrsync -a --delete --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a%3c */5 * * * * cd ~/ && got -r /var/git/almanack -m "Daily backup" commit%0a---%0a> openrsync -a --delete --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a> cd ~/ && got -r /var/git/almanack -m "Daily backup" commit%0a +host:1639758782=198.251.82.194 +author:1639758763=jrmu +diff:1639758763:1639757956:= +host:1639758763=198.251.82.194 +author:1639757956=jrmu +diff:1639757956:1639756409:=161,162c161,162%0a%3c Creating the almanack got repo, assuming ~/almanack will be the working directory:%0a%3c %0a---%0a> Creating the almanack got repo:%0a> %0a164,166c164%0a%3c $ openrsync -a --delete --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a%3c $ got init /var/git/almanack%0a%3c $ got import -m "Import sources" -r /var/git/almanack ~/almanack%0a---%0a> %0a169,170c167,168%0a%3c Delete the copy of the almanack and then check it out:%0a%3c %0a---%0a> Assuming ~/almanack is your working directory:%0a> %0a172,182c170,171%0a%3c $ rm -r ~/almanack%0a%3c $ cd ~/%0a%3c $ got checkout /var/git/almanack%0a%3c @]%0a%3c %0a%3c Then, set up a cronjob:%0a%3c %0a%3c [@%0a%3c $ crontab -e%0a%3c openrsync -a --delete --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a%3c cd ~/ && got -r /var/git/almanack -m "Daily backup" commit%0a---%0a> $ openrsync -a --delete --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a> $ got -m "Daily backup" commit%0a +host:1639757956=198.251.82.194 +author:1639756409=jrmu +diff:1639756409:1632320687:=158,173d157%0a%3c %0a%3c !! Syncing with Got%0a%3c %0a%3c Creating the almanack got repo:%0a%3c %0a%3c [@%0a%3c %0a%3c @]%0a%3c %0a%3c Assuming ~/almanack is your working directory:%0a%3c %0a%3c [@%0a%3c $ openrsync -a --delete --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a%3c $ got -m "Daily backup" commit%0a%3c @]%0a%3c %0a +host:1639756409=198.251.82.194 +author:1632320687=miniontoby +csum:1632320687=updated it a bit +diff:1632320687:1632320519:=129c129%0a%3c location match "/cookbook/(.*)" {%0a---%0a> location "/cookbook/*" {%0a132c132%0a%3c location match "/uploads/(.*)" {%0a---%0a> location "/uploads/*" {%0a135c135%0a%3c location match "/local/(.*)" {%0a---%0a> location "/local/*" {%0a138,139c138,139%0a%3c location match "/favicon.(.*)" {%0a%3c request rewrite "/favicon.%251"%0a---%0a> location "/favicon.jpg" {%0a> request rewrite "/favicon.jpg"%0a +host:1632320687=77.168.188.164 +author:1632320519=miniontoby +csum:1632320519=updated cleanurls +diff:1632320519:1627398507:minor=129c129%0a%3c location "/cookbook/*" {%0a---%0a> location match "/cookbook/(.*)" {%0a132c132%0a%3c location "/uploads/*" {%0a---%0a> location match "/uploads/(.*)" {%0a135,136c135,136%0a%3c location "/local/*" {%0a%3c request rewrite "/local/%251"%0a---%0a> location match "/(.*)/(.*)" {%0a> request rewrite "/pmwiki.php?n=%251.%252?$QUERY_STRING"%0a138,145c138,139%0a%3c location "/favicon.jpg" {%0a%3c request rewrite "/favicon.jpg"%0a%3c }%0a%3c location match "/(.*)/(.*)" {%0a%3c request rewrite "/index.php?n=%251.%252?$QUERY_STRING"%0a%3c }%0a%3c location match "/(.*)" {%0a%3c request rewrite "/index.php?n=%251?$QUERY_STRING"%0a---%0a> location match "/(.*)" {%0a> request rewrite "/pmwiki.php?n=%251?$QUERY_STRING"%0a +host:1632320519=77.168.188.164 +author:1627398507=jrmu +diff:1627398507:1627397570:=72,75c72,75%0a%3c !! Configuring PmWiki%0a%3c %0a%3c Copy the sample configuration file and then edit it:%0a%3c %0a---%0a> !! Mirroring Content%0a> %0a> When mirroring content, you want to edit out passwords in these two files:%0a> %0a77c77,78%0a%3c $ doas cp /var/www/htdocs/wiki.ircnow.org/docs/sample-config.php /var/www/htdocs/wiki.ircnow.org/local/config.php%0a---%0a> /var/www/htdocs/wiki.example.com/local/config.php%0a> /var/www/htdocs/wiki.example.com/wiki.d/SiteAdmin.AuthUser%0a80,85c81%0a%3c Edit @@/var/www/htdocs/wiki.ircnow.org/local/config.php@@.%0a%3c %0a%3c !! Documentation%0a%3c %0a%3c Make sure you get familiar with the docs. They are located in:%0a%3c %0a---%0a> (:if false:)%0a87,88c83,84%0a%3c /var/www/htdocs/wiki.ircnow.org/README.txt%0a%3c /var/www/htdocs/wiki.ircnow.org/docs/%0a---%0a> $ doas cp -R wiki.example.com/ /var/www/htdocs/wiki.example.com/%0a> $ doas chown -R www:daemon /var/www/htdocs/wiki.example.com/%0a90,94c86,93%0a%3c %0a%3c !! Mirroring Content%0a%3c %0a%3c When mirroring content, you want to skip the passwords in these two files:%0a%3c %0a---%0a> (:ifend:)%0a> %0a> !! Password Protect Pages%0a> %0a> To change the password prompt page, edit Site.AuthForm.%0a> %0a> By default, PmWiki allows creation of password hashes using blowfish, so in the command line, you can type:%0a> %0a96,97c95,97%0a%3c /var/www/htdocs/wiki.example.com/local/config.php%0a%3c /var/www/htdocs/wiki.example.com/wiki.d/SiteAdmin.AuthUser%0a---%0a> $ blowfish%0a> TypeYourPasswordThenPressCtrl+d%0a> $2b$09$KcHFdL42rABog//yC9qehuv0wHgu19QqVHOnhW1zutMC/esVfDfwa%0a100c100,101%0a%3c (:if false:)%0a---%0a> To create a password hash for https://example.com/index.php?n=SiteAdmin.AuthUser, run this command:%0a> %0a102,103c103,104%0a%3c $ doas cp -R wiki.example.com/ /var/www/htdocs/wiki.example.com/%0a%3c $ doas chown -R www:daemon /var/www/htdocs/wiki.example.com/%0a---%0a> $ php-7.4 %0a> %3c?php echo password_hash("PASSWORD", PASSWORD_BCRYPT); ?>%0a105,119c106,112%0a%3c (:ifend:)%0a%3c %0a%3c !! Password Protect Pages%0a%3c %0a%3c To change the password prompt page, edit Site.AuthForm.%0a%3c %0a%3c By default, PmWiki allows creation of password hashes using blowfish, so in the command line, you can type:%0a%3c %0a%3c [@%0a%3c $ blowfish%0a%3c TypeYourPasswordThenPressCtrl+d%0a%3c $2b$09$KcHFdL42rABog//yC9qehuv0wHgu19QqVHOnhW1zutMC/esVfDfwa%0a%3c @]%0a%3c %0a%3c You can use these password hashes for https://example.com/index.php?n=SiteAdmin.AuthUser%0a---%0a> %0a> Replace PASSWORD with your real password.%0a> %0a> !! Clean URLs%0a> %0a> The following URL rewrite rules can provide 'clean' URLs:%0a> %0a +host:1627398507=38.87.162.8 +author:1627397570=jrmu +diff:1627397570:1627397494:=81d80%0a%3c (:if false:)%0a86d84%0a%3c (:ifend:)%0a +host:1627397570=38.87.162.8 +author:1627397494=jrmu +diff:1627397494:1627397019:=74,75d73%0a%3c When mirroring content, you want to edit out passwords in these two files:%0a%3c %0a77,82c75,76%0a%3c /var/www/htdocs/wiki.example.com/local/config.php%0a%3c /var/www/htdocs/wiki.example.com/wiki.d/SiteAdmin.AuthUser%0a%3c @]%0a%3c %0a%3c [@%0a%3c $ doas cp -R wiki.example.com/ /var/www/htdocs/wiki.example.com/%0a---%0a> $ doas cp -a wiki.d/ /var/www/htdocs/wiki.example.com/%0a> $ doas chown -R www:daemon /var/www/htdocs/wiki.example.com/%0a +host:1627397494=38.87.162.8 +author:1627397019=jrmu +diff:1627397019:1627396942:=76d75%0a%3c $ doas chown -R www:daemon /var/www/htdocs/wiki.example.com/%0a +host:1627397019=38.87.162.8 +author:1627396942=jrmu +diff:1627396942:1627396424:=71,76d70%0a%3c %0a%3c !! Mirroring Content%0a%3c %0a%3c [@%0a%3c $ doas cp -a wiki.d/ /var/www/htdocs/wiki.example.com/%0a%3c @]%0a +host:1627396942=38.87.162.8 +author:1627396424=jrmu +diff:1627396424:1627395013:=72,73c72,73%0a%3c !! Password Protect Pages%0a%3c %0a---%0a> !!%0a> %0a75,82d74%0a%3c %0a%3c By default, PmWiki allows creation of password hashes using blowfish, so in the command line, you can type:%0a%3c %0a%3c [@%0a%3c $ blowfish%0a%3c TypeYourPasswordThenPressCtrl+d%0a%3c $2b$09$KcHFdL42rABog//yC9qehuv0wHgu19QqVHOnhW1zutMC/esVfDfwa%0a%3c @]%0a +host:1627396424=38.87.162.8 +author:1627395013=jrmu +diff:1627395013:1627394765:=85,88c85,89%0a%3c !! Clean URLs%0a%3c %0a%3c The following URL rewrite rules can provide 'clean' URLs:%0a%3c %0a---%0a> !! Clean url's %0a> %0a> If you want clean url's you need to do the following (which I (Miniontoby) didn't really wanted to share) %0a> %0a> add to your httpd.conf wiki block%0a107,115c108,113%0a%3c Edit /var/www/htdocs/pmwiki/local/config.php:%0a%3c %0a%3c [@%0a%3c $EnablePathInfo = 1;%0a%3c $ScriptUrl = 'https://wiki.example.com';%0a%3c $PubDirUrl = 'https://wiki.example.com/pub';%0a%3c $UploadDir = "/var/www/htdocs/wiki.example.com/pmwiki/uploads";%0a%3c $UploadUrlFmt = "https://wiki.example.com/uploads";%0a%3c @]%0a---%0a> and edit your /var/www/htdocs/pmwiki/local/config.php:%0a> [@$EnablePathInfo = 1; //for enabling automatic use%0a> $ScriptUrl = 'https://wiki.example.com'; //for the homepage%0a> $PubDirUrl = 'https://wiki.example.com/pub'; //for the pub dir%0a> $UploadDir = "/var/www/htdocs/pmwiki/uploads"; //for the upload dir (plz make it firstly if not exist)%0a> $UploadUrlFmt = "https://wiki.example.com/uploads"; //for upload dir on the wiki@]%0a +host:1627395013=38.87.162.8 +author:1627394765=jrmu +diff:1627394765:1627394461:= +host:1627394765=38.87.162.8 +author:1627394461=jrmu +diff:1627394461:1627394316:=61,70d60%0a%3c %0a%3c Finally, restart httpd:%0a%3c %0a%3c [@%0a%3c $ doas rcctl restart httpd%0a%3c @]%0a%3c %0a%3c Use your browser to view @@http://wiki.example.com@@.%0a%3c %0a%3c To add TLS, you can use either [[relayd/acceleration|relayd for TLS acceleration]] (recommended) or [[openhttpd/tls|openhttpd's TLS]].%0a +host:1627394461=38.87.162.8 +author:1627394316=jrmu +diff:1627394316:1627393854:=49,60d48%0a%3c %0a%3c While not required, it helps to put in /var/www/htdocs/wiki.example.com/index.php:%0a%3c %0a%3c [@%0a%3c %3c?php include('pmwiki.php');%0a%3c @]%0a%3c %0a%3c Then give it proper permissions:%0a%3c %0a%3c [@%0a%3c $ doas chown www:daemon /var/www/htdocs/wiki.example.com/index.php%0a%3c @]%0a +host:1627394316=38.87.162.8 +author:1627393854=jrmu +diff:1627393854:1627383010:=15d14%0a%3c $ doas chown -R www:daemon /var/www/htdocs/wiki.example.com%0a +host:1627393854=38.87.162.8 +author:1627383010=jrmu +diff:1627383010:1627382674:=21,24c21%0a%3c Before you begin, make sure you have [[php/install|PHP installed]].%0a%3c %0a%3c Next, add a new block to @@/etc/httpd.conf@@:%0a%3c %0a---%0a> Add a new block to @@/etc/httpd.conf@@:%0a42,49d38%0a%3c %0a%3c Lines 7-8 above tell httpd to evaluate any file that ends with .php as a PHP script. Line 9 says that the document root for the web files is /htdocs/wiki.example.com. Keep in mind, however, that httpd automatically chroots to /var/www/, so the actual path will be /var/www/htdocs/wiki.example.com/.%0a%3c %0a%3c Line 11-13 tell httpd to automatically serve index.php as the default file when a directory is requested by the user. In other words, if a user requests @@https://wiki.example.com@@, he will actually receive @@https://wiki.example.com/index.php@@.%0a%3c %0a%3c Line 14 tells httpd that it can receive uploads as large as 100MB. By default, httpd is limited to only 1MB, so this setting is necessary if you want to allow large file uploads for your wiki.%0a%3c %0a%3c !!%0a +host:1627383010=38.87.162.8 +author:1627382674=jrmu +diff:1627382674:1627382359:=5c5%0a%3c [[https://www.pmwiki.org|PmWiki]] is a simple and lightweight wiki that doesn't require a database. Instead, content for the wiki is stored in simple text files. Its only requirement is PHP, making it very simple to host with OpenBSD's openhttpd. It also does not require the user's browser to support javascript, which helps improve accessibility.%0a---%0a> [[https://www.pmwiki.org|PmWiki]] is a simple and lightweight wiki that doesn't require a database. Instead, content for the wiki is stored in simple text files. Its only requirement is PHP, making it very simple to host with OpenBSD's openhttpd.%0a +host:1627382674=38.87.162.8 +author:1627382359=jrmu +diff:1627382359:1627381876:=18,38d17%0a%3c %0a%3c !! Configure OpenHTTPd%0a%3c %0a%3c Add a new block to @@/etc/httpd.conf@@:%0a%3c [@%0a%3c server "wiki.example.com" {%0a%3c listen on * port 80%0a%3c location "/.well-known/acme-challenge/*" {%0a%3c root "/acme"%0a%3c request strip 2%0a%3c }%0a%3c location "*.php" {%0a%3c fastcgi socket "/run/php-fpm.sock"%0a%3c root "/htdocs/wiki.example.com"%0a%3c }%0a%3c directory {%0a%3c index "index.php"%0a%3c }%0a%3c connection max request body 104857600%0a%3c }%0a%3c @]%0a +host:1627382359=38.87.162.8 +author:1627381876=jrmu +diff:1627381876:1627380192:=17c17%0a%3c Make sure to replace wiki.example.com with your actual domain name. For flexibility, we recommend you run your own nameserver using [[nsd/configure|nsd]] and [[nsd/zone|create a records]] for wiki.example.com.%0a---%0a> Make sure to replace wiki.example.com with your actual domain name.%0a +host:1627381876=38.87.162.8 +author:1627380192=jrmu +diff:1627380192:1627380173:=17c17%0a%3c Make sure to replace wiki.example.com with your actual domain name.%0a---%0a> Make sure to replace example.com with your actual domain name.%0a +host:1627380192=38.87.162.8 +author:1627380173=jrmu +diff:1627380173:1627379432:=5,6c5,6%0a%3c [[https://www.pmwiki.org|PmWiki]] is a simple and lightweight wiki that doesn't require a database. Instead, content for the wiki is stored in simple text files. Its only requirement is PHP, making it very simple to host with OpenBSD's openhttpd.%0a%3c %0a---%0a> [https://www.pmwiki.org|PmWiki]] is a simple and lightweight wiki that doesn't require a database. Instead, content for the wiki is stored in simple text files. Its only requirement is PHP, making it very simple to host with OpenBSD's openhttpd.%0a> %0a10,17d9%0a%3c %0a%3c [@%0a%3c $ ftp https://www.pmwiki.org/pub/pmwiki/pmwiki-latest.tgz%0a%3c $ tar xvzf pmwiki-latest.tgz%0a%3c $ doas mv pmwiki-2.2.141/ /var/www/htdocs/wiki.example.com%0a%3c @]%0a%3c %0a%3c Make sure to replace example.com with your actual domain name.%0a +host:1627380173=38.87.162.8 +author:1627379432=jrmu +diff:1627379432:1627378757:=1,9c1%0a%3c (:title Install PmWiki:)%0a%3c %0a%3c !! Overview%0a%3c %0a%3c [https://www.pmwiki.org|PmWiki]] is a simple and lightweight wiki that doesn't require a database. Instead, content for the wiki is stored in simple text files. Its only requirement is PHP, making it very simple to host with OpenBSD's openhttpd.%0a%3c %0a%3c !! Install%0a%3c %0a%3c [[https://www.pmwiki.org/wiki/PmWiki/Download|Download a copy]] of PmWiki. In this guide, we'll grab [[https://www.pmwiki.org/pub/pmwiki/pmwiki-latest.tgz|the latest stable release]].%0a---%0a> pmwiki is a 2 step install. It's on the official pmwiki page, there's not that much to do.%0a +host:1627379432=38.87.162.8 +author:1627378757=jrmu +diff:1627378757:1627378629:= +host:1627378757=38.87.162.8 +author:1627378629=jrmu +diff:1627378629:1627378629:=1,42d0%0a%3c pmwiki is a 2 step install. It's on the official pmwiki page, there's not that much to do.%0a%3c %0a%3c To change the password prompt page, edit Site.AuthForm.%0a%3c %0a%3c To create a password hash for https://example.com/index.php?n=SiteAdmin.AuthUser, run this command:%0a%3c %0a%3c [@%0a%3c $ php-7.4 %0a%3c %3c?php echo password_hash("PASSWORD", PASSWORD_BCRYPT); ?>%0a%3c @]%0a%3c %0a%3c Replace PASSWORD with your real password.%0a%3c %0a%3c !! Clean url's %0a%3c %0a%3c If you want clean url's you need to do the following (which I (Miniontoby) didn't really wanted to share) %0a%3c %0a%3c add to your httpd.conf wiki block%0a%3c [@%0a%3c location match "/pub/(.*)" {%0a%3c request rewrite "/pub/%251"%0a%3c }%0a%3c location match "/cookbook/(.*)" {%0a%3c request rewrite "/cookbook/%251"%0a%3c }%0a%3c location match "/uploads/(.*)" {%0a%3c request rewrite "/uploads/%251"%0a%3c }%0a%3c location match "/(.*)/(.*)" {%0a%3c request rewrite "/pmwiki.php?n=%251.%252?$QUERY_STRING"%0a%3c }%0a%3c location match "/(.*)" {%0a%3c request rewrite "/pmwiki.php?n=%251?$QUERY_STRING"%0a%3c }%0a%3c @]%0a%3c %0a%3c and edit your /var/www/htdocs/pmwiki/local/config.php:%0a%3c [@$EnablePathInfo = 1; //for enabling automatic use%0a%3c $ScriptUrl = 'https://wiki.example.com'; //for the homepage%0a%3c $PubDirUrl = 'https://wiki.example.com/pub'; //for the pub dir%0a%3c $UploadDir = "/var/www/htdocs/pmwiki/uploads"; //for the upload dir (plz make it firstly if not exist)%0a%3c $UploadUrlFmt = "https://wiki.example.com/uploads"; //for upload dir on the wiki@]%0a +host:1627378629=38.87.162.8 blob - 806a794e57be4966d8109a370cd0623119111a59 blob + 8c39bca58502d6ee5a10afe56367364e6c75e45a --- wiki.d/Openbsd.RecentChanges +++ wiki.d/Openbsd.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 charset=UTF-8 ctime=1596189997 -host=78.35.163.217 +host=198.251.82.194 name=Openbsd.RecentChanges -rev=1908 -text=* [[Openbsd/Vipw]] . . . January 18, 2023, at 11:01 PM by [[~zen]]: [=added two spaces=]%0a* [[Openbsd/Loginconf]] . . . January 18, 2023, at 10:48 PM by [[~zen]]: [=OpenBSD FAQ link refenrece=]%0a* [[Openbsd/Singleuser]] . . . January 18, 2023, at 10:26 PM by [[~zen]]: [=changed the link reference=]%0a* [[Openbsd/Dump]] . . . January 10, 2023, at 04:48 PM by [[~mkf]]: [=add -u, improve dump-ssh funcationality.=]%0a* [[Openbsd/Quota]] . . . December 29, 2022, at 06:51 PM by [[~mkf]]: [==]%0a* [[Openbsd/Minetest]] . . . December 26, 2022, at 07:23 PM by [[~miniontoby]]: [=Added more ways to install=]%0a* [[Openbsd/Honk]] . . . December 17, 2022, at 08:45 AM by [[~Yonle]]: [==]%0a* [[Openbsd/OpenTracker]] . . . November 20, 2022, at 07:45 AM by [[~baytuch]]: [==]%0a* [[Openbsd/Icecast]] . . . November 17, 2022, at 11:35 AM by [[~Yonle]]: [==]%0a* [[Openbsd/Geomyidae]] . . . September 10, 2022, at 02:31 AM by [[~akoizumi]]: [==]%0a* [[Openbsd/INN]] . . . September 10, 2022, at 02:23 AM by [[~akoizumi]]: [=Fix some types=]%0a* [[Openbsd/VsFTP]] . . . August 10, 2022, at 03:18 PM by [[~mkf]]: [=snipped unneeded output=]%0a* [[Openbsd/Apmd]] . . . July 03, 2022, at 11:36 AM by [[~mkf]]: [==]%0a* [[Openbsd/Pkg]] . . . June 12, 2022, at 12:32 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Intro]] . . . June 09, 2022, at 07:53 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Bsdrd]] . . . June 09, 2022, at 07:17 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Sysupgrade71]] . . . June 05, 2022, at 11:49 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Growfs]] . . . June 01, 2022, at 12:34 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Nsd]] . . . May 10, 2022, at 12:33 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Ports]] . . . May 09, 2022, at 05:54 AM by [[~mkf]]: [==]%0a* [[Openbsd/Rcctl]] . . . May 09, 2022, at 05:53 AM by [[~mkf]]: [==]%0a* [[Openbsd/Upgrade71]] . . . May 03, 2022, at 06:36 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Install71]] . . . April 24, 2022, at 09:55 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Botnow]] . . . April 24, 2022, at 06:14 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Gopher]] . . . April 20, 2022, at 08:29 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Adduser]] . . . April 20, 2022, at 08:07 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Ntpd]] . . . April 20, 2022, at 06:16 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Vmmlinux]] . . . April 20, 2022, at 05:33 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Iked]] . . . April 20, 2022, at 05:16 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Team]] . . . April 20, 2022, at 04:54 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Announce]] . . . April 19, 2022, at 04:14 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Install70]] . . . April 19, 2022, at 06:52 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Upgrade70]] . . . April 19, 2022, at 06:49 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Censord]] . . . April 05, 2022, at 06:16 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Hopm]] . . . April 05, 2022, at 06:09 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Dns]] . . . April 05, 2022, at 05:24 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Psybnc]] . . . March 30, 2022, at 09:56 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Ddos]] . . . March 24, 2022, at 04:22 PM by [[~jrmu]]: [==]%0a* [[Openbsd/IRCBridge]] . . . February 28, 2022, at 02:59 AM by [[~suzerain]]: [==]%0a* [[Openbsd/Wesnothd]] . . . February 21, 2022, at 06:28 AM by [[~mkf]]: [=Wesnothd=]%0a* [[Openbsd/Xonotic]] . . . February 20, 2022, at 07:43 AM by [[~mkf]]: [=A xonotic server has apperad! pt.2=]%0a* [[Openbsd/Police]] . . . February 10, 2022, at 07:36 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Tcpip]] . . . January 24, 2022, at 05:45 PM by [[~jrmu]]: [==]%0a* [[Openbsd/U9fs]] . . . January 16, 2022, at 06:23 PM by [[~mkf]]: [==]%0a* [[Openbsd/Locale]] . . . January 12, 2022, at 01:23 PM by [[~baytuch]]: [==]%0a* [[Openbsd/Openbsd]] . . . January 12, 2022, at 01:19 PM by [[~baytuch]]: [==]%0a* [[Openbsd/BBB]] . . . January 03, 2022, at 12:06 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Sftp]] . . . December 30, 2021, at 06:01 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Uim]] . . . December 26, 2021, at 01:45 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Wifi]] . . . December 22, 2021, at 02:59 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Recordaudio]] . . . December 22, 2021, at 01:24 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Gotweb]] . . . December 16, 2021, at 03:36 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Training]] . . . November 16, 2021, at 03:30 PM by [[~Hawk]]: [==]%0a* [[Openbsd/Got]] . . . November 07, 2021, at 03:16 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Drawtermssh]] . . . November 04, 2021, at 03:54 PM by [[~meeekeeef]]: [=ssh bad >:[=]%0a* [[Openbsd/Sysupgrade70]] . . . October 15, 2021, at 11:02 AM by [[~mkf]]: [=humans are easily confused.=]%0a* [[Openbsd/Ilines]] . . . October 15, 2021, at 02:36 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Pmwiki]] . . . October 14, 2021, at 02:14 PM by [[~miniontoby]]: [=added credits =]%0a* [[Openbsd/Install69]] . . . September 27, 2021, at 05:59 PM by [[~jrmu]]: [==]%0a* [[Openbsd/PFStable]] . . . September 24, 2021, at 03:28 PM by [[~miniontoby]]: [==]%0a* [[Openbsd/Mailopenproxy]] . . . August 25, 2021, at 08:19 PM by [[~mkf]]: [==]%0a* [[Openbsd/Two-FactorAuth]] . . . August 23, 2021, at 07:39 PM by [[~mkf]]: [=login.db compiling is no longer recommended.=]%0a* [[Openbsd/Npppd]] . . . August 21, 2021, at 01:43 PM by [[~mkf]]: [==]%0a* [[Openbsd/FilePermissions]] . . . August 20, 2021, at 02:20 AM by [[~Nate S]]: [==]%0a* [[Openbsd/Gophernicus]] . . . August 15, 2021, at 02:06 AM by [[~mkf]]: [==]%0a* [[Openbsd/Openhttpd]] . . . August 13, 2021, at 07:29 AM by [[~jrmu]]: [==]%0a* [[Openbsd/ZNCModules]] . . . August 11, 2021, at 03:06 PM by [[~wiz]]: [==]%0a* [[Openbsd/Bitlbee]] . . . August 10, 2021, at 12:03 PM by [[~mkf]]: [==]%0a* [[Openbsd/Pppoe]] . . . August 10, 2021, at 11:56 AM by [[~mkf]]: [==]%0a* [[Openbsd/Sshkeys]] . . . August 09, 2021, at 04:42 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Squirrelmail]] . . . August 06, 2021, at 10:32 AM by [[~baytuch]]: [==]%0a* [[Openbsd/Dnszones]] . . . August 03, 2021, at 09:26 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Matterbridge]] . . . August 02, 2021, at 12:33 PM by [[~mkf]]: [==]%0a* [[Openbsd/Vhost]] . . . August 02, 2021, at 02:32 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Chroot]] . . . July 31, 2021, at 02:47 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Vmmuser]] . . . July 29, 2021, at 05:31 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Vmminstall]] . . . July 29, 2021, at 05:28 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Vmm]] . . . July 29, 2021, at 05:24 AM by [[~jrmu]]: [==]%0a* [[Openbsd/ZNCAdmin]] . . . July 28, 2021, at 06:14 AM by [[~jrmu]]: [==]%0a* [[Openbsd/ZNCSupport]] . . . July 28, 2021, at 06:14 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Php]] . . . July 27, 2021, at 02:53 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Dig]] . . . July 25, 2021, at 06:50 AM by [[~jrmu]]: [==]%0a* [[Openbsd/RDNS]] . . . July 23, 2021, at 06:44 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Sic]] . . . July 21, 2021, at 05:57 PM by [[~mkf]]: [=first edit.=]%0a* [[Openbsd/Openrsync]] . . . July 18, 2021, at 02:01 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Znc]] . . . July 16, 2021, at 10:43 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Staticnet]] . . . July 12, 2021, at 05:48 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Dovecot]] . . . July 12, 2021, at 02:58 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Relayd]] . . . July 12, 2021, at 02:45 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Spf]] . . . July 12, 2021, at 03:08 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Mlmmj]] . . . July 08, 2021, at 09:42 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Eggdrop]] . . . July 02, 2021, at 03:20 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Newdisk]] . . . June 29, 2021, at 03:23 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Ed]] . . . June 28, 2021, at 04:04 PM by [[~mkf]]: [==]%0a* [[Openbsd/Unbound]] . . . June 27, 2021, at 12:12 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Dkimproxy]] . . . June 25, 2021, at 12:56 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Sysupgrade69]] . . . June 25, 2021, at 05:46 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Opensmtpd]] . . . June 23, 2021, at 02:21 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Ngircd]] . . . June 23, 2021, at 02:21 AM by [[~jrmu]]: [==]%0a* [[Openbsd/NgircdLink]] . . . June 22, 2021, at 07:50 PM by [[~mkf]]: [=delete=]%0a* [[Openbsd/Doas]] . . . June 13, 2021, at 01:19 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Shell]] . . . June 11, 2021, at 09:36 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Books]] . . . June 06, 2021, at 12:46 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Pfa]] . . . June 06, 2021, at 03:49 AM by [[~navic]]: [==]%0a* [[Openbsd/Wordpress]] . . . June 04, 2021, at 04:55 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Anope]] . . . May 31, 2021, at 10:24 AM by [[~miniontoby]]: [=cp=]%0a* [[Openbsd/ACKFlood]] . . . May 29, 2021, at 06:20 AM by [[~mkf]]: [==]%0a* [[Openbsd/SSDP]] . . . May 29, 2021, at 06:18 AM by [[~mkf]]: [==]%0a* [[Openbsd/Anycast]] . . . May 29, 2021, at 06:01 AM by [[~mkf]]: [==]%0a* [[Openbsd/Dmarc]] . . . May 21, 2021, at 09:22 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Disklabel]] . . . May 17, 2021, at 03:33 AM by [[~bejelentkezni]]: [==]%0a* [[Openbsd/Fdisk]] . . . May 17, 2021, at 03:27 AM by [[~bejelentkezni]]: [==]%0a* [[Openbsd/Security]] . . . May 14, 2021, at 03:14 AM by [[~caesar]]: [==]%0a* [[Openbsd/Hopm-Arthur]] . . . May 07, 2021, at 12:28 PM by [[~Arthur]]: [==]%0a* [[Openbsd/Syspatch]] . . . February 14, 2021, at 11:00 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Netadmin]] . . . February 14, 2021, at 10:56 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Leafnode]] . . . February 12, 2021, at 01:40 PM by [[~chewy]]: [==]%0a* [[Openbsd/Pylink]] . . . February 08, 2021, at 08:33 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Stable]] . . . February 02, 2021, at 02:25 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Base64]] . . . February 02, 2021, at 06:37 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Unboundadblock]] . . . February 02, 2021, at 04:29 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Pfbadhost]] . . . February 02, 2021, at 04:29 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Wraith]] . . . February 02, 2021, at 04:22 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Delphinusdnsd]] . . . February 02, 2021, at 01:51 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Abuse]] . . . January 31, 2021, at 05:33 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Phishing]] . . . January 31, 2021, at 05:02 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Audit]] . . . January 31, 2021, at 04:46 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Ongoing]] . . . January 31, 2021, at 01:19 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Httpopenproxy]] . . . January 29, 2021, at 11:01 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Zncadmin]] . . . January 29, 2021, at 10:00 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Rbldns]] . . . January 29, 2021, at 05:45 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Setuid]] . . . January 28, 2021, at 06:53 AM by [[~jrmu]]: [==]%0a* [[Openbsd/PFTesting]] . . . January 25, 2021, at 03:28 PM by [[~jrmu]]: [==]%0a* [[Openbsd/ZNCDaily]] . . . January 25, 2021, at 11:35 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Irssi]] . . . January 25, 2021, at 07:08 AM by [[~jrmu]]: [==]%0a* [[Openbsd/XTerm]] . . . January 17, 2021, at 01:48 PM by [[~miniontoby]]: [=copyright=]%0a* [[Openbsd/Slrn]] . . . January 12, 2021, at 02:40 PM by [[~Noxturnix]]: [==]%0a* [[Openbsd/Netcat]] . . . January 09, 2021, at 02:20 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Perl]] . . . January 09, 2021, at 01:52 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Backup]] . . . January 03, 2021, at 01:46 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Passwords]] . . . January 03, 2021, at 12:20 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Backups]] . . . January 02, 2021, at 11:44 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Sshbackdoor]] . . . December 30, 2020, at 12:14 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Pf-bnc]] . . . December 29, 2020, at 06:30 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Tcltls]] . . . December 29, 2020, at 09:53 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Amplification]] . . . December 19, 2020, at 05:42 AM by [[~jrmu]]: [==]%0a* [[Openbsd/UDPFlood]] . . . December 18, 2020, at 10:39 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Tcpdump]] . . . December 18, 2020, at 09:12 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Tcpackflood]] . . . December 17, 2020, at 10:36 AM by [[~jrmu]]: [==]%0a* [[Openbsd/RSTFlood]] . . . December 17, 2020, at 10:34 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Tcpresetflood]] . . . December 17, 2020, at 10:34 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Ssdp]] . . . December 15, 2020, at 12:59 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Pf]] . . . December 13, 2020, at 12:03 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Upgrade68]] . . . December 13, 2020, at 11:12 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Install68]] . . . December 13, 2020, at 10:13 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Upgrade67]] . . . December 13, 2020, at 04:02 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Sysupgrade68]] . . . December 11, 2020, at 10:27 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Dokuwiki]] . . . December 10, 2020, at 02:23 PM by [[~miniontoby]]: [=code blocks fixed=]%0a* [[Openbsd/Acme-client]] . . . December 09, 2020, at 06:47 PM by [[~miniontoby]]: [=fixed troubleshooting links=]%0a* [[Openbsd/Install67]] . . . December 06, 2020, at 11:03 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Buyvm]] . . . December 06, 2020, at 02:42 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Install]] . . . December 04, 2020, at 04:15 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Oidentd]] . . . November 30, 2020, at 11:42 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Checklist]] . . . November 20, 2020, at 12:44 AM by [[~gry]]: [=+=]%0a* [[Openbsd/Acopm]] . . . November 04, 2020, at 03:32 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Achurch]] . . . November 04, 2020, at 02:25 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Vi]] . . . November 04, 2020, at 12:51 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Sudo]] . . . November 04, 2020, at 12:38 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Easyapp]] . . . September 29, 2020, at 12:13 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Cgit]] . . . September 01, 2020, at 05:51 PM by [[~baytuch]]: [==]%0a* [[Openbsd/Bchs]] . . . August 20, 2020, at 07:11 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Fdm]] . . . August 18, 2020, at 10:06 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Opensmtpd-2]] . . . August 18, 2020, at 09:59 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Opensmtpd-relay]] . . . August 18, 2020, at 09:56 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Identd]] . . . August 18, 2020, at 09:39 AM by [[~jrmu]]: [==]%0a* [[Openbsd/IPv6]] . . . August 12, 2020, at 02:21 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Oscommerce]] . . . August 12, 2020, at 10:00 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Ping]] . . . August 12, 2020, at 08:34 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Sockets]] . . . August 12, 2020, at 07:16 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Guides]] . . . August 10, 2020, at 03:42 AM by [[~jrmu]]: [==]%0a -time=1674082861 +rev=1910 +text=* [[Openbsd/Biboumi]] . . . January 20, 2023, at 08:11 PM by [[~mkf]]: [==]%0a* [[Openbsd/Unrealircd]] . . . January 20, 2023, at 07:27 PM by [[~mkf]]: [==]%0a* [[Openbsd/Vipw]] . . . January 18, 2023, at 11:01 PM by [[~zen]]: [=added two spaces=]%0a* [[Openbsd/Loginconf]] . . . January 18, 2023, at 10:48 PM by [[~zen]]: [=OpenBSD FAQ link refenrece=]%0a* [[Openbsd/Singleuser]] . . . January 18, 2023, at 10:26 PM by [[~zen]]: [=changed the link reference=]%0a* [[Openbsd/Dump]] . . . January 10, 2023, at 04:48 PM by [[~mkf]]: [=add -u, improve dump-ssh funcationality.=]%0a* [[Openbsd/Quota]] . . . December 29, 2022, at 06:51 PM by [[~mkf]]: [==]%0a* [[Openbsd/Minetest]] . . . December 26, 2022, at 07:23 PM by [[~miniontoby]]: [=Added more ways to install=]%0a* [[Openbsd/Honk]] . . . December 17, 2022, at 08:45 AM by [[~Yonle]]: [==]%0a* [[Openbsd/OpenTracker]] . . . November 20, 2022, at 07:45 AM by [[~baytuch]]: [==]%0a* [[Openbsd/Icecast]] . . . November 17, 2022, at 11:35 AM by [[~Yonle]]: [==]%0a* [[Openbsd/Geomyidae]] . . . September 10, 2022, at 02:31 AM by [[~akoizumi]]: [==]%0a* [[Openbsd/INN]] . . . September 10, 2022, at 02:23 AM by [[~akoizumi]]: [=Fix some types=]%0a* [[Openbsd/VsFTP]] . . . August 10, 2022, at 03:18 PM by [[~mkf]]: [=snipped unneeded output=]%0a* [[Openbsd/Apmd]] . . . July 03, 2022, at 11:36 AM by [[~mkf]]: [==]%0a* [[Openbsd/Pkg]] . . . June 12, 2022, at 12:32 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Intro]] . . . June 09, 2022, at 07:53 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Bsdrd]] . . . June 09, 2022, at 07:17 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Sysupgrade71]] . . . June 05, 2022, at 11:49 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Growfs]] . . . June 01, 2022, at 12:34 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Nsd]] . . . May 10, 2022, at 12:33 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Ports]] . . . May 09, 2022, at 05:54 AM by [[~mkf]]: [==]%0a* [[Openbsd/Rcctl]] . . . May 09, 2022, at 05:53 AM by [[~mkf]]: [==]%0a* [[Openbsd/Upgrade71]] . . . May 03, 2022, at 06:36 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Install71]] . . . April 24, 2022, at 09:55 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Botnow]] . . . April 24, 2022, at 06:14 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Gopher]] . . . April 20, 2022, at 08:29 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Adduser]] . . . April 20, 2022, at 08:07 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Ntpd]] . . . April 20, 2022, at 06:16 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Vmmlinux]] . . . April 20, 2022, at 05:33 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Iked]] . . . April 20, 2022, at 05:16 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Team]] . . . April 20, 2022, at 04:54 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Announce]] . . . April 19, 2022, at 04:14 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Install70]] . . . April 19, 2022, at 06:52 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Upgrade70]] . . . April 19, 2022, at 06:49 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Censord]] . . . April 05, 2022, at 06:16 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Hopm]] . . . April 05, 2022, at 06:09 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Dns]] . . . April 05, 2022, at 05:24 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Psybnc]] . . . March 30, 2022, at 09:56 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Ddos]] . . . March 24, 2022, at 04:22 PM by [[~jrmu]]: [==]%0a* [[Openbsd/IRCBridge]] . . . February 28, 2022, at 02:59 AM by [[~suzerain]]: [==]%0a* [[Openbsd/Wesnothd]] . . . February 21, 2022, at 06:28 AM by [[~mkf]]: [=Wesnothd=]%0a* [[Openbsd/Xonotic]] . . . February 20, 2022, at 07:43 AM by [[~mkf]]: [=A xonotic server has apperad! pt.2=]%0a* [[Openbsd/Police]] . . . February 10, 2022, at 07:36 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Tcpip]] . . . January 24, 2022, at 05:45 PM by [[~jrmu]]: [==]%0a* [[Openbsd/U9fs]] . . . January 16, 2022, at 06:23 PM by [[~mkf]]: [==]%0a* [[Openbsd/Locale]] . . . January 12, 2022, at 01:23 PM by [[~baytuch]]: [==]%0a* [[Openbsd/Openbsd]] . . . January 12, 2022, at 01:19 PM by [[~baytuch]]: [==]%0a* [[Openbsd/BBB]] . . . January 03, 2022, at 12:06 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Sftp]] . . . December 30, 2021, at 06:01 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Uim]] . . . December 26, 2021, at 01:45 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Wifi]] . . . December 22, 2021, at 02:59 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Recordaudio]] . . . December 22, 2021, at 01:24 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Gotweb]] . . . December 16, 2021, at 03:36 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Training]] . . . November 16, 2021, at 03:30 PM by [[~Hawk]]: [==]%0a* [[Openbsd/Got]] . . . November 07, 2021, at 03:16 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Drawtermssh]] . . . November 04, 2021, at 03:54 PM by [[~meeekeeef]]: [=ssh bad >:[=]%0a* [[Openbsd/Sysupgrade70]] . . . October 15, 2021, at 11:02 AM by [[~mkf]]: [=humans are easily confused.=]%0a* [[Openbsd/Ilines]] . . . October 15, 2021, at 02:36 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Pmwiki]] . . . October 14, 2021, at 02:14 PM by [[~miniontoby]]: [=added credits =]%0a* [[Openbsd/Install69]] . . . September 27, 2021, at 05:59 PM by [[~jrmu]]: [==]%0a* [[Openbsd/PFStable]] . . . September 24, 2021, at 03:28 PM by [[~miniontoby]]: [==]%0a* [[Openbsd/Mailopenproxy]] . . . August 25, 2021, at 08:19 PM by [[~mkf]]: [==]%0a* [[Openbsd/Two-FactorAuth]] . . . August 23, 2021, at 07:39 PM by [[~mkf]]: [=login.db compiling is no longer recommended.=]%0a* [[Openbsd/Npppd]] . . . August 21, 2021, at 01:43 PM by [[~mkf]]: [==]%0a* [[Openbsd/FilePermissions]] . . . August 20, 2021, at 02:20 AM by [[~Nate S]]: [==]%0a* [[Openbsd/Gophernicus]] . . . August 15, 2021, at 02:06 AM by [[~mkf]]: [==]%0a* [[Openbsd/Openhttpd]] . . . August 13, 2021, at 07:29 AM by [[~jrmu]]: [==]%0a* [[Openbsd/ZNCModules]] . . . August 11, 2021, at 03:06 PM by [[~wiz]]: [==]%0a* [[Openbsd/Bitlbee]] . . . August 10, 2021, at 12:03 PM by [[~mkf]]: [==]%0a* [[Openbsd/Pppoe]] . . . August 10, 2021, at 11:56 AM by [[~mkf]]: [==]%0a* [[Openbsd/Sshkeys]] . . . August 09, 2021, at 04:42 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Squirrelmail]] . . . August 06, 2021, at 10:32 AM by [[~baytuch]]: [==]%0a* [[Openbsd/Dnszones]] . . . August 03, 2021, at 09:26 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Matterbridge]] . . . August 02, 2021, at 12:33 PM by [[~mkf]]: [==]%0a* [[Openbsd/Vhost]] . . . August 02, 2021, at 02:32 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Chroot]] . . . July 31, 2021, at 02:47 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Vmmuser]] . . . July 29, 2021, at 05:31 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Vmminstall]] . . . July 29, 2021, at 05:28 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Vmm]] . . . July 29, 2021, at 05:24 AM by [[~jrmu]]: [==]%0a* [[Openbsd/ZNCAdmin]] . . . July 28, 2021, at 06:14 AM by [[~jrmu]]: [==]%0a* [[Openbsd/ZNCSupport]] . . . July 28, 2021, at 06:14 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Php]] . . . July 27, 2021, at 02:53 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Dig]] . . . July 25, 2021, at 06:50 AM by [[~jrmu]]: [==]%0a* [[Openbsd/RDNS]] . . . July 23, 2021, at 06:44 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Sic]] . . . July 21, 2021, at 05:57 PM by [[~mkf]]: [=first edit.=]%0a* [[Openbsd/Openrsync]] . . . July 18, 2021, at 02:01 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Znc]] . . . July 16, 2021, at 10:43 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Staticnet]] . . . July 12, 2021, at 05:48 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Dovecot]] . . . July 12, 2021, at 02:58 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Relayd]] . . . July 12, 2021, at 02:45 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Spf]] . . . July 12, 2021, at 03:08 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Mlmmj]] . . . July 08, 2021, at 09:42 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Eggdrop]] . . . July 02, 2021, at 03:20 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Newdisk]] . . . June 29, 2021, at 03:23 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Ed]] . . . June 28, 2021, at 04:04 PM by [[~mkf]]: [==]%0a* [[Openbsd/Unbound]] . . . June 27, 2021, at 12:12 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Dkimproxy]] . . . June 25, 2021, at 12:56 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Sysupgrade69]] . . . June 25, 2021, at 05:46 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Opensmtpd]] . . . June 23, 2021, at 02:21 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Ngircd]] . . . June 23, 2021, at 02:21 AM by [[~jrmu]]: [==]%0a* [[Openbsd/NgircdLink]] . . . June 22, 2021, at 07:50 PM by [[~mkf]]: [=delete=]%0a* [[Openbsd/Doas]] . . . June 13, 2021, at 01:19 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Shell]] . . . June 11, 2021, at 09:36 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Books]] . . . June 06, 2021, at 12:46 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Pfa]] . . . June 06, 2021, at 03:49 AM by [[~navic]]: [==]%0a* [[Openbsd/Wordpress]] . . . June 04, 2021, at 04:55 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Anope]] . . . May 31, 2021, at 10:24 AM by [[~miniontoby]]: [=cp=]%0a* [[Openbsd/ACKFlood]] . . . May 29, 2021, at 06:20 AM by [[~mkf]]: [==]%0a* [[Openbsd/SSDP]] . . . May 29, 2021, at 06:18 AM by [[~mkf]]: [==]%0a* [[Openbsd/Anycast]] . . . May 29, 2021, at 06:01 AM by [[~mkf]]: [==]%0a* [[Openbsd/Dmarc]] . . . May 21, 2021, at 09:22 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Disklabel]] . . . May 17, 2021, at 03:33 AM by [[~bejelentkezni]]: [==]%0a* [[Openbsd/Fdisk]] . . . May 17, 2021, at 03:27 AM by [[~bejelentkezni]]: [==]%0a* [[Openbsd/Security]] . . . May 14, 2021, at 03:14 AM by [[~caesar]]: [==]%0a* [[Openbsd/Hopm-Arthur]] . . . May 07, 2021, at 12:28 PM by [[~Arthur]]: [==]%0a* [[Openbsd/Syspatch]] . . . February 14, 2021, at 11:00 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Netadmin]] . . . February 14, 2021, at 10:56 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Leafnode]] . . . February 12, 2021, at 01:40 PM by [[~chewy]]: [==]%0a* [[Openbsd/Pylink]] . . . February 08, 2021, at 08:33 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Stable]] . . . February 02, 2021, at 02:25 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Base64]] . . . February 02, 2021, at 06:37 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Unboundadblock]] . . . February 02, 2021, at 04:29 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Pfbadhost]] . . . February 02, 2021, at 04:29 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Wraith]] . . . February 02, 2021, at 04:22 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Delphinusdnsd]] . . . February 02, 2021, at 01:51 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Abuse]] . . . January 31, 2021, at 05:33 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Phishing]] . . . January 31, 2021, at 05:02 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Audit]] . . . January 31, 2021, at 04:46 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Ongoing]] . . . January 31, 2021, at 01:19 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Httpopenproxy]] . . . January 29, 2021, at 11:01 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Zncadmin]] . . . January 29, 2021, at 10:00 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Rbldns]] . . . January 29, 2021, at 05:45 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Setuid]] . . . January 28, 2021, at 06:53 AM by [[~jrmu]]: [==]%0a* [[Openbsd/PFTesting]] . . . January 25, 2021, at 03:28 PM by [[~jrmu]]: [==]%0a* [[Openbsd/ZNCDaily]] . . . January 25, 2021, at 11:35 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Irssi]] . . . January 25, 2021, at 07:08 AM by [[~jrmu]]: [==]%0a* [[Openbsd/XTerm]] . . . January 17, 2021, at 01:48 PM by [[~miniontoby]]: [=copyright=]%0a* [[Openbsd/Slrn]] . . . January 12, 2021, at 02:40 PM by [[~Noxturnix]]: [==]%0a* [[Openbsd/Netcat]] . . . January 09, 2021, at 02:20 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Perl]] . . . January 09, 2021, at 01:52 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Backup]] . . . January 03, 2021, at 01:46 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Passwords]] . . . January 03, 2021, at 12:20 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Backups]] . . . January 02, 2021, at 11:44 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Sshbackdoor]] . . . December 30, 2020, at 12:14 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Pf-bnc]] . . . December 29, 2020, at 06:30 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Tcltls]] . . . December 29, 2020, at 09:53 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Amplification]] . . . December 19, 2020, at 05:42 AM by [[~jrmu]]: [==]%0a* [[Openbsd/UDPFlood]] . . . December 18, 2020, at 10:39 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Tcpdump]] . . . December 18, 2020, at 09:12 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Tcpackflood]] . . . December 17, 2020, at 10:36 AM by [[~jrmu]]: [==]%0a* [[Openbsd/RSTFlood]] . . . December 17, 2020, at 10:34 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Tcpresetflood]] . . . December 17, 2020, at 10:34 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Ssdp]] . . . December 15, 2020, at 12:59 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Pf]] . . . December 13, 2020, at 12:03 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Upgrade68]] . . . December 13, 2020, at 11:12 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Install68]] . . . December 13, 2020, at 10:13 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Upgrade67]] . . . December 13, 2020, at 04:02 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Sysupgrade68]] . . . December 11, 2020, at 10:27 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Dokuwiki]] . . . December 10, 2020, at 02:23 PM by [[~miniontoby]]: [=code blocks fixed=]%0a* [[Openbsd/Acme-client]] . . . December 09, 2020, at 06:47 PM by [[~miniontoby]]: [=fixed troubleshooting links=]%0a* [[Openbsd/Install67]] . . . December 06, 2020, at 11:03 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Buyvm]] . . . December 06, 2020, at 02:42 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Install]] . . . December 04, 2020, at 04:15 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Oidentd]] . . . November 30, 2020, at 11:42 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Checklist]] . . . November 20, 2020, at 12:44 AM by [[~gry]]: [=+=]%0a* [[Openbsd/Acopm]] . . . November 04, 2020, at 03:32 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Achurch]] . . . November 04, 2020, at 02:25 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Vi]] . . . November 04, 2020, at 12:51 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Sudo]] . . . November 04, 2020, at 12:38 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Easyapp]] . . . September 29, 2020, at 12:13 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Cgit]] . . . September 01, 2020, at 05:51 PM by [[~baytuch]]: [==]%0a* [[Openbsd/Bchs]] . . . August 20, 2020, at 07:11 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Fdm]] . . . August 18, 2020, at 10:06 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Opensmtpd-2]] . . . August 18, 2020, at 09:59 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Opensmtpd-relay]] . . . August 18, 2020, at 09:56 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Identd]] . . . August 18, 2020, at 09:39 AM by [[~jrmu]]: [==]%0a* [[Openbsd/IPv6]] . . . August 12, 2020, at 02:21 PM by [[~jrmu]]: [==]%0a* [[Openbsd/Oscommerce]] . . . August 12, 2020, at 10:00 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Ping]] . . . August 12, 2020, at 08:34 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Sockets]] . . . August 12, 2020, at 07:16 AM by [[~jrmu]]: [==]%0a* [[Openbsd/Guides]] . . . August 10, 2020, at 03:42 AM by [[~jrmu]]: [==]%0a +time=1674245485 blob - b6e52770b8f03f764077cd2f0716839262e1c634 blob + 870eca710c4d6997d51bfc1af6982473727ee5cf --- wiki.d/Php.Install +++ wiki.d/Php.Install @@ -1,42 +1,15 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=w3m/0.5.3+git20210102 -author=jrmu +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 +author=mkf charset=UTF-8 csum= -ctime=1627380291 -host=38.87.162.154 +ctime=1674240725 +host=198.251.82.194 name=Php.Install -rev=9 -targets=Acme-client.Configure,Openhttpd.TLS,Relayd.Acceleration -text=(:title Install PHP for OpenHTTPd:)%0a%0aYou'll first want to choose the version of PHP you use:%0a%0a!! Install PHP7%0a%0a[@%0a$ doas pkg_add php%257%0a$ doas rcctl enable php74_fpm%0a$ doas rcctl start php74_fpm%0a@]%0a%0a!! Install PHP8%0a%0a[@%0a$ doas pkg_add php%258%0a$ doas rcctl enable php80_fpm%0a$ doas rcctl start php80_fpm%0a@]%0a%0aThen, in /etc/httpd.conf, add the following block:%0a%0a[@%0aserver "example.com" {%0a listen on * port 80%0a location "/.well-known/acme-challenge/*" {%0a root "/acme"%0a request strip 2%0a }%0a location "*.php" {%0a fastcgi socket "/run/php-fpm.sock"%0a root "/htdocs/example.com"%0a }%0a}%0a@]%0a%0aLines 3-7, the @@location "/.well-known/acme-challenge/*"@@ block, is for [[acme-client/configure|acme-client]], for requesting new SSL certs.%0a%0aLines 8-11, the @@location "*.php"@@ block, tells the web server to use PHP for any file that ends with a @@.php@@ file extension.%0a%0aLine 10 says where the '''document root''' is located -- where web files should be placed. By default, openhttpd chroots into /var/www, so if your document root is /htdocs/example.com, then your actual web files need to be placed in /var/www/htdocs/example.com. %0a%0a'''NOTE''': Make sure to replace example.com with your real domain.%0a%0aTo test your installation, create the file /var/www/htdocs/example.com/index.php:%0a%0a[@%0a%3c?php phpinfo(); ?>%0a@]%0a%0aThen, have your web browser visit http://example.com/ . If you set everything up correctly, you should see a screen full of PHP installation information.%0a%0aFor SSL, you will want to follow the [[openhttpd/TLS|OpenHTTPD TLS]] or [[relayd/acceleration|relayd]] guides.%0a%0a!! Troubleshooting %0a%0aIf you run into any PHP configuration errors, check the logs folder in /var/www/logs:%0a%0a[@%0a$ less /var/www/logs/access.log%0a$ less /var/www/logs/error.log%0a@]%0a%0a!! Files%0a%0a|| File Path || Purpose ||%0a|| /var/www/logs/access.log || Web access logs ||%0a|| /var/www/logs/error.log || Web error logs ||%0a%0a%0a!! Upgrading Notes%0a%0aIf you are upgrading to php8.0 and you have got pmwiki, then make sure that you update your pmwiki, else it will spam your logs and it will be within a minute that you got no space left on /var %0a%0a -time=1651619461 -title=Install PHP for OpenHTTPd -author:1651619461=jrmu -diff:1651619461:1644140531:=3,6c3,4%0a%3c You'll first want to choose the version of PHP you use:%0a%3c %0a%3c !! Install PHP7%0a%3c %0a---%0a> !! Install%0a> %0a8,10c6,8%0a%3c $ doas pkg_add php%257%0a%3c $ doas rcctl enable php74_fpm%0a%3c $ doas rcctl start php74_fpm%0a---%0a> $ doas pkg_add php-8.0.8%0a> $ doas rcctl enable php80_fpm%0a> $ doas rcctl start php80_fpm%0a13,14c11,12%0a%3c !! Install PHP8%0a%3c %0a---%0a> Then, in /etc/httpd.conf, add the following block:%0a> %0a16,23d13%0a%3c $ doas pkg_add php%258%0a%3c $ doas rcctl enable php80_fpm%0a%3c $ doas rcctl start php80_fpm%0a%3c @]%0a%3c %0a%3c Then, in /etc/httpd.conf, add the following block:%0a%3c %0a%3c [@%0a74d63%0a%3c %0a -host:1651619461=38.87.162.154 -author:1644140531=Naglfar -csum:1644140531=Update SquirrelMail version to 1.4.23 [SVN] and PHP 8.0.x -diff:1644140531:1637932804:=9a10,11%0a> %0a> '''Note''': SquirrleMail does not support PHP-8.x. The latest known supported PHP version is 7.x.%0a -host:1644140531=92.191.225.58 -author:1637932804=miniontoby -csum:1637932804=Added upgarding notes -diff:1637932804:1637797470:=61,65d60%0a%3c %0a%3c %0a%3c !! Upgrading Notes%0a%3c %0a%3c If you are upgrading to php8.0 and you have got pmwiki, then make sure that you update your pmwiki, else it will spam your logs and it will be within a minute that you got no space left on /var %0a -host:1637932804=82.170.78.91 -author:1637797470=bugzbunny -diff:1637797470:1627381487:=10,11d9%0a%3c %0a%3c '''Note''': SquirrleMail does not support PHP-8.x. The latest known supported PHP version is 7.x.%0a -host:1637797470=72.78.238.236 -author:1627381487=jrmu -diff:1627381487:1627381296:=35,43c35%0a%3c To test your installation, create the file /var/www/htdocs/example.com/index.php:%0a%3c %0a%3c [@%0a%3c %3c?php phpinfo(); ?>%0a%3c @]%0a%3c %0a%3c Then, have your web browser visit http://example.com/ . If you set everything up correctly, you should see a screen full of PHP installation information.%0a%3c %0a%3c For SSL, you will want to follow the [[openhttpd/TLS|OpenHTTPD TLS]] or [[relayd/acceleration|relayd]] guides.%0a---%0a> To test your installation,%0a -host:1627381487=38.87.162.8 -author:1627381296=jrmu -diff:1627381296:1627380982:=22d21%0a%3c root "/htdocs/example.com"%0a29,35c28%0a%3c Lines 8-11, the @@location "*.php"@@ block, tells the web server to use PHP for any file that ends with a @@.php@@ file extension.%0a%3c %0a%3c Line 10 says where the '''document root''' is located -- where web files should be placed. By default, openhttpd chroots into /var/www, so if your document root is /htdocs/example.com, then your actual web files need to be placed in /var/www/htdocs/example.com. %0a%3c %0a%3c '''NOTE''': Make sure to replace example.com with your real domain.%0a%3c %0a%3c To test your installation,%0a---%0a> Lines 8-10, the @@location "*.php"@@ block, tells the web server to use PHP for any file that ends with a @@.php@@ file extension.%0a -host:1627381296=38.87.162.8 -author:1627380982=jrmu -diff:1627380982:1627380946:=42,43c42,43%0a%3c || /var/www/logs/access.log || Web access logs ||%0a%3c || /var/www/logs/error.log || Web error logs ||%0a---%0a> || /var/www/logs/ || Web logs ||%0a> || ||%0a -host:1627380982=38.87.162.8 -author:1627380946=jrmu -diff:1627380946:1627380291:=6,8c6%0a%3c $ doas pkg_add php-8.0.8%0a%3c $ doas rcctl enable php80_fpm%0a%3c $ doas rcctl start php80_fpm%0a---%0a> $ doas pkg_add php%0a11,12d8%0a%3c Then, in /etc/httpd.conf, add the following block:%0a%3c %0a13a10,14%0a> $ doas rcctl enable php74_fpm%0a> $ doas rcctl start php74_fpm%0a> @]%0a> %0a> [@%0a15,19c16%0a%3c listen on * port 80%0a%3c location "/.well-known/acme-challenge/*" {%0a%3c root "/acme"%0a%3c request strip 2%0a%3c }%0a---%0a> listen on * port 8080%0a26,33c23,24%0a%3c Lines 3-7, the @@location "/.well-known/acme-challenge/*"@@ block, is for [[acme-client/configure|acme-client]], for requesting new SSL certs.%0a%3c %0a%3c Lines 8-10, the @@location "*.php"@@ block, tells the web server to use PHP for any file that ends with a @@.php@@ file extension.%0a%3c %0a%3c !! Troubleshooting %0a%3c %0a%3c If you run into any PHP configuration errors, check the logs folder in /var/www/logs:%0a%3c %0a---%0a> To check for PHP configuration errors:%0a> %0a35,36c26,27%0a%3c $ less /var/www/logs/access.log%0a%3c $ less /var/www/logs/error.log%0a---%0a> # less /var/www/logs/access.log%0a> # less /var/www/logs/error.log%0a38,43d28%0a%3c %0a%3c !! Files%0a%3c %0a%3c || File Path || Purpose ||%0a%3c || /var/www/logs/ || Web logs ||%0a%3c || ||%0a -host:1627380946=38.87.162.8 -author:1627380291=jrmu -diff:1627380291:1627380291:=1,28d0%0a%3c (:title Install PHP for OpenHTTPd:)%0a%3c %0a%3c !! Install%0a%3c %0a%3c [@%0a%3c $ doas pkg_add php%0a%3c @]%0a%3c %0a%3c [@%0a%3c $ doas rcctl enable php74_fpm%0a%3c $ doas rcctl start php74_fpm%0a%3c @]%0a%3c %0a%3c [@%0a%3c server "example.com" {%0a%3c listen on * port 8080%0a%3c location "*.php" {%0a%3c fastcgi socket "/run/php-fpm.sock"%0a%3c }%0a%3c }%0a%3c @]%0a%3c %0a%3c To check for PHP configuration errors:%0a%3c %0a%3c [@%0a%3c # less /var/www/logs/access.log%0a%3c # less /var/www/logs/error.log%0a%3c @]%0a -host:1627380291=38.87.162.8 +rev=1 +targets= +text=(:redirect Openbsd.Php status=301:) +time=1674240725 +author:1674240725=mkf +diff:1674240725:1674240725:=1d0%0a%3c (:redirect Openbsd.Php status=301:)%0a\ No newline at end of file%0a +host:1674240725=198.251.82.194 blob - 1428b6d1d29dc82aa50f34ac3851379a3cb1d67f blob + 984af165f90650ee93f388b7dc21dd9ecb9880ae --- wiki.d/Php.RecentChanges +++ wiki.d/Php.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=w3m/0.5.3+git20210102 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 charset=UTF-8 ctime=1627380291 -host=38.87.162.154 +host=198.251.82.194 name=Php.RecentChanges -rev=9 -text=* [[Php/Install]] . . . May 03, 2022, at 11:11 PM by [[~jrmu]]: [==]%0a -time=1651619461 +rev=12 +text=* [[Php/Install]] . . . January 20, 2023, at 06:52 PM by [[~mkf]]: [==]%0a +time=1674240725 blob - 19c0ff4f9e9b565d7961de20d5b9b3db4223acb2 blob + dc1682fe722cb68f94437c8350687a65de9b28a5 --- wiki.d/Pleroma.Install +++ wiki.d/Pleroma.Install @@ -1,29 +1,15 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (Linux; Android 8.1.0; vivo 1820 Build/O11019) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.5304.141 Mobile Safari/537.36 -author=Yonle +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 +author=mkf charset=UTF-8 csum= -ctime=1670000401 -host=182.1.43.26 +ctime=1674242290 +host=198.251.82.194 name=Pleroma.Install -rev=5 +rev=1 targets= -text=(:title Pleroma:)%0aPleroma is a microblogging server software that can federate (= exchange messages with) other servers that support ActivityPub. What that means is that you can host a server for yourself or your friends and stay in control of your online identity, but still exchange messages with people on larger servers. Pleroma will federate with all servers that implement ActivityPub, like Friendica, GNU Social, Hubzilla, Mastodon, Misskey, Peertube, and Pixelfed.%0a%0aThis guide describes the installation and configuration of Pleroma (and the required software to run it) on a single OpenBSD 7.2 server.%0a%0a!! Installation%0aFirst, We need to install the required dependencies%0a[@%0a# pkg_add elixir gmake git postgresql-server postgresql-contrib cmake ffmpeg ImageMagick p5-Image-ExifTool libmagic erlang-wx%0a@]%0a%0aPick the latest version of @@erlang-wx@@ when asked.%0a%0aCreate @@pleroma@@ user to be run in dedicated user. Before creating it, Edit @@/etc/login.conf@@:%0a[@%0apleroma:\%0a :datasize-max=1536M:\%0a :datasize-cur=1536M:\%0a :openfiles-max=4096%0a@]%0a%0aThis creates a "pleroma" login class and sets higher values than default for datasize and openfiles (see login.conf(5)), this is required to avoid having pleroma crash some time after starting.%0a%0aCreate the @@_pleroma@@ user, assign it the pleroma login class and create its home directory (/home/_pleroma/):%0a[@%0a# useradd -m -L pleroma _pleroma%0a@]%0a%0aEnter a shell as the _pleroma user. As root, run%0a[@%0a# su -l _pleroma%0a@]%0a%0aBecause we're running in a VM, Disable time correction to prevent interruption during compilation, And disable Busy-waiting feature to improve performance a bit. Edit @@~/.vm.args@@, insert:%0a%0a[@%0a+c false%0a+sbwt none%0a+sbwtdcpu none%0a+sbwtdio none%0a@]%0a%0aThen save it.%0a%0aEdit @@~/.profile@@, Then add this to the bottom of file:%0a%0a[@%0aexport LC_ALL=en_US.UTF-8%0aalias mix="elixir --erl \"-args_file $HOME/.vm.args\" -S $(command -v mix)"%0a@]%0a%0aThen save it.%0a%0aThen clone the repository by doing:%0a[@%0a$ git clone https://git.pleroma.social/pleroma/pleroma.git%0a@]%0a%0aPleroma is now installed in @@/home/_pleroma/pleroma/@@, it will be configured and started at the end of this guide.%0a%0a!! Setting up the database: postgresql%0aStart a shell as the _postgresql user. As root, run%0a[@%0a# su -l _postgresql%0a@]%0a%0aThen run the initdb command to initialize postgresql. You will need to specify pgdata directory to the default (@@/var/postgresql/data@@) with the @@-D %3cpath>@@ and set the user to postgres with the @@-U %3cusername>@@ flag. This can be done as follows:%0a%0a[@%0a# initdb -D /var/postgresql/data -U postgres%0a@]%0a%0aIf you are not using the default directory, you will have to update the @@datadir@@ variable in the @@/etc/rc.d/postgresql@@ script.%0a%0a%0aWhen this is done, enable postgresql so that it starts on boot and start it. As root, run:%0a[@%0a# rcctl enable postgresql%0a# rcctl start postgresql%0a@]%0a%0aTo check that it started properly and didn't fail right after starting, you can run @@ps aux | grep postgres@@, there should be multiple lines of output.%0a%0a!! Configuring httpd%0ahttpd will have three fuctions:%0a%0a# Redirect requests trying to reach the instance over http to the https URL%0a# Serve a robots.txt file%0a# Get Let's Encrypt certificates, with acme-client%0a%0aInsert the following config in httpd.conf:%0a%0a[@%0a# $OpenBSD: httpd.conf,v 1.17 2017/04/16 08:50:49 ajacoutot Exp $%0a%0aext_inet="%3cIPv4 address>"%0aext_inet6="%3cIPv6 address>"%0a%0aserver "default" {%0a listen on $ext_inet port 80 # Comment to disable listening on IPv4%0a listen on $ext_inet6 port 80 # Comment to disable listening on IPv6%0a listen on 127.0.0.1 port 80 # Do NOT comment this line%0a%0a log syslog%0a directory no index%0a%0a location "/.well-known/acme-challenge/*" {%0a root "/acme"%0a request strip 2%0a }%0a%0a location "/robots.txt" { root "/htdocs/" }%0a location "/*" { block return 302 "https://$HTTP_HOST$REQUEST_URI" }%0a}%0a@]%0a%0aDo not forget to change @@%3cIPv4/6 address>@@ to your server's address(es). If httpd should only listen on one protocol family, comment one of the two first listen options.%0a%0aWrite the content of your @@robots.txt@@ in @@/var/www/htdocs/robots.txt@@:%0a[@%0aUser-Agent: *%0aDisallow:%0a@]%0a%0aCheck the httpd configuration%0a[@%0a# httpd -n%0a@]%0a%0aIf it's OK, enable and start httpd%0a[@%0a# rcctl enable httpd%0a# rcctl start httpd%0a@]%0a%0a!! acme-client%0aSee https://wiki.ircnow.org/index.php?n=Acme-client.Configure%0a%0a!! Configuring relayd%0arelayd will be used as the reverse proxy sitting in front of pleroma. Insert the following configuration in @@/etc/relayd.conf@@:%0a%0a[@%0a# $OpenBSD: relayd.conf,v 1.4 2018/03/23 09:55:06 claudio Exp $%0a%0aext_inet="%3cIPv4 address>"%0aext_inet6="%3cIPv6 address>"%0a%0atable %3cpleroma_server> { 127.0.0.1 }%0atable %3chttpd_server> { 127.0.0.1 }%0a%0ahttp protocol plerup { # Protocol for upstream pleroma server%0a #tcp { nodelay, sack, socket buffer 65536, backlog 128 } # Uncomment and adjust as you see fit%0a tls { keypair fedi.example.com }%0a%0a # Forward some paths to the local server (as pleroma won't respond to them as you might want)%0a pass request quick path "/robots.txt" forward to %3chttpd_server>%0a%0a # Append a bunch of headers%0a match request header append "X-Forwarded-For" value "$REMOTE_ADDR" # This two header and the next one are not strictly required by pleroma but adding them won't hurt%0a match request header append "X-Forwarded-By" value "$SERVER_ADDR:$SERVER_PORT"%0a%0a match request header append "Connection" value "upgrade"%0a}%0a%0arelay www {%0a listen on $ext_inet port https tls # Comment to disable listening on IPv4%0a%0a protocol plerup%0a%0a forward to %3cpleroma_server> port 4000%0a}%0a%0arelay www6 {%0a listen on $ext_inet6 port https tls # Comment to disable listening on IPv6%0a%0a protocol plerup%0a%0a forward to %3cpleroma_server> port 4000%0a}%0a@]%0a%0aChange @@fedi.example.com@@ with your instance domain.%0a%0aAgain, change @@%3cIPv4 address>@@ and @@%3cIPv6 address>@@ to your server's address(es) and comment one of the two listen options if needed.%0a%0aCheck the configuration with @@relayd -n@@, if it is OK enable and start relayd (as root):%0a[@%0a# rcctl enable relayd%0a# rcctl start relayd%0a@]%0a%0a!! Configuring pf%0aEnabling and configuring pf is highly recommended. In @@/etc/pf.conf@@, insert the following configuration:%0a%0a[@%0a# Macros%0aif="%3cnetwork interface>"%0aauthorized_ssh_clients="any"%0a%0a# Skip traffic on loopback interface%0aset skip on lo%0a%0a# Default behavior%0aset block-policy drop%0ablock in log all%0apass out quick%0a%0a# Security features%0amatch in all scrub (no-df random-id)%0ablock in log from urpf-failed%0a%0a# Rules%0apass in quick on $if inet proto icmp to ($if) icmp-type { echoreq unreach paramprob trace } # ICMP%0apass in quick on $if inet6 proto icmp6 to ($if) icmp6-type { echoreq unreach paramprob timex toobig } # ICMPv6%0apass in quick on $if proto tcp to ($if) port { http https } # relayd/httpd%0apass in quick on $if proto tcp from $authorized_ssh_clients to ($if) port ssh%0a@]%0a%0aReplace @@%3cnetwork interface>@@ by your server's network interface name (which you can get with ifconfig). Consider replacing the content of the @@authorized_ssh_clients@@ macro by, for example, your home IP address, to avoid SSH connection attempts from bots.%0a%0aCheck pf's configuration by running @@pfctl -nf /etc/pf.conf@@, load it with @@pfctl -f /etc/pf.conf@@ and enable pf at boot with @@rcctl enable pf@@.%0a%0a%0a!! Configuring and starting Pleroma%0aEnter a shell as _pleroma (as root do @@su -l _pleroma@@) and enter pleroma's installation directory:%0a[@%0a$ cd ~/pleroma%0a@]%0a%0a%0aNow, Run the following command:%0a[@%0a$ mix deps.get%0a@]%0a%0aWhen asked to install Hex dependencies, Press @@Y@@ then @@RETURN@@/Enter.%0a%0aOnce dependencies succesfully retrieved, Run%0a[@%0a$ MIX_PROD=prod mix pleroma.instance gen%0a@]%0a%0aWhen asked to install @@rebar3@@, Press @@Y@@ then @@RETURN@@/Enter, and enter your instance information when asked.%0a%0a%0aCopy @@config/generated_config.exs@@ to @@config/prod.secret.exs@@. The default values should be sufficient but you should edit it and check that everything seems OK.%0a[@%0a$ cp config/generated_config.exs config/prod.secret.exs%0a@]%0a%0aExit your current shell back to root one and run the following command to set up database:%0a[@%0a# psql -U postgres -f /home/_pleroma/pleroma/config/setup_db.psql%0a@]%0a%0aReturn to _pleroma shell into pleroma's installation directory (@@su -l _pleroma;cd ~/pleroma@@) and run%0a[@%0a$ MIX_ENV=prod mix ecto.migrate%0a@]%0a%0a%0aAs @@_pleroma@@ in @@/home/_pleroma/pleroma@@, You can now run the following command to start your instance:%0a[@%0a$ MIX_ENV=prod mix phx.server%0a@]%0a%0aIn another SSH session/tmux window, check that it is working properly by running @@ftp -MVo - http://127.0.0.1:4000/api/v1/instance@@, you should get json output. Double-check that uri's value is your instance's domain name.%0a%0a!! Starting Pleroma at boot%0aAs @@_pleroma@@, Edit crontab by doing this:%0a[@%0a$ crontab -e%0a@]%0a%0aThen insert this:%0a[@%0a@reboot tmux new -d "source ~/.profile; cd ~/pleroma; while true; do LC_ALL=en_US.UTF-8 MIX_ENV=prod mix phx.server; done"%0a@]%0a%0a!! Create administrative user%0aIf your instance is up and running, you can create your first user with administrative rights with the following command as the @@_pleroma@@ user.%0a%0a[@%0a$ MIX_ENV=prod mix pleroma.user new %3cusername> %3cyour@emailaddress> --admin%0a@] -time=1670765677 -title=Pleroma -author:1670765677=Yonle -diff:1670765677:1670765061:=4c4%0a%3c This guide describes the installation and configuration of Pleroma (and the required software to run it) on a single OpenBSD 7.2 server.%0a---%0a> This guide describes the installation and configuration of pleroma (and the required software to run it) on a single OpenBSD 7.2 server.%0a -host:1670765677=182.1.43.26 -author:1670765061=Yonle -diff:1670765061:1670197776:=9c9%0a%3c # pkg_add elixir gmake git postgresql-server postgresql-contrib cmake ffmpeg ImageMagick p5-Image-ExifTool libmagic erlang-wx%0a---%0a> # pkg_add elixir gmake git postgresql-server postgresql-contrib cmake ffmpeg ImageMagick p5-Image-ExifTool libmagic erlang-wx-25.0.4%0a12,14c12,17%0a%3c Pick the latest version of @@erlang-wx@@ when asked.%0a%3c %0a%3c Create @@pleroma@@ user to be run in dedicated user. Before creating it, Edit @@/etc/login.conf@@:%0a---%0a> Symlink @@/usr/local/bin/escript25@@ to @@/usr/local/bin/escript@@%0a> [@%0a> # ln -s /usr/local/bin/escript25 /usr/local/bin/escript%0a> @]%0a> %0a> Then create @@pleroma@@ user to be run in dedicated user. Before creating it, Edit @@/etc/login.conf@@:%0a -host:1670765061=182.1.43.26 -author:1670197776=Yonle -diff:1670197776:1670000454:=288c288,300%0a%3c @]%0a\ No newline at end of file%0a---%0a> @]%0a> %0a> !! Installing Frontends%0a> Once your backend server is functional, you'll also want to probably install frontends.%0a> %0a> These are no longer bundled with the distribution and need an extra command to install.%0a> %0a> For most installations, the following will suffice:%0a> [@%0a> $ export MIX_ENV=prod%0a> $ mix pleroma.frontend install pleroma-fe --ref stable%0a> $ mix pleroma.frontend install admin-fe --ref stable%0a> @]%0a -host:1670197776=114.125.21.29 -author:1670000454=Yonle -diff:1670000454:1670000401:=227c227%0a%3c !! Configuring and starting Pleroma%0a---%0a> !! Configuring and starting pleroma%0a272c272%0a%3c !! Starting Pleroma at boot%0a---%0a> !! Starting pleroma at boot%0a -host:1670000454=182.1.63.240 -author:1670000401=Yonle -csum:1670000401=Fork: https://wiki.ircnow.org/index.php?n=Akkoma.Install -diff:1670000401:1670000401:=1,300d0%0a%3c (:title Pleroma:)%0a%3c Pleroma is a microblogging server software that can federate (= exchange messages with) other servers that support ActivityPub. What that means is that you can host a server for yourself or your friends and stay in control of your online identity, but still exchange messages with people on larger servers. Pleroma will federate with all servers that implement ActivityPub, like Friendica, GNU Social, Hubzilla, Mastodon, Misskey, Peertube, and Pixelfed.%0a%3c %0a%3c This guide describes the installation and configuration of pleroma (and the required software to run it) on a single OpenBSD 7.2 server.%0a%3c %0a%3c !! Installation%0a%3c First, We need to install the required dependencies%0a%3c [@%0a%3c # pkg_add elixir gmake git postgresql-server postgresql-contrib cmake ffmpeg ImageMagick p5-Image-ExifTool libmagic erlang-wx-25.0.4%0a%3c @]%0a%3c %0a%3c Symlink @@/usr/local/bin/escript25@@ to @@/usr/local/bin/escript@@%0a%3c [@%0a%3c # ln -s /usr/local/bin/escript25 /usr/local/bin/escript%0a%3c @]%0a%3c %0a%3c Then create @@pleroma@@ user to be run in dedicated user. Before creating it, Edit @@/etc/login.conf@@:%0a%3c [@%0a%3c pleroma:\%0a%3c :datasize-max=1536M:\%0a%3c :datasize-cur=1536M:\%0a%3c :openfiles-max=4096%0a%3c @]%0a%3c %0a%3c This creates a "pleroma" login class and sets higher values than default for datasize and openfiles (see login.conf(5)), this is required to avoid having pleroma crash some time after starting.%0a%3c %0a%3c Create the @@_pleroma@@ user, assign it the pleroma login class and create its home directory (/home/_pleroma/):%0a%3c [@%0a%3c # useradd -m -L pleroma _pleroma%0a%3c @]%0a%3c %0a%3c Enter a shell as the _pleroma user. As root, run%0a%3c [@%0a%3c # su -l _pleroma%0a%3c @]%0a%3c %0a%3c Because we're running in a VM, Disable time correction to prevent interruption during compilation, And disable Busy-waiting feature to improve performance a bit. Edit @@~/.vm.args@@, insert:%0a%3c %0a%3c [@%0a%3c +c false%0a%3c +sbwt none%0a%3c +sbwtdcpu none%0a%3c +sbwtdio none%0a%3c @]%0a%3c %0a%3c Then save it.%0a%3c %0a%3c Edit @@~/.profile@@, Then add this to the bottom of file:%0a%3c %0a%3c [@%0a%3c export LC_ALL=en_US.UTF-8%0a%3c alias mix="elixir --erl \"-args_file $HOME/.vm.args\" -S $(command -v mix)"%0a%3c @]%0a%3c %0a%3c Then save it.%0a%3c %0a%3c Then clone the repository by doing:%0a%3c [@%0a%3c $ git clone https://git.pleroma.social/pleroma/pleroma.git%0a%3c @]%0a%3c %0a%3c Pleroma is now installed in @@/home/_pleroma/pleroma/@@, it will be configured and started at the end of this guide.%0a%3c %0a%3c !! Setting up the database: postgresql%0a%3c Start a shell as the _postgresql user. As root, run%0a%3c [@%0a%3c # su -l _postgresql%0a%3c @]%0a%3c %0a%3c Then run the initdb command to initialize postgresql. You will need to specify pgdata directory to the default (@@/var/postgresql/data@@) with the @@-D %3cpath>@@ and set the user to postgres with the @@-U %3cusername>@@ flag. This can be done as follows:%0a%3c %0a%3c [@%0a%3c # initdb -D /var/postgresql/data -U postgres%0a%3c @]%0a%3c %0a%3c If you are not using the default directory, you will have to update the @@datadir@@ variable in the @@/etc/rc.d/postgresql@@ script.%0a%3c %0a%3c %0a%3c When this is done, enable postgresql so that it starts on boot and start it. As root, run:%0a%3c [@%0a%3c # rcctl enable postgresql%0a%3c # rcctl start postgresql%0a%3c @]%0a%3c %0a%3c To check that it started properly and didn't fail right after starting, you can run @@ps aux | grep postgres@@, there should be multiple lines of output.%0a%3c %0a%3c !! Configuring httpd%0a%3c httpd will have three fuctions:%0a%3c %0a%3c # Redirect requests trying to reach the instance over http to the https URL%0a%3c # Serve a robots.txt file%0a%3c # Get Let's Encrypt certificates, with acme-client%0a%3c %0a%3c Insert the following config in httpd.conf:%0a%3c %0a%3c [@%0a%3c # $OpenBSD: httpd.conf,v 1.17 2017/04/16 08:50:49 ajacoutot Exp $%0a%3c %0a%3c ext_inet="%3cIPv4 address>"%0a%3c ext_inet6="%3cIPv6 address>"%0a%3c %0a%3c server "default" {%0a%3c listen on $ext_inet port 80 # Comment to disable listening on IPv4%0a%3c listen on $ext_inet6 port 80 # Comment to disable listening on IPv6%0a%3c listen on 127.0.0.1 port 80 # Do NOT comment this line%0a%3c %0a%3c log syslog%0a%3c directory no index%0a%3c %0a%3c location "/.well-known/acme-challenge/*" {%0a%3c root "/acme"%0a%3c request strip 2%0a%3c }%0a%3c %0a%3c location "/robots.txt" { root "/htdocs/" }%0a%3c location "/*" { block return 302 "https://$HTTP_HOST$REQUEST_URI" }%0a%3c }%0a%3c @]%0a%3c %0a%3c Do not forget to change @@%3cIPv4/6 address>@@ to your server's address(es). If httpd should only listen on one protocol family, comment one of the two first listen options.%0a%3c %0a%3c Write the content of your @@robots.txt@@ in @@/var/www/htdocs/robots.txt@@:%0a%3c [@%0a%3c User-Agent: *%0a%3c Disallow:%0a%3c @]%0a%3c %0a%3c Check the httpd configuration%0a%3c [@%0a%3c # httpd -n%0a%3c @]%0a%3c %0a%3c If it's OK, enable and start httpd%0a%3c [@%0a%3c # rcctl enable httpd%0a%3c # rcctl start httpd%0a%3c @]%0a%3c %0a%3c !! acme-client%0a%3c See https://wiki.ircnow.org/index.php?n=Acme-client.Configure%0a%3c %0a%3c !! Configuring relayd%0a%3c relayd will be used as the reverse proxy sitting in front of pleroma. Insert the following configuration in @@/etc/relayd.conf@@:%0a%3c %0a%3c [@%0a%3c # $OpenBSD: relayd.conf,v 1.4 2018/03/23 09:55:06 claudio Exp $%0a%3c %0a%3c ext_inet="%3cIPv4 address>"%0a%3c ext_inet6="%3cIPv6 address>"%0a%3c %0a%3c table %3cpleroma_server> { 127.0.0.1 }%0a%3c table %3chttpd_server> { 127.0.0.1 }%0a%3c %0a%3c http protocol plerup { # Protocol for upstream pleroma server%0a%3c #tcp { nodelay, sack, socket buffer 65536, backlog 128 } # Uncomment and adjust as you see fit%0a%3c tls { keypair fedi.example.com }%0a%3c %0a%3c # Forward some paths to the local server (as pleroma won't respond to them as you might want)%0a%3c pass request quick path "/robots.txt" forward to %3chttpd_server>%0a%3c %0a%3c # Append a bunch of headers%0a%3c match request header append "X-Forwarded-For" value "$REMOTE_ADDR" # This two header and the next one are not strictly required by pleroma but adding them won't hurt%0a%3c match request header append "X-Forwarded-By" value "$SERVER_ADDR:$SERVER_PORT"%0a%3c %0a%3c match request header append "Connection" value "upgrade"%0a%3c }%0a%3c %0a%3c relay www {%0a%3c listen on $ext_inet port https tls # Comment to disable listening on IPv4%0a%3c %0a%3c protocol plerup%0a%3c %0a%3c forward to %3cpleroma_server> port 4000%0a%3c }%0a%3c %0a%3c relay www6 {%0a%3c listen on $ext_inet6 port https tls # Comment to disable listening on IPv6%0a%3c %0a%3c protocol plerup%0a%3c %0a%3c forward to %3cpleroma_server> port 4000%0a%3c }%0a%3c @]%0a%3c %0a%3c Change @@fedi.example.com@@ with your instance domain.%0a%3c %0a%3c Again, change @@%3cIPv4 address>@@ and @@%3cIPv6 address>@@ to your server's address(es) and comment one of the two listen options if needed.%0a%3c %0a%3c Check the configuration with @@relayd -n@@, if it is OK enable and start relayd (as root):%0a%3c [@%0a%3c # rcctl enable relayd%0a%3c # rcctl start relayd%0a%3c @]%0a%3c %0a%3c !! Configuring pf%0a%3c Enabling and configuring pf is highly recommended. In @@/etc/pf.conf@@, insert the following configuration:%0a%3c %0a%3c [@%0a%3c # Macros%0a%3c if="%3cnetwork interface>"%0a%3c authorized_ssh_clients="any"%0a%3c %0a%3c # Skip traffic on loopback interface%0a%3c set skip on lo%0a%3c %0a%3c # Default behavior%0a%3c set block-policy drop%0a%3c block in log all%0a%3c pass out quick%0a%3c %0a%3c # Security features%0a%3c match in all scrub (no-df random-id)%0a%3c block in log from urpf-failed%0a%3c %0a%3c # Rules%0a%3c pass in quick on $if inet proto icmp to ($if) icmp-type { echoreq unreach paramprob trace } # ICMP%0a%3c pass in quick on $if inet6 proto icmp6 to ($if) icmp6-type { echoreq unreach paramprob timex toobig } # ICMPv6%0a%3c pass in quick on $if proto tcp to ($if) port { http https } # relayd/httpd%0a%3c pass in quick on $if proto tcp from $authorized_ssh_clients to ($if) port ssh%0a%3c @]%0a%3c %0a%3c Replace @@%3cnetwork interface>@@ by your server's network interface name (which you can get with ifconfig). Consider replacing the content of the @@authorized_ssh_clients@@ macro by, for example, your home IP address, to avoid SSH connection attempts from bots.%0a%3c %0a%3c Check pf's configuration by running @@pfctl -nf /etc/pf.conf@@, load it with @@pfctl -f /etc/pf.conf@@ and enable pf at boot with @@rcctl enable pf@@.%0a%3c %0a%3c %0a%3c !! Configuring and starting pleroma%0a%3c Enter a shell as _pleroma (as root do @@su -l _pleroma@@) and enter pleroma's installation directory:%0a%3c [@%0a%3c $ cd ~/pleroma%0a%3c @]%0a%3c %0a%3c %0a%3c Now, Run the following command:%0a%3c [@%0a%3c $ mix deps.get%0a%3c @]%0a%3c %0a%3c When asked to install Hex dependencies, Press @@Y@@ then @@RETURN@@/Enter.%0a%3c %0a%3c Once dependencies succesfully retrieved, Run%0a%3c [@%0a%3c $ MIX_PROD=prod mix pleroma.instance gen%0a%3c @]%0a%3c %0a%3c When asked to install @@rebar3@@, Press @@Y@@ then @@RETURN@@/Enter, and enter your instance information when asked.%0a%3c %0a%3c %0a%3c Copy @@config/generated_config.exs@@ to @@config/prod.secret.exs@@. The default values should be sufficient but you should edit it and check that everything seems OK.%0a%3c [@%0a%3c $ cp config/generated_config.exs config/prod.secret.exs%0a%3c @]%0a%3c %0a%3c Exit your current shell back to root one and run the following command to set up database:%0a%3c [@%0a%3c # psql -U postgres -f /home/_pleroma/pleroma/config/setup_db.psql%0a%3c @]%0a%3c %0a%3c Return to _pleroma shell into pleroma's installation directory (@@su -l _pleroma;cd ~/pleroma@@) and run%0a%3c [@%0a%3c $ MIX_ENV=prod mix ecto.migrate%0a%3c @]%0a%3c %0a%3c %0a%3c As @@_pleroma@@ in @@/home/_pleroma/pleroma@@, You can now run the following command to start your instance:%0a%3c [@%0a%3c $ MIX_ENV=prod mix phx.server%0a%3c @]%0a%3c %0a%3c In another SSH session/tmux window, check that it is working properly by running @@ftp -MVo - http://127.0.0.1:4000/api/v1/instance@@, you should get json output. Double-check that uri's value is your instance's domain name.%0a%3c %0a%3c !! Starting pleroma at boot%0a%3c As @@_pleroma@@, Edit crontab by doing this:%0a%3c [@%0a%3c $ crontab -e%0a%3c @]%0a%3c %0a%3c Then insert this:%0a%3c [@%0a%3c @reboot tmux new -d "source ~/.profile; cd ~/pleroma; while true; do LC_ALL=en_US.UTF-8 MIX_ENV=prod mix phx.server; done"%0a%3c @]%0a%3c %0a%3c !! Create administrative user%0a%3c If your instance is up and running, you can create your first user with administrative rights with the following command as the @@_pleroma@@ user.%0a%3c %0a%3c [@%0a%3c $ MIX_ENV=prod mix pleroma.user new %3cusername> %3cyour@emailaddress> --admin%0a%3c @]%0a%3c %0a%3c !! Installing Frontends%0a%3c Once your backend server is functional, you'll also want to probably install frontends.%0a%3c %0a%3c These are no longer bundled with the distribution and need an extra command to install.%0a%3c %0a%3c For most installations, the following will suffice:%0a%3c [@%0a%3c $ export MIX_ENV=prod%0a%3c $ mix pleroma.frontend install pleroma-fe --ref stable%0a%3c $ mix pleroma.frontend install admin-fe --ref stable%0a%3c @]%0a -host:1670000401=182.1.63.240 +text=(:redirect Openbsd.Pleroma status=301:) +time=1674242290 +author:1674242290=mkf +diff:1674242290:1674242290:=1d0%0a%3c (:redirect Openbsd.Pleroma status=301:)%0a\ No newline at end of file%0a +host:1674242290=198.251.82.194 blob - f399a50d6839f4e3bd3a30950105a14737a4944d blob + 375089688c10f476ef5e52083af7139de224a49f --- wiki.d/Pleroma.RecentChanges +++ wiki.d/Pleroma.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (Linux; Android 8.1.0; vivo 1820 Build/O11019) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.5304.141 Mobile Safari/537.36 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 charset=UTF-8 ctime=1670000401 -host=182.1.43.26 +host=198.251.82.194 name=Pleroma.RecentChanges -rev=5 -text=* [[Pleroma/Install]] . . . December 11, 2022, at 01:34 PM by [[~Yonle]]: [==]%0a -time=1670765677 +rev=8 +text=* [[Pleroma/Install]] . . . January 20, 2023, at 07:18 PM by [[~mkf]]: [==]%0a +time=1674242290 blob - 489c500997a8f493e8937ea142b1322d886dd260 blob + 323cc29e8ace6380251131629e2ebcb02a6ffa1d --- wiki.d/Pmwiki.Install +++ wiki.d/Pmwiki.Install @@ -1,135 +1,24 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:68.0) Gecko/20100101 Firefox/68.0 SeaMonkey/2.53.11.1 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 author=mkf charset=UTF-8 -csum=replace * with +, which means it needs more than one characters. -ctime=1627378629 -host=91.185.139.136 +csum= +ctime=1674238684 +host=198.251.82.194 name=Pmwiki.Install -rev=39 -targets=Nsd.Configure,Nsd.Zone,Php.Install,Relayd.Acceleration,Openhttpd.Tls -text=(:title Install PmWiki:)%0a%0a!! Overview%0a%0a[[https://www.pmwiki.org|PmWiki]] is a simple and lightweight wiki that doesn't require a database. Instead, content for the wiki is stored in simple text files. Its only requirement is PHP, making it very simple to host with OpenBSD's openhttpd. It also does not require the user's browser to support javascript, which helps improve accessibility.%0a%0a!! Install%0a%0a[[https://www.pmwiki.org/wiki/PmWiki/Download|Download a copy]] of PmWiki. In this guide, we'll grab [[https://www.pmwiki.org/pub/pmwiki/pmwiki-latest.tgz|the latest stable release]].%0a%0a[@%0a$ ftp https://www.pmwiki.org/pub/pmwiki/pmwiki-latest.tgz%0a$ tar xvzf pmwiki-latest.tgz%0a$ doas mv pmwiki-2.2.141/ /var/www/htdocs/wiki.example.com%0a$ doas chown -R www:daemon /var/www/htdocs/wiki.example.com%0a@]%0a%0aMake sure to replace wiki.example.com with your actual domain name. For flexibility, we recommend you run your own nameserver using [[nsd/configure|nsd]] and [[nsd/zone|create a records]] for wiki.example.com.%0a%0a!! Configure OpenHTTPd%0a%0aBefore you begin, make sure you have [[php/install|PHP installed]].%0a%0aNext, add a new block to @@/etc/httpd.conf@@:%0a%0a[@%0aserver "wiki.example.com" {%0a listen on * port 80%0a root "/htdocs/wiki.example.com"%0a location "/.well-known/acme-challenge/*" {%0a root "/acme"%0a request strip 2%0a }%0a location "*.php" {%0a fastcgi socket "/run/php-fpm.sock"%0a }%0a directory {%0a index "index.php"%0a }%0a connection max request body 104857600%0a}%0a@]%0a%0aLines 7-8 above tell httpd to evaluate any file that ends with .php as a PHP script. Line 9 says that the document root for the web files is /htdocs/wiki.example.com. Keep in mind, however, that httpd automatically chroots to /var/www/, so the actual path will be /var/www/htdocs/wiki.example.com/.%0a%0aLine 11-13 tell httpd to automatically serve index.php as the default file when a directory is requested by the user. In other words, if a user requests @@https://wiki.example.com@@, he will actually receive @@https://wiki.example.com/index.php@@.%0a%0aLine 14 tells httpd that it can receive uploads as large as 100MB. By default, httpd is limited to only 1MB, so this setting is necessary if you want to allow large file uploads for your wiki.%0a%0aWhile not required, it helps to put in /var/www/htdocs/wiki.example.com/index.php:%0a%0a[@%0a%3c?php include('pmwiki.php');%0a@]%0a%0aThen give it proper permissions:%0a%0a[@%0a$ doas chown www:daemon /var/www/htdocs/wiki.example.com/index.php%0a@]%0a%0aFinally, restart httpd:%0a%0a[@%0a$ doas rcctl restart httpd%0a@]%0a%0aUse your browser to view @@http://wiki.example.com@@.%0a%0aTo add TLS, you can use either [[relayd/acceleration|relayd for TLS acceleration]] (recommended) or [[openhttpd/tls|openhttpd's TLS]].%0a%0a!! Configuring PmWiki%0a%0aCopy the sample configuration file and then edit it:%0a%0a[@%0a$ doas cp /var/www/htdocs/wiki.ircnow.org/docs/sample-config.php /var/www/htdocs/wiki.ircnow.org/local/config.php%0a@]%0a%0aEdit @@/var/www/htdocs/wiki.ircnow.org/local/config.php@@.%0a%0a!! Documentation%0a%0aMake sure you get familiar with the docs. They are located in:%0a%0a[@%0a/var/www/htdocs/wiki.ircnow.org/README.txt%0a/var/www/htdocs/wiki.ircnow.org/docs/%0a@]%0a%0a!! Mirroring Content%0a%0aWhen mirroring content, you want to skip the passwords in these two files:%0a%0a[@%0a/var/www/htdocs/wiki.example.com/local/config.php%0a/var/www/htdocs/wiki.example.com/wiki.d/SiteAdmin.AuthUser%0a@]%0a%0a(:if false:)%0a[@%0a$ doas cp -R wiki.example.com/ /var/www/htdocs/wiki.example.com/%0a$ doas chown -R www:daemon /var/www/htdocs/wiki.example.com/%0a@]%0a(:ifend:)%0a%0a!! Password Protect Pages%0a%0aTo change the password prompt page, edit Site.AuthForm.%0a%0aBy default, PmWiki allows creation of password hashes using blowfish, so in the command line, you can type:%0a%0a[@%0a$ encrypt%0aTypeYourPasswordThenPressCtrl+d%0a$2b$09$KcHFdL42rABog//yC9qehuv0wHgu19QqVHOnhW1zutMC/esVfDfwa%0a@]%0a%0aYou can use these password hashes for https://example.com/index.php?n=SiteAdmin.AuthUser%0a%0a!! Read user password from file%0a%0aPlease, create passwd file (pass.txt) in the local forlder of the pmwiki location and update config.php like this:%0a%0a[@%0a$DefaultPasswords['admin'] = pmcrypt(trim(file_get_contents('pass.txt', true)));%0a@]%0a%0a!! Clean URLs%0a%0aThe following URL rewrite rules can provide 'clean' URLs:%0a%0a[@%0a location match "/pub/(.*)" {%0a request rewrite "/pub/%251"%0a }%0a location match "/cookbook/(.*)" {%0a request rewrite "/cookbook/%251"%0a }%0a location match "/uploads/(.*)" {%0a request rewrite "/uploads/%251"%0a }%0a location match "/local/(.*)" {%0a request rewrite "/local/%251"%0a }%0a location match "/favicon.(.*)" {%0a request rewrite "/favicon.%251"%0a }%0a location match "/(.+)/(.+)" {%0a request rewrite "/index.php?n=%251.%252?$QUERY_STRING"%0a }%0a location match "/(.+)" {%0a request rewrite "/index.php?n=%251?$QUERY_STRING"%0a }%0a@]%0a%0aEdit /var/www/htdocs/pmwiki/local/config.php:%0a%0a[@%0a$EnablePathInfo = 1;%0a$ScriptUrl = 'https://wiki.example.com';%0a$PubDirUrl = 'https://wiki.example.com/pub';%0a$UploadDir = "/var/www/htdocs/wiki.example.com/pmwiki/uploads";%0a$UploadUrlFmt = "https://wiki.example.com/uploads";%0a@]%0a%0a!! Syncing with Got%0a%0aCreating the almanack got repo, assuming ~/almanack will be the working directory:%0a%0a[@%0a$ openrsync -a --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a$ got init /var/git/almanack%0a$ got import -m "Import sources" -r /var/git/almanack ~/almanack%0a@]%0a%0aDelete the copy of the almanack and then check it out:%0a%0a[@%0a$ rm -r ~/almanack%0a$ cd ~/%0a$ got checkout /var/git/almanack%0a@]%0a%0aThen, set up a cronjob as a regular user:%0a%0a[@%0a$ crontab -e%0a@daily openrsync -a --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a@daily export GOT_AUTHOR="$USER %3cusername@example.com>" && cd ~/almanack && got commit -m "Daily backup" && sleep 360 && got add -R ~/almanack%0a@]%0a%0aReplace $USER and @@username@example.com@@ with your real username and email.%0a%0a!! Forking IRCNow%0a%0aTo fork the IRCNow almanack:%0a%0a[@%0a$ git clone git://got.ircnow.org/almanack%0a@]%0a -time=1660122023 -title=Install PmWiki -author:1660122023=mkf -csum:1660122023=replace * with +, which means it needs more than one characters. -diff:1660122023:1649753994:=149c149%0a%3c location match "/(.+)/(.+)" {%0a---%0a> location match "/(.*)/(.*)" {%0a152c152%0a%3c location match "/(.+)" {%0a---%0a> location match "/(.*)" {%0a -host:1660122023=91.185.139.136 -author:1649753994=baytuch -diff:1649753994:1649265531:=120,127d119%0a%3c %0a%3c !! Read user password from file%0a%3c %0a%3c Please, create passwd file (pass.txt) in the local forlder of the pmwiki location and update config.php like this:%0a%3c %0a%3c [@%0a%3c $DefaultPasswords['admin'] = pmcrypt(trim(file_get_contents('pass.txt', true)));%0a%3c @]%0a -host:1649753994=2001:bc8:1830:1533::1 -author:1649265531=jrmu -diff:1649265531:1649010058:=182c182%0a%3c @daily export GOT_AUTHOR="$USER %3cusername@example.com>" && cd ~/almanack && got commit -m "Daily backup" && sleep 360 && got add -R ~/almanack%0a---%0a> @daily export GOT_AUTHOR="$USER %3cusername@example.com>" && cd ~/almanack && got add -R ~/almanack && got commit -m "Daily backup"%0a -host:1649265531=38.87.162.8 -author:1649010058=xfnw -csum:1649010058=the utility for creating blowfish passwords on openbsd is called encrypt -diff:1649010058:1648926302:=114c114%0a%3c $ encrypt%0a---%0a> $ blowfish%0a -host:1649010058=71.178.25.201 -author:1648926302=jrmu -diff:1648926302:1648926247:=186,193d185%0a%3c %0a%3c !! Forking IRCNow%0a%3c %0a%3c To fork the IRCNow almanack:%0a%3c %0a%3c [@%0a%3c $ git clone git://got.ircnow.org/almanack%0a%3c @]%0a -host:1648926302=38.87.162.154 -author:1648926247=jrmu -diff:1648926247:1641287455:=182c182%0a%3c @daily export GOT_AUTHOR="$USER %3cusername@example.com>" && cd ~/almanack && got add -R ~/almanack && got commit -m "Daily backup"%0a---%0a> @daily export GOT_AUTHOR="$USER %3cusername@example.com>" && cd ~/almanack && got commit -m "Daily backup"%0a -host:1648926247=38.87.162.154 -author:1641287455=gtlsgamr -csum:1641287455=moved the root block inside the server block so that css files can be loaded. -diff:1641287455:1639923795:=29d28%0a%3c root "/htdocs/wiki.example.com"%0a35a35%0a> root "/htdocs/wiki.example.com"%0a -host:1641287455=103.246.40.191 -author:1639923795=jrmu -diff:1639923795:1639923283:=177c177%0a%3c Then, set up a cronjob as a regular user:%0a---%0a> Then, set up a cronjob:%0a -host:1639923795=38.87.162.8 -author:1639923283=jrmu -diff:1639923283:1639760237:=182c182%0a%3c @daily export GOT_AUTHOR="$USER %3cusername@example.com>" && cd ~/almanack && got commit -m "Daily backup"%0a---%0a> @daily cd ~/almanack && got commit -m "Daily backup"%0a184,185d183%0a%3c %0a%3c Replace $USER and @@username@example.com@@ with your real username and email.%0a -host:1639923283=38.87.162.8 -author:1639760237=jrmu -diff:1639760237:1639760191:=181,182c181,182%0a%3c @daily openrsync -a --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a%3c @daily cd ~/almanack && got commit -m "Daily backup"%0a---%0a> */5 * * * * openrsync -a --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a> */5 * * * * cd ~/almanack && got commit -m "Daily backup"%0a -host:1639760237=198.251.82.194 -author:1639760191=jrmu -diff:1639760191:1639759892:= -host:1639760191=198.251.82.194 -author:1639759892=jrmu -diff:1639759892:1639759332:=164c164%0a%3c $ openrsync -a --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a---%0a> $ openrsync -a --delete --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a181c181%0a%3c */5 * * * * openrsync -a --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a---%0a> */5 * * * * openrsync -a --delete --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a183a184%0a> %0a -host:1639759892=198.251.82.194 -author:1639759332=jrmu -diff:1639759332:1639758782:=182c182%0a%3c */5 * * * * cd ~/almanack && got commit -m "Daily backup"%0a---%0a> */5 * * * * cd ~/ && got -r /var/git/almanack -m "Daily backup" commit%0a -host:1639759332=198.251.82.194 -author:1639758782=jrmu -diff:1639758782:1639758763:=181,182c181,182%0a%3c */5 * * * * openrsync -a --delete --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a%3c */5 * * * * cd ~/ && got -r /var/git/almanack -m "Daily backup" commit%0a---%0a> openrsync -a --delete --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a> cd ~/ && got -r /var/git/almanack -m "Daily backup" commit%0a -host:1639758782=198.251.82.194 -author:1639758763=jrmu -diff:1639758763:1639757956:= -host:1639758763=198.251.82.194 -author:1639757956=jrmu -diff:1639757956:1639756409:=161,162c161,162%0a%3c Creating the almanack got repo, assuming ~/almanack will be the working directory:%0a%3c %0a---%0a> Creating the almanack got repo:%0a> %0a164,166c164%0a%3c $ openrsync -a --delete --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a%3c $ got init /var/git/almanack%0a%3c $ got import -m "Import sources" -r /var/git/almanack ~/almanack%0a---%0a> %0a169,170c167,168%0a%3c Delete the copy of the almanack and then check it out:%0a%3c %0a---%0a> Assuming ~/almanack is your working directory:%0a> %0a172,182c170,171%0a%3c $ rm -r ~/almanack%0a%3c $ cd ~/%0a%3c $ got checkout /var/git/almanack%0a%3c @]%0a%3c %0a%3c Then, set up a cronjob:%0a%3c %0a%3c [@%0a%3c $ crontab -e%0a%3c openrsync -a --delete --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a%3c cd ~/ && got -r /var/git/almanack -m "Daily backup" commit%0a---%0a> $ openrsync -a --delete --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a> $ got -m "Daily backup" commit%0a -host:1639757956=198.251.82.194 -author:1639756409=jrmu -diff:1639756409:1632320687:=158,173d157%0a%3c %0a%3c !! Syncing with Got%0a%3c %0a%3c Creating the almanack got repo:%0a%3c %0a%3c [@%0a%3c %0a%3c @]%0a%3c %0a%3c Assuming ~/almanack is your working directory:%0a%3c %0a%3c [@%0a%3c $ openrsync -a --delete --rsync-path=openrsync --exclude config.php --exclude wiki.d/SiteAdmin.AuthUser /var/www/htdocs/wiki.ircnow.org/ ~/almanack%0a%3c $ got -m "Daily backup" commit%0a%3c @]%0a%3c %0a -host:1639756409=198.251.82.194 -author:1632320687=miniontoby -csum:1632320687=updated it a bit -diff:1632320687:1632320519:=129c129%0a%3c location match "/cookbook/(.*)" {%0a---%0a> location "/cookbook/*" {%0a132c132%0a%3c location match "/uploads/(.*)" {%0a---%0a> location "/uploads/*" {%0a135c135%0a%3c location match "/local/(.*)" {%0a---%0a> location "/local/*" {%0a138,139c138,139%0a%3c location match "/favicon.(.*)" {%0a%3c request rewrite "/favicon.%251"%0a---%0a> location "/favicon.jpg" {%0a> request rewrite "/favicon.jpg"%0a -host:1632320687=77.168.188.164 -author:1632320519=miniontoby -csum:1632320519=updated cleanurls -diff:1632320519:1627398507:minor=129c129%0a%3c location "/cookbook/*" {%0a---%0a> location match "/cookbook/(.*)" {%0a132c132%0a%3c location "/uploads/*" {%0a---%0a> location match "/uploads/(.*)" {%0a135,136c135,136%0a%3c location "/local/*" {%0a%3c request rewrite "/local/%251"%0a---%0a> location match "/(.*)/(.*)" {%0a> request rewrite "/pmwiki.php?n=%251.%252?$QUERY_STRING"%0a138,145c138,139%0a%3c location "/favicon.jpg" {%0a%3c request rewrite "/favicon.jpg"%0a%3c }%0a%3c location match "/(.*)/(.*)" {%0a%3c request rewrite "/index.php?n=%251.%252?$QUERY_STRING"%0a%3c }%0a%3c location match "/(.*)" {%0a%3c request rewrite "/index.php?n=%251?$QUERY_STRING"%0a---%0a> location match "/(.*)" {%0a> request rewrite "/pmwiki.php?n=%251?$QUERY_STRING"%0a -host:1632320519=77.168.188.164 -author:1627398507=jrmu -diff:1627398507:1627397570:=72,75c72,75%0a%3c !! Configuring PmWiki%0a%3c %0a%3c Copy the sample configuration file and then edit it:%0a%3c %0a---%0a> !! Mirroring Content%0a> %0a> When mirroring content, you want to edit out passwords in these two files:%0a> %0a77c77,78%0a%3c $ doas cp /var/www/htdocs/wiki.ircnow.org/docs/sample-config.php /var/www/htdocs/wiki.ircnow.org/local/config.php%0a---%0a> /var/www/htdocs/wiki.example.com/local/config.php%0a> /var/www/htdocs/wiki.example.com/wiki.d/SiteAdmin.AuthUser%0a80,85c81%0a%3c Edit @@/var/www/htdocs/wiki.ircnow.org/local/config.php@@.%0a%3c %0a%3c !! Documentation%0a%3c %0a%3c Make sure you get familiar with the docs. They are located in:%0a%3c %0a---%0a> (:if false:)%0a87,88c83,84%0a%3c /var/www/htdocs/wiki.ircnow.org/README.txt%0a%3c /var/www/htdocs/wiki.ircnow.org/docs/%0a---%0a> $ doas cp -R wiki.example.com/ /var/www/htdocs/wiki.example.com/%0a> $ doas chown -R www:daemon /var/www/htdocs/wiki.example.com/%0a90,94c86,93%0a%3c %0a%3c !! Mirroring Content%0a%3c %0a%3c When mirroring content, you want to skip the passwords in these two files:%0a%3c %0a---%0a> (:ifend:)%0a> %0a> !! Password Protect Pages%0a> %0a> To change the password prompt page, edit Site.AuthForm.%0a> %0a> By default, PmWiki allows creation of password hashes using blowfish, so in the command line, you can type:%0a> %0a96,97c95,97%0a%3c /var/www/htdocs/wiki.example.com/local/config.php%0a%3c /var/www/htdocs/wiki.example.com/wiki.d/SiteAdmin.AuthUser%0a---%0a> $ blowfish%0a> TypeYourPasswordThenPressCtrl+d%0a> $2b$09$KcHFdL42rABog//yC9qehuv0wHgu19QqVHOnhW1zutMC/esVfDfwa%0a100c100,101%0a%3c (:if false:)%0a---%0a> To create a password hash for https://example.com/index.php?n=SiteAdmin.AuthUser, run this command:%0a> %0a102,103c103,104%0a%3c $ doas cp -R wiki.example.com/ /var/www/htdocs/wiki.example.com/%0a%3c $ doas chown -R www:daemon /var/www/htdocs/wiki.example.com/%0a---%0a> $ php-7.4 %0a> %3c?php echo password_hash("PASSWORD", PASSWORD_BCRYPT); ?>%0a105,119c106,112%0a%3c (:ifend:)%0a%3c %0a%3c !! Password Protect Pages%0a%3c %0a%3c To change the password prompt page, edit Site.AuthForm.%0a%3c %0a%3c By default, PmWiki allows creation of password hashes using blowfish, so in the command line, you can type:%0a%3c %0a%3c [@%0a%3c $ blowfish%0a%3c TypeYourPasswordThenPressCtrl+d%0a%3c $2b$09$KcHFdL42rABog//yC9qehuv0wHgu19QqVHOnhW1zutMC/esVfDfwa%0a%3c @]%0a%3c %0a%3c You can use these password hashes for https://example.com/index.php?n=SiteAdmin.AuthUser%0a---%0a> %0a> Replace PASSWORD with your real password.%0a> %0a> !! Clean URLs%0a> %0a> The following URL rewrite rules can provide 'clean' URLs:%0a> %0a -host:1627398507=38.87.162.8 -author:1627397570=jrmu -diff:1627397570:1627397494:=81d80%0a%3c (:if false:)%0a86d84%0a%3c (:ifend:)%0a -host:1627397570=38.87.162.8 -author:1627397494=jrmu -diff:1627397494:1627397019:=74,75d73%0a%3c When mirroring content, you want to edit out passwords in these two files:%0a%3c %0a77,82c75,76%0a%3c /var/www/htdocs/wiki.example.com/local/config.php%0a%3c /var/www/htdocs/wiki.example.com/wiki.d/SiteAdmin.AuthUser%0a%3c @]%0a%3c %0a%3c [@%0a%3c $ doas cp -R wiki.example.com/ /var/www/htdocs/wiki.example.com/%0a---%0a> $ doas cp -a wiki.d/ /var/www/htdocs/wiki.example.com/%0a> $ doas chown -R www:daemon /var/www/htdocs/wiki.example.com/%0a -host:1627397494=38.87.162.8 -author:1627397019=jrmu -diff:1627397019:1627396942:=76d75%0a%3c $ doas chown -R www:daemon /var/www/htdocs/wiki.example.com/%0a -host:1627397019=38.87.162.8 -author:1627396942=jrmu -diff:1627396942:1627396424:=71,76d70%0a%3c %0a%3c !! Mirroring Content%0a%3c %0a%3c [@%0a%3c $ doas cp -a wiki.d/ /var/www/htdocs/wiki.example.com/%0a%3c @]%0a -host:1627396942=38.87.162.8 -author:1627396424=jrmu -diff:1627396424:1627395013:=72,73c72,73%0a%3c !! Password Protect Pages%0a%3c %0a---%0a> !!%0a> %0a75,82d74%0a%3c %0a%3c By default, PmWiki allows creation of password hashes using blowfish, so in the command line, you can type:%0a%3c %0a%3c [@%0a%3c $ blowfish%0a%3c TypeYourPasswordThenPressCtrl+d%0a%3c $2b$09$KcHFdL42rABog//yC9qehuv0wHgu19QqVHOnhW1zutMC/esVfDfwa%0a%3c @]%0a -host:1627396424=38.87.162.8 -author:1627395013=jrmu -diff:1627395013:1627394765:=85,88c85,89%0a%3c !! Clean URLs%0a%3c %0a%3c The following URL rewrite rules can provide 'clean' URLs:%0a%3c %0a---%0a> !! Clean url's %0a> %0a> If you want clean url's you need to do the following (which I (Miniontoby) didn't really wanted to share) %0a> %0a> add to your httpd.conf wiki block%0a107,115c108,113%0a%3c Edit /var/www/htdocs/pmwiki/local/config.php:%0a%3c %0a%3c [@%0a%3c $EnablePathInfo = 1;%0a%3c $ScriptUrl = 'https://wiki.example.com';%0a%3c $PubDirUrl = 'https://wiki.example.com/pub';%0a%3c $UploadDir = "/var/www/htdocs/wiki.example.com/pmwiki/uploads";%0a%3c $UploadUrlFmt = "https://wiki.example.com/uploads";%0a%3c @]%0a---%0a> and edit your /var/www/htdocs/pmwiki/local/config.php:%0a> [@$EnablePathInfo = 1; //for enabling automatic use%0a> $ScriptUrl = 'https://wiki.example.com'; //for the homepage%0a> $PubDirUrl = 'https://wiki.example.com/pub'; //for the pub dir%0a> $UploadDir = "/var/www/htdocs/pmwiki/uploads"; //for the upload dir (plz make it firstly if not exist)%0a> $UploadUrlFmt = "https://wiki.example.com/uploads"; //for upload dir on the wiki@]%0a -host:1627395013=38.87.162.8 -author:1627394765=jrmu -diff:1627394765:1627394461:= -host:1627394765=38.87.162.8 -author:1627394461=jrmu -diff:1627394461:1627394316:=61,70d60%0a%3c %0a%3c Finally, restart httpd:%0a%3c %0a%3c [@%0a%3c $ doas rcctl restart httpd%0a%3c @]%0a%3c %0a%3c Use your browser to view @@http://wiki.example.com@@.%0a%3c %0a%3c To add TLS, you can use either [[relayd/acceleration|relayd for TLS acceleration]] (recommended) or [[openhttpd/tls|openhttpd's TLS]].%0a -host:1627394461=38.87.162.8 -author:1627394316=jrmu -diff:1627394316:1627393854:=49,60d48%0a%3c %0a%3c While not required, it helps to put in /var/www/htdocs/wiki.example.com/index.php:%0a%3c %0a%3c [@%0a%3c %3c?php include('pmwiki.php');%0a%3c @]%0a%3c %0a%3c Then give it proper permissions:%0a%3c %0a%3c [@%0a%3c $ doas chown www:daemon /var/www/htdocs/wiki.example.com/index.php%0a%3c @]%0a -host:1627394316=38.87.162.8 -author:1627393854=jrmu -diff:1627393854:1627383010:=15d14%0a%3c $ doas chown -R www:daemon /var/www/htdocs/wiki.example.com%0a -host:1627393854=38.87.162.8 -author:1627383010=jrmu -diff:1627383010:1627382674:=21,24c21%0a%3c Before you begin, make sure you have [[php/install|PHP installed]].%0a%3c %0a%3c Next, add a new block to @@/etc/httpd.conf@@:%0a%3c %0a---%0a> Add a new block to @@/etc/httpd.conf@@:%0a42,49d38%0a%3c %0a%3c Lines 7-8 above tell httpd to evaluate any file that ends with .php as a PHP script. Line 9 says that the document root for the web files is /htdocs/wiki.example.com. Keep in mind, however, that httpd automatically chroots to /var/www/, so the actual path will be /var/www/htdocs/wiki.example.com/.%0a%3c %0a%3c Line 11-13 tell httpd to automatically serve index.php as the default file when a directory is requested by the user. In other words, if a user requests @@https://wiki.example.com@@, he will actually receive @@https://wiki.example.com/index.php@@.%0a%3c %0a%3c Line 14 tells httpd that it can receive uploads as large as 100MB. By default, httpd is limited to only 1MB, so this setting is necessary if you want to allow large file uploads for your wiki.%0a%3c %0a%3c !!%0a -host:1627383010=38.87.162.8 -author:1627382674=jrmu -diff:1627382674:1627382359:=5c5%0a%3c [[https://www.pmwiki.org|PmWiki]] is a simple and lightweight wiki that doesn't require a database. Instead, content for the wiki is stored in simple text files. Its only requirement is PHP, making it very simple to host with OpenBSD's openhttpd. It also does not require the user's browser to support javascript, which helps improve accessibility.%0a---%0a> [[https://www.pmwiki.org|PmWiki]] is a simple and lightweight wiki that doesn't require a database. Instead, content for the wiki is stored in simple text files. Its only requirement is PHP, making it very simple to host with OpenBSD's openhttpd.%0a -host:1627382674=38.87.162.8 -author:1627382359=jrmu -diff:1627382359:1627381876:=18,38d17%0a%3c %0a%3c !! Configure OpenHTTPd%0a%3c %0a%3c Add a new block to @@/etc/httpd.conf@@:%0a%3c [@%0a%3c server "wiki.example.com" {%0a%3c listen on * port 80%0a%3c location "/.well-known/acme-challenge/*" {%0a%3c root "/acme"%0a%3c request strip 2%0a%3c }%0a%3c location "*.php" {%0a%3c fastcgi socket "/run/php-fpm.sock"%0a%3c root "/htdocs/wiki.example.com"%0a%3c }%0a%3c directory {%0a%3c index "index.php"%0a%3c }%0a%3c connection max request body 104857600%0a%3c }%0a%3c @]%0a -host:1627382359=38.87.162.8 -author:1627381876=jrmu -diff:1627381876:1627380192:=17c17%0a%3c Make sure to replace wiki.example.com with your actual domain name. For flexibility, we recommend you run your own nameserver using [[nsd/configure|nsd]] and [[nsd/zone|create a records]] for wiki.example.com.%0a---%0a> Make sure to replace wiki.example.com with your actual domain name.%0a -host:1627381876=38.87.162.8 -author:1627380192=jrmu -diff:1627380192:1627380173:=17c17%0a%3c Make sure to replace wiki.example.com with your actual domain name.%0a---%0a> Make sure to replace example.com with your actual domain name.%0a -host:1627380192=38.87.162.8 -author:1627380173=jrmu -diff:1627380173:1627379432:=5,6c5,6%0a%3c [[https://www.pmwiki.org|PmWiki]] is a simple and lightweight wiki that doesn't require a database. Instead, content for the wiki is stored in simple text files. Its only requirement is PHP, making it very simple to host with OpenBSD's openhttpd.%0a%3c %0a---%0a> [https://www.pmwiki.org|PmWiki]] is a simple and lightweight wiki that doesn't require a database. Instead, content for the wiki is stored in simple text files. Its only requirement is PHP, making it very simple to host with OpenBSD's openhttpd.%0a> %0a10,17d9%0a%3c %0a%3c [@%0a%3c $ ftp https://www.pmwiki.org/pub/pmwiki/pmwiki-latest.tgz%0a%3c $ tar xvzf pmwiki-latest.tgz%0a%3c $ doas mv pmwiki-2.2.141/ /var/www/htdocs/wiki.example.com%0a%3c @]%0a%3c %0a%3c Make sure to replace example.com with your actual domain name.%0a -host:1627380173=38.87.162.8 -author:1627379432=jrmu -diff:1627379432:1627378757:=1,9c1%0a%3c (:title Install PmWiki:)%0a%3c %0a%3c !! Overview%0a%3c %0a%3c [https://www.pmwiki.org|PmWiki]] is a simple and lightweight wiki that doesn't require a database. Instead, content for the wiki is stored in simple text files. Its only requirement is PHP, making it very simple to host with OpenBSD's openhttpd.%0a%3c %0a%3c !! Install%0a%3c %0a%3c [[https://www.pmwiki.org/wiki/PmWiki/Download|Download a copy]] of PmWiki. In this guide, we'll grab [[https://www.pmwiki.org/pub/pmwiki/pmwiki-latest.tgz|the latest stable release]].%0a---%0a> pmwiki is a 2 step install. It's on the official pmwiki page, there's not that much to do.%0a -host:1627379432=38.87.162.8 -author:1627378757=jrmu -diff:1627378757:1627378629:= -host:1627378757=38.87.162.8 -author:1627378629=jrmu -diff:1627378629:1627378629:=1,42d0%0a%3c pmwiki is a 2 step install. It's on the official pmwiki page, there's not that much to do.%0a%3c %0a%3c To change the password prompt page, edit Site.AuthForm.%0a%3c %0a%3c To create a password hash for https://example.com/index.php?n=SiteAdmin.AuthUser, run this command:%0a%3c %0a%3c [@%0a%3c $ php-7.4 %0a%3c %3c?php echo password_hash("PASSWORD", PASSWORD_BCRYPT); ?>%0a%3c @]%0a%3c %0a%3c Replace PASSWORD with your real password.%0a%3c %0a%3c !! Clean url's %0a%3c %0a%3c If you want clean url's you need to do the following (which I (Miniontoby) didn't really wanted to share) %0a%3c %0a%3c add to your httpd.conf wiki block%0a%3c [@%0a%3c location match "/pub/(.*)" {%0a%3c request rewrite "/pub/%251"%0a%3c }%0a%3c location match "/cookbook/(.*)" {%0a%3c request rewrite "/cookbook/%251"%0a%3c }%0a%3c location match "/uploads/(.*)" {%0a%3c request rewrite "/uploads/%251"%0a%3c }%0a%3c location match "/(.*)/(.*)" {%0a%3c request rewrite "/pmwiki.php?n=%251.%252?$QUERY_STRING"%0a%3c }%0a%3c location match "/(.*)" {%0a%3c request rewrite "/pmwiki.php?n=%251?$QUERY_STRING"%0a%3c }%0a%3c @]%0a%3c %0a%3c and edit your /var/www/htdocs/pmwiki/local/config.php:%0a%3c [@$EnablePathInfo = 1; //for enabling automatic use%0a%3c $ScriptUrl = 'https://wiki.example.com'; //for the homepage%0a%3c $PubDirUrl = 'https://wiki.example.com/pub'; //for the pub dir%0a%3c $UploadDir = "/var/www/htdocs/pmwiki/uploads"; //for the upload dir (plz make it firstly if not exist)%0a%3c $UploadUrlFmt = "https://wiki.example.com/uploads"; //for upload dir on the wiki@]%0a -host:1627378629=38.87.162.8 +rev=4 +targets= +text=(:redirect Openbsd.Pmwiki status=301:) +time=1674238765 +author:1674238765=mkf +diff:1674238765:1674238759:=1c1%0a%3c (:redirect Openbsd.Pmwiki status=301:)%0a\ No newline at end of file%0a---%0a> (:redirect Openbsd.Pmiki status=301:)%0a\ No newline at end of file%0a +host:1674238765=198.251.82.194 +author:1674238759=mkf +diff:1674238759:1674238706:=1c1%0a%3c (:redirect Openbsd.Pmiki status=301:)%0a\ No newline at end of file%0a---%0a> (:redirect Openbsd.PmWiki status=301:)%0a\ No newline at end of file%0a +host:1674238759=198.251.82.194 +author:1674238706=mkf +diff:1674238706:1674238684:=1c1%0a%3c (:redirect Openbsd.PmWiki status=301:)%0a\ No newline at end of file%0a---%0a> (:redirect PageName status=301:)%0a\ No newline at end of file%0a +host:1674238706=198.251.82.194 +author:1674238684=mkf +diff:1674238684:1674238684:=1d0%0a%3c (:redirect PageName status=301:)%0a\ No newline at end of file%0a +host:1674238684=198.251.82.194 blob - 0d33f77eb3db8b6bef0d65c4b2a7a787d706e896 blob + 861397ead063ea6bfd0b5253964e5c2c637caf47 --- wiki.d/Pmwiki.RecentChanges +++ wiki.d/Pmwiki.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:68.0) Gecko/20100101 Firefox/68.0 SeaMonkey/2.53.11.1 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 charset=UTF-8 ctime=1619702964 -host=91.185.139.136 +host=198.251.82.194 name=Pmwiki.RecentChanges -rev=41 -text=* [[Pmwiki/Install]] . . . August 10, 2022, at 09:00 AM by [[~mkf]]: [=replace * with +, which means it needs more than one characters.=]%0a* [[Pmwiki/Simpleurl]] . . . April 29, 2021, at 02:46 PM by [[~punk]]: [==]%0a -time=1660122023 +rev=52 +text=* [[Pmwiki/Install]] . . . January 20, 2023, at 06:19 PM by [[~mkf]]: [==]%0a* [[Pmwiki/Simpleurl]] . . . April 29, 2021, at 02:46 PM by [[~punk]]: [==]%0a +time=1674238765 blob - 49d698dc8df705aafdd70fe073a531d726f52071 blob + 14c5ad449ab3f9f99492a70e42c76ee2bfc3f920 --- wiki.d/Prosody.Install +++ wiki.d/Prosody.Install @@ -1,36 +1,15 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:68.0) Gecko/20100101 Firefox/68.0 SeaMonkey/2.53.11.1 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 author=mkf charset=UTF-8 csum= -ctime=1632623766 -host=38.81.163.18 +ctime=1674240150 +host=198.251.82.194 name=Prosody.Install -rev=8 -targets=Mercurial.Usage -text=Prosody is a XMPP (aka jabber) server, that aims to be simple and fast. It's written in lua.%0a[@%0a$ doas pkg_add prosody%0a@]%0a%0aRead @@/usr/local/share/doc/pkg-readmes/prosody@@%0a%0a[@%0a# echo "~ * * * * acme-client -v xmpp.example.com && cp /etc/ssl/{xmpp.example.com.crt,private/xmpp.example.com.key} /etc/prosody/certs/ && chown _prosody:_prosody /etc/prosody/certs/xmpp.example.com.{crt,key}" >> /var/cron/tabs/root%0a@]%0a%0aUsing [[mercurial/usage|mercurial]], download the modules:%0a%0a[@%0a$ hg clone https://hg.prosody.im/prosody-modules/ prosody-modules%0a@]%0a%0a[@%0a$ doas mkdir -p /usr/local/lib/prosody/extras/%0a$ doas cp -R mod_auto_accept_subscriptions mod_cloud_notify mod_csi mod_deny_omemo mod_group_bookmarks mod_http_upload mod_message_logging mod_muc_log mod_roster_allinall mod_roster_command mod_smacks mod_support_contact mod_throttle_presence mod_block_registrations mod_muc_limits mod_filter_chatstates mod_muc_ban_ip mod_captcha_registration mod_support_room mod_throttle_unsolicited mod_bookmarks mod_firewall /usr/local/lib/prosody/extras/%0a@]%0a -time=1660292093 -author:1660292093=mkf -diff:1660292093:1658215030:minor=6c6%0a%3c Read @@/usr/local/share/doc/pkg-readmes/prosody@@%0a---%0a> Read /usr/local/share/doc/pkg-readmes/prosody%0a -host:1660292093=38.81.163.18 -author:1658215030=mkf -diff:1658215030:1637128942:minor=1,2d0%0a%3c Prosody is a XMPP (aka jabber) server, that aims to be simple and fast. It's written in lua.%0a%3c [@%0a4d1%0a%3c @]%0a -host:1658215030=2.178.149.149 -author:1637128942=jrmu -diff:1637128942:1637050944:=13,17d12%0a%3c @]%0a%3c %0a%3c [@%0a%3c $ doas mkdir -p /usr/local/lib/prosody/extras/%0a%3c $ doas cp -R mod_auto_accept_subscriptions mod_cloud_notify mod_csi mod_deny_omemo mod_group_bookmarks mod_http_upload mod_message_logging mod_muc_log mod_roster_allinall mod_roster_command mod_smacks mod_support_contact mod_throttle_presence mod_block_registrations mod_muc_limits mod_filter_chatstates mod_muc_ban_ip mod_captcha_registration mod_support_room mod_throttle_unsolicited mod_bookmarks mod_firewall /usr/local/lib/prosody/extras/%0a -host:1637128942=198.251.82.194 -author:1637050944=jrmu -diff:1637050944:1637047246:=7,12d6%0a%3c @]%0a%3c %0a%3c Using [[mercurial/usage|mercurial]], download the modules:%0a%3c %0a%3c [@%0a%3c $ hg clone https://hg.prosody.im/prosody-modules/ prosody-modules%0a -host:1637050944=198.251.82.194 -author:1637047246=jrmu -diff:1637047246:1637045325:=6c6,7%0a%3c # echo "~ * * * * acme-client -v xmpp.example.com && cp /etc/ssl/{xmpp.example.com.crt,private/xmpp.example.com.key} /etc/prosody/certs/ && chown _prosody:_prosody /etc/prosody/certs/xmpp.example.com.{crt,key}" >> /var/cron/tabs/root%0a---%0a> # echo "~ * * * * acme-client -v xmpp.example.com" >> /var/cron/tabs/root%0a> # echo "~ * * * * cp /etc/ssl/{xmpp.example.com.crt,private/xmpp.example.com.key} /etc/prosody/certs/" >> /var/cron/tabs/root%0a -host:1637047246=198.251.82.194 -author:1637045325=jrmu -diff:1637045325:1637045304:=5d4%0a%3c [@%0a8d6%0a%3c @]%0a -host:1637045325=198.251.82.194 -author:1637045304=jrmu -diff:1637045304:1632623766:=2a3%0a> %0a4,6d4%0a%3c %0a%3c # echo "~ * * * * acme-client -v xmpp.example.com" >> /var/cron/tabs/root%0a%3c # echo "~ * * * * cp /etc/ssl/{xmpp.example.com.crt,private/xmpp.example.com.key} /etc/prosody/certs/" >> /var/cron/tabs/root%0a -host:1637045304=198.251.82.194 -author:1632623766=jrmu -diff:1632623766:1632623766:=1,4d0%0a%3c $ doas pkg_add prosody%0a%3c %0a%3c %0a%3c Read /usr/local/share/doc/pkg-readmes/prosody%0a -host:1632623766=125.231.18.235 +rev=1 +targets= +text=(:redirect Openbsd.Prosody status=301:) +time=1674240150 +author:1674240150=mkf +diff:1674240150:1674240150:=1d0%0a%3c (:redirect Openbsd.Prosody status=301:)%0a\ No newline at end of file%0a +host:1674240150=198.251.82.194 blob - 3771064cb680438dcc6c179cbef4f7eba62f5681 blob + 0ffba7d032b15e04b23440115b908f7746ab95e8 --- wiki.d/Prosody.RecentChanges +++ wiki.d/Prosody.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:68.0) Gecko/20100101 Firefox/68.0 SeaMonkey/2.53.11.1 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 charset=UTF-8 ctime=1632623766 -host=38.81.163.18 +host=198.251.82.194 name=Prosody.RecentChanges -rev=8 -text=* [[Prosody/Install]] . . . August 12, 2022, at 08:14 AM by [[~mkf]]: [==]%0a -time=1660292093 +rev=9 +text=* [[Prosody/Install]] . . . January 20, 2023, at 06:42 PM by [[~mkf]]: [==]%0a +time=1674240150 blob - aa20340c6122603c822a40aeae77615c96a7aee2 blob + a09b119bfee58219b0c489c9bd61f5feb5db27d8 --- wiki.d/Rcctl.Rcctl +++ wiki.d/Rcctl.Rcctl @@ -1,15 +1,18 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (X11; BSD 4.4 x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.122 Safari/537.36 -author=akoizumi +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 +author=mkf charset=UTF-8 -csum=this is a duplicate +csum= ctime=1662829991 -host=138.117.22.225 +host=198.251.82.194 name=Rcctl.Rcctl -rev=2 -targets=Openbsd.Rcctl -text=[[Openbsd.Rcctl]] -time=1665580036 +rev=3 +targets= +text=(:redirect Openbsd.Rcctl status=301:) +time=1674244830 +author:1674244830=mkf +diff:1674244830:1665580036:=1c1%0a%3c (:redirect Openbsd.Rcctl status=301:)%0a\ No newline at end of file%0a---%0a> [[Openbsd.Rcctl]]%0a\ No newline at end of file%0a +host:1674244830=198.251.82.194 author:1665580036=akoizumi csum:1665580036=this is a duplicate diff:1665580036:1662829991:minor=1c1,7%0a%3c [[Openbsd.Rcctl]]%0a\ No newline at end of file%0a---%0a> The rcctl utility can enable or disable a base system service or a base system or package daemon in @@rc.conf.local(8)@@ or display its configuration and status.%0a> %0a> For a daemon, it can also change the command line arguments, the user to run as, the @@rc.d(8)@@ action timeout or call its @@rc.d(8)@@ daemon control script.%0a> %0a> ---%0a> %0a> * See [[https://man.openbsd.org/rcctl.8 | rcctl(8)]] for more information%0a\ No newline at end of file%0a blob - 384d28b3fbd564dd3ebb70a1f1d274e8e62154e1 blob + c7b486dd3b77e0ee554faacb4d58f0fc3c9f82e4 --- wiki.d/Rcctl.RecentChanges +++ wiki.d/Rcctl.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (X11; BSD 4.4 x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.122 Safari/537.36 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 charset=UTF-8 ctime=1627911723 -host=138.117.22.225 +host=198.251.82.194 name=Rcctl.RecentChanges -rev=6 -text=* [[Rcctl/Rcctl]] . . . October 12, 2022, at 01:07 PM by [[~akoizumi]]: [=this is a duplicate=]%0a -time=1665580036 +rev=7 +text=* [[Rcctl/Rcctl]] . . . January 20, 2023, at 08:00 PM by [[~mkf]]: [==]%0a +time=1674244830 blob - aea0de42dab0bebb861d034e503b045f9c2d946e blob + 182455c7661e34c3df43b56cceb9788f24b19d89 --- wiki.d/Site.AllRecentChanges +++ wiki.d/Site.AllRecentChanges @@ -1,11 +1,11 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:68.0) Gecko/20100101 Firefox/68.0 SeaMonkey/2.53.14 +agent=w3m/0.5.3+git20220429 charset=UTF-8 ctime=1596101899 -host=198.251.82.194 +host=38.87.162.8 name=Site.AllRecentChanges -rev=11207 -text=* [[Main.HomePage]] . . . January 19, 2023, at 02:44 PM by [[~mkf]]: [==]%0a* [[Almanack.Almanack]] . . . January 19, 2023, at 01:05 PM by [[~mkf]]: [==]%0a* [[Openbsd.Vipw]] . . . January 18, 2023, at 11:01 PM by [[~zen]]: [=added two spaces=]%0a* [[Grep.Usage]] . . . January 18, 2023, at 10:54 PM by [[~zen]]: [==]%0a* [[Openbsd.Loginconf]] . . . January 18, 2023, at 10:48 PM by [[~zen]]: [=OpenBSD FAQ link refenrece=]%0a* [[Openbsd.Singleuser]] . . . January 18, 2023, at 10:26 PM by [[~zen]]: [=changed the link reference=]%0a* [[SiteAdmin.AuthUser]] . . . January 18, 2023, at 10:21 PM by [[~jrmu]]: [==]%0a* [[Donations.Donations]] . . . January 18, 2023, at 03:48 AM by [[~jrmu]]: [=I don't think anyone on bsdforall has access to that link=]%0a* [[Ssh.Fingerprints]] . . . January 14, 2023, at 04:31 PM by [[~izzyb]]: [=added link to ircnow network ssh fingerprints as example.=]%0a* [[Team.Networks]] . . . January 12, 2023, at 06:36 PM by [[~kilroy]]: [=Updated Sturtz IRC=]%0a* [[Openbsd.Dump]] . . . January 10, 2023, at 04:48 PM by [[~mkf]]: [=add -u, improve dump-ssh funcationality.=]%0a* [[Znc.Chroot]] . . . January 09, 2023, at 08:25 AM by [[~mkf]]: [==]%0a* [[Znc.Install]] . . . January 07, 2023, at 11:58 PM by [[~jrmu]]: [==]%0a* [[Jrmu.Bio]] . . . January 05, 2023, at 07:23 PM by [[~jrmu]]: [==]%0a* [[Rspamd.Configure]] . . . January 03, 2023, at 04:55 PM by [[~mkf]]: [==]%0a* [[Eggdrop191.Install]] . . . December 31, 2022, at 05:29 PM by [[~Yonle]]: [==]%0a* [[Dovecot.Pigeonhole]] . . . December 30, 2022, at 04:24 PM by [[~mkf]]: [=style 2=]%0a* [[Opensmtpd.Configure]] . . . December 30, 2022, at 04:17 PM by [[~mkf]]: [=mention root mail=]%0a* [[Openbsd.Quota]] . . . December 29, 2022, at 06:51 PM by [[~mkf]]: [==]%0a* [[Minutemin.Bootcamp]] . . . December 29, 2022, at 04:38 PM by [[~mkf]]: [==]%0a* [[Biboumi.Install]] . . . December 28, 2022, at 06:26 PM by [[~mkf]]: [==]%0a* [[Profiles.Miniontoby]] . . . December 26, 2022, at 07:26 PM by [[~miniontoby]]: [=Created=]%0a* [[Minetest.Minetest]] . . . December 26, 2022, at 07:25 PM by [[~miniontoby]]: [=Added building guide link=]%0a* [[Openbsd.Minetest]] . . . December 26, 2022, at 07:23 PM by [[~miniontoby]]: [=Added more ways to install=]%0a* [[Hopm.Install]] . . . December 26, 2022, at 03:32 PM by [[~forero]]: [=fix typo=]%0a* [[Debate.Providers]] . . . December 25, 2022, at 04:06 PM by [[~Yonle]]: [==]%0a* [[Splinter0616Outlook.Com]] . . . December 25, 2022, at 02:37 AM by [[~SplinTer]]: [==]%0a* [[SendMoneyToSplinter0616Outlook.Com]] . . . December 25, 2022, at 02:35 AM by [[~SplinTer]]: [==]%0a* [[Ngircd.Oper]] . . . December 25, 2022, at 12:03 AM by [[~forero]]: [==]%0a* [[Profiles.Yonle]] . . . December 24, 2022, at 03:29 PM by [[~Yonle]]: [==]%0a* [[Openbsd.Honk]] . . . December 17, 2022, at 08:45 AM by [[~Yonle]]: [==]%0a* [[Yonle.Bio]] . . . December 13, 2022, at 05:18 PM by [[~Yonle]]: [==]%0a* [[Camping.Gear]] . . . December 12, 2022, at 04:39 AM by [[~jrmu]]: [==]%0a* [[Vhost.Vhost]] . . . December 12, 2022, at 03:36 AM by [[~xfnw]]: [==]%0a* [[Vhost.Ircnow]] . . . December 12, 2022, at 03:13 AM by [[~xfnw]]: [=ircfree.com is not an ircnow domain=]%0a* [[Pleroma.Install]] . . . December 11, 2022, at 01:34 PM by [[~Yonle]]: [==]%0a* [[Akkoma.Install]] . . . December 11, 2022, at 01:24 PM by [[~Yonle]]: [==]%0a* [[Shelllabs.Openaccess]] . . . December 08, 2022, at 10:02 PM by [[~redrum88]]: [==]%0a* [[I2Pd.Install]] . . . December 07, 2022, at 01:16 AM by [[~Yonle]]: [=Again not 7070=]%0a* [[I2Pd.Tunnels]] . . . December 06, 2022, at 02:52 PM by [[~Yonle]]: [=There we go. =]%0a* [[I2pd.Tunnels]] . . . December 06, 2022, at 02:45 PM by [[~Yonle]]: [==]%0a* [[Unbound.Configure]] . . . December 04, 2022, at 03:59 AM by [[~Yonle]]: [==]%0a* [[Profiles.Xfnw]] . . . November 28, 2022, at 10:38 PM by [[~xfnw]]: [=add pgp keys=]%0a* [[Unwind.Configure]] . . . November 26, 2022, at 09:23 PM by [[~akoizumi]]: [=add unwind=]%0a* [[Openbsd.OpenTracker]] . . . November 20, 2022, at 07:45 AM by [[~baytuch]]: [==]%0a* [[Openbsd.Icecast]] . . . November 17, 2022, at 11:35 AM by [[~Yonle]]: [==]%0a* [[Debian.Install]] . . . November 13, 2022, at 11:43 AM by [[~suzerain]]: [=writing=]%0a* [[Lemon.Lemon]] . . . November 10, 2022, at 01:48 PM by [[~mkf]]: [==]%0a* [[Bouncer.JmIRC]] . . . November 04, 2022, at 06:18 PM by [[~baytuch]]: [=Added screenshots about setup=]%0a* [[Ngircd.Install]] . . . November 04, 2022, at 12:41 PM by [[~fossdev]]: [=Edit=]%0a* [[Anope.Install]] . . . October 29, 2022, at 07:12 PM by [[~rahl]]: [=fix a url=]%0a* [[Ambassador.Ilines]] . . . October 22, 2022, at 04:40 AM by [[~jrmu]]: [==]%0a* [[Bouncer.XChat]] . . . October 16, 2022, at 11:09 PM by [[~xfnw]]: [=XChat is unmaintained=]%0a* [[Rcctl.Rcctl]] . . . October 12, 2022, at 01:07 PM by [[~akoizumi]]: [=this is a duplicate=]%0a* [[Ircnow.Servers]] . . . October 11, 2022, at 11:53 PM by [[~akoizumi]]: [=shelltalk now has onion=]%0a* [[Eggdrop.VHost]] . . . October 02, 2022, at 01:05 PM by [[~sulieztya]]: [==]%0a* [[Eggdrop.VhostTCL]] . . . October 02, 2022, at 07:06 AM by [[~sulieztya]]: [==]%0a* [[Eggdrop.BotZNC]] . . . October 02, 2022, at 01:29 AM by [[~sulieztya]]: [==]%0a* [[Shelllabs.Intro]] . . . September 28, 2022, at 06:53 PM by [[~jrmu]]: [==]%0a* [[He.IPv6Certification]] . . . September 16, 2022, at 05:32 PM by [[~xfnw]]: [=create page=]%0a* [[Shelllabs.Education]] . . . September 14, 2022, at 07:30 PM by [[~jrmu]]: [==]%0a* [[About.AboutUs]] . . . September 13, 2022, at 06:42 PM by [[~zleap]]: [==]%0a* [[Site.SideBar]] . . . September 13, 2022, at 06:21 PM by [[~jrmu]]: [==]%0a* [[LegalAndSafety.LegalAndSafety]] . . . September 13, 2022, at 05:19 PM by [[~zleap]]: [==]%0a* [[LegalAndSafety.LegalAmpSafety]] . . . September 13, 2022, at 05:17 PM by [[~zleap]]: [==]%0a* [[LegalAmpSafety.Subheading]] . . . September 13, 2022, at 05:15 PM by [[~zleap]]: [==]%0a* [[Acmesh.Configure]] . . . September 11, 2022, at 06:03 PM by [[~akoizumi]]: [=Added acme.sh (currently a WIP)=]%0a* [[Dehydrated.Configure]] . . . September 11, 2022, at 02:52 PM by [[~akoizumi]]: [=Add dehydrated=]%0a* [[Profiles.Izzyb]] . . . September 11, 2022, at 06:28 AM by [[~izzyb]]: [==]%0a* [[Site.EditForm]] . . . September 11, 2022, at 06:22 AM by [[~izzyb]]: [=Make Author none editable field=]%0a* [[Netcat.Irc]] . . . September 11, 2022, at 04:21 AM by [[~izzyb]]: [=Removed info about PASS - moving to different doc as per jrmu request=]%0a* [[Openbsd.Geomyidae]] . . . September 10, 2022, at 02:31 AM by [[~akoizumi]]: [==]%0a* [[Openbsd.INN]] . . . September 10, 2022, at 02:23 AM by [[~akoizumi]]: [=Fix some types=]%0a* [[Ngircd.Loginconf]] . . . September 10, 2022, at 01:51 AM by [[~jrmu]]: [==]%0a* [[Heading.Subheading]] . . . September 07, 2022, at 07:23 PM by [[~zleap]]: [==]%0a* [[Eggdrop193.Install]] . . . September 07, 2022, at 04:48 PM by [[~jrmu]]: [==]%0a* [[Letsencrypt.Expired]] . . . September 06, 2022, at 12:00 AM by [[~xfnw]]: [=be less misleading about Let's Encrypt's reasoning for keeping the expired chain=]%0a* [[Baytuch.Bio]] . . . August 21, 2022, at 05:48 PM by [[~baytuch]]: [==]%0a* [[Ircnow.Pioneer]] . . . August 14, 2022, at 05:06 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Minutemin]] . . . August 14, 2022, at 05:04 AM by [[~jrmu]]: [==]%0a* [[Prosody.Install]] . . . August 12, 2022, at 08:14 AM by [[~mkf]]: [==]%0a* [[Vmm.Configure]] . . . August 11, 2022, at 08:07 AM by [[~miniontoby]]: [=fixed the .iso=]%0a* [[Openbsd.VsFTP]] . . . August 10, 2022, at 03:18 PM by [[~mkf]]: [=snipped unneeded output=]%0a* [[C.Scanf]] . . . August 10, 2022, at 09:51 AM by [[~mkf]]: [==]%0a* [[Pmwiki.Install]] . . . August 10, 2022, at 09:00 AM by [[~mkf]]: [=replace * with +, which means it needs more than one characters.=]%0a* [[Vmm.Install]] . . . August 10, 2022, at 08:05 AM by [[~miniontoby]]: [=coconut to host=]%0a* [[Orange.CertsReissue]] . . . August 08, 2022, at 05:35 AM by [[~baytuch]]: [==]%0a* [[Team.Security]] . . . August 08, 2022, at 12:53 AM by [[~jrmu]]: [==]%0a* [[Openhttpd.Configure]] . . . August 07, 2022, at 11:51 PM by [[~tiramisu]]: [==]%0a* [[Netcat.Usage]] . . . August 04, 2022, at 01:12 AM by [[~tiramisu]]: [==]%0a* [[Freedom.Universal]] . . . August 03, 2022, at 06:33 PM by [[~jrmu]]: [==]%0a* [[Pgp.Upload]] . . . August 01, 2022, at 01:21 PM by [[~jan6]]: [=keys.openpgp.org uses a superior implementation, less vulnerable to various issues=]%0a* [[Lemon.Packages]] . . . July 30, 2022, at 07:52 PM by [[~mkf]]: [==]%0a* [[Netizen.Ellisisland]] . . . July 27, 2022, at 07:05 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Newdeal]] . . . July 27, 2022, at 06:55 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Daughtersofliberty]] . . . July 27, 2022, at 06:45 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Womenstem]] . . . July 21, 2022, at 05:59 PM by [[~jrmu]]: [==]%0a* [[Eggdrop.RC]] . . . July 20, 2022, at 06:55 PM by [[~baytuch]]: [==]%0a* [[Opensmtpd.Troubleshoot]] . . . July 20, 2022, at 03:58 PM by [[~jlj]]: [=Added notes about how I resolved the first two errors, on nastycode=]%0a* [[Eggdrop.Nickserv]] . . . July 19, 2022, at 10:05 AM by [[~baytuch]]: [==]%0a* [[Chroot.Intro]] . . . July 18, 2022, at 04:23 PM by [[~mkf]]: [==]%0a* [[Ircnow.Media]] . . . July 15, 2022, at 05:54 AM by [[~jrmu]]: [==]%0a* [[Iked.Linuxstrongswan]] . . . July 03, 2022, at 11:29 PM by [[~jrmu]]: [==]%0a* [[Acme-client.AutoRenew]] . . . July 03, 2022, at 11:50 AM by [[~mkf]]: [==]%0a* [[Openbsd.Apmd]] . . . July 03, 2022, at 11:36 AM by [[~mkf]]: [==]%0a* [[Opensmtpd.Test]] . . . July 03, 2022, at 11:13 AM by [[~mkf]]: [==]%0a* [[Ircnow.Roadmap2022]] . . . July 03, 2022, at 11:04 AM by [[~mkf]]: [==]%0a* [[Iked.Android]] . . . July 01, 2022, at 12:14 AM by [[~jrmu]]: [==]%0a* [[Vpn.Myipaddress]] . . . June 30, 2022, at 09:51 PM by [[~jrmu]]: [==]%0a* [[Olympics.Games]] . . . June 27, 2022, at 10:42 PM by [[~jrmu]]: [==]%0a* [[Iked.Configure]] . . . June 25, 2022, at 02:28 PM by [[~jrmu]]: [==]%0a* [[Unbound.Blacklists]] . . . June 25, 2022, at 06:02 AM by [[~jrmu]]: [==]%0a* [[Iked.Linux]] . . . June 23, 2022, at 07:10 AM by [[~jrmu]]: [==]%0a* [[Vpn.Vpn]] . . . June 23, 2022, at 06:42 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Nsf]] . . . June 20, 2022, at 05:05 PM by [[~jrmu]]: [==]%0a* [[Debate.Debate]] . . . June 19, 2022, at 04:12 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Metrics]] . . . June 19, 2022, at 04:12 PM by [[~jrmu]]: [==]%0a* [[Nsd.Masterslave]] . . . June 19, 2022, at 06:34 AM by [[~jrmu]]: [==]%0a* [[Dns.Overview]] . . . June 19, 2022, at 05:45 AM by [[~jrmu]]: [==]%0a* [[Dns.Records]] . . . June 19, 2022, at 05:44 AM by [[~jrmu]]: [==]%0a* [[Syspatch.Syspatch]] . . . June 17, 2022, at 06:24 AM by [[~jrmu]]: [==]%0a* [[Acme-client.Configure]] . . . June 14, 2022, at 08:01 AM by [[~jrmu]]: [==]%0a* [[Tmux.Config]] . . . June 14, 2022, at 12:34 AM by [[~jrmu]]: [==]%0a* [[Vmm.Alpine]] . . . June 13, 2022, at 05:42 PM by [[~fossdev]]: [==]%0a* [[Team.Announce]] . . . June 13, 2022, at 03:52 PM by [[~jrmu]]: [==]%0a* [[Vmm.Arch]] . . . June 12, 2022, at 04:11 PM by [[~g1n]]: [=Added article about Arch Linux setup on VMM=]%0a* [[Znc.Patch]] . . . June 12, 2022, at 12:48 AM by [[~jrmu]]: [==]%0a* [[Unveil.Intro]] . . . June 12, 2022, at 12:40 AM by [[~jrmu]]: [==]%0a* [[Pledge.Intro]] . . . June 12, 2022, at 12:39 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Pkg]] . . . June 12, 2022, at 12:32 AM by [[~jrmu]]: [==]%0a* [[Doas.Configure]] . . . June 09, 2022, at 07:56 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Intro]] . . . June 09, 2022, at 07:53 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Bsdrd]] . . . June 09, 2022, at 07:17 AM by [[~jrmu]]: [==]%0a* [[Vnc.Vnc]] . . . June 08, 2022, at 04:04 PM by [[~miniontoby]]: [=Added RealVNC Viewer to the list (might need some more extra stuff, but yeah its fine)=]%0a* [[Unix101.Unix101]] . . . June 07, 2022, at 03:12 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Sysupgrade71]] . . . June 05, 2022, at 11:49 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Growfs]] . . . June 01, 2022, at 12:34 AM by [[~jrmu]]: [==]%0a* [[Team.Welcome]] . . . May 31, 2022, at 10:20 PM by [[~jrmu]]: [==]%0a* [[Hostnameif.Static-v2]] . . . May 23, 2022, at 06:29 AM by [[~theguest]]: [==]%0a* [[Hostnameif.Static]] . . . May 23, 2022, at 05:01 AM by [[~theguest]]: [==]%0a* [[Lilywhitebot.Install]] . . . May 14, 2022, at 06:02 AM by [[~suzerain]]: [==]%0a* [[Ircnow.Team]] . . . May 12, 2022, at 03:44 PM by [[~jrmu]]: [==]%0a* [[Grape.Minetest]] . . . May 10, 2022, at 10:48 AM by [[~baytuch]]: [==]%0a* [[Irc.Emoji]] . . . May 10, 2022, at 10:23 AM by [[~baytuch]]: [==]%0a* [[Openbsd.Nsd]] . . . May 10, 2022, at 12:33 AM by [[~jrmu]]: [==]%0a* [[Opsofliberty.Bootcamp]] . . . May 09, 2022, at 08:38 AM by [[~mkf]]: [==]%0a* [[Openbsd.Ports]] . . . May 09, 2022, at 05:54 AM by [[~mkf]]: [==]%0a* [[Openbsd.Rcctl]] . . . May 09, 2022, at 05:53 AM by [[~mkf]]: [==]%0a* [[Ngircd.Ssl]] . . . May 08, 2022, at 03:30 PM by [[~miniontoby]]: [=fixed the text=]%0a* [[Php.Install]] . . . May 03, 2022, at 11:11 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Upgrade71]] . . . May 03, 2022, at 06:36 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Codeforce]] . . . May 03, 2022, at 04:17 AM by [[~jrmu]]: [==]%0a* [[Codeforce.Training]] . . . May 03, 2022, at 03:02 AM by [[~jrmu]]: [==]%0a* [[Civics.Intro]] . . . May 03, 2022, at 01:06 AM by [[~jrmu]]: [==]%0a* [[OpenBSD.EdgeRouter-Lite]] . . . April 28, 2022, at 02:50 PM by [[~pufferf]]: [==]%0a* [[Math.Reading]] . . . April 27, 2022, at 08:23 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Install71]] . . . April 24, 2022, at 09:55 PM by [[~jrmu]]: [==]%0a* [[Botnow.Install]] . . . April 24, 2022, at 06:19 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Botnow]] . . . April 24, 2022, at 06:14 AM by [[~jrmu]]: [==]%0a* [[Buyvm.Ipv6]] . . . April 24, 2022, at 06:10 AM by [[~jrmu]]: [==]%0a* [[Eggdrop.Rss]] . . . April 23, 2022, at 04:20 PM by [[~jrmu]]: [==]%0a* [[Team.Testing]] . . . April 20, 2022, at 09:45 PM by [[~jrmu]]: [==]%0a* [[Dns.Registrars]] . . . April 20, 2022, at 09:30 PM by [[~jrmu]]: [==]%0a* [[Hosting.Providers]] . . . April 20, 2022, at 08:52 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Gopher]] . . . April 20, 2022, at 08:29 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Adduser]] . . . April 20, 2022, at 08:07 PM by [[~jrmu]]: [==]%0a* [[Signify.Verify]] . . . April 20, 2022, at 06:24 PM by [[~jrmu]]: [==]%0a* [[Almanack.Route]] . . . April 20, 2022, at 06:23 AM by [[~jrmu]]: [==]%0a* [[Route.Usage]] . . . April 20, 2022, at 06:22 AM by [[~jrmu]]: [==]%0a* [[Ntpd.Configure]] . . . April 20, 2022, at 06:17 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Ntpd]] . . . April 20, 2022, at 06:16 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Vmmlinux]] . . . April 20, 2022, at 05:33 AM by [[~jrmu]]: [==]%0a* [[Vmm.Linux]] . . . April 20, 2022, at 05:33 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Iked]] . . . April 20, 2022, at 05:16 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Team]] . . . April 20, 2022, at 04:54 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Networks]] . . . April 19, 2022, at 04:22 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Announce]] . . . April 19, 2022, at 04:14 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Ally]] . . . April 19, 2022, at 04:11 PM by [[~jrmu]]: [==]%0a* [[Openhttpd.Chroot]] . . . April 19, 2022, at 04:05 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Install70]] . . . April 19, 2022, at 06:52 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Upgrade70]] . . . April 19, 2022, at 06:49 AM by [[~jrmu]]: [==]%0a* [[CodeForce.Bootcamp]] . . . April 19, 2022, at 06:29 AM by [[~jrmu]]: [==]%0a* [[Perl101.Perl101]] . . . April 19, 2022, at 06:15 AM by [[~jrmu]]: [==]%0a* [[Vmm.Vmm]] . . . April 15, 2022, at 12:20 PM by [[~Naglfar]]: [=Update: report from PiRATA=]%0a* [[Password.Management]] . . . April 14, 2022, at 03:09 AM by [[~izzyb]]: [=Added Usage section with instructions for using the script=]%0a* [[Ngircd.Link]] . . . April 07, 2022, at 06:52 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Explorer]] . . . April 06, 2022, at 08:42 PM by [[~jrmu]]: [==]%0a* [[Minutemin.Minutemin]] . . . April 06, 2022, at 02:55 AM by [[~jrmu]]: [==]%0a* [[Openhttpd.CGI]] . . . April 05, 2022, at 04:22 PM by [[~gtlsgamr]]: [==]%0a* [[Gotweb.Install]] . . . April 05, 2022, at 11:53 AM by [[~gtlsgamr]]: [=removed redundant link=]%0a* [[Openbsd.Censord]] . . . April 05, 2022, at 06:16 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Hopm]] . . . April 05, 2022, at 06:09 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Dns]] . . . April 05, 2022, at 05:24 AM by [[~jrmu]]: [==]%0a* [[Debate.Zncflaws]] . . . April 05, 2022, at 05:18 AM by [[~jrmu]]: [==]%0a* [[Debate.Debiandanger]] . . . April 04, 2022, at 04:30 AM by [[~jrmu]]: [==]%0a* [[Openhttpd.Tls]] . . . April 04, 2022, at 04:25 AM by [[~jrmu]]: [==]%0a* [[Openhttpd.Website]] . . . April 03, 2022, at 11:03 PM by [[~jrmu]]: [==]%0a* [[Soju.Guide]] . . . April 02, 2022, at 03:46 PM by [[~Yonle]]: [==]%0a* [[Nitter.Install]] . . . April 02, 2022, at 01:08 AM by [[~fallback]]: [=first nitter install page=]%0a* [[Debiankaios.Bio]] . . . April 01, 2022, at 05:10 PM by [[~debiankaios]]: [==]%0a* [[Soju.Install]] . . . April 01, 2022, at 05:07 PM by [[~Yonle]]: [=A message about simple to build is not needed=]%0a* [[Openbsd.Psybnc]] . . . March 30, 2022, at 09:56 PM by [[~jrmu]]: [==]%0a* [[Psybnc.Install]] . . . March 30, 2022, at 09:41 PM by [[~kei]]: [=Extra space between -g and uid =]%0a* [[Sshd.Disablepassword]] . . . March 30, 2022, at 08:27 PM by [[~xfnw]]: [=undo accidental revert=]%0a* [[Tor.Irc]] . . . March 30, 2022, at 12:40 PM by [[~m16]]: [==]%0a* [[Chess.Reading]] . . . March 29, 2022, at 10:02 PM by [[~jrmu]]: [==]%0a* [[Linux.Reading]] . . . March 29, 2022, at 03:31 PM by [[~jrmu]]: [==]%0a* [[Unix.Reading]] . . . March 28, 2022, at 03:24 PM by [[~jrmu]]: [==]%0a* [[Irc.Services]] . . . March 25, 2022, at 04:29 AM by [[~jrmu]]: [==]%0a* [[Syslogd.Configure]] . . . March 25, 2022, at 04:07 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Ddos]] . . . March 24, 2022, at 04:22 PM by [[~jrmu]]: [==]%0a* [[Ddos.Intro]] . . . March 24, 2022, at 04:22 PM by [[~jrmu]]: [==]%0a* [[Bouncer.ZNC]] . . . March 19, 2022, at 07:31 AM by [[~fallback]]: [==]%0a* [[ISCABBS.DownloadingAndInstalling]] . . . March 15, 2022, at 10:42 PM by [[~Mandarax]]: [==]%0a* [[ISCABBS.ISCABBS]] . . . March 15, 2022, at 09:24 PM by [[~Mandarax]]: [==]%0a* [[Unix.History]] . . . March 14, 2022, at 06:07 PM by [[~jrmu]]: [==]%0a* [[Unix.Exhibit]] . . . March 13, 2022, at 11:37 PM by [[~jrmu]]: [==]%0a* [[DNS.Ipv4rDNS]] . . . March 11, 2022, at 04:35 AM by [[~jrmu]]: [==]%0a* [[Debate.Dogfooding]] . . . March 10, 2022, at 05:14 AM by [[~jrmu]]: [==]%0a* [[Irc.Easy]] . . . March 05, 2022, at 08:56 PM by [[~jrmu]]: [==]%0a* [[Doxing.Defense]] . . . March 05, 2022, at 08:54 PM by [[~jrmu]]: [==]%0a* [[Mlmmj-archivist.Install]] . . . March 03, 2022, at 05:26 AM by [[~error]]: [==]%0a* [[Openbsd.IRCBridge]] . . . February 28, 2022, at 02:59 AM by [[~suzerain]]: [==]%0a* [[Unix101.Vi]] . . . February 27, 2022, at 08:16 PM by [[~jrmu]]: [==]%0a* [[Vi.Intro]] . . . February 27, 2022, at 04:16 PM by [[~Limits]]: [=Add Introduction to Vi=]%0a* [[Irc201.Irc201]] . . . February 27, 2022, at 04:21 AM by [[~suzerain]]: [==]%0a* [[9.Ideas]] . . . February 23, 2022, at 05:19 PM by [[~mkf]]: [==]%0a* [[Main.WikiSandbox]] . . . February 22, 2022, at 11:05 PM by [[~mkf]]: [==]%0a* [[Openhttpd.Perl]] . . . February 21, 2022, at 07:18 AM by [[~Naglfar]]: [==]%0a* [[Openbsd.Wesnothd]] . . . February 21, 2022, at 06:28 AM by [[~mkf]]: [=Wesnothd=]%0a* [[9.Audio]] . . . February 20, 2022, at 08:07 PM by [[~jrmu]]: [==]%0a* [[Cloud9p.Roadmap]] . . . February 20, 2022, at 06:54 PM by [[~xfnw]]: [==]%0a* [[Openbsd.Xonotic]] . . . February 20, 2022, at 07:43 AM by [[~mkf]]: [=A xonotic server has apperad! pt.2=]%0a* [[Bouncer.Irssi]] . . . February 16, 2022, at 06:26 PM by [[~izzyb]]: [=clarified wording in example=]%0a* [[PuTTY.PuTTYgen]] . . . February 16, 2022, at 05:24 AM by [[~jrmu]]: [==]%0a* [[Rcd.Configure]] . . . February 15, 2022, at 04:46 PM by [[~xfnw]]: [=fix title formatting=]%0a* [[9.9gridchan]] . . . February 14, 2022, at 10:48 PM by [[~jrmu]]: [==]%0a* [[Debate.Ircnowd]] . . . February 14, 2022, at 06:24 PM by [[~jrmu]]: [==]%0a* [[Stopm.Stopm]] . . . February 14, 2022, at 06:16 PM by [[~jrmu]]: [==]%0a* [[Police.Fingerprints]] . . . February 12, 2022, at 02:09 PM by [[~xfnw]]: [=ip addresses should be sorted with sort -V=]%0a* [[Openbsd.Police]] . . . February 10, 2022, at 07:36 PM by [[~jrmu]]: [==]%0a* [[Dns.Dns]] . . . February 10, 2022, at 07:39 AM by [[~nixdork]]: [=Fix typo=]%0a* [[Dns.BindResolver]] . . . February 10, 2022, at 07:30 AM by [[~nixdork]]: [=First draft of bind resolver howto=]%0a* [[Botnow.SqliteViews]] . . . February 10, 2022, at 02:00 AM by [[~xfnw]]: [==]%0a* [[Relayd.TLSMulti]] . . . February 08, 2022, at 06:45 AM by [[~Naglfar]]: [=Fix listening port for https=]%0a* [[Relayd.Acceleration]] . . . February 08, 2022, at 06:27 AM by [[~Naglfar]]: [=Fix: https forwarding port=]%0a* [[AncientWisdom.Bio]] . . . February 07, 2022, at 01:18 PM by [[~AncientWisdom]]: [==]%0a* [[Squirrelmail.Install]] . . . February 06, 2022, at 09:25 AM by [[~Naglfar]]: [=Update SquirrelMail version to 1.4.23 [SVN] and PHP 8.0.x=]%0a* [[Minutemin.Questions]] . . . February 05, 2022, at 09:16 AM by [[~jrmu]]: [==]%0a* [[Minutemin.Server]] . . . February 05, 2022, at 08:14 AM by [[~jrmu]]: [==]%0a* [[Vmm.SlackwareIso]] . . . February 03, 2022, at 10:53 PM by [[~Naglfar]]: [=Slackware 15.0 x86 stable is released=]%0a* [[Vmctl.Usage]] . . . February 03, 2022, at 06:24 PM by [[~miniontoby]]: [=fixed attachment=]%0a* [[Duplicity.Usage]] . . . February 02, 2022, at 10:31 AM by [[~jrmu]]: [==]%0a* [[Openssl.Encryptfile]] . . . February 02, 2022, at 09:29 AM by [[~jrmu]]: [==]%0a* [[Bots.Basicbot]] . . . January 31, 2022, at 08:54 PM by [[~izzyb]]: [==]%0a* [[Dovecot.Install]] . . . January 29, 2022, at 09:35 PM by [[~forero]]: [=comment out=]%0a* [[Openrsync.Usage]] . . . January 29, 2022, at 09:04 AM by [[~Naglfar]]: [=update from rsync to openrsync=]%0a* [[Openbsd.Tcpip]] . . . January 24, 2022, at 05:45 PM by [[~jrmu]]: [==]%0a* [[Synclient.Configure]] . . . January 24, 2022, at 06:02 AM by [[~jrmu]]: [==]%0a* [[Crontab.Edit]] . . . January 23, 2022, at 05:46 PM by [[~mkf]]: [==]%0a* [[9.Install]] . . . January 22, 2022, at 06:57 AM by [[~mkf]]: [==]%0a* [[Asterisk.Install]] . . . January 19, 2022, at 05:34 AM by [[~jrmu]]: [==]%0a* [[9.Rcpu]] . . . January 17, 2022, at 10:19 PM by [[~jrmu]]: [==]%0a* [[9.9p]] . . . January 17, 2022, at 08:47 PM by [[~mkf]]: [==]%0a* [[9.Ndb]] . . . January 16, 2022, at 06:46 PM by [[~mkf]]: [==]%0a* [[Openbsd.U9fs]] . . . January 16, 2022, at 06:23 PM by [[~mkf]]: [==]%0a* [[Dns.FQDN]] . . . January 15, 2022, at 10:16 PM by [[~jrmu]]: [==]%0a* [[Pgp.Create]] . . . January 14, 2022, at 09:14 AM by [[~baytuch]]: [==]%0a* [[Nsd.DNSSec]] . . . January 14, 2022, at 02:53 AM by [[~pyr3x]]: [==]%0a* [[Openbsd.Locale]] . . . January 12, 2022, at 01:23 PM by [[~baytuch]]: [==]%0a* [[Openbsd.Openbsd]] . . . January 12, 2022, at 01:19 PM by [[~baytuch]]: [==]%0a* [[Ksh.Autocomplete]] . . . January 11, 2022, at 01:44 PM by [[~miniontoby]]: [=updated url=]%0a* [[Gpg.Verify]] . . . January 08, 2022, at 09:48 PM by [[~Naglfar]]: [=Add description=]%0a* [[Mlmmj.Archive]] . . . January 06, 2022, at 10:52 PM by [[~Hawk]]: [==]%0a* [[9.Hostowner]] . . . January 06, 2022, at 11:29 AM by [[~mkf]]: [==]%0a* [[9.Drawterm]] . . . January 06, 2022, at 11:16 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Dogfood]] . . . January 06, 2022, at 08:48 AM by [[~jrmu]]: [==]%0a* [[Got.Repo]] . . . January 06, 2022, at 01:20 AM by [[~jrmu]]: [==]%0a* [[9.Authsrv]] . . . January 05, 2022, at 04:59 AM by [[~mkf]]: [=hmm=]%0a* [[9.Chording]] . . . January 03, 2022, at 02:40 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Status]] . . . January 03, 2022, at 06:06 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Roadmap]] . . . January 03, 2022, at 06:06 AM by [[~jrmu]]: [==]%0a* [[Openbsd.BBB]] . . . January 03, 2022, at 12:06 AM by [[~jrmu]]: [==]%0a* [[Got.Server]] . . . January 02, 2022, at 05:42 PM by [[~jrmu]]: [==]%0a* [[Census.Census]] . . . January 02, 2022, at 11:27 AM by [[~jrmu]]: [==]%0a* [[Bncnow.Bncnow]] . . . January 02, 2022, at 11:18 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Projects]] . . . January 02, 2022, at 11:09 AM by [[~jrmu]]: [==]%0a* [[Ircfs.Intro]] . . . January 02, 2022, at 10:49 AM by [[~jrmu]]: [==]%0a* [[Ircnowd.Ircnowd]] . . . January 02, 2022, at 06:32 AM by [[~jrmu]]: [==]%0a* [[Marketing.Marketing]] . . . January 02, 2022, at 06:20 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Sonsofliberty]] . . . January 02, 2022, at 06:06 AM by [[~jrmu]]: [==]%0a* [[Pkgadd.CheckUpdates]] . . . January 01, 2022, at 04:29 AM by [[~pyr3x]]: [==]%0a* [[Ircnow.Roadmap2021]] . . . December 30, 2021, at 06:31 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Sftp]] . . . December 30, 2021, at 06:01 AM by [[~jrmu]]: [==]%0a* [[Sftp.Chroot]] . . . December 30, 2021, at 06:01 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Status2022]] . . . December 30, 2021, at 05:35 AM by [[~jrmu]]: [==]%0a* [[Eggdrop.UTF8]] . . . December 28, 2021, at 08:21 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Uim]] . . . December 26, 2021, at 01:45 AM by [[~jrmu]]: [==]%0a* [[Sshwifty.Install]] . . . December 23, 2021, at 02:49 PM by [[~miniontoby]]: [=created=]%0a* [[Nsd.Zone]] . . . December 23, 2021, at 10:33 AM by [[~jrmu]]: [==]%0a* [[Openhttpd.Hosting]] . . . December 23, 2021, at 03:06 AM by [[~jrmu]]: [==]%0a* [[OpenSSH.RSAkeys]] . . . December 22, 2021, at 03:18 PM by [[~miniontoby]]: [==]%0a* [[Openbsd.Wifi]] . . . December 22, 2021, at 02:59 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Recordaudio]] . . . December 22, 2021, at 01:24 PM by [[~jrmu]]: [==]%0a* [[9.9]] . . . December 22, 2021, at 11:30 AM by [[~xfnw]]: [=fix some grammatical errors=]%0a* [[Parec.Record]] . . . December 22, 2021, at 07:02 AM by [[~jrmu]]: [==]%0a* [[Sox.Concat]] . . . December 22, 2021, at 07:01 AM by [[~jrmu]]: [==]%0a* [[Ffmpeg.Recordscreen]] . . . December 22, 2021, at 07:00 AM by [[~jrmu]]: [==]%0a* [[JuiceSSH.Connect]] . . . December 20, 2021, at 01:03 PM by [[~jrmu]]: [==]%0a* [[Marketing.Memes]] . . . December 20, 2021, at 12:55 PM by [[~jrmu]]: [==]%0a* [[9.Independent]] . . . December 20, 2021, at 12:47 PM by [[~jrmu]]: [==]%0a* [[TigerVNC.Install]] . . . December 20, 2021, at 12:00 PM by [[~jrmu]]: [==]%0a* [[MacScreenSharing.Connect]] . . . December 20, 2021, at 11:57 AM by [[~jrmu]]: [==]%0a* [[9.Partdisk]] . . . December 20, 2021, at 11:39 AM by [[~jrmu]]: [==]%0a* [[Mlmmj.Install]] . . . December 19, 2021, at 01:04 PM by [[~jrmu]]: [==]%0a* [[Got.Usage]] . . . December 17, 2021, at 04:44 PM by [[~jrmu]]: [==]%0a* [[Irc.Federation]] . . . December 17, 2021, at 02:03 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Gotweb]] . . . December 16, 2021, at 03:36 PM by [[~jrmu]]: [==]%0a* [[Irc.Chanop]] . . . December 14, 2021, at 04:58 AM by [[~mkf]]: [==]%0a* [[Ircnow.SSHFingerprints]] . . . December 06, 2021, at 02:03 AM by [[~jrmu]]: [==]%0a* [[9.Todo]] . . . December 03, 2021, at 07:52 PM by [[~mkf]]: [==]%0a* [[Vps.Vps]] . . . December 03, 2021, at 12:35 PM by [[~dodocrypto]]: [==]%0a* [[Pylink.Chroot]] . . . December 02, 2021, at 02:03 PM by [[~jrmu]]: [==]%0a* [[Pylink.Install]] . . . December 02, 2021, at 02:02 PM by [[~jrmu]]: [==]%0a* [[Jrmu.Marriage]] . . . December 02, 2021, at 06:09 AM by [[~jrmu]]: [==]%0a* [[Hosting.Hosting]] . . . December 01, 2021, at 02:01 PM by [[~jrmu]]: [==]%0a* [[Mc.Usage]] . . . November 29, 2021, at 07:53 PM by [[~mkf]]: [==]%0a* [[PuTTY.Connect]] . . . November 29, 2021, at 12:13 PM by [[~jrmu]]: [==]%0a* [[Email.Email]] . . . November 29, 2021, at 04:19 AM by [[~mkf]]: [==]%0a* [[Texlive.Sinhala]] . . . November 28, 2021, at 06:35 AM by [[~jrmu]]: [==]%0a* [[MailWindows.Connect]] . . . November 27, 2021, at 03:12 PM by [[~jrmu]]: [==]%0a* [[Gajim.Biboumi]] . . . November 27, 2021, at 01:02 PM by [[~jrmu]]: [==]%0a* [[Xmpp.Xmpp]] . . . November 27, 2021, at 12:33 PM by [[~jrmu]]: [==]%0a* [[Mcabber.Connect]] . . . November 26, 2021, at 01:38 PM by [[~jrmu]]: [==]%0a* [[ChatSecure.Connect]] . . . November 26, 2021, at 11:36 AM by [[~jrmu]]: [==]%0a* [[9.9pfs]] . . . November 24, 2021, at 02:00 PM by [[~mkf]]: [==]%0a* [[Vmm.DebianInstall]] . . . November 24, 2021, at 11:44 AM by [[~nicoz]]: [==]%0a* [[Siskin.Connect]] . . . November 23, 2021, at 04:38 PM by [[~jrmu]]: [==]%0a* [[Dino.Connect]] . . . November 23, 2021, at 02:10 PM by [[~mkf]]: [==]%0a* [[Monal.Connect]] . . . November 23, 2021, at 10:32 AM by [[~jrmu]]: [==]%0a* [[Xabber.Connect]] . . . November 23, 2021, at 10:20 AM by [[~jrmu]]: [==]%0a* [[DNS.DMARC]] . . . November 22, 2021, at 10:52 PM by [[~Hawk]]: [==]%0a* [[StorkIM.Connect]] . . . November 21, 2021, at 05:03 AM by [[~jrmu]]: [==]%0a* [[Conversations.Connect]] . . . November 20, 2021, at 05:37 PM by [[~jrmu]]: [==]%0a* [[Yaxim.Connect]] . . . November 20, 2021, at 05:09 PM by [[~jrmu]]: [==]%0a* [[Adium.Connect]] . . . November 20, 2021, at 07:32 AM by [[~jrmu]]: [==]%0a* [[Vmm.AlmaLinux]] . . . November 20, 2021, at 06:47 AM by [[~dodocrypto]]: [==]%0a* [[Vmm.DebianIso]] . . . November 19, 2021, at 09:35 PM by [[~nicoz]]: [==]%0a* [[NodeJS.Install]] . . . November 18, 2021, at 12:02 PM by [[~dodocrypto]]: [==]%0a* [[Psi.Connect]] . . . November 17, 2021, at 03:23 PM by [[~jrmu]]: [==]%0a* [[Pidgin.Connect]] . . . November 17, 2021, at 10:18 AM by [[~jrmu]]: [==]%0a* [[Gajim.Connect]] . . . November 17, 2021, at 08:01 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Training]] . . . November 16, 2021, at 03:30 PM by [[~Hawk]]: [==]%0a* [[Opera.Connect]] . . . November 16, 2021, at 12:12 AM by [[~wiz]]: [==]%0a* [[0dev.0dev]] . . . November 12, 2021, at 03:00 AM by [[~dodocrypto]]: [==]%0a* [[Vmm.RockyLinux]] . . . November 11, 2021, at 10:51 AM by [[~dodocrypto]]: [==]%0a* [[Opensmtpd.Openrelay]] . . . November 11, 2021, at 10:37 AM by [[~mkf]]: [==]%0a* [[Sandbox.0dev]] . . . November 11, 2021, at 01:45 AM by [[~dodocrypto]]: [==]%0a* [[Nsd.Configure]] . . . November 10, 2021, at 11:58 AM by [[~Hawk]]: [==]%0a* [[Got.Mirror]] . . . November 07, 2021, at 05:22 PM by [[~jrmu]]: [==]%0a* [[Vpn.OpenIKED]] . . . November 07, 2021, at 03:45 PM by [[~gloNO]]: [==]%0a* [[Openbsd.Got]] . . . November 07, 2021, at 03:16 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Opsofliberty]] . . . November 06, 2021, at 05:15 PM by [[~jrmu]]: [==]%0a* [[Emacs.Emacs]] . . . November 06, 2021, at 04:39 PM by [[~LohanG]]: [==]%0a* [[ZNC.Support]] . . . November 06, 2021, at 03:53 PM by [[~LohanG]]: [=added libera=]%0a* [[Vmm.Plan9]] . . . November 05, 2021, at 09:31 PM by [[~mkf]]: [=???=]%0a* [[9.Stone]] . . . November 04, 2021, at 04:09 PM by [[~meeekeeef]]: [==]%0a* [[9.Zuke]] . . . November 04, 2021, at 04:01 PM by [[~meeekeeef]]: [==]%0a* [[Openbsd.Drawtermssh]] . . . November 04, 2021, at 03:54 PM by [[~meeekeeef]]: [=ssh bad >:[=]%0a* [[Netcat.Http]] . . . November 03, 2021, at 02:30 PM by [[~jrmu]]: [==]%0a* [[Telnet.Http]] . . . November 03, 2021, at 02:18 PM by [[~jrmu]]: [==]%0a* [[Znc.Relayd]] . . . November 03, 2021, at 10:18 AM by [[~jrmu]]: [==]%0a* [[ZNC.Admin]] . . . November 02, 2021, at 05:44 PM by [[~jrmu]]: [==]%0a* [[Znc.Debug]] . . . November 02, 2021, at 03:23 PM by [[~jrmu]]: [==]%0a* [[Znc.Usage]] . . . November 02, 2021, at 03:09 PM by [[~jrmu]]: [==]%0a* [[Ambassador.Markets]] . . . November 02, 2021, at 01:29 PM by [[~jrmu]]: [==]%0a* [[Almanack.Rewrite]] . . . October 31, 2021, at 10:30 PM by [[~hydragyrum]]: [==]%0a* [[9.Sysupdate]] . . . October 31, 2021, at 10:21 PM by [[~meeekeeef]]: [==]%0a* [[Debian.Debian]] . . . October 31, 2021, at 12:34 PM by [[~monaco]]: [==]%0a* [[Ircnow.Victorycpus]] . . . October 30, 2021, at 08:17 AM by [[~jrmu]]: [==]%0a* [[Gnus.Connect]] . . . October 30, 2021, at 01:32 AM by [[~hydragyrum]]: [==]%0a* [[Ircnow.Settler]] . . . October 29, 2021, at 04:03 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Milestones]] . . . October 29, 2021, at 01:06 PM by [[~AncientWisdom]]: [==]%0a* [[Debian.Nginxphpfpm]] . . . October 29, 2021, at 12:26 PM by [[~monaco]]: [==]%0a* [[Debian.Nginx]] . . . October 29, 2021, at 12:18 PM by [[~monaco]]: [==]%0a* [[Vmm.Homerouter]] . . . October 26, 2021, at 05:08 PM by [[~jrmu]]: [==]%0a* [[9.Netcat]] . . . October 25, 2021, at 03:40 PM by [[~jrmu]]: [==]%0a* [[9.Plan9ini]] . . . October 24, 2021, at 04:30 PM by [[~jrmu]]: [==]%0a* [[Iked.Newconfig]] . . . October 24, 2021, at 03:49 PM by [[~tool]]: [==]%0a* [[Lua.Minetest-1]] . . . October 24, 2021, at 10:30 AM by [[~debiankaios]]: [==]%0a* [[9.Links]] . . . October 24, 2021, at 06:29 AM by [[~mkf]]: [==]%0a* [[Unrealircd.Install]] . . . October 24, 2021, at 06:25 AM by [[~mkf]]: [=and more=]%0a* [[9.Keybindings]] . . . October 24, 2021, at 06:15 AM by [[~mkf]]: [=heheheheheh=]%0a* [[Xdefaults.Configure]] . . . October 23, 2021, at 02:40 PM by [[~jrmu]]: [==]%0a* [[TigerVNC.SSH]] . . . October 23, 2021, at 11:56 AM by [[~Hawk]]: [==]%0a* [[Rio.Customize]] . . . October 22, 2021, at 09:22 AM by [[~jrmu]]: [==]%0a* [[9.Ssh]] . . . October 22, 2021, at 12:54 AM by [[~jrmu]]: [==]%0a* [[Vmm.Devuan4Iso]] . . . October 21, 2021, at 04:29 PM by [[~debiankaios]]: [=changed beowulf_3.1.1 to chimaera_4.0.0=]%0a* [[9.101]] . . . October 20, 2021, at 04:53 PM by [[~jrmu]]: [==]%0a* [[Fvwm.Configure]] . . . October 18, 2021, at 10:20 AM by [[~jrmu]]: [==]%0a* [[KISSmo.KISSmo]] . . . October 18, 2021, at 09:58 AM by [[~monaco]]: [==]%0a* [[KISSmo.Download]] . . . October 18, 2021, at 09:53 AM by [[~monaco]]: [==]%0a* [[KISSmo.About]] . . . October 18, 2021, at 09:52 AM by [[~monaco]]: [==]%0a* [[KISSmo.Install]] . . . October 18, 2021, at 09:44 AM by [[~monaco]]: [==]%0a* [[Cvs.Repo]] . . . October 17, 2021, at 08:32 AM by [[~jrmu]]: [==]%0a* [[Cvs.Anoncvs]] . . . October 17, 2021, at 04:00 AM by [[~jrmu]]: [==]%0a* [[Cvs.Commit]] . . . October 17, 2021, at 03:58 AM by [[~jrmu]]: [==]%0a* [[Cvs.Cvsweb]] . . . October 17, 2021, at 03:28 AM by [[~jrmu]]: [==]%0a* [[9.Cvsfs]] . . . October 15, 2021, at 12:58 PM by [[~mkf]]: [==]%0a* [[Openbsd.Sysupgrade70]] . . . October 15, 2021, at 11:02 AM by [[~mkf]]: [=humans are easily confused.=]%0a* [[Openbsd.Ilines]] . . . October 15, 2021, at 02:36 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Pmwiki]] . . . October 14, 2021, at 02:14 PM by [[~miniontoby]]: [=added credits =]%0a* [[Vmm.Devuan-ISO]] . . . October 14, 2021, at 09:50 AM by [[~siva]]: [==]%0a* [[Vmm.Devuan-Simple]] . . . October 14, 2021, at 09:48 AM by [[~siva]]: [=Tutorial Created=]%0a* [[Cvs.Intro]] . . . October 13, 2021, at 03:49 PM by [[~jrmu]]: [==]%0a* [[Synapse.Install]] . . . October 12, 2021, at 02:49 PM by [[~miniontoby]]: [=Created=]%0a* [[Ircnow.Oper]] . . . October 12, 2021, at 03:02 AM by [[~jrmu]]: [==]%0a* [[Terms.Privacy]] . . . October 11, 2021, at 11:48 AM by [[~jrmu]]: [==]%0a* [[Xfce.Install]] . . . October 09, 2021, at 11:27 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Diversity]] . . . October 09, 2021, at 02:56 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Linux]] . . . October 08, 2021, at 04:51 AM by [[~jrmu]]: [==]%0a* [[OpenBSD.ResetPassword]] . . . October 07, 2021, at 03:56 AM by [[~jrmu]]: [==]%0a* [[Terms.Vps]] . . . October 06, 2021, at 12:30 AM by [[~jrmu]]: [==]%0a* [[9.JSDrawterm]] . . . September 30, 2021, at 06:06 PM by [[~jrmu]]: [==]%0a* [[9.Fonts]] . . . September 28, 2021, at 05:13 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Install69]] . . . September 27, 2021, at 05:59 PM by [[~jrmu]]: [==]%0a* [[Cvs.Guide]] . . . September 26, 2021, at 02:28 PM by [[~Miniontoby]]: [==]%0a* [[Openbsd.PFStable]] . . . September 24, 2021, at 03:28 PM by [[~miniontoby]]: [==]%0a* [[License.IrcnowV2]] . . . September 21, 2021, at 03:53 AM by [[~jrmu]]: [==]%0a* [[Dhcpd.Configure]] . . . September 15, 2021, at 04:02 PM by [[~jrmu]]: [==]%0a* [[Vmm.Router]] . . . September 14, 2021, at 12:11 PM by [[~jrmu]]: [==]%0a* [[Weechat.Relay]] . . . September 11, 2021, at 05:46 PM by [[~mkf]]: [==]%0a* [[Gry.Bio]] . . . September 11, 2021, at 02:49 AM by [[~jrmu]]: [==]%0a* [[Hopm.Telnet]] . . . September 10, 2021, at 06:13 AM by [[~mkf]]: [==]%0a* [[Wraith.Chroot]] . . . September 10, 2021, at 06:11 AM by [[~mkf]]: [==]%0a* [[Mutt.Connect]] . . . September 10, 2021, at 06:01 AM by [[~mkf]]: [=6.8 -> 6.9=]%0a* [[DNS.DKIM]] . . . September 09, 2021, at 04:00 PM by [[~jrmu]]: [==]%0a* [[ZNC.Skins]] . . . September 06, 2021, at 07:58 AM by [[~mkf]]: [="Huh, pmwiki has a bug." no numbered list if use monospaced text. :(=]%0a* [[Seamonkey.Connect]] . . . August 28, 2021, at 01:05 PM by [[~mkf]]: [==]%0a* [[Debate.Wikistyle]] . . . August 27, 2021, at 03:29 PM by [[~mkf]]: [==]%0a* [[Email.EmailAndroidEmailApp]] . . . August 27, 2021, at 02:37 PM by [[~mkf]]: [==]%0a* [[Tmux.Shortcuts]] . . . August 27, 2021, at 12:56 PM by [[~mkf]]: [==]%0a* [[Vmm.Haiku]] . . . August 27, 2021, at 12:53 PM by [[~mkf]]: [==]%0a* [[Openbsd.Mailopenproxy]] . . . August 25, 2021, at 08:19 PM by [[~mkf]]: [==]%0a* [[Fiche.Install]] . . . August 25, 2021, at 02:21 PM by [[~Almajd]]: [==]%0a* [[Openbsd.Two-FactorAuth]] . . . August 23, 2021, at 07:39 PM by [[~mkf]]: [=login.db compiling is no longer recommended.=]%0a* [[Vmm.DragonflyBSD]] . . . August 23, 2021, at 07:31 PM by [[~mkf]]: [=logs=]%0a* [[Vmm.NetBSD]] . . . August 23, 2021, at 07:01 PM by [[~mkf]]: [=better logs?=]%0a* [[Mariadb.Install]] . . . August 23, 2021, at 04:42 PM by [[~wiz]]: [==]%0a* [[DNS.Ipv6rDNS]] . . . August 23, 2021, at 11:55 AM by [[~jrmu]]: [==]%0a* [[Pipes.Redirection]] . . . August 23, 2021, at 03:50 AM by [[~jrmu]]: [==]%0a* [[Ksh.Redirection]] . . . August 23, 2021, at 03:50 AM by [[~jrmu]]: [==]%0a* [[DNS.RDNS]] . . . August 22, 2021, at 11:20 PM by [[~jrmu]]: [==]%0a* [[Rbldnsd.Install]] . . . August 22, 2021, at 07:58 PM by [[~mkf]]: [=wiki-ish.=]%0a* [[Netcat.Smtp]] . . . August 22, 2021, at 06:58 PM by [[~mkf]]: [=byebye=]%0a* [[Vmm.UbuntuIso]] . . . August 22, 2021, at 06:40 AM by [[~jrmu]]: [==]%0a* [[Vmm.DevuanIso]] . . . August 22, 2021, at 05:44 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Npppd]] . . . August 21, 2021, at 01:43 PM by [[~mkf]]: [==]%0a* [[Shell.Shell]] . . . August 21, 2021, at 11:42 AM by [[~jrmu]]: [==]%0a* [[Tls.CA]] . . . August 21, 2021, at 11:10 AM by [[~jrmu]]: [==]%0a* [[Openssl.Imap]] . . . August 21, 2021, at 04:05 AM by [[~AncientWisdom]]: [==]%0a* [[Openbsd.FilePermissions]] . . . August 20, 2021, at 02:20 AM by [[~Nate S]]: [==]%0a* [[Ircnow.Todo]] . . . August 17, 2021, at 08:41 AM by [[~mkf]]: [==]%0a* [[Vmm.GuixIso]] . . . August 16, 2021, at 05:12 PM by [[~jrmu]]: [==]%0a* [[Vmm.VoidIso]] . . . August 16, 2021, at 06:19 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Gophernicus]] . . . August 15, 2021, at 02:06 AM by [[~mkf]]: [==]%0a* [[Gazette.Gazette]] . . . August 15, 2021, at 01:14 AM by [[~mkf]]: [=a bit polishing=]%0a* [[EmailTray.Connect]] . . . August 15, 2021, at 12:11 AM by [[~mkf]]: [==]%0a* [[Bouncer.Konversation]] . . . August 14, 2021, at 02:46 PM by [[~mkf]]: [==]%0a* [[Bouncer.Bouncer]] . . . August 14, 2021, at 02:41 PM by [[~mkf]]: [=Hydra IRC is too old.=]%0a* [[Squirrelmail.Connect]] . . . August 14, 2021, at 04:47 AM by [[~mkf]]: [==]%0a* [[Termius.Connect]] . . . August 14, 2021, at 04:42 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Openhttpd]] . . . August 13, 2021, at 07:29 AM by [[~jrmu]]: [==]%0a* [[ConnectBot.Keys]] . . . August 12, 2021, at 06:58 AM by [[~jrmu]]: [==]%0a* [[Debate.Monopolydanger]] . . . August 11, 2021, at 07:01 PM by [[~mkf]]: [==]%0a* [[ConnectBot.Connect]] . . . August 11, 2021, at 04:34 PM by [[~jrmu]]: [==]%0a* [[Openbsd.ZNCModules]] . . . August 11, 2021, at 03:06 PM by [[~wiz]]: [==]%0a* [[Termux.Connect]] . . . August 11, 2021, at 05:28 AM by [[~jrmu]]: [==]%0a* [[Web101.Web101]] . . . August 10, 2021, at 04:20 PM by [[~craziness]]: [=started web101=]%0a* [[Openbsd.Bitlbee]] . . . August 10, 2021, at 12:03 PM by [[~mkf]]: [==]%0a* [[Openbsd.Pppoe]] . . . August 10, 2021, at 11:56 AM by [[~mkf]]: [==]%0a* [[Sylpheed.Connect]] . . . August 10, 2021, at 11:50 AM by [[~mkf]]: [=eh, forgot that "[" again=]%0a* [[MacTerminal.Connect]] . . . August 10, 2021, at 10:33 AM by [[~jrmu]]: [==]%0a* [[Gomuks.Install]] . . . August 10, 2021, at 10:26 AM by [[~mkf]]: [=mster.zip might not compile, using packages is better than compiling manually=]%0a* [[OpenSSH.Connect]] . . . August 10, 2021, at 10:19 AM by [[~jrmu]]: [==]%0a* [[Fdroid.Install]] . . . August 10, 2021, at 09:05 AM by [[~jrmu]]: [==]%0a* [[Shell.Sshfingerprints]] . . . August 10, 2021, at 08:55 AM by [[~jrmu]]: [==]%0a* [[OpenSSH.Keygen]] . . . August 09, 2021, at 06:27 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Sshkeys]] . . . August 09, 2021, at 04:42 PM by [[~jrmu]]: [==]%0a* [[Vmm.9front]] . . . August 09, 2021, at 06:16 AM by [[~mkf]]: [==]%0a* [[Bouncer.WinIRC]] . . . August 09, 2021, at 06:03 AM by [[~mkf]]: [==]%0a* [[IP.Myaddress]] . . . August 07, 2021, at 05:14 PM by [[~jrmu]]: [==]%0a* [[SerFISH.Connect]] . . . August 06, 2021, at 05:05 PM by [[~jrmu]]: [==]%0a* [[Sshwifty.Connect]] . . . August 06, 2021, at 05:00 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Squirrelmail]] . . . August 06, 2021, at 10:32 AM by [[~baytuch]]: [==]%0a* [[Eggdrop.NickServ]] . . . August 05, 2021, at 07:27 AM by [[~jrmu]]: [==]%0a* [[Medals.Intro]] . . . August 04, 2021, at 08:34 AM by [[~jrmu]]: [==]%0a* [[Texlive.Install]] . . . August 03, 2021, at 01:51 PM by [[~mkf]]: [==]%0a* [[Openbsd.Dnszones]] . . . August 03, 2021, at 09:26 AM by [[~jrmu]]: [==]%0a* [[Dns.Zonefile]] . . . August 03, 2021, at 09:21 AM by [[~jrmu]]: [==]%0a* [[Irc.Clients]] . . . August 02, 2021, at 02:54 PM by [[~mkf]]: [==]%0a* [[Minutemin.Ifconfig]] . . . August 02, 2021, at 12:59 PM by [[~mkf]]: [==]%0a* [[Openbsd.Matterbridge]] . . . August 02, 2021, at 12:33 PM by [[~mkf]]: [==]%0a* [[Znc.I18n]] . . . August 02, 2021, at 09:12 AM by [[~mkf]]: [==]%0a* [[Almanack.Alt]] . . . August 02, 2021, at 07:52 AM by [[~jrmu]]: [==]%0a* [[Eggdrop.Simple]] . . . August 02, 2021, at 07:49 AM by [[~jrmu]]: [==]%0a* [[Eggdrop.Install]] . . . August 02, 2021, at 05:11 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Vhost]] . . . August 02, 2021, at 02:32 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Hardware]] . . . August 01, 2021, at 01:48 PM by [[~jrmu]]: [==]%0a* [[Thunderirc.Hardware]] . . . August 01, 2021, at 01:47 PM by [[~jrmu]]: [==]%0a* [[Planetofnix.Hardware]] . . . August 01, 2021, at 01:46 PM by [[~jrmu]]: [==]%0a* [[Bsdforall.Hardware]] . . . August 01, 2021, at 01:45 PM by [[~jrmu]]: [==]%0a* [[Oddprotocol.Hardware]] . . . August 01, 2021, at 01:28 PM by [[~jrmu]]: [==]%0a* [[Lecturify.Hardware]] . . . August 01, 2021, at 01:27 PM by [[~jrmu]]: [==]%0a* [[Eggdrop184.Install]] . . . August 01, 2021, at 07:07 AM by [[~jrmu]]: [==]%0a* [[Congress.Procedure]] . . . August 01, 2021, at 06:41 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Chroot]] . . . July 31, 2021, at 02:47 AM by [[~jrmu]]: [==]%0a* [[Syslogd.Remote]] . . . July 30, 2021, at 03:30 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Vmmuser]] . . . July 29, 2021, at 05:31 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Vmminstall]] . . . July 29, 2021, at 05:28 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Vmm]] . . . July 29, 2021, at 05:24 AM by [[~jrmu]]: [==]%0a* [[Openbsd.ZNCAdmin]] . . . July 28, 2021, at 06:14 AM by [[~jrmu]]: [==]%0a* [[Openbsd.ZNCSupport]] . . . July 28, 2021, at 06:14 AM by [[~jrmu]]: [==]%0a* [[ZNC.Troubleshoot]] . . . July 28, 2021, at 06:12 AM by [[~jrmu]]: [==]%0a* [[Znc.Troubleshoot]] . . . July 28, 2021, at 06:11 AM by [[~jrmu]]: [==]%0a* [[Kill.Usage]] . . . July 28, 2021, at 03:42 AM by [[~jrmu]]: [==]%0a* [[Ps.Usage]] . . . July 28, 2021, at 03:42 AM by [[~jrmu]]: [==]%0a* [[Dns.Vhost]] . . . July 28, 2021, at 03:05 AM by [[~jrmu]]: [==]%0a* [[Host.Usage]] . . . July 28, 2021, at 01:57 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Php]] . . . July 27, 2021, at 02:53 PM by [[~jrmu]]: [==]%0a* [[UsersCategoryMirrory.IRCFreeHomesteadVPS]] . . . July 26, 2021, at 06:12 AM by [[~category_mirror]]: [==]%0a* [[Ircnow.PioneerTldr]] . . . July 26, 2021, at 06:04 AM by [[~jrmu]]: [==]%0a* [[UsersCategoryMirrory.Pioneer]] . . . July 26, 2021, at 04:22 AM by [[~category_mirror]]: [==]%0a* [[Openbsd.Dig]] . . . July 25, 2021, at 06:50 AM by [[~jrmu]]: [==]%0a* [[Openbsd.RDNS]] . . . July 23, 2021, at 06:44 AM by [[~jrmu]]: [==]%0a* [[Bitlbee.Install]] . . . July 21, 2021, at 07:12 PM by [[~mkf]]: [==]%0a* [[Wordpress.Install]] . . . July 21, 2021, at 06:59 PM by [[~mkf]]: [==]%0a* [[Bouncer.All]] . . . July 21, 2021, at 06:37 PM by [[~mkf]]: [==]%0a* [[Lemon.Todo]] . . . July 21, 2021, at 06:21 PM by [[~mkf]]: [==]%0a* [[Irc.Guide]] . . . July 21, 2021, at 06:02 PM by [[~mkf]]: [=client -> clients=]%0a* [[Openbsd.Sic]] . . . July 21, 2021, at 05:57 PM by [[~mkf]]: [=first edit.=]%0a* [[Minutemin.Progress]] . . . July 21, 2021, at 08:10 AM by [[~jrmu]]: [==]%0a* [[Openssl.Check]] . . . July 20, 2021, at 01:27 PM by [[~jrmu]]: [==]%0a* [[Rsync.Usage]] . . . July 19, 2021, at 02:30 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Openrsync]] . . . July 18, 2021, at 02:01 PM by [[~jrmu]]: [==]%0a* [[Eggdrop.DuckHunt]] . . . July 17, 2021, at 06:34 AM by [[~jrmu]]: [==]%0a* [[Paster.Install]] . . . July 16, 2021, at 02:45 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Znc]] . . . July 16, 2021, at 10:43 AM by [[~jrmu]]: [==]%0a* [[Netizen.Become]] . . . July 14, 2021, at 09:47 AM by [[~jrmu]]: [==]%0a* [[Freedom.Bearcode]] . . . July 14, 2021, at 09:42 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Staticnet]] . . . July 12, 2021, at 05:48 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Dovecot]] . . . July 12, 2021, at 02:58 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Relayd]] . . . July 12, 2021, at 02:45 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Spf]] . . . July 12, 2021, at 03:08 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Mlmmj]] . . . July 08, 2021, at 09:42 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Eggdrop]] . . . July 02, 2021, at 03:20 AM by [[~jrmu]]: [==]%0a* [[Openssl.Http]] . . . June 30, 2021, at 04:44 AM by [[~mkf]]: [==]%0a* [[Debate.Oldsoftware]] . . . June 29, 2021, at 03:56 PM by [[~mkf]]: [==]%0a* [[Debate.Xmlflaws]] . . . June 29, 2021, at 03:54 PM by [[~mkf]]: [==]%0a* [[Debate.Wikipediadanger]] . . . June 29, 2021, at 03:51 PM by [[~mkf]]: [==]%0a* [[Debate.DCC]] . . . June 29, 2021, at 03:49 PM by [[~mkf]]: [==]%0a* [[Debate.Matrixflaws]] . . . June 29, 2021, at 03:48 PM by [[~mkf]]: [==]%0a* [[Debate.Webirc]] . . . June 29, 2021, at 03:48 PM by [[~mkf]]: [==]%0a* [[Debate.Nodejstrap]] . . . June 29, 2021, at 03:48 PM by [[~mkf]]: [==]%0a* [[Debate.Ircv3defense]] . . . June 29, 2021, at 03:45 PM by [[~mkf]]: [==]%0a* [[Openbsd.Newdisk]] . . . June 29, 2021, at 03:23 PM by [[~jrmu]]: [==]%0a* [[AndroidEmail.AndroidEmail]] . . . June 29, 2021, at 03:11 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Ed]] . . . June 28, 2021, at 04:04 PM by [[~mkf]]: [==]%0a* [[Openbsd.Unbound]] . . . June 27, 2021, at 12:12 PM by [[~jrmu]]: [==]%0a* [[Freedom.Religion]] . . . June 27, 2021, at 02:02 AM by [[~jrmu]]: [==]%0a* [[Tor.Hidden]] . . . June 26, 2021, at 08:56 PM by [[~mkf]]: [==]%0a* [[Freedom.Union]] . . . June 26, 2021, at 01:01 PM by [[~jrmu]]: [==]%0a* [[Freedom.Firstamendment]] . . . June 26, 2021, at 11:45 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Dkimproxy]] . . . June 25, 2021, at 12:56 PM by [[~jrmu]]: [==]%0a* [[MIF.Test]] . . . June 25, 2021, at 12:42 PM by [[~nsturtz]]: [==]%0a* [[Openbsd.Sysupgrade69]] . . . June 25, 2021, at 05:46 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Opensmtpd]] . . . June 23, 2021, at 02:21 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Ngircd]] . . . June 23, 2021, at 02:21 AM by [[~jrmu]]: [==]%0a* [[Openbsd.NgircdLink]] . . . June 22, 2021, at 07:50 PM by [[~mkf]]: [=delete=]%0a* [[File.File]] . . . June 22, 2021, at 07:43 PM by [[~mkf]]: [=linking=]%0a* [[Debate.Googledanger]] . . . June 20, 2021, at 08:05 AM by [[~mkf]]: [==]%0a* [[Debate.Linuxflaws]] . . . June 20, 2021, at 08:03 AM by [[~mkf]]: [=making hyperlinks=]%0a* [[Debate.Outreachkids]] . . . June 20, 2021, at 07:54 AM by [[~mkf]]: [==]%0a* [[Police.Intro]] . . . June 19, 2021, at 11:42 AM by [[~jrmu]]: [==]%0a* [[Freedom.Destiny]] . . . June 18, 2021, at 05:31 AM by [[~jrmu]]: [==]%0a* [[DNS.Mail]] . . . June 17, 2021, at 03:21 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Doas]] . . . June 13, 2021, at 01:19 PM by [[~jrmu]]: [==]%0a* [[Freedom.Freedom]] . . . June 13, 2021, at 09:13 AM by [[~jrmu]]: [==]%0a* [[Freedom.Press]] . . . June 13, 2021, at 09:12 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Shell]] . . . June 11, 2021, at 09:36 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Constitution]] . . . June 10, 2021, at 03:48 PM by [[~jrmu]]: [==]%0a* [[Netizen.Rights]] . . . June 10, 2021, at 03:21 PM by [[~jrmu]]: [==]%0a* [[IPv4.Overview]] . . . June 10, 2021, at 10:13 AM by [[~jrmu]]: [==]%0a* [[Ksh.Bash]] . . . June 09, 2021, at 11:31 AM by [[~jrmu]]: [==]%0a* [[PowerShell.Connect]] . . . June 09, 2021, at 11:10 AM by [[~jrmu]]: [==]%0a* [[Code.Code]] . . . June 08, 2021, at 05:24 PM by [[~mkf]]: [=better formating=]%0a* [[Grape.DonateUs]] . . . June 06, 2021, at 03:41 PM by [[~fizi]]: [==]%0a* [[Openbsd.Books]] . . . June 06, 2021, at 12:46 PM by [[~jrmu]]: [==]%0a* [[Grape.Grape]] . . . June 06, 2021, at 11:39 AM by [[~fizi]]: [==]%0a* [[Openbsd.Pfa]] . . . June 06, 2021, at 03:49 AM by [[~navic]]: [==]%0a* [[Vmm.Debian]] . . . June 04, 2021, at 07:48 PM by [[~mkf]]: [="LOL"=]%0a* [[DNS.Dnswl]] . . . June 04, 2021, at 11:11 AM by [[~jrmu]]: [==]%0a* [[Netcat.SMTP]] . . . June 04, 2021, at 09:59 AM by [[~jrmu]]: [==]%0a* [[Dkim.Dkimsign]] . . . June 04, 2021, at 09:07 AM by [[~jrmu]]: [==]%0a* [[Tor.Torsocks]] . . . June 04, 2021, at 06:16 AM by [[~jrmu]]: [==]%0a* [[Vpn.VpnIos]] . . . June 04, 2021, at 05:52 AM by [[~jrmu]]: [==]%0a* [[Vpn.VpnMac]] . . . June 04, 2021, at 05:40 AM by [[~jrmu]]: [==]%0a* [[Fdisk.Usage]] . . . June 04, 2021, at 05:04 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Wordpress]] . . . June 04, 2021, at 04:55 AM by [[~jrmu]]: [==]%0a* [[DNS.SPF]] . . . June 03, 2021, at 01:27 PM by [[~jrmu]]: [==]%0a* [[Terms.Terms]] . . . June 02, 2021, at 01:40 PM by [[~jrmu]]: [==]%0a* [[HostServ.Rules]] . . . June 01, 2021, at 08:11 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Anope]] . . . May 31, 2021, at 10:24 AM by [[~miniontoby]]: [=cp=]%0a* [[Openbsd.ACKFlood]] . . . May 29, 2021, at 06:20 AM by [[~mkf]]: [==]%0a* [[Openbsd.SSDP]] . . . May 29, 2021, at 06:18 AM by [[~mkf]]: [==]%0a* [[Openbsd.Anycast]] . . . May 29, 2021, at 06:01 AM by [[~mkf]]: [==]%0a* [[Ambassador.Networks]] . . . May 27, 2021, at 04:05 PM by [[~jrmu]]: [==]%0a* [[Marketing.Rules]] . . . May 26, 2021, at 06:15 AM by [[~jrmu]]: [==]%0a* [[Freenode.Power]] . . . May 26, 2021, at 04:38 AM by [[~jrmu]]: [==]%0a* [[Freenode.Money]] . . . May 25, 2021, at 03:29 PM by [[~jrmu]]: [==]%0a* [[Freenode.Takeover]] . . . May 25, 2021, at 05:28 AM by [[~jrmu]]: [==]%0a* [[Freedom.Freenode]] . . . May 25, 2021, at 01:48 AM by [[~jrmu]]: [==]%0a* [[Bouncer.Atomic]] . . . May 24, 2021, at 03:22 PM by [[~mkf]]: [=spacing=]%0a* [[Minetest.Updating]] . . . May 24, 2021, at 08:10 AM by [[~mkf]]: [=monospaced commands=]%0a* [[Shell.Putty]] . . . May 24, 2021, at 06:16 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Dmarc]] . . . May 21, 2021, at 09:22 AM by [[~jrmu]]: [==]%0a* [[Vmm.Optimize]] . . . May 19, 2021, at 04:04 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Stable]] . . . May 18, 2021, at 10:15 AM by [[~mkf]]: [==]%0a* [[Ircnow.VicePresident]] . . . May 18, 2021, at 08:15 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Sheriff]] . . . May 18, 2021, at 08:00 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Ambassador]] . . . May 18, 2021, at 07:42 AM by [[~jrmu]]: [==]%0a* [[Pf.Guide]] . . . May 17, 2021, at 03:37 AM by [[~bejelentkezni]]: [==]%0a* [[Openbsd.Disklabel]] . . . May 17, 2021, at 03:33 AM by [[~bejelentkezni]]: [==]%0a* [[Openbsd.Fdisk]] . . . May 17, 2021, at 03:27 AM by [[~bejelentkezni]]: [==]%0a* [[NewsNow.Install]] . . . May 16, 2021, at 06:49 AM by [[~mkf]]: [="$"=]%0a* [[Tmux.Share]] . . . May 15, 2021, at 02:27 AM by [[~mistera]]: [==]%0a* [[Openbsd.Security]] . . . May 14, 2021, at 03:14 AM by [[~caesar]]: [==]%0a* [[Bouncer.Vision]] . . . May 13, 2021, at 09:47 AM by [[~mkf]]: [=added home page, removed "..."s=]%0a* [[Minetest.Worldbackup]] . . . May 12, 2021, at 11:02 AM by [[~AES]]: [==]%0a* [[Minetest.Texturestyle]] . . . May 12, 2021, at 11:00 AM by [[~AES]]: [==]%0a* [[Minetest.Serverlocations]] . . . May 12, 2021, at 10:59 AM by [[~AES]]: [==]%0a* [[Minetest.Addingarenas]] . . . May 12, 2021, at 10:58 AM by [[~jrmu]]: [==]%0a* [[Relay.Relay]] . . . May 12, 2021, at 09:10 AM by [[~jrmu]]: [==]%0a* [[Ngircd.Install-bej]] . . . May 11, 2021, at 05:26 AM by [[~bejelentkezni]]: [==]%0a* [[Botnow.Botnow]] . . . May 08, 2021, at 09:44 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Hopm-Arthur]] . . . May 07, 2021, at 12:28 PM by [[~Arthur]]: [==]%0a* [[Znc.Chroot69]] . . . May 06, 2021, at 03:36 AM by [[~bejelentkezni]]: [=back to 6.9 to see real changes=]%0a* [[Dig.Usage]] . . . May 04, 2021, at 02:36 AM by [[~sarah]]: [==]%0a* [[Bgpd.Configure]] . . . May 03, 2021, at 06:26 AM by [[~jrmu]]: [==]%0a* [[Cherry.Cherry]] . . . May 02, 2021, at 01:43 PM by [[~Oz]]: [==]%0a* [[Freedom.Unix]] . . . April 29, 2021, at 03:39 PM by [[~jrmu]]: [==]%0a* [[Pmwiki.Simpleurl]] . . . April 29, 2021, at 02:46 PM by [[~punk]]: [==]%0a* [[Gpl.Flaws]] . . . April 24, 2021, at 04:56 PM by [[~jrmu]]: [==]%0a* [[Iked.Windows]] . . . April 18, 2021, at 07:38 PM by [[~st13g]]: [==]%0a* [[Freedom.Libertyordeath]] . . . April 17, 2021, at 12:35 PM by [[~jrmu]]: [==]%0a* [[Minetest.Economy]] . . . April 15, 2021, at 02:32 PM by [[~jrmu]]: [==]%0a* [[Vim.Vim]] . . . April 11, 2021, at 11:14 PM by [[~monaco]]: [==]%0a* [[Minutemin.Duty]] . . . April 11, 2021, at 04:53 AM by [[~jrmu]]: [==]%0a* [[License.License]] . . . April 04, 2021, at 02:00 AM by [[~jrmu]]: [==]%0a* [[EthicalSource.HolierThanThou]] . . . April 04, 2021, at 01:56 AM by [[~jrmu]]: [==]%0a* [[Jrmu.Rmsboycott]] . . . April 03, 2021, at 01:36 AM by [[~jrmu]]: [==]%0a* [[Jrmu.Libertyordeath]] . . . April 02, 2021, at 12:56 PM by [[~jrmu]]: [==]%0a* [[Fig.Fig]] . . . March 31, 2021, at 10:15 AM by [[~chewy]]: [==]%0a* [[Coconut.Coconut]] . . . March 29, 2021, at 12:28 PM by [[~jrmu]]: [==]%0a* [[Ircnow.CodeForce]] . . . March 29, 2021, at 12:04 PM by [[~jrmu]]: [==]%0a* [[ClawsMail.Connect]] . . . March 29, 2021, at 08:42 AM by [[~miniontoby]]: [==]%0a* [[Freedom.Madeonirc]] . . . March 27, 2021, at 11:48 AM by [[~jrmu]]: [==]%0a* [[Third.Devs]] . . . March 27, 2021, at 11:41 AM by [[~jrmu]]: [==]%0a* [[Minutemin.Code]] . . . March 24, 2021, at 03:26 AM by [[~jrmu]]: [==]%0a* [[Cherry.Todo]] . . . March 23, 2021, at 03:23 PM by [[~Oz]]: [==]%0a* [[Freedom.Independence]] . . . March 22, 2021, at 01:13 PM by [[~wiz]]: [==]%0a* [[Ifconfig.Change]] . . . March 20, 2021, at 11:15 AM by [[~jrmu]]: [==]%0a* [[Marketing.Founders]] . . . March 20, 2021, at 01:40 AM by [[~jrmu]]: [==]%0a* [[NewsNow.Teams]] . . . March 18, 2021, at 09:47 AM by [[~miniontoby]]: [=banana=]%0a* [[NewsNow.NewsNow]] . . . March 17, 2021, at 04:33 PM by [[~miniontoby]]: [=more ways=]%0a* [[Vhost.Freedns]] . . . March 16, 2021, at 12:22 PM by [[~wiz]]: [==]%0a* [[Marketing.Freedom]] . . . March 15, 2021, at 01:30 PM by [[~jrmu]]: [==]%0a* [[Bsd.Labor]] . . . March 15, 2021, at 06:12 AM by [[~jrmu]]: [==]%0a* [[License.Discriminatory]] . . . March 15, 2021, at 06:12 AM by [[~jrmu]]: [==]%0a* [[Bsd.Hope]] . . . March 14, 2021, at 11:05 PM by [[~jrmu]]: [==]%0a* [[License.Publicdomain]] . . . March 14, 2021, at 10:02 AM by [[~jrmu]]: [==]%0a* [[Linux.Flaws]] . . . March 14, 2021, at 05:13 AM by [[~jrmu]]: [==]%0a* [[NewsNow.Browser]] . . . March 12, 2021, at 08:00 AM by [[~miniontoby]]: [==]%0a* [[Abuse.Code]] . . . March 09, 2021, at 03:44 PM by [[~jrmu]]: [==]%0a* [[Webnews.Install]] . . . March 08, 2021, at 05:13 PM by [[~jrmu]]: [==]%0a* [[Congress.Documents]] . . . March 07, 2021, at 04:50 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Goals]] . . . March 06, 2021, at 09:33 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Chatforce]] . . . March 05, 2021, at 02:15 PM by [[~jrmu]]: [==]%0a* [[Shell.Bash]] . . . March 05, 2021, at 10:19 AM by [[~jrmu]]: [==]%0a* [[User.Welcome]] . . . March 05, 2021, at 07:34 AM by [[~jrmu]]: [==]%0a* [[Immigrant.Welcome]] . . . March 05, 2021, at 06:59 AM by [[~jrmu]]: [==]%0a* [[Mail.Openrelay]] . . . March 04, 2021, at 03:20 PM by [[~jrmu]]: [==]%0a* [[Mail.Test]] . . . March 04, 2021, at 03:07 PM by [[~jrmu]]: [==]%0a* [[Minutemin.Game]] . . . March 04, 2021, at 10:16 AM by [[~jrmu]]: [==]%0a* [[Marketing.Recruit]] . . . March 04, 2021, at 09:39 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Howtoask]] . . . March 03, 2021, at 12:35 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Netizen]] . . . February 28, 2021, at 03:18 PM by [[~jrmu]]: [==]%0a* [[Servers.Rights]] . . . February 28, 2021, at 12:37 PM by [[~jrmu]]: [==]%0a* [[Marketing.Enterprise]] . . . February 28, 2021, at 11:52 AM by [[~jrmu]]: [==]%0a* [[Minutemin.Creed]] . . . February 28, 2021, at 03:21 AM by [[~jrmu]]: [==]%0a* [[Oidentd.ZNC]] . . . February 27, 2021, at 08:33 AM by [[~jrmu]]: [==]%0a* [[Oidentd.Install]] . . . February 27, 2021, at 08:32 AM by [[~jrmu]]: [==]%0a* [[Ln.Intro]] . . . February 25, 2021, at 12:20 PM by [[~jrmu]]: [==]%0a* [[Leafnode.Install]] . . . February 25, 2021, at 10:56 AM by [[~jrmu]]: [==]%0a* [[Guava.Todo]] . . . February 23, 2021, at 10:47 AM by [[~quofan]]: [==]%0a* [[Relays.Relays]] . . . February 22, 2021, at 04:22 PM by [[~jrmu]]: [==]%0a* [[Jujube.Jujube]] . . . February 21, 2021, at 04:22 PM by [[~fizi]]: [==]%0a* [[PSFTP.Connect]] . . . February 21, 2021, at 03:57 PM by [[~jrmu]]: [==]%0a* [[Outlook.Connect]] . . . February 21, 2021, at 03:23 PM by [[~jrmu]]: [==]%0a* [[AppleMail.Connect]] . . . February 20, 2021, at 04:38 PM by [[~jrmu]]: [==]%0a* [[Thunderbird.Pgp]] . . . February 19, 2021, at 04:44 PM by [[~jrmu]]: [==]%0a* [[License.Ircnow]] . . . February 19, 2021, at 09:45 AM by [[~miniontoby]]: [=2021=]%0a* [[Thunderbird.Connect]] . . . February 19, 2021, at 09:36 AM by [[~jrmu]]: [==]%0a* [[Shell.Mac]] . . . February 19, 2021, at 09:14 AM by [[~jrmu]]: [==]%0a* [[Minutemin.Training]] . . . February 18, 2021, at 06:42 AM by [[~jrmu]]: [==]%0a* [[Freedom.Openforeveryone]] . . . February 16, 2021, at 04:33 AM by [[~jrmu]]: [==]%0a* [[Ircnow.IRCitizen]] . . . February 15, 2021, at 05:32 AM by [[~jrmu]]: [==]%0a* [[IPv6.Overview]] . . . February 14, 2021, at 11:09 AM by [[~jrmu]]: [==]%0a* [[Tcpip.Overview]] . . . February 14, 2021, at 11:02 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Syspatch]] . . . February 14, 2021, at 11:00 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Netadmin]] . . . February 14, 2021, at 10:56 AM by [[~jrmu]]: [==]%0a* [[Marketing.Religion]] . . . February 14, 2021, at 10:37 AM by [[~jrmu]]: [==]%0a* [[Marketing.Independence]] . . . February 13, 2021, at 04:59 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Leafnode]] . . . February 12, 2021, at 01:40 PM by [[~chewy]]: [==]%0a* [[Oidentd.Pylink]] . . . February 12, 2021, at 01:25 PM by [[~jrmu]]: [==]%0a* [[Marketing.Opportunity]] . . . February 11, 2021, at 12:58 PM by [[~jrmu]]: [==]%0a* [[Marketing.Republic]] . . . February 11, 2021, at 06:45 AM by [[~jrmu]]: [==]%0a* [[Achurch.Install]] . . . February 10, 2021, at 04:33 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Pylink]] . . . February 08, 2021, at 08:33 AM by [[~jrmu]]: [==]%0a* [[Ircnow.OpofLiberty]] . . . February 06, 2021, at 12:53 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Allies]] . . . February 06, 2021, at 12:47 PM by [[~jrmu]]: [==]%0a* [[Freedom.Dueprocess]] . . . February 06, 2021, at 12:25 PM by [[~jrmu]]: [==]%0a* [[Freedom.Checks]] . . . February 06, 2021, at 12:21 PM by [[~jrmu]]: [==]%0a* [[Freedom.Rulebylaw]] . . . February 06, 2021, at 12:12 PM by [[~jrmu]]: [==]%0a* [[Freedom.Startupdream]] . . . February 06, 2021, at 12:12 PM by [[~jrmu]]: [==]%0a* [[Freedom.Federation]] . . . February 06, 2021, at 11:44 AM by [[~jrmu]]: [==]%0a* [[Freedom.Selfadmin]] . . . February 06, 2021, at 11:26 AM by [[~jrmu]]: [==]%0a* [[Ircnow.OpsofLiberty]] . . . February 06, 2021, at 02:13 AM by [[~jrmu]]: [==]%0a* [[Freedom.Homestead]] . . . February 05, 2021, at 12:49 PM by [[~jrmu]]: [==]%0a* [[Freedom.Software]] . . . February 05, 2021, at 11:31 AM by [[~jrmu]]: [==]%0a* [[Freedom.Opportunity]] . . . February 05, 2021, at 08:55 AM by [[~jrmu]]: [==]%0a* [[Unix.Workethic]] . . . February 05, 2021, at 08:49 AM by [[~jrmu]]: [==]%0a* [[Unix.Ethic]] . . . February 05, 2021, at 08:48 AM by [[~jrmu]]: [==]%0a* [[Freedom.Privacy]] . . . February 05, 2021, at 07:26 AM by [[~jrmu]]: [==]%0a* [[Debate.Privacy]] . . . February 05, 2021, at 07:05 AM by [[~jrmu]]: [==]%0a* [[Team.Policy]] . . . February 04, 2021, at 04:08 PM by [[~jrmu]]: [==]%0a* [[Freedom.Serversrights]] . . . February 04, 2021, at 02:43 PM by [[~jrmu]]: [==]%0a* [[Freedom.Serverrights]] . . . February 04, 2021, at 02:42 PM by [[~jrmu]]: [==]%0a* [[Freedom.Fork]] . . . February 04, 2021, at 02:39 PM by [[~jrmu]]: [==]%0a* [[Freedom.Lanofopportunity]] . . . February 04, 2021, at 01:24 PM by [[~jrmu]]: [==]%0a* [[Freedom.Opentoall]] . . . February 04, 2021, at 01:17 PM by [[~jrmu]]: [==]%0a* [[Freedom.Refuge]] . . . February 04, 2021, at 09:31 AM by [[~jrmu]]: [==]%0a* [[Dns.Providers]] . . . February 04, 2021, at 04:27 AM by [[~jrmu]]: [==]%0a* [[Guava.Guava]] . . . February 03, 2021, at 02:30 AM by [[~st13g]]: [==]%0a* [[Openbsd.Stable]] . . . February 02, 2021, at 02:25 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Base64]] . . . February 02, 2021, at 06:37 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Unboundadblock]] . . . February 02, 2021, at 04:29 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Pfbadhost]] . . . February 02, 2021, at 04:29 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Wraith]] . . . February 02, 2021, at 04:22 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Delphinusdnsd]] . . . February 02, 2021, at 01:51 AM by [[~jrmu]]: [==]%0a* [[Mango.Mango]] . . . January 31, 2021, at 12:01 PM by [[~nix]]: [==]%0a* [[Openbsd.Abuse]] . . . January 31, 2021, at 05:33 AM by [[~jrmu]]: [==]%0a* [[Freedom.Censorship]] . . . January 31, 2021, at 05:23 AM by [[~jrmu]]: [==]%0a* [[Debate.Firstamendment]] . . . January 31, 2021, at 05:20 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Phishing]] . . . January 31, 2021, at 05:02 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Audit]] . . . January 31, 2021, at 04:46 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Ongoing]] . . . January 31, 2021, at 01:19 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Partners]] . . . January 31, 2021, at 12:32 AM by [[~jrmu]]: [==]%0a* [[Orange.Todo]] . . . January 30, 2021, at 11:31 AM by [[~jrmu]]: [==]%0a* [[Pear.Pear]] . . . January 29, 2021, at 06:09 PM by [[~dennis]]: [==]%0a* [[Openbsd.Httpopenproxy]] . . . January 29, 2021, at 11:01 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Zncadmin]] . . . January 29, 2021, at 10:00 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Rbldns]] . . . January 29, 2021, at 05:45 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Setuid]] . . . January 28, 2021, at 06:53 AM by [[~jrmu]]: [==]%0a* [[Openbsd.PFTesting]] . . . January 25, 2021, at 03:28 PM by [[~jrmu]]: [==]%0a* [[Openbsd.ZNCDaily]] . . . January 25, 2021, at 11:35 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Irssi]] . . . January 25, 2021, at 07:08 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Sysadmins]] . . . January 24, 2021, at 10:36 AM by [[~jrmu]]: [==]%0a* [[Debate.UnixPhilosophy]] . . . January 18, 2021, at 05:05 AM by [[~category_mirror]]: [==]%0a* [[Openbsd.XTerm]] . . . January 17, 2021, at 01:48 PM by [[~miniontoby]]: [=copyright=]%0a* [[UsersCategoryMirrory.Statement]] . . . January 17, 2021, at 02:44 AM by [[~category_mirror]]: [==]%0a* [[Email.Outlook]] . . . January 16, 2021, at 05:13 PM by [[~Zouheir]]: [==]%0a* [[Plum.Todo]] . . . January 16, 2021, at 12:09 AM by [[~st13g]]: [==]%0a* [[Debate.Ipsec]] . . . January 13, 2021, at 10:39 AM by [[~jrmu]]: [==]%0a* [[Plum.Plum]] . . . January 12, 2021, at 03:02 PM by [[~wiz]]: [==]%0a* [[Openbsd.Slrn]] . . . January 12, 2021, at 02:40 PM by [[~Noxturnix]]: [==]%0a* [[OpenBSD.CPAN]] . . . January 12, 2021, at 01:48 PM by [[~Dima]]: [==]%0a* [[Jujube.Todo]] . . . January 11, 2021, at 05:13 PM by [[~fizi]]: [==]%0a* [[Ircnow.Ilines]] . . . January 11, 2021, at 09:55 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Netcat]] . . . January 09, 2021, at 02:20 PM by [[~jrmu]]: [==]%0a* [[OpenBSD.Perl]] . . . January 09, 2021, at 02:04 PM by [[~dima]]: [==]%0a* [[Openbsd.Perl]] . . . January 09, 2021, at 01:52 PM by [[~jrmu]]: [==]%0a* [[Fig.Log]] . . . January 07, 2021, at 11:23 AM by [[~dima]]: [=test=]%0a* [[Fig.Todo]] . . . January 06, 2021, at 01:06 PM by [[~jrmu]]: [==]%0a* [[Grape.Todo]] . . . January 06, 2021, at 01:05 PM by [[~jrmu]]: [==]%0a* [[Pear.Todo]] . . . January 06, 2021, at 01:05 PM by [[~jrmu]]: [==]%0a* [[Jujube.Team]] . . . January 06, 2021, at 01:04 PM by [[~jrmu]]: [==]%0a* [[Mango.Todo]] . . . January 06, 2021, at 01:04 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Censorship]] . . . January 06, 2021, at 03:01 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Pentesters]] . . . January 05, 2021, at 11:17 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Coders]] . . . January 05, 2021, at 11:11 AM by [[~jrmu]]: [==]%0a* [[Banana.Todo]] . . . January 04, 2021, at 09:41 AM by [[~miniontoby]]: [=znc=]%0a* [[Users.CategoryMirrory]] . . . January 04, 2021, at 01:10 AM by [[~category_mirror]]: [==]%0a* [[UsersCategoryMirrory.Test]] . . . January 03, 2021, at 08:17 PM by [[~category_mirrory]]: [==]%0a* [[Users.Categorymirrory]] . . . January 03, 2021, at 08:12 PM by [[~category_mirrory]]: [=wrong caps=]%0a* [[Banana.Banana]] . . . January 03, 2021, at 02:39 PM by [[~miniontoby]]: [==]%0a* [[Orange.Orange]] . . . January 03, 2021, at 02:10 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Backup]] . . . January 03, 2021, at 01:46 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Passwords]] . . . January 03, 2021, at 12:20 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Backups]] . . . January 02, 2021, at 11:44 AM by [[~jrmu]]: [==]%0a* [[Debate.Appledanger]] . . . January 02, 2021, at 01:35 AM by [[~jrmu]]: [==]%0a* [[Grape.Tasks]] . . . January 01, 2021, at 07:52 PM by [[~fizi]]: [==]%0a* [[Ircnow.Helpers]] . . . January 01, 2021, at 04:36 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Finances]] . . . January 01, 2021, at 04:15 AM by [[~jrmu]]: [==]%0a* [[Tutorial.Tutorial]] . . . January 01, 2021, at 03:25 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Testing]] . . . December 30, 2020, at 12:58 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Sshbackdoor]] . . . December 30, 2020, at 12:14 PM by [[~jrmu]]: [==]%0a* [[Mango.Packages]] . . . December 30, 2020, at 10:48 AM by [[~nix]]: [==]%0a* [[Ircnow.Contact]] . . . December 30, 2020, at 03:18 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Pf-bnc]] . . . December 29, 2020, at 06:30 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Partners2]] . . . December 29, 2020, at 02:52 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Tcltls]] . . . December 29, 2020, at 09:53 AM by [[~jrmu]]: [==]%0a* [[Debate.Mozilladanger]] . . . December 27, 2020, at 03:05 AM by [[~jrmu]]: [==]%0a* [[Debate.Controlcomputer]] . . . December 27, 2020, at 03:02 AM by [[~jrmu]]: [==]%0a* [[Debate.Facebookdanger]] . . . December 27, 2020, at 03:01 AM by [[~jrmu]]: [==]%0a* [[Debate.Openweb]] . . . December 27, 2020, at 02:59 AM by [[~jrmu]]: [==]%0a* [[Debate.Slackdanger]] . . . December 27, 2020, at 02:56 AM by [[~jrmu]]: [==]%0a* [[Debate.Youtubedanger]] . . . December 27, 2020, at 02:49 AM by [[~jrmu]]: [==]%0a* [[Debate.Freespeech]] . . . December 27, 2020, at 02:36 AM by [[~jrmu]]: [==]%0a* [[Debate.Ethicalflaws]] . . . December 27, 2020, at 02:31 AM by [[~jrmu]]: [==]%0a* [[Debate.Hatespeech]] . . . December 27, 2020, at 02:20 AM by [[~jrmu]]: [==]%0a* [[Debate.Monero]] . . . December 27, 2020, at 02:02 AM by [[~jrmu]]: [==]%0a* [[Debate.WhyNotC]] . . . December 26, 2020, at 06:43 PM by [[~searchsocial]]: [==]%0a* [[Debate.Python]] . . . December 26, 2020, at 06:21 PM by [[~jrmu]]: [==]%0a* [[Debate.Cash]] . . . December 26, 2020, at 06:18 PM by [[~jrmu]]: [==]%0a* [[Debate.Uberdanger]] . . . December 26, 2020, at 06:16 PM by [[~jrmu]]: [==]%0a* [[Debate.Microsoftdanger]] . . . December 26, 2020, at 06:15 PM by [[~jrmu]]: [==]%0a* [[Debate.Accessibility]] . . . December 26, 2020, at 06:14 PM by [[~jrmu]]: [==]%0a* [[Debate.Zoomdanger]] . . . December 26, 2020, at 06:08 PM by [[~jrmu]]: [==]%0a* [[Shell.Applications]] . . . December 19, 2020, at 06:21 PM by [[~fizi]]: [==]%0a* [[Third.Dillo]] . . . December 19, 2020, at 01:52 PM by [[~jrmu]]: [==]%0a* [[Third.Basilisk]] . . . December 19, 2020, at 01:38 PM by [[~jrmu]]: [==]%0a* [[Third.Directory]] . . . December 19, 2020, at 01:35 PM by [[~jrmu]]: [==]%0a* [[Guava.Packages]] . . . December 19, 2020, at 06:14 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Amplification]] . . . December 19, 2020, at 05:42 AM by [[~jrmu]]: [==]%0a* [[Openbsd.UDPFlood]] . . . December 18, 2020, at 10:39 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Tcpdump]] . . . December 18, 2020, at 09:12 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Tcpackflood]] . . . December 17, 2020, at 10:36 AM by [[~jrmu]]: [==]%0a* [[Openbsd.RSTFlood]] . . . December 17, 2020, at 10:34 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Tcpresetflood]] . . . December 17, 2020, at 10:34 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Ssdp]] . . . December 15, 2020, at 12:59 PM by [[~jrmu]]: [==]%0a* [[Bouncer.Igloo]] . . . December 14, 2020, at 09:39 AM by [[~Noxturnix]]: [==]%0a* [[Main.Terms]] . . . December 13, 2020, at 01:35 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Pf]] . . . December 13, 2020, at 12:03 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Upgrade68]] . . . December 13, 2020, at 11:12 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Install68]] . . . December 13, 2020, at 10:13 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Upgrade67]] . . . December 13, 2020, at 04:02 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Sysupgrade68]] . . . December 11, 2020, at 10:27 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Dokuwiki]] . . . December 10, 2020, at 02:23 PM by [[~miniontoby]]: [=code blocks fixed=]%0a* [[Openbsd.Acme-client]] . . . December 09, 2020, at 06:47 PM by [[~miniontoby]]: [=fixed troubleshooting links=]%0a* [[Freedom.Christian]] . . . December 08, 2020, at 01:12 AM by [[~jrmu]]: [==]%0a* [[Freedom.Finances]] . . . December 08, 2020, at 01:04 AM by [[~jrmu]]: [==]%0a* [[Shell.Sshkeys]] . . . December 07, 2020, at 10:36 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Install67]] . . . December 06, 2020, at 11:03 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Buyvm]] . . . December 06, 2020, at 02:42 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Install]] . . . December 04, 2020, at 04:15 PM by [[~jrmu]]: [==]%0a* [[Opernbsd.Buyvm]] . . . December 04, 2020, at 12:06 PM by [[~jrmu]]: [==]%0a* [[Bouncer.WeeChat]] . . . December 02, 2020, at 12:43 PM by [[~jrmu]]: [==]%0a* [[Bouncer.SimpleIRC]] . . . December 02, 2020, at 12:31 PM by [[~jrmu]]: [==]%0a* [[Freedom.Militia]] . . . December 02, 2020, at 04:18 AM by [[~jrmu]]: [==]%0a* [[Third.Third]] . . . December 01, 2020, at 01:49 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Oidentd]] . . . November 30, 2020, at 11:42 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Helper]] . . . November 28, 2020, at 02:21 AM by [[~jrmu]]: [==]%0a* [[Bouncer.Hexchat]] . . . November 27, 2020, at 12:52 PM by [[~jrmu]]: [==]%0a* [[Bouncer.IRCCloud]] . . . November 24, 2020, at 11:53 AM by [[~jrmu]]: [==]%0a* [[Bouncer.AdiIRC]] . . . November 24, 2020, at 11:42 AM by [[~jrmu]]: [==]%0a* [[Bouncer.RevolutionIRC]] . . . November 24, 2020, at 11:35 AM by [[~jrmu]]: [==]%0a* [[Bouncer.KiwiIRC]] . . . November 24, 2020, at 11:34 AM by [[~jrmu]]: [==]%0a* [[Bouncer.KVIrc]] . . . November 24, 2020, at 11:33 AM by [[~jrmu]]: [==]%0a* [[Bouncer.IceChat]] . . . November 24, 2020, at 11:27 AM by [[~jrmu]]: [==]%0a* [[Bouncer.IRCCloudiOS]] . . . November 24, 2020, at 11:20 AM by [[~jrmu]]: [==]%0a* [[Bouncer.IRCCloudAndroid]] . . . November 24, 2020, at 11:20 AM by [[~jrmu]]: [==]%0a* [[Bouncer.IRCCloudWeb]] . . . November 24, 2020, at 11:19 AM by [[~jrmu]]: [==]%0a* [[Third.Catalog]] . . . November 23, 2020, at 07:52 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Checklist]] . . . November 20, 2020, at 12:44 AM by [[~gry]]: [=+=]%0a* [[Openbsd.Acopm]] . . . November 04, 2020, at 03:32 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Achurch]] . . . November 04, 2020, at 02:25 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Vi]] . . . November 04, 2020, at 12:51 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Sudo]] . . . November 04, 2020, at 12:38 PM by [[~jrmu]]: [==]%0a* [[Freedom.Denomination]] . . . October 23, 2020, at 09:20 AM by [[~jrmu]]: [==]%0a* [[Vps.Intro]] . . . October 10, 2020, at 08:22 AM by [[~jrmu]]: [==]%0a* [[Ircweb.Ircweb]] . . . October 05, 2020, at 01:10 AM by [[~jrmu]]: [==]%0a* [[Http2irc.Http2irc]] . . . October 05, 2020, at 01:04 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Easyapp]] . . . September 29, 2020, at 12:13 PM by [[~jrmu]]: [==]%0a* [[Orange.Nl]] . . . September 17, 2020, at 08:43 AM by [[~miniontoby]]: [=Dutch correct page=]%0a* [[Grape.Guide]] . . . September 16, 2020, at 08:42 AM by [[~baytuch]]: [==]%0a* [[Orange.Id]] . . . September 08, 2020, at 09:51 AM by [[~gry]]: [=+=]%0a* [[Orange.Ru]] . . . September 07, 2020, at 11:29 PM by [[~gry]]: [=+=]%0a* [[Bouncer.MIRC]] . . . September 06, 2020, at 03:59 AM by [[~jrmu]]: [==]%0a* [[Debate.Bncnow]] . . . September 04, 2020, at 04:36 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Cgit]] . . . September 01, 2020, at 05:51 PM by [[~baytuch]]: [==]%0a* [[Orange.Notes]] . . . August 27, 2020, at 03:38 AM by [[~gry]]: [=expanded=]%0a* [[Shell.ShellSSHKEYS]] . . . August 25, 2020, at 10:00 PM by [[~gry]]: [=permissions added=]%0a* [[Bots.Bots]] . . . August 25, 2020, at 12:02 PM by [[~jrmu]]: [==]%0a* [[Bouncer.Irccloud]] . . . August 24, 2020, at 12:20 PM by [[~jrmu]]: [==]%0a* [[GrapeTeam.Tracker]] . . . August 24, 2020, at 10:16 AM by [[~gry]]: [=+=]%0a* [[GrapeTeam.GrapeTeam]] . . . August 24, 2020, at 10:13 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Course]] . . . August 21, 2020, at 05:01 AM by [[~gry]]: [==]%0a* [[Openbsd.Bchs]] . . . August 20, 2020, at 07:11 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Todo]] . . . August 20, 2020, at 06:48 AM by [[~jrmu]]: on_is_active php_session_active squirrelmailing sqsession_start troubleshooting authentication session_status config_default webmail_access modifications configuration unfortunately accessibility administrator webmail_error compatibility acceleration default_pref organization replacement disposition alternative information sourceforge permissions certificate interactive configuring preferences letsencrypt development compatible javascript configtest connection additional nameserver configured afterwards extracting attempting installing documents complains openhttpd functions localhost opensmtpd challenge supported subdomain receiving databases recommend necessary following languages delimiter directory debugging fusername essential addresses installed chrooted smtphost projects browsers normally location provides tlsmulti 26214400 required remember original security listener optional settings sendmail properly software specific licensed messages brackets instance writable services browsing defaults drawback continue opening control dovecot fastcgi already contact defines example initial unbound folders unusual request plugins general command servers defined private options however records contrib include restart because nologin disable exiting keypair baytuch strings misused charset appears content instead openbsd release sending mt_rand another subject version tarball warning charlie without changes resolve foxtrot uploads written client relayd needed return logout syntax longer cannot latest htdocs braces rather offset typing before themes ircnow frames across making should switch please detect secure invert readme global create update system locale report serial delete femail myname daemon lookup socket number errors trying issues actual stable inline attach master reload touch could color chown check chmod needs first intro shell rcctl php74 mkdir books hosts write above https there false using might every ascii happy delta curly array fatal bravo query where since which setup exist works notes saved files press alpha enter means class block title index chain strip lines known worry based ifend about zones this doas 2001 imap will well page your real acme make sure that aaaa ipv4 does fccf want 1008 2602 than sbin chsh help bind body some copy runs both must logs like when ctrl type echo xvzf find uses html many wiki easy fees more exec text once were have made mime done next move into ipv6 pop3 menu sign quit full motd hide give edit time www ssl etc var 127 day see has 162 bad gpl 451 fix ksh 644 zip its 755 ftp net way crt 634 usr 403 src nsd fpm dns max few db8 143 via by gz 22 cd rx 38 87 mv 80 9 -time=1674139488 +rev=11270 +text=* [[Ircnow.Milestones]] . . . January 21, 2023, at 03:59 AM by [[~jrmu]]: [==]%0a* [[Mkf.Wikiv1]] . . . January 20, 2023, at 08:12 PM by [[~mkf]]: [==]%0a* [[Openbsd.Biboumi]] . . . January 20, 2023, at 08:11 PM by [[~mkf]]: [==]%0a* [[Biboumi.Install]] . . . January 20, 2023, at 08:10 PM by [[~mkf]]: [==]%0a* [[Texlive.Install]] . . . January 20, 2023, at 08:05 PM by [[~mkf]]: [==]%0a* [[Rcctl.Rcctl]] . . . January 20, 2023, at 08:00 PM by [[~mkf]]: [==]%0a* [[Vmm.Configure]] . . . January 20, 2023, at 07:59 PM by [[~mkf]]: [==]%0a* [[Hopm.Install]] . . . January 20, 2023, at 07:32 PM by [[~mkf]]: [==]%0a* [[Openbsd.Unrealircd]] . . . January 20, 2023, at 07:27 PM by [[~mkf]]: [==]%0a* [[Unrealircd.Install]] . . . January 20, 2023, at 07:24 PM by [[~mkf]]: [==]%0a* [[Pleroma.Install]] . . . January 20, 2023, at 07:18 PM by [[~mkf]]: [==]%0a* [[Gomuks.Install]] . . . January 20, 2023, at 07:08 PM by [[~mkf]]: [==]%0a* [[Gotweb.Install]] . . . January 20, 2023, at 07:02 PM by [[~mkf]]: [==]%0a* [[Webnews.Install]] . . . January 20, 2023, at 06:57 PM by [[~mkf]]: [==]%0a* [[Php.Install]] . . . January 20, 2023, at 06:52 PM by [[~mkf]]: [==]%0a* [[Mlmmj.Install]] . . . January 20, 2023, at 06:48 PM by [[~mkf]]: [==]%0a* [[Fiche.Install]] . . . January 20, 2023, at 06:44 PM by [[~mkf]]: [==]%0a* [[Prosody.Install]] . . . January 20, 2023, at 06:42 PM by [[~mkf]]: [==]%0a* [[Bitlbee.Install]] . . . January 20, 2023, at 06:36 PM by [[~mkf]]: [==]%0a* [[TigerVNC.Install]] . . . January 20, 2023, at 06:30 PM by [[~mkf]]: [==]%0a* [[NodeJS.Install]] . . . January 20, 2023, at 06:27 PM by [[~mkf]]: [==]%0a* [[Pmwiki.Install]] . . . January 20, 2023, at 06:19 PM by [[~mkf]]: [==]%0a* [[Xfce.Install]] . . . January 20, 2023, at 06:17 PM by [[~mkf]]: [==]%0a* [[Ngircd.Install]] . . . January 20, 2023, at 06:08 PM by [[~mkf]]: [==]%0a* [[9.9gridchan]] . . . January 20, 2023, at 12:17 PM by [[~mkf]]: [==]%0a* [[Main.HomePage]] . . . January 19, 2023, at 02:44 PM by [[~mkf]]: [==]%0a* [[Almanack.Almanack]] . . . January 19, 2023, at 01:05 PM by [[~mkf]]: [==]%0a* [[Openbsd.Vipw]] . . . January 18, 2023, at 11:01 PM by [[~zen]]: [=added two spaces=]%0a* [[Grep.Usage]] . . . January 18, 2023, at 10:54 PM by [[~zen]]: [==]%0a* [[Openbsd.Loginconf]] . . . January 18, 2023, at 10:48 PM by [[~zen]]: [=OpenBSD FAQ link refenrece=]%0a* [[Openbsd.Singleuser]] . . . January 18, 2023, at 10:26 PM by [[~zen]]: [=changed the link reference=]%0a* [[SiteAdmin.AuthUser]] . . . January 18, 2023, at 10:21 PM by [[~jrmu]]: [==]%0a* [[Donations.Donations]] . . . January 18, 2023, at 03:48 AM by [[~jrmu]]: [=I don't think anyone on bsdforall has access to that link=]%0a* [[Ssh.Fingerprints]] . . . January 14, 2023, at 04:31 PM by [[~izzyb]]: [=added link to ircnow network ssh fingerprints as example.=]%0a* [[Team.Networks]] . . . January 12, 2023, at 06:36 PM by [[~kilroy]]: [=Updated Sturtz IRC=]%0a* [[Openbsd.Dump]] . . . January 10, 2023, at 04:48 PM by [[~mkf]]: [=add -u, improve dump-ssh funcationality.=]%0a* [[Znc.Chroot]] . . . January 09, 2023, at 08:25 AM by [[~mkf]]: [==]%0a* [[Znc.Install]] . . . January 07, 2023, at 11:58 PM by [[~jrmu]]: [==]%0a* [[Jrmu.Bio]] . . . January 05, 2023, at 07:23 PM by [[~jrmu]]: [==]%0a* [[Rspamd.Configure]] . . . January 03, 2023, at 04:55 PM by [[~mkf]]: [==]%0a* [[Eggdrop191.Install]] . . . December 31, 2022, at 05:29 PM by [[~Yonle]]: [==]%0a* [[Dovecot.Pigeonhole]] . . . December 30, 2022, at 04:24 PM by [[~mkf]]: [=style 2=]%0a* [[Opensmtpd.Configure]] . . . December 30, 2022, at 04:17 PM by [[~mkf]]: [=mention root mail=]%0a* [[Openbsd.Quota]] . . . December 29, 2022, at 06:51 PM by [[~mkf]]: [==]%0a* [[Minutemin.Bootcamp]] . . . December 29, 2022, at 04:38 PM by [[~mkf]]: [==]%0a* [[Profiles.Miniontoby]] . . . December 26, 2022, at 07:26 PM by [[~miniontoby]]: [=Created=]%0a* [[Minetest.Minetest]] . . . December 26, 2022, at 07:25 PM by [[~miniontoby]]: [=Added building guide link=]%0a* [[Openbsd.Minetest]] . . . December 26, 2022, at 07:23 PM by [[~miniontoby]]: [=Added more ways to install=]%0a* [[Debate.Providers]] . . . December 25, 2022, at 04:06 PM by [[~Yonle]]: [==]%0a* [[Splinter0616Outlook.Com]] . . . December 25, 2022, at 02:37 AM by [[~SplinTer]]: [==]%0a* [[SendMoneyToSplinter0616Outlook.Com]] . . . December 25, 2022, at 02:35 AM by [[~SplinTer]]: [==]%0a* [[Ngircd.Oper]] . . . December 25, 2022, at 12:03 AM by [[~forero]]: [==]%0a* [[Profiles.Yonle]] . . . December 24, 2022, at 03:29 PM by [[~Yonle]]: [==]%0a* [[Openbsd.Honk]] . . . December 17, 2022, at 08:45 AM by [[~Yonle]]: [==]%0a* [[Yonle.Bio]] . . . December 13, 2022, at 05:18 PM by [[~Yonle]]: [==]%0a* [[Camping.Gear]] . . . December 12, 2022, at 04:39 AM by [[~jrmu]]: [==]%0a* [[Vhost.Vhost]] . . . December 12, 2022, at 03:36 AM by [[~xfnw]]: [==]%0a* [[Vhost.Ircnow]] . . . December 12, 2022, at 03:13 AM by [[~xfnw]]: [=ircfree.com is not an ircnow domain=]%0a* [[Akkoma.Install]] . . . December 11, 2022, at 01:24 PM by [[~Yonle]]: [==]%0a* [[Shelllabs.Openaccess]] . . . December 08, 2022, at 10:02 PM by [[~redrum88]]: [==]%0a* [[I2Pd.Install]] . . . December 07, 2022, at 01:16 AM by [[~Yonle]]: [=Again not 7070=]%0a* [[I2Pd.Tunnels]] . . . December 06, 2022, at 02:52 PM by [[~Yonle]]: [=There we go. =]%0a* [[I2pd.Tunnels]] . . . December 06, 2022, at 02:45 PM by [[~Yonle]]: [==]%0a* [[Unbound.Configure]] . . . December 04, 2022, at 03:59 AM by [[~Yonle]]: [==]%0a* [[Profiles.Xfnw]] . . . November 28, 2022, at 10:38 PM by [[~xfnw]]: [=add pgp keys=]%0a* [[Unwind.Configure]] . . . November 26, 2022, at 09:23 PM by [[~akoizumi]]: [=add unwind=]%0a* [[Openbsd.OpenTracker]] . . . November 20, 2022, at 07:45 AM by [[~baytuch]]: [==]%0a* [[Openbsd.Icecast]] . . . November 17, 2022, at 11:35 AM by [[~Yonle]]: [==]%0a* [[Debian.Install]] . . . November 13, 2022, at 11:43 AM by [[~suzerain]]: [=writing=]%0a* [[Lemon.Lemon]] . . . November 10, 2022, at 01:48 PM by [[~mkf]]: [==]%0a* [[Bouncer.JmIRC]] . . . November 04, 2022, at 06:18 PM by [[~baytuch]]: [=Added screenshots about setup=]%0a* [[Anope.Install]] . . . October 29, 2022, at 07:12 PM by [[~rahl]]: [=fix a url=]%0a* [[Ambassador.Ilines]] . . . October 22, 2022, at 04:40 AM by [[~jrmu]]: [==]%0a* [[Bouncer.XChat]] . . . October 16, 2022, at 11:09 PM by [[~xfnw]]: [=XChat is unmaintained=]%0a* [[Ircnow.Servers]] . . . October 11, 2022, at 11:53 PM by [[~akoizumi]]: [=shelltalk now has onion=]%0a* [[Eggdrop.VHost]] . . . October 02, 2022, at 01:05 PM by [[~sulieztya]]: [==]%0a* [[Eggdrop.VhostTCL]] . . . October 02, 2022, at 07:06 AM by [[~sulieztya]]: [==]%0a* [[Eggdrop.BotZNC]] . . . October 02, 2022, at 01:29 AM by [[~sulieztya]]: [==]%0a* [[Shelllabs.Intro]] . . . September 28, 2022, at 06:53 PM by [[~jrmu]]: [==]%0a* [[He.IPv6Certification]] . . . September 16, 2022, at 05:32 PM by [[~xfnw]]: [=create page=]%0a* [[Shelllabs.Education]] . . . September 14, 2022, at 07:30 PM by [[~jrmu]]: [==]%0a* [[About.AboutUs]] . . . September 13, 2022, at 06:42 PM by [[~zleap]]: [==]%0a* [[Site.SideBar]] . . . September 13, 2022, at 06:21 PM by [[~jrmu]]: [==]%0a* [[LegalAndSafety.LegalAndSafety]] . . . September 13, 2022, at 05:19 PM by [[~zleap]]: [==]%0a* [[LegalAndSafety.LegalAmpSafety]] . . . September 13, 2022, at 05:17 PM by [[~zleap]]: [==]%0a* [[LegalAmpSafety.Subheading]] . . . September 13, 2022, at 05:15 PM by [[~zleap]]: [==]%0a* [[Acmesh.Configure]] . . . September 11, 2022, at 06:03 PM by [[~akoizumi]]: [=Added acme.sh (currently a WIP)=]%0a* [[Dehydrated.Configure]] . . . September 11, 2022, at 02:52 PM by [[~akoizumi]]: [=Add dehydrated=]%0a* [[Profiles.Izzyb]] . . . September 11, 2022, at 06:28 AM by [[~izzyb]]: [==]%0a* [[Site.EditForm]] . . . September 11, 2022, at 06:22 AM by [[~izzyb]]: [=Make Author none editable field=]%0a* [[Netcat.Irc]] . . . September 11, 2022, at 04:21 AM by [[~izzyb]]: [=Removed info about PASS - moving to different doc as per jrmu request=]%0a* [[Openbsd.Geomyidae]] . . . September 10, 2022, at 02:31 AM by [[~akoizumi]]: [==]%0a* [[Openbsd.INN]] . . . September 10, 2022, at 02:23 AM by [[~akoizumi]]: [=Fix some types=]%0a* [[Ngircd.Loginconf]] . . . September 10, 2022, at 01:51 AM by [[~jrmu]]: [==]%0a* [[Heading.Subheading]] . . . September 07, 2022, at 07:23 PM by [[~zleap]]: [==]%0a* [[Eggdrop193.Install]] . . . September 07, 2022, at 04:48 PM by [[~jrmu]]: [==]%0a* [[Letsencrypt.Expired]] . . . September 06, 2022, at 12:00 AM by [[~xfnw]]: [=be less misleading about Let's Encrypt's reasoning for keeping the expired chain=]%0a* [[Baytuch.Bio]] . . . August 21, 2022, at 05:48 PM by [[~baytuch]]: [==]%0a* [[Ircnow.Pioneer]] . . . August 14, 2022, at 05:06 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Minutemin]] . . . August 14, 2022, at 05:04 AM by [[~jrmu]]: [==]%0a* [[Openbsd.VsFTP]] . . . August 10, 2022, at 03:18 PM by [[~mkf]]: [=snipped unneeded output=]%0a* [[C.Scanf]] . . . August 10, 2022, at 09:51 AM by [[~mkf]]: [==]%0a* [[Vmm.Install]] . . . August 10, 2022, at 08:05 AM by [[~miniontoby]]: [=coconut to host=]%0a* [[Orange.CertsReissue]] . . . August 08, 2022, at 05:35 AM by [[~baytuch]]: [==]%0a* [[Team.Security]] . . . August 08, 2022, at 12:53 AM by [[~jrmu]]: [==]%0a* [[Openhttpd.Configure]] . . . August 07, 2022, at 11:51 PM by [[~tiramisu]]: [==]%0a* [[Netcat.Usage]] . . . August 04, 2022, at 01:12 AM by [[~tiramisu]]: [==]%0a* [[Freedom.Universal]] . . . August 03, 2022, at 06:33 PM by [[~jrmu]]: [==]%0a* [[Pgp.Upload]] . . . August 01, 2022, at 01:21 PM by [[~jan6]]: [=keys.openpgp.org uses a superior implementation, less vulnerable to various issues=]%0a* [[Lemon.Packages]] . . . July 30, 2022, at 07:52 PM by [[~mkf]]: [==]%0a* [[Netizen.Ellisisland]] . . . July 27, 2022, at 07:05 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Newdeal]] . . . July 27, 2022, at 06:55 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Daughtersofliberty]] . . . July 27, 2022, at 06:45 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Womenstem]] . . . July 21, 2022, at 05:59 PM by [[~jrmu]]: [==]%0a* [[Eggdrop.RC]] . . . July 20, 2022, at 06:55 PM by [[~baytuch]]: [==]%0a* [[Opensmtpd.Troubleshoot]] . . . July 20, 2022, at 03:58 PM by [[~jlj]]: [=Added notes about how I resolved the first two errors, on nastycode=]%0a* [[Eggdrop.Nickserv]] . . . July 19, 2022, at 10:05 AM by [[~baytuch]]: [==]%0a* [[Chroot.Intro]] . . . July 18, 2022, at 04:23 PM by [[~mkf]]: [==]%0a* [[Ircnow.Media]] . . . July 15, 2022, at 05:54 AM by [[~jrmu]]: [==]%0a* [[Iked.Linuxstrongswan]] . . . July 03, 2022, at 11:29 PM by [[~jrmu]]: [==]%0a* [[Acme-client.AutoRenew]] . . . July 03, 2022, at 11:50 AM by [[~mkf]]: [==]%0a* [[Openbsd.Apmd]] . . . July 03, 2022, at 11:36 AM by [[~mkf]]: [==]%0a* [[Opensmtpd.Test]] . . . July 03, 2022, at 11:13 AM by [[~mkf]]: [==]%0a* [[Ircnow.Roadmap2022]] . . . July 03, 2022, at 11:04 AM by [[~mkf]]: [==]%0a* [[Iked.Android]] . . . July 01, 2022, at 12:14 AM by [[~jrmu]]: [==]%0a* [[Vpn.Myipaddress]] . . . June 30, 2022, at 09:51 PM by [[~jrmu]]: [==]%0a* [[Olympics.Games]] . . . June 27, 2022, at 10:42 PM by [[~jrmu]]: [==]%0a* [[Iked.Configure]] . . . June 25, 2022, at 02:28 PM by [[~jrmu]]: [==]%0a* [[Unbound.Blacklists]] . . . June 25, 2022, at 06:02 AM by [[~jrmu]]: [==]%0a* [[Iked.Linux]] . . . June 23, 2022, at 07:10 AM by [[~jrmu]]: [==]%0a* [[Vpn.Vpn]] . . . June 23, 2022, at 06:42 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Nsf]] . . . June 20, 2022, at 05:05 PM by [[~jrmu]]: [==]%0a* [[Debate.Debate]] . . . June 19, 2022, at 04:12 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Metrics]] . . . June 19, 2022, at 04:12 PM by [[~jrmu]]: [==]%0a* [[Nsd.Masterslave]] . . . June 19, 2022, at 06:34 AM by [[~jrmu]]: [==]%0a* [[Dns.Overview]] . . . June 19, 2022, at 05:45 AM by [[~jrmu]]: [==]%0a* [[Dns.Records]] . . . June 19, 2022, at 05:44 AM by [[~jrmu]]: [==]%0a* [[Syspatch.Syspatch]] . . . June 17, 2022, at 06:24 AM by [[~jrmu]]: [==]%0a* [[Acme-client.Configure]] . . . June 14, 2022, at 08:01 AM by [[~jrmu]]: [==]%0a* [[Tmux.Config]] . . . June 14, 2022, at 12:34 AM by [[~jrmu]]: [==]%0a* [[Vmm.Alpine]] . . . June 13, 2022, at 05:42 PM by [[~fossdev]]: [==]%0a* [[Team.Announce]] . . . June 13, 2022, at 03:52 PM by [[~jrmu]]: [==]%0a* [[Vmm.Arch]] . . . June 12, 2022, at 04:11 PM by [[~g1n]]: [=Added article about Arch Linux setup on VMM=]%0a* [[Znc.Patch]] . . . June 12, 2022, at 12:48 AM by [[~jrmu]]: [==]%0a* [[Unveil.Intro]] . . . June 12, 2022, at 12:40 AM by [[~jrmu]]: [==]%0a* [[Pledge.Intro]] . . . June 12, 2022, at 12:39 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Pkg]] . . . June 12, 2022, at 12:32 AM by [[~jrmu]]: [==]%0a* [[Doas.Configure]] . . . June 09, 2022, at 07:56 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Intro]] . . . June 09, 2022, at 07:53 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Bsdrd]] . . . June 09, 2022, at 07:17 AM by [[~jrmu]]: [==]%0a* [[Vnc.Vnc]] . . . June 08, 2022, at 04:04 PM by [[~miniontoby]]: [=Added RealVNC Viewer to the list (might need some more extra stuff, but yeah its fine)=]%0a* [[Unix101.Unix101]] . . . June 07, 2022, at 03:12 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Sysupgrade71]] . . . June 05, 2022, at 11:49 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Growfs]] . . . June 01, 2022, at 12:34 AM by [[~jrmu]]: [==]%0a* [[Team.Welcome]] . . . May 31, 2022, at 10:20 PM by [[~jrmu]]: [==]%0a* [[Hostnameif.Static-v2]] . . . May 23, 2022, at 06:29 AM by [[~theguest]]: [==]%0a* [[Hostnameif.Static]] . . . May 23, 2022, at 05:01 AM by [[~theguest]]: [==]%0a* [[Lilywhitebot.Install]] . . . May 14, 2022, at 06:02 AM by [[~suzerain]]: [==]%0a* [[Ircnow.Team]] . . . May 12, 2022, at 03:44 PM by [[~jrmu]]: [==]%0a* [[Grape.Minetest]] . . . May 10, 2022, at 10:48 AM by [[~baytuch]]: [==]%0a* [[Irc.Emoji]] . . . May 10, 2022, at 10:23 AM by [[~baytuch]]: [==]%0a* [[Openbsd.Nsd]] . . . May 10, 2022, at 12:33 AM by [[~jrmu]]: [==]%0a* [[Opsofliberty.Bootcamp]] . . . May 09, 2022, at 08:38 AM by [[~mkf]]: [==]%0a* [[Openbsd.Ports]] . . . May 09, 2022, at 05:54 AM by [[~mkf]]: [==]%0a* [[Openbsd.Rcctl]] . . . May 09, 2022, at 05:53 AM by [[~mkf]]: [==]%0a* [[Ngircd.Ssl]] . . . May 08, 2022, at 03:30 PM by [[~miniontoby]]: [=fixed the text=]%0a* [[Openbsd.Upgrade71]] . . . May 03, 2022, at 06:36 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Codeforce]] . . . May 03, 2022, at 04:17 AM by [[~jrmu]]: [==]%0a* [[Codeforce.Training]] . . . May 03, 2022, at 03:02 AM by [[~jrmu]]: [==]%0a* [[Civics.Intro]] . . . May 03, 2022, at 01:06 AM by [[~jrmu]]: [==]%0a* [[OpenBSD.EdgeRouter-Lite]] . . . April 28, 2022, at 02:50 PM by [[~pufferf]]: [==]%0a* [[Math.Reading]] . . . April 27, 2022, at 08:23 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Install71]] . . . April 24, 2022, at 09:55 PM by [[~jrmu]]: [==]%0a* [[Botnow.Install]] . . . April 24, 2022, at 06:19 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Botnow]] . . . April 24, 2022, at 06:14 AM by [[~jrmu]]: [==]%0a* [[Buyvm.Ipv6]] . . . April 24, 2022, at 06:10 AM by [[~jrmu]]: [==]%0a* [[Eggdrop.Rss]] . . . April 23, 2022, at 04:20 PM by [[~jrmu]]: [==]%0a* [[Team.Testing]] . . . April 20, 2022, at 09:45 PM by [[~jrmu]]: [==]%0a* [[Dns.Registrars]] . . . April 20, 2022, at 09:30 PM by [[~jrmu]]: [==]%0a* [[Hosting.Providers]] . . . April 20, 2022, at 08:52 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Gopher]] . . . April 20, 2022, at 08:29 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Adduser]] . . . April 20, 2022, at 08:07 PM by [[~jrmu]]: [==]%0a* [[Signify.Verify]] . . . April 20, 2022, at 06:24 PM by [[~jrmu]]: [==]%0a* [[Almanack.Route]] . . . April 20, 2022, at 06:23 AM by [[~jrmu]]: [==]%0a* [[Route.Usage]] . . . April 20, 2022, at 06:22 AM by [[~jrmu]]: [==]%0a* [[Ntpd.Configure]] . . . April 20, 2022, at 06:17 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Ntpd]] . . . April 20, 2022, at 06:16 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Vmmlinux]] . . . April 20, 2022, at 05:33 AM by [[~jrmu]]: [==]%0a* [[Vmm.Linux]] . . . April 20, 2022, at 05:33 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Iked]] . . . April 20, 2022, at 05:16 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Team]] . . . April 20, 2022, at 04:54 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Networks]] . . . April 19, 2022, at 04:22 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Announce]] . . . April 19, 2022, at 04:14 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Ally]] . . . April 19, 2022, at 04:11 PM by [[~jrmu]]: [==]%0a* [[Openhttpd.Chroot]] . . . April 19, 2022, at 04:05 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Install70]] . . . April 19, 2022, at 06:52 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Upgrade70]] . . . April 19, 2022, at 06:49 AM by [[~jrmu]]: [==]%0a* [[CodeForce.Bootcamp]] . . . April 19, 2022, at 06:29 AM by [[~jrmu]]: [==]%0a* [[Perl101.Perl101]] . . . April 19, 2022, at 06:15 AM by [[~jrmu]]: [==]%0a* [[Vmm.Vmm]] . . . April 15, 2022, at 12:20 PM by [[~Naglfar]]: [=Update: report from PiRATA=]%0a* [[Password.Management]] . . . April 14, 2022, at 03:09 AM by [[~izzyb]]: [=Added Usage section with instructions for using the script=]%0a* [[Ngircd.Link]] . . . April 07, 2022, at 06:52 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Explorer]] . . . April 06, 2022, at 08:42 PM by [[~jrmu]]: [==]%0a* [[Minutemin.Minutemin]] . . . April 06, 2022, at 02:55 AM by [[~jrmu]]: [==]%0a* [[Openhttpd.CGI]] . . . April 05, 2022, at 04:22 PM by [[~gtlsgamr]]: [==]%0a* [[Openbsd.Censord]] . . . April 05, 2022, at 06:16 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Hopm]] . . . April 05, 2022, at 06:09 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Dns]] . . . April 05, 2022, at 05:24 AM by [[~jrmu]]: [==]%0a* [[Debate.Zncflaws]] . . . April 05, 2022, at 05:18 AM by [[~jrmu]]: [==]%0a* [[Debate.Debiandanger]] . . . April 04, 2022, at 04:30 AM by [[~jrmu]]: [==]%0a* [[Openhttpd.Tls]] . . . April 04, 2022, at 04:25 AM by [[~jrmu]]: [==]%0a* [[Openhttpd.Website]] . . . April 03, 2022, at 11:03 PM by [[~jrmu]]: [==]%0a* [[Soju.Guide]] . . . April 02, 2022, at 03:46 PM by [[~Yonle]]: [==]%0a* [[Nitter.Install]] . . . April 02, 2022, at 01:08 AM by [[~fallback]]: [=first nitter install page=]%0a* [[Debiankaios.Bio]] . . . April 01, 2022, at 05:10 PM by [[~debiankaios]]: [==]%0a* [[Soju.Install]] . . . April 01, 2022, at 05:07 PM by [[~Yonle]]: [=A message about simple to build is not needed=]%0a* [[Openbsd.Psybnc]] . . . March 30, 2022, at 09:56 PM by [[~jrmu]]: [==]%0a* [[Psybnc.Install]] . . . March 30, 2022, at 09:41 PM by [[~kei]]: [=Extra space between -g and uid =]%0a* [[Sshd.Disablepassword]] . . . March 30, 2022, at 08:27 PM by [[~xfnw]]: [=undo accidental revert=]%0a* [[Tor.Irc]] . . . March 30, 2022, at 12:40 PM by [[~m16]]: [==]%0a* [[Chess.Reading]] . . . March 29, 2022, at 10:02 PM by [[~jrmu]]: [==]%0a* [[Linux.Reading]] . . . March 29, 2022, at 03:31 PM by [[~jrmu]]: [==]%0a* [[Unix.Reading]] . . . March 28, 2022, at 03:24 PM by [[~jrmu]]: [==]%0a* [[Irc.Services]] . . . March 25, 2022, at 04:29 AM by [[~jrmu]]: [==]%0a* [[Syslogd.Configure]] . . . March 25, 2022, at 04:07 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Ddos]] . . . March 24, 2022, at 04:22 PM by [[~jrmu]]: [==]%0a* [[Ddos.Intro]] . . . March 24, 2022, at 04:22 PM by [[~jrmu]]: [==]%0a* [[Bouncer.ZNC]] . . . March 19, 2022, at 07:31 AM by [[~fallback]]: [==]%0a* [[ISCABBS.DownloadingAndInstalling]] . . . March 15, 2022, at 10:42 PM by [[~Mandarax]]: [==]%0a* [[ISCABBS.ISCABBS]] . . . March 15, 2022, at 09:24 PM by [[~Mandarax]]: [==]%0a* [[Unix.History]] . . . March 14, 2022, at 06:07 PM by [[~jrmu]]: [==]%0a* [[Unix.Exhibit]] . . . March 13, 2022, at 11:37 PM by [[~jrmu]]: [==]%0a* [[DNS.Ipv4rDNS]] . . . March 11, 2022, at 04:35 AM by [[~jrmu]]: [==]%0a* [[Debate.Dogfooding]] . . . March 10, 2022, at 05:14 AM by [[~jrmu]]: [==]%0a* [[Irc.Easy]] . . . March 05, 2022, at 08:56 PM by [[~jrmu]]: [==]%0a* [[Doxing.Defense]] . . . March 05, 2022, at 08:54 PM by [[~jrmu]]: [==]%0a* [[Mlmmj-archivist.Install]] . . . March 03, 2022, at 05:26 AM by [[~error]]: [==]%0a* [[Openbsd.IRCBridge]] . . . February 28, 2022, at 02:59 AM by [[~suzerain]]: [==]%0a* [[Unix101.Vi]] . . . February 27, 2022, at 08:16 PM by [[~jrmu]]: [==]%0a* [[Vi.Intro]] . . . February 27, 2022, at 04:16 PM by [[~Limits]]: [=Add Introduction to Vi=]%0a* [[Irc201.Irc201]] . . . February 27, 2022, at 04:21 AM by [[~suzerain]]: [==]%0a* [[9.Ideas]] . . . February 23, 2022, at 05:19 PM by [[~mkf]]: [==]%0a* [[Main.WikiSandbox]] . . . February 22, 2022, at 11:05 PM by [[~mkf]]: [==]%0a* [[Openhttpd.Perl]] . . . February 21, 2022, at 07:18 AM by [[~Naglfar]]: [==]%0a* [[Openbsd.Wesnothd]] . . . February 21, 2022, at 06:28 AM by [[~mkf]]: [=Wesnothd=]%0a* [[9.Audio]] . . . February 20, 2022, at 08:07 PM by [[~jrmu]]: [==]%0a* [[Cloud9p.Roadmap]] . . . February 20, 2022, at 06:54 PM by [[~xfnw]]: [==]%0a* [[Openbsd.Xonotic]] . . . February 20, 2022, at 07:43 AM by [[~mkf]]: [=A xonotic server has apperad! pt.2=]%0a* [[Bouncer.Irssi]] . . . February 16, 2022, at 06:26 PM by [[~izzyb]]: [=clarified wording in example=]%0a* [[PuTTY.PuTTYgen]] . . . February 16, 2022, at 05:24 AM by [[~jrmu]]: [==]%0a* [[Rcd.Configure]] . . . February 15, 2022, at 04:46 PM by [[~xfnw]]: [=fix title formatting=]%0a* [[Debate.Ircnowd]] . . . February 14, 2022, at 06:24 PM by [[~jrmu]]: [==]%0a* [[Stopm.Stopm]] . . . February 14, 2022, at 06:16 PM by [[~jrmu]]: [==]%0a* [[Police.Fingerprints]] . . . February 12, 2022, at 02:09 PM by [[~xfnw]]: [=ip addresses should be sorted with sort -V=]%0a* [[Openbsd.Police]] . . . February 10, 2022, at 07:36 PM by [[~jrmu]]: [==]%0a* [[Dns.Dns]] . . . February 10, 2022, at 07:39 AM by [[~nixdork]]: [=Fix typo=]%0a* [[Dns.BindResolver]] . . . February 10, 2022, at 07:30 AM by [[~nixdork]]: [=First draft of bind resolver howto=]%0a* [[Botnow.SqliteViews]] . . . February 10, 2022, at 02:00 AM by [[~xfnw]]: [==]%0a* [[Relayd.TLSMulti]] . . . February 08, 2022, at 06:45 AM by [[~Naglfar]]: [=Fix listening port for https=]%0a* [[Relayd.Acceleration]] . . . February 08, 2022, at 06:27 AM by [[~Naglfar]]: [=Fix: https forwarding port=]%0a* [[AncientWisdom.Bio]] . . . February 07, 2022, at 01:18 PM by [[~AncientWisdom]]: [==]%0a* [[Squirrelmail.Install]] . . . February 06, 2022, at 09:25 AM by [[~Naglfar]]: [=Update SquirrelMail version to 1.4.23 [SVN] and PHP 8.0.x=]%0a* [[Minutemin.Questions]] . . . February 05, 2022, at 09:16 AM by [[~jrmu]]: [==]%0a* [[Minutemin.Server]] . . . February 05, 2022, at 08:14 AM by [[~jrmu]]: [==]%0a* [[Vmm.SlackwareIso]] . . . February 03, 2022, at 10:53 PM by [[~Naglfar]]: [=Slackware 15.0 x86 stable is released=]%0a* [[Vmctl.Usage]] . . . February 03, 2022, at 06:24 PM by [[~miniontoby]]: [=fixed attachment=]%0a* [[Duplicity.Usage]] . . . February 02, 2022, at 10:31 AM by [[~jrmu]]: [==]%0a* [[Openssl.Encryptfile]] . . . February 02, 2022, at 09:29 AM by [[~jrmu]]: [==]%0a* [[Bots.Basicbot]] . . . January 31, 2022, at 08:54 PM by [[~izzyb]]: [==]%0a* [[Dovecot.Install]] . . . January 29, 2022, at 09:35 PM by [[~forero]]: [=comment out=]%0a* [[Openrsync.Usage]] . . . January 29, 2022, at 09:04 AM by [[~Naglfar]]: [=update from rsync to openrsync=]%0a* [[Openbsd.Tcpip]] . . . January 24, 2022, at 05:45 PM by [[~jrmu]]: [==]%0a* [[Synclient.Configure]] . . . January 24, 2022, at 06:02 AM by [[~jrmu]]: [==]%0a* [[Crontab.Edit]] . . . January 23, 2022, at 05:46 PM by [[~mkf]]: [==]%0a* [[9.Install]] . . . January 22, 2022, at 06:57 AM by [[~mkf]]: [==]%0a* [[Asterisk.Install]] . . . January 19, 2022, at 05:34 AM by [[~jrmu]]: [==]%0a* [[9.Rcpu]] . . . January 17, 2022, at 10:19 PM by [[~jrmu]]: [==]%0a* [[9.9p]] . . . January 17, 2022, at 08:47 PM by [[~mkf]]: [==]%0a* [[9.Ndb]] . . . January 16, 2022, at 06:46 PM by [[~mkf]]: [==]%0a* [[Openbsd.U9fs]] . . . January 16, 2022, at 06:23 PM by [[~mkf]]: [==]%0a* [[Dns.FQDN]] . . . January 15, 2022, at 10:16 PM by [[~jrmu]]: [==]%0a* [[Pgp.Create]] . . . January 14, 2022, at 09:14 AM by [[~baytuch]]: [==]%0a* [[Nsd.DNSSec]] . . . January 14, 2022, at 02:53 AM by [[~pyr3x]]: [==]%0a* [[Openbsd.Locale]] . . . January 12, 2022, at 01:23 PM by [[~baytuch]]: [==]%0a* [[Openbsd.Openbsd]] . . . January 12, 2022, at 01:19 PM by [[~baytuch]]: [==]%0a* [[Ksh.Autocomplete]] . . . January 11, 2022, at 01:44 PM by [[~miniontoby]]: [=updated url=]%0a* [[Gpg.Verify]] . . . January 08, 2022, at 09:48 PM by [[~Naglfar]]: [=Add description=]%0a* [[Mlmmj.Archive]] . . . January 06, 2022, at 10:52 PM by [[~Hawk]]: [==]%0a* [[9.Hostowner]] . . . January 06, 2022, at 11:29 AM by [[~mkf]]: [==]%0a* [[9.Drawterm]] . . . January 06, 2022, at 11:16 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Dogfood]] . . . January 06, 2022, at 08:48 AM by [[~jrmu]]: [==]%0a* [[Got.Repo]] . . . January 06, 2022, at 01:20 AM by [[~jrmu]]: [==]%0a* [[9.Authsrv]] . . . January 05, 2022, at 04:59 AM by [[~mkf]]: [=hmm=]%0a* [[9.Chording]] . . . January 03, 2022, at 02:40 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Status]] . . . January 03, 2022, at 06:06 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Roadmap]] . . . January 03, 2022, at 06:06 AM by [[~jrmu]]: [==]%0a* [[Openbsd.BBB]] . . . January 03, 2022, at 12:06 AM by [[~jrmu]]: [==]%0a* [[Got.Server]] . . . January 02, 2022, at 05:42 PM by [[~jrmu]]: [==]%0a* [[Census.Census]] . . . January 02, 2022, at 11:27 AM by [[~jrmu]]: [==]%0a* [[Bncnow.Bncnow]] . . . January 02, 2022, at 11:18 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Projects]] . . . January 02, 2022, at 11:09 AM by [[~jrmu]]: [==]%0a* [[Ircfs.Intro]] . . . January 02, 2022, at 10:49 AM by [[~jrmu]]: [==]%0a* [[Ircnowd.Ircnowd]] . . . January 02, 2022, at 06:32 AM by [[~jrmu]]: [==]%0a* [[Marketing.Marketing]] . . . January 02, 2022, at 06:20 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Sonsofliberty]] . . . January 02, 2022, at 06:06 AM by [[~jrmu]]: [==]%0a* [[Pkgadd.CheckUpdates]] . . . January 01, 2022, at 04:29 AM by [[~pyr3x]]: [==]%0a* [[Ircnow.Roadmap2021]] . . . December 30, 2021, at 06:31 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Sftp]] . . . December 30, 2021, at 06:01 AM by [[~jrmu]]: [==]%0a* [[Sftp.Chroot]] . . . December 30, 2021, at 06:01 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Status2022]] . . . December 30, 2021, at 05:35 AM by [[~jrmu]]: [==]%0a* [[Eggdrop.UTF8]] . . . December 28, 2021, at 08:21 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Uim]] . . . December 26, 2021, at 01:45 AM by [[~jrmu]]: [==]%0a* [[Sshwifty.Install]] . . . December 23, 2021, at 02:49 PM by [[~miniontoby]]: [=created=]%0a* [[Nsd.Zone]] . . . December 23, 2021, at 10:33 AM by [[~jrmu]]: [==]%0a* [[Openhttpd.Hosting]] . . . December 23, 2021, at 03:06 AM by [[~jrmu]]: [==]%0a* [[OpenSSH.RSAkeys]] . . . December 22, 2021, at 03:18 PM by [[~miniontoby]]: [==]%0a* [[Openbsd.Wifi]] . . . December 22, 2021, at 02:59 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Recordaudio]] . . . December 22, 2021, at 01:24 PM by [[~jrmu]]: [==]%0a* [[9.9]] . . . December 22, 2021, at 11:30 AM by [[~xfnw]]: [=fix some grammatical errors=]%0a* [[Parec.Record]] . . . December 22, 2021, at 07:02 AM by [[~jrmu]]: [==]%0a* [[Sox.Concat]] . . . December 22, 2021, at 07:01 AM by [[~jrmu]]: [==]%0a* [[Ffmpeg.Recordscreen]] . . . December 22, 2021, at 07:00 AM by [[~jrmu]]: [==]%0a* [[JuiceSSH.Connect]] . . . December 20, 2021, at 01:03 PM by [[~jrmu]]: [==]%0a* [[Marketing.Memes]] . . . December 20, 2021, at 12:55 PM by [[~jrmu]]: [==]%0a* [[9.Independent]] . . . December 20, 2021, at 12:47 PM by [[~jrmu]]: [==]%0a* [[MacScreenSharing.Connect]] . . . December 20, 2021, at 11:57 AM by [[~jrmu]]: [==]%0a* [[9.Partdisk]] . . . December 20, 2021, at 11:39 AM by [[~jrmu]]: [==]%0a* [[Got.Usage]] . . . December 17, 2021, at 04:44 PM by [[~jrmu]]: [==]%0a* [[Irc.Federation]] . . . December 17, 2021, at 02:03 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Gotweb]] . . . December 16, 2021, at 03:36 PM by [[~jrmu]]: [==]%0a* [[Irc.Chanop]] . . . December 14, 2021, at 04:58 AM by [[~mkf]]: [==]%0a* [[Ircnow.SSHFingerprints]] . . . December 06, 2021, at 02:03 AM by [[~jrmu]]: [==]%0a* [[9.Todo]] . . . December 03, 2021, at 07:52 PM by [[~mkf]]: [==]%0a* [[Vps.Vps]] . . . December 03, 2021, at 12:35 PM by [[~dodocrypto]]: [==]%0a* [[Pylink.Chroot]] . . . December 02, 2021, at 02:03 PM by [[~jrmu]]: [==]%0a* [[Pylink.Install]] . . . December 02, 2021, at 02:02 PM by [[~jrmu]]: [==]%0a* [[Jrmu.Marriage]] . . . December 02, 2021, at 06:09 AM by [[~jrmu]]: [==]%0a* [[Hosting.Hosting]] . . . December 01, 2021, at 02:01 PM by [[~jrmu]]: [==]%0a* [[Mc.Usage]] . . . November 29, 2021, at 07:53 PM by [[~mkf]]: [==]%0a* [[PuTTY.Connect]] . . . November 29, 2021, at 12:13 PM by [[~jrmu]]: [==]%0a* [[Email.Email]] . . . November 29, 2021, at 04:19 AM by [[~mkf]]: [==]%0a* [[Texlive.Sinhala]] . . . November 28, 2021, at 06:35 AM by [[~jrmu]]: [==]%0a* [[MailWindows.Connect]] . . . November 27, 2021, at 03:12 PM by [[~jrmu]]: [==]%0a* [[Gajim.Biboumi]] . . . November 27, 2021, at 01:02 PM by [[~jrmu]]: [==]%0a* [[Xmpp.Xmpp]] . . . November 27, 2021, at 12:33 PM by [[~jrmu]]: [==]%0a* [[Mcabber.Connect]] . . . November 26, 2021, at 01:38 PM by [[~jrmu]]: [==]%0a* [[ChatSecure.Connect]] . . . November 26, 2021, at 11:36 AM by [[~jrmu]]: [==]%0a* [[9.9pfs]] . . . November 24, 2021, at 02:00 PM by [[~mkf]]: [==]%0a* [[Vmm.DebianInstall]] . . . November 24, 2021, at 11:44 AM by [[~nicoz]]: [==]%0a* [[Siskin.Connect]] . . . November 23, 2021, at 04:38 PM by [[~jrmu]]: [==]%0a* [[Dino.Connect]] . . . November 23, 2021, at 02:10 PM by [[~mkf]]: [==]%0a* [[Monal.Connect]] . . . November 23, 2021, at 10:32 AM by [[~jrmu]]: [==]%0a* [[Xabber.Connect]] . . . November 23, 2021, at 10:20 AM by [[~jrmu]]: [==]%0a* [[DNS.DMARC]] . . . November 22, 2021, at 10:52 PM by [[~Hawk]]: [==]%0a* [[StorkIM.Connect]] . . . November 21, 2021, at 05:03 AM by [[~jrmu]]: [==]%0a* [[Conversations.Connect]] . . . November 20, 2021, at 05:37 PM by [[~jrmu]]: [==]%0a* [[Yaxim.Connect]] . . . November 20, 2021, at 05:09 PM by [[~jrmu]]: [==]%0a* [[Adium.Connect]] . . . November 20, 2021, at 07:32 AM by [[~jrmu]]: [==]%0a* [[Vmm.AlmaLinux]] . . . November 20, 2021, at 06:47 AM by [[~dodocrypto]]: [==]%0a* [[Vmm.DebianIso]] . . . November 19, 2021, at 09:35 PM by [[~nicoz]]: [==]%0a* [[Psi.Connect]] . . . November 17, 2021, at 03:23 PM by [[~jrmu]]: [==]%0a* [[Pidgin.Connect]] . . . November 17, 2021, at 10:18 AM by [[~jrmu]]: [==]%0a* [[Gajim.Connect]] . . . November 17, 2021, at 08:01 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Training]] . . . November 16, 2021, at 03:30 PM by [[~Hawk]]: [==]%0a* [[Opera.Connect]] . . . November 16, 2021, at 12:12 AM by [[~wiz]]: [==]%0a* [[0dev.0dev]] . . . November 12, 2021, at 03:00 AM by [[~dodocrypto]]: [==]%0a* [[Vmm.RockyLinux]] . . . November 11, 2021, at 10:51 AM by [[~dodocrypto]]: [==]%0a* [[Opensmtpd.Openrelay]] . . . November 11, 2021, at 10:37 AM by [[~mkf]]: [==]%0a* [[Sandbox.0dev]] . . . November 11, 2021, at 01:45 AM by [[~dodocrypto]]: [==]%0a* [[Nsd.Configure]] . . . November 10, 2021, at 11:58 AM by [[~Hawk]]: [==]%0a* [[Got.Mirror]] . . . November 07, 2021, at 05:22 PM by [[~jrmu]]: [==]%0a* [[Vpn.OpenIKED]] . . . November 07, 2021, at 03:45 PM by [[~gloNO]]: [==]%0a* [[Openbsd.Got]] . . . November 07, 2021, at 03:16 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Opsofliberty]] . . . November 06, 2021, at 05:15 PM by [[~jrmu]]: [==]%0a* [[Emacs.Emacs]] . . . November 06, 2021, at 04:39 PM by [[~LohanG]]: [==]%0a* [[ZNC.Support]] . . . November 06, 2021, at 03:53 PM by [[~LohanG]]: [=added libera=]%0a* [[Vmm.Plan9]] . . . November 05, 2021, at 09:31 PM by [[~mkf]]: [=???=]%0a* [[9.Stone]] . . . November 04, 2021, at 04:09 PM by [[~meeekeeef]]: [==]%0a* [[9.Zuke]] . . . November 04, 2021, at 04:01 PM by [[~meeekeeef]]: [==]%0a* [[Openbsd.Drawtermssh]] . . . November 04, 2021, at 03:54 PM by [[~meeekeeef]]: [=ssh bad >:[=]%0a* [[Netcat.Http]] . . . November 03, 2021, at 02:30 PM by [[~jrmu]]: [==]%0a* [[Telnet.Http]] . . . November 03, 2021, at 02:18 PM by [[~jrmu]]: [==]%0a* [[Znc.Relayd]] . . . November 03, 2021, at 10:18 AM by [[~jrmu]]: [==]%0a* [[ZNC.Admin]] . . . November 02, 2021, at 05:44 PM by [[~jrmu]]: [==]%0a* [[Znc.Debug]] . . . November 02, 2021, at 03:23 PM by [[~jrmu]]: [==]%0a* [[Znc.Usage]] . . . November 02, 2021, at 03:09 PM by [[~jrmu]]: [==]%0a* [[Ambassador.Markets]] . . . November 02, 2021, at 01:29 PM by [[~jrmu]]: [==]%0a* [[Almanack.Rewrite]] . . . October 31, 2021, at 10:30 PM by [[~hydragyrum]]: [==]%0a* [[9.Sysupdate]] . . . October 31, 2021, at 10:21 PM by [[~meeekeeef]]: [==]%0a* [[Debian.Debian]] . . . October 31, 2021, at 12:34 PM by [[~monaco]]: [==]%0a* [[Ircnow.Victorycpus]] . . . October 30, 2021, at 08:17 AM by [[~jrmu]]: [==]%0a* [[Gnus.Connect]] . . . October 30, 2021, at 01:32 AM by [[~hydragyrum]]: [==]%0a* [[Ircnow.Settler]] . . . October 29, 2021, at 04:03 PM by [[~jrmu]]: [==]%0a* [[Debian.Nginxphpfpm]] . . . October 29, 2021, at 12:26 PM by [[~monaco]]: [==]%0a* [[Debian.Nginx]] . . . October 29, 2021, at 12:18 PM by [[~monaco]]: [==]%0a* [[Vmm.Homerouter]] . . . October 26, 2021, at 05:08 PM by [[~jrmu]]: [==]%0a* [[9.Netcat]] . . . October 25, 2021, at 03:40 PM by [[~jrmu]]: [==]%0a* [[9.Plan9ini]] . . . October 24, 2021, at 04:30 PM by [[~jrmu]]: [==]%0a* [[Iked.Newconfig]] . . . October 24, 2021, at 03:49 PM by [[~tool]]: [==]%0a* [[Lua.Minetest-1]] . . . October 24, 2021, at 10:30 AM by [[~debiankaios]]: [==]%0a* [[9.Links]] . . . October 24, 2021, at 06:29 AM by [[~mkf]]: [==]%0a* [[9.Keybindings]] . . . October 24, 2021, at 06:15 AM by [[~mkf]]: [=heheheheheh=]%0a* [[Xdefaults.Configure]] . . . October 23, 2021, at 02:40 PM by [[~jrmu]]: [==]%0a* [[TigerVNC.SSH]] . . . October 23, 2021, at 11:56 AM by [[~Hawk]]: [==]%0a* [[Rio.Customize]] . . . October 22, 2021, at 09:22 AM by [[~jrmu]]: [==]%0a* [[9.Ssh]] . . . October 22, 2021, at 12:54 AM by [[~jrmu]]: [==]%0a* [[Vmm.Devuan4Iso]] . . . October 21, 2021, at 04:29 PM by [[~debiankaios]]: [=changed beowulf_3.1.1 to chimaera_4.0.0=]%0a* [[9.101]] . . . October 20, 2021, at 04:53 PM by [[~jrmu]]: [==]%0a* [[Fvwm.Configure]] . . . October 18, 2021, at 10:20 AM by [[~jrmu]]: [==]%0a* [[KISSmo.KISSmo]] . . . October 18, 2021, at 09:58 AM by [[~monaco]]: [==]%0a* [[KISSmo.Download]] . . . October 18, 2021, at 09:53 AM by [[~monaco]]: [==]%0a* [[KISSmo.About]] . . . October 18, 2021, at 09:52 AM by [[~monaco]]: [==]%0a* [[KISSmo.Install]] . . . October 18, 2021, at 09:44 AM by [[~monaco]]: [==]%0a* [[Cvs.Repo]] . . . October 17, 2021, at 08:32 AM by [[~jrmu]]: [==]%0a* [[Cvs.Anoncvs]] . . . October 17, 2021, at 04:00 AM by [[~jrmu]]: [==]%0a* [[Cvs.Commit]] . . . October 17, 2021, at 03:58 AM by [[~jrmu]]: [==]%0a* [[Cvs.Cvsweb]] . . . October 17, 2021, at 03:28 AM by [[~jrmu]]: [==]%0a* [[9.Cvsfs]] . . . October 15, 2021, at 12:58 PM by [[~mkf]]: [==]%0a* [[Openbsd.Sysupgrade70]] . . . October 15, 2021, at 11:02 AM by [[~mkf]]: [=humans are easily confused.=]%0a* [[Openbsd.Ilines]] . . . October 15, 2021, at 02:36 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Pmwiki]] . . . October 14, 2021, at 02:14 PM by [[~miniontoby]]: [=added credits =]%0a* [[Vmm.Devuan-ISO]] . . . October 14, 2021, at 09:50 AM by [[~siva]]: [==]%0a* [[Vmm.Devuan-Simple]] . . . October 14, 2021, at 09:48 AM by [[~siva]]: [=Tutorial Created=]%0a* [[Cvs.Intro]] . . . October 13, 2021, at 03:49 PM by [[~jrmu]]: [==]%0a* [[Synapse.Install]] . . . October 12, 2021, at 02:49 PM by [[~miniontoby]]: [=Created=]%0a* [[Ircnow.Oper]] . . . October 12, 2021, at 03:02 AM by [[~jrmu]]: [==]%0a* [[Terms.Privacy]] . . . October 11, 2021, at 11:48 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Diversity]] . . . October 09, 2021, at 02:56 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Linux]] . . . October 08, 2021, at 04:51 AM by [[~jrmu]]: [==]%0a* [[OpenBSD.ResetPassword]] . . . October 07, 2021, at 03:56 AM by [[~jrmu]]: [==]%0a* [[Terms.Vps]] . . . October 06, 2021, at 12:30 AM by [[~jrmu]]: [==]%0a* [[9.JSDrawterm]] . . . September 30, 2021, at 06:06 PM by [[~jrmu]]: [==]%0a* [[9.Fonts]] . . . September 28, 2021, at 05:13 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Install69]] . . . September 27, 2021, at 05:59 PM by [[~jrmu]]: [==]%0a* [[Cvs.Guide]] . . . September 26, 2021, at 02:28 PM by [[~Miniontoby]]: [==]%0a* [[Openbsd.PFStable]] . . . September 24, 2021, at 03:28 PM by [[~miniontoby]]: [==]%0a* [[License.IrcnowV2]] . . . September 21, 2021, at 03:53 AM by [[~jrmu]]: [==]%0a* [[Dhcpd.Configure]] . . . September 15, 2021, at 04:02 PM by [[~jrmu]]: [==]%0a* [[Vmm.Router]] . . . September 14, 2021, at 12:11 PM by [[~jrmu]]: [==]%0a* [[Weechat.Relay]] . . . September 11, 2021, at 05:46 PM by [[~mkf]]: [==]%0a* [[Gry.Bio]] . . . September 11, 2021, at 02:49 AM by [[~jrmu]]: [==]%0a* [[Hopm.Telnet]] . . . September 10, 2021, at 06:13 AM by [[~mkf]]: [==]%0a* [[Wraith.Chroot]] . . . September 10, 2021, at 06:11 AM by [[~mkf]]: [==]%0a* [[Mutt.Connect]] . . . September 10, 2021, at 06:01 AM by [[~mkf]]: [=6.8 -> 6.9=]%0a* [[DNS.DKIM]] . . . September 09, 2021, at 04:00 PM by [[~jrmu]]: [==]%0a* [[ZNC.Skins]] . . . September 06, 2021, at 07:58 AM by [[~mkf]]: [="Huh, pmwiki has a bug." no numbered list if use monospaced text. :(=]%0a* [[Seamonkey.Connect]] . . . August 28, 2021, at 01:05 PM by [[~mkf]]: [==]%0a* [[Debate.Wikistyle]] . . . August 27, 2021, at 03:29 PM by [[~mkf]]: [==]%0a* [[Email.EmailAndroidEmailApp]] . . . August 27, 2021, at 02:37 PM by [[~mkf]]: [==]%0a* [[Tmux.Shortcuts]] . . . August 27, 2021, at 12:56 PM by [[~mkf]]: [==]%0a* [[Vmm.Haiku]] . . . August 27, 2021, at 12:53 PM by [[~mkf]]: [==]%0a* [[Openbsd.Mailopenproxy]] . . . August 25, 2021, at 08:19 PM by [[~mkf]]: [==]%0a* [[Openbsd.Two-FactorAuth]] . . . August 23, 2021, at 07:39 PM by [[~mkf]]: [=login.db compiling is no longer recommended.=]%0a* [[Vmm.DragonflyBSD]] . . . August 23, 2021, at 07:31 PM by [[~mkf]]: [=logs=]%0a* [[Vmm.NetBSD]] . . . August 23, 2021, at 07:01 PM by [[~mkf]]: [=better logs?=]%0a* [[Mariadb.Install]] . . . August 23, 2021, at 04:42 PM by [[~wiz]]: [==]%0a* [[DNS.Ipv6rDNS]] . . . August 23, 2021, at 11:55 AM by [[~jrmu]]: [==]%0a* [[Pipes.Redirection]] . . . August 23, 2021, at 03:50 AM by [[~jrmu]]: [==]%0a* [[Ksh.Redirection]] . . . August 23, 2021, at 03:50 AM by [[~jrmu]]: [==]%0a* [[DNS.RDNS]] . . . August 22, 2021, at 11:20 PM by [[~jrmu]]: [==]%0a* [[Rbldnsd.Install]] . . . August 22, 2021, at 07:58 PM by [[~mkf]]: [=wiki-ish.=]%0a* [[Netcat.Smtp]] . . . August 22, 2021, at 06:58 PM by [[~mkf]]: [=byebye=]%0a* [[Vmm.UbuntuIso]] . . . August 22, 2021, at 06:40 AM by [[~jrmu]]: [==]%0a* [[Vmm.DevuanIso]] . . . August 22, 2021, at 05:44 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Npppd]] . . . August 21, 2021, at 01:43 PM by [[~mkf]]: [==]%0a* [[Shell.Shell]] . . . August 21, 2021, at 11:42 AM by [[~jrmu]]: [==]%0a* [[Tls.CA]] . . . August 21, 2021, at 11:10 AM by [[~jrmu]]: [==]%0a* [[Openssl.Imap]] . . . August 21, 2021, at 04:05 AM by [[~AncientWisdom]]: [==]%0a* [[Openbsd.FilePermissions]] . . . August 20, 2021, at 02:20 AM by [[~Nate S]]: [==]%0a* [[Ircnow.Todo]] . . . August 17, 2021, at 08:41 AM by [[~mkf]]: [==]%0a* [[Vmm.GuixIso]] . . . August 16, 2021, at 05:12 PM by [[~jrmu]]: [==]%0a* [[Vmm.VoidIso]] . . . August 16, 2021, at 06:19 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Gophernicus]] . . . August 15, 2021, at 02:06 AM by [[~mkf]]: [==]%0a* [[Gazette.Gazette]] . . . August 15, 2021, at 01:14 AM by [[~mkf]]: [=a bit polishing=]%0a* [[EmailTray.Connect]] . . . August 15, 2021, at 12:11 AM by [[~mkf]]: [==]%0a* [[Bouncer.Konversation]] . . . August 14, 2021, at 02:46 PM by [[~mkf]]: [==]%0a* [[Bouncer.Bouncer]] . . . August 14, 2021, at 02:41 PM by [[~mkf]]: [=Hydra IRC is too old.=]%0a* [[Squirrelmail.Connect]] . . . August 14, 2021, at 04:47 AM by [[~mkf]]: [==]%0a* [[Termius.Connect]] . . . August 14, 2021, at 04:42 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Openhttpd]] . . . August 13, 2021, at 07:29 AM by [[~jrmu]]: [==]%0a* [[ConnectBot.Keys]] . . . August 12, 2021, at 06:58 AM by [[~jrmu]]: [==]%0a* [[Debate.Monopolydanger]] . . . August 11, 2021, at 07:01 PM by [[~mkf]]: [==]%0a* [[ConnectBot.Connect]] . . . August 11, 2021, at 04:34 PM by [[~jrmu]]: [==]%0a* [[Openbsd.ZNCModules]] . . . August 11, 2021, at 03:06 PM by [[~wiz]]: [==]%0a* [[Termux.Connect]] . . . August 11, 2021, at 05:28 AM by [[~jrmu]]: [==]%0a* [[Web101.Web101]] . . . August 10, 2021, at 04:20 PM by [[~craziness]]: [=started web101=]%0a* [[Openbsd.Bitlbee]] . . . August 10, 2021, at 12:03 PM by [[~mkf]]: [==]%0a* [[Openbsd.Pppoe]] . . . August 10, 2021, at 11:56 AM by [[~mkf]]: [==]%0a* [[Sylpheed.Connect]] . . . August 10, 2021, at 11:50 AM by [[~mkf]]: [=eh, forgot that "[" again=]%0a* [[MacTerminal.Connect]] . . . August 10, 2021, at 10:33 AM by [[~jrmu]]: [==]%0a* [[OpenSSH.Connect]] . . . August 10, 2021, at 10:19 AM by [[~jrmu]]: [==]%0a* [[Fdroid.Install]] . . . August 10, 2021, at 09:05 AM by [[~jrmu]]: [==]%0a* [[Shell.Sshfingerprints]] . . . August 10, 2021, at 08:55 AM by [[~jrmu]]: [==]%0a* [[OpenSSH.Keygen]] . . . August 09, 2021, at 06:27 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Sshkeys]] . . . August 09, 2021, at 04:42 PM by [[~jrmu]]: [==]%0a* [[Vmm.9front]] . . . August 09, 2021, at 06:16 AM by [[~mkf]]: [==]%0a* [[Bouncer.WinIRC]] . . . August 09, 2021, at 06:03 AM by [[~mkf]]: [==]%0a* [[IP.Myaddress]] . . . August 07, 2021, at 05:14 PM by [[~jrmu]]: [==]%0a* [[SerFISH.Connect]] . . . August 06, 2021, at 05:05 PM by [[~jrmu]]: [==]%0a* [[Sshwifty.Connect]] . . . August 06, 2021, at 05:00 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Squirrelmail]] . . . August 06, 2021, at 10:32 AM by [[~baytuch]]: [==]%0a* [[Eggdrop.NickServ]] . . . August 05, 2021, at 07:27 AM by [[~jrmu]]: [==]%0a* [[Medals.Intro]] . . . August 04, 2021, at 08:34 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Dnszones]] . . . August 03, 2021, at 09:26 AM by [[~jrmu]]: [==]%0a* [[Dns.Zonefile]] . . . August 03, 2021, at 09:21 AM by [[~jrmu]]: [==]%0a* [[Irc.Clients]] . . . August 02, 2021, at 02:54 PM by [[~mkf]]: [==]%0a* [[Minutemin.Ifconfig]] . . . August 02, 2021, at 12:59 PM by [[~mkf]]: [==]%0a* [[Openbsd.Matterbridge]] . . . August 02, 2021, at 12:33 PM by [[~mkf]]: [==]%0a* [[Znc.I18n]] . . . August 02, 2021, at 09:12 AM by [[~mkf]]: [==]%0a* [[Almanack.Alt]] . . . August 02, 2021, at 07:52 AM by [[~jrmu]]: [==]%0a* [[Eggdrop.Simple]] . . . August 02, 2021, at 07:49 AM by [[~jrmu]]: [==]%0a* [[Eggdrop.Install]] . . . August 02, 2021, at 05:11 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Vhost]] . . . August 02, 2021, at 02:32 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Hardware]] . . . August 01, 2021, at 01:48 PM by [[~jrmu]]: [==]%0a* [[Thunderirc.Hardware]] . . . August 01, 2021, at 01:47 PM by [[~jrmu]]: [==]%0a* [[Planetofnix.Hardware]] . . . August 01, 2021, at 01:46 PM by [[~jrmu]]: [==]%0a* [[Bsdforall.Hardware]] . . . August 01, 2021, at 01:45 PM by [[~jrmu]]: [==]%0a* [[Oddprotocol.Hardware]] . . . August 01, 2021, at 01:28 PM by [[~jrmu]]: [==]%0a* [[Lecturify.Hardware]] . . . August 01, 2021, at 01:27 PM by [[~jrmu]]: [==]%0a* [[Eggdrop184.Install]] . . . August 01, 2021, at 07:07 AM by [[~jrmu]]: [==]%0a* [[Congress.Procedure]] . . . August 01, 2021, at 06:41 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Chroot]] . . . July 31, 2021, at 02:47 AM by [[~jrmu]]: [==]%0a* [[Syslogd.Remote]] . . . July 30, 2021, at 03:30 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Vmmuser]] . . . July 29, 2021, at 05:31 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Vmminstall]] . . . July 29, 2021, at 05:28 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Vmm]] . . . July 29, 2021, at 05:24 AM by [[~jrmu]]: [==]%0a* [[Openbsd.ZNCAdmin]] . . . July 28, 2021, at 06:14 AM by [[~jrmu]]: [==]%0a* [[Openbsd.ZNCSupport]] . . . July 28, 2021, at 06:14 AM by [[~jrmu]]: [==]%0a* [[ZNC.Troubleshoot]] . . . July 28, 2021, at 06:12 AM by [[~jrmu]]: [==]%0a* [[Znc.Troubleshoot]] . . . July 28, 2021, at 06:11 AM by [[~jrmu]]: [==]%0a* [[Kill.Usage]] . . . July 28, 2021, at 03:42 AM by [[~jrmu]]: [==]%0a* [[Ps.Usage]] . . . July 28, 2021, at 03:42 AM by [[~jrmu]]: [==]%0a* [[Dns.Vhost]] . . . July 28, 2021, at 03:05 AM by [[~jrmu]]: [==]%0a* [[Host.Usage]] . . . July 28, 2021, at 01:57 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Php]] . . . July 27, 2021, at 02:53 PM by [[~jrmu]]: [==]%0a* [[UsersCategoryMirrory.IRCFreeHomesteadVPS]] . . . July 26, 2021, at 06:12 AM by [[~category_mirror]]: [==]%0a* [[Ircnow.PioneerTldr]] . . . July 26, 2021, at 06:04 AM by [[~jrmu]]: [==]%0a* [[UsersCategoryMirrory.Pioneer]] . . . July 26, 2021, at 04:22 AM by [[~category_mirror]]: [==]%0a* [[Openbsd.Dig]] . . . July 25, 2021, at 06:50 AM by [[~jrmu]]: [==]%0a* [[Openbsd.RDNS]] . . . July 23, 2021, at 06:44 AM by [[~jrmu]]: [==]%0a* [[Wordpress.Install]] . . . July 21, 2021, at 06:59 PM by [[~mkf]]: [==]%0a* [[Bouncer.All]] . . . July 21, 2021, at 06:37 PM by [[~mkf]]: [==]%0a* [[Lemon.Todo]] . . . July 21, 2021, at 06:21 PM by [[~mkf]]: [==]%0a* [[Irc.Guide]] . . . July 21, 2021, at 06:02 PM by [[~mkf]]: [=client -> clients=]%0a* [[Openbsd.Sic]] . . . July 21, 2021, at 05:57 PM by [[~mkf]]: [=first edit.=]%0a* [[Minutemin.Progress]] . . . July 21, 2021, at 08:10 AM by [[~jrmu]]: [==]%0a* [[Openssl.Check]] . . . July 20, 2021, at 01:27 PM by [[~jrmu]]: [==]%0a* [[Rsync.Usage]] . . . July 19, 2021, at 02:30 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Openrsync]] . . . July 18, 2021, at 02:01 PM by [[~jrmu]]: [==]%0a* [[Eggdrop.DuckHunt]] . . . July 17, 2021, at 06:34 AM by [[~jrmu]]: [==]%0a* [[Paster.Install]] . . . July 16, 2021, at 02:45 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Znc]] . . . July 16, 2021, at 10:43 AM by [[~jrmu]]: [==]%0a* [[Netizen.Become]] . . . July 14, 2021, at 09:47 AM by [[~jrmu]]: [==]%0a* [[Freedom.Bearcode]] . . . July 14, 2021, at 09:42 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Staticnet]] . . . July 12, 2021, at 05:48 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Dovecot]] . . . July 12, 2021, at 02:58 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Relayd]] . . . July 12, 2021, at 02:45 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Spf]] . . . July 12, 2021, at 03:08 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Mlmmj]] . . . July 08, 2021, at 09:42 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Eggdrop]] . . . July 02, 2021, at 03:20 AM by [[~jrmu]]: [==]%0a* [[Openssl.Http]] . . . June 30, 2021, at 04:44 AM by [[~mkf]]: [==]%0a* [[Debate.Oldsoftware]] . . . June 29, 2021, at 03:56 PM by [[~mkf]]: [==]%0a* [[Debate.Xmlflaws]] . . . June 29, 2021, at 03:54 PM by [[~mkf]]: [==]%0a* [[Debate.Wikipediadanger]] . . . June 29, 2021, at 03:51 PM by [[~mkf]]: [==]%0a* [[Debate.DCC]] . . . June 29, 2021, at 03:49 PM by [[~mkf]]: [==]%0a* [[Debate.Matrixflaws]] . . . June 29, 2021, at 03:48 PM by [[~mkf]]: [==]%0a* [[Debate.Webirc]] . . . June 29, 2021, at 03:48 PM by [[~mkf]]: [==]%0a* [[Debate.Nodejstrap]] . . . June 29, 2021, at 03:48 PM by [[~mkf]]: [==]%0a* [[Debate.Ircv3defense]] . . . June 29, 2021, at 03:45 PM by [[~mkf]]: [==]%0a* [[Openbsd.Newdisk]] . . . June 29, 2021, at 03:23 PM by [[~jrmu]]: [==]%0a* [[AndroidEmail.AndroidEmail]] . . . June 29, 2021, at 03:11 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Ed]] . . . June 28, 2021, at 04:04 PM by [[~mkf]]: [==]%0a* [[Openbsd.Unbound]] . . . June 27, 2021, at 12:12 PM by [[~jrmu]]: [==]%0a* [[Freedom.Religion]] . . . June 27, 2021, at 02:02 AM by [[~jrmu]]: [==]%0a* [[Tor.Hidden]] . . . June 26, 2021, at 08:56 PM by [[~mkf]]: [==]%0a* [[Freedom.Union]] . . . June 26, 2021, at 01:01 PM by [[~jrmu]]: [==]%0a* [[Freedom.Firstamendment]] . . . June 26, 2021, at 11:45 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Dkimproxy]] . . . June 25, 2021, at 12:56 PM by [[~jrmu]]: [==]%0a* [[MIF.Test]] . . . June 25, 2021, at 12:42 PM by [[~nsturtz]]: [==]%0a* [[Openbsd.Sysupgrade69]] . . . June 25, 2021, at 05:46 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Opensmtpd]] . . . June 23, 2021, at 02:21 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Ngircd]] . . . June 23, 2021, at 02:21 AM by [[~jrmu]]: [==]%0a* [[Openbsd.NgircdLink]] . . . June 22, 2021, at 07:50 PM by [[~mkf]]: [=delete=]%0a* [[File.File]] . . . June 22, 2021, at 07:43 PM by [[~mkf]]: [=linking=]%0a* [[Debate.Googledanger]] . . . June 20, 2021, at 08:05 AM by [[~mkf]]: [==]%0a* [[Debate.Linuxflaws]] . . . June 20, 2021, at 08:03 AM by [[~mkf]]: [=making hyperlinks=]%0a* [[Debate.Outreachkids]] . . . June 20, 2021, at 07:54 AM by [[~mkf]]: [==]%0a* [[Police.Intro]] . . . June 19, 2021, at 11:42 AM by [[~jrmu]]: [==]%0a* [[Freedom.Destiny]] . . . June 18, 2021, at 05:31 AM by [[~jrmu]]: [==]%0a* [[DNS.Mail]] . . . June 17, 2021, at 03:21 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Doas]] . . . June 13, 2021, at 01:19 PM by [[~jrmu]]: [==]%0a* [[Freedom.Freedom]] . . . June 13, 2021, at 09:13 AM by [[~jrmu]]: [==]%0a* [[Freedom.Press]] . . . June 13, 2021, at 09:12 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Shell]] . . . June 11, 2021, at 09:36 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Constitution]] . . . June 10, 2021, at 03:48 PM by [[~jrmu]]: [==]%0a* [[Netizen.Rights]] . . . June 10, 2021, at 03:21 PM by [[~jrmu]]: [==]%0a* [[IPv4.Overview]] . . . June 10, 2021, at 10:13 AM by [[~jrmu]]: [==]%0a* [[Ksh.Bash]] . . . June 09, 2021, at 11:31 AM by [[~jrmu]]: [==]%0a* [[PowerShell.Connect]] . . . June 09, 2021, at 11:10 AM by [[~jrmu]]: [==]%0a* [[Code.Code]] . . . June 08, 2021, at 05:24 PM by [[~mkf]]: [=better formating=]%0a* [[Grape.DonateUs]] . . . June 06, 2021, at 03:41 PM by [[~fizi]]: [==]%0a* [[Openbsd.Books]] . . . June 06, 2021, at 12:46 PM by [[~jrmu]]: [==]%0a* [[Grape.Grape]] . . . June 06, 2021, at 11:39 AM by [[~fizi]]: [==]%0a* [[Openbsd.Pfa]] . . . June 06, 2021, at 03:49 AM by [[~navic]]: [==]%0a* [[Vmm.Debian]] . . . June 04, 2021, at 07:48 PM by [[~mkf]]: [="LOL"=]%0a* [[DNS.Dnswl]] . . . June 04, 2021, at 11:11 AM by [[~jrmu]]: [==]%0a* [[Netcat.SMTP]] . . . June 04, 2021, at 09:59 AM by [[~jrmu]]: [==]%0a* [[Dkim.Dkimsign]] . . . June 04, 2021, at 09:07 AM by [[~jrmu]]: [==]%0a* [[Tor.Torsocks]] . . . June 04, 2021, at 06:16 AM by [[~jrmu]]: [==]%0a* [[Vpn.VpnIos]] . . . June 04, 2021, at 05:52 AM by [[~jrmu]]: [==]%0a* [[Vpn.VpnMac]] . . . June 04, 2021, at 05:40 AM by [[~jrmu]]: [==]%0a* [[Fdisk.Usage]] . . . June 04, 2021, at 05:04 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Wordpress]] . . . June 04, 2021, at 04:55 AM by [[~jrmu]]: [==]%0a* [[DNS.SPF]] . . . June 03, 2021, at 01:27 PM by [[~jrmu]]: [==]%0a* [[Terms.Terms]] . . . June 02, 2021, at 01:40 PM by [[~jrmu]]: [==]%0a* [[HostServ.Rules]] . . . June 01, 2021, at 08:11 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Anope]] . . . May 31, 2021, at 10:24 AM by [[~miniontoby]]: [=cp=]%0a* [[Openbsd.ACKFlood]] . . . May 29, 2021, at 06:20 AM by [[~mkf]]: [==]%0a* [[Openbsd.SSDP]] . . . May 29, 2021, at 06:18 AM by [[~mkf]]: [==]%0a* [[Openbsd.Anycast]] . . . May 29, 2021, at 06:01 AM by [[~mkf]]: [==]%0a* [[Ambassador.Networks]] . . . May 27, 2021, at 04:05 PM by [[~jrmu]]: [==]%0a* [[Marketing.Rules]] . . . May 26, 2021, at 06:15 AM by [[~jrmu]]: [==]%0a* [[Freenode.Power]] . . . May 26, 2021, at 04:38 AM by [[~jrmu]]: [==]%0a* [[Freenode.Money]] . . . May 25, 2021, at 03:29 PM by [[~jrmu]]: [==]%0a* [[Freenode.Takeover]] . . . May 25, 2021, at 05:28 AM by [[~jrmu]]: [==]%0a* [[Freedom.Freenode]] . . . May 25, 2021, at 01:48 AM by [[~jrmu]]: [==]%0a* [[Bouncer.Atomic]] . . . May 24, 2021, at 03:22 PM by [[~mkf]]: [=spacing=]%0a* [[Minetest.Updating]] . . . May 24, 2021, at 08:10 AM by [[~mkf]]: [=monospaced commands=]%0a* [[Shell.Putty]] . . . May 24, 2021, at 06:16 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Dmarc]] . . . May 21, 2021, at 09:22 AM by [[~jrmu]]: [==]%0a* [[Vmm.Optimize]] . . . May 19, 2021, at 04:04 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Stable]] . . . May 18, 2021, at 10:15 AM by [[~mkf]]: [==]%0a* [[Ircnow.VicePresident]] . . . May 18, 2021, at 08:15 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Sheriff]] . . . May 18, 2021, at 08:00 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Ambassador]] . . . May 18, 2021, at 07:42 AM by [[~jrmu]]: [==]%0a* [[Pf.Guide]] . . . May 17, 2021, at 03:37 AM by [[~bejelentkezni]]: [==]%0a* [[Openbsd.Disklabel]] . . . May 17, 2021, at 03:33 AM by [[~bejelentkezni]]: [==]%0a* [[Openbsd.Fdisk]] . . . May 17, 2021, at 03:27 AM by [[~bejelentkezni]]: [==]%0a* [[NewsNow.Install]] . . . May 16, 2021, at 06:49 AM by [[~mkf]]: [="$"=]%0a* [[Tmux.Share]] . . . May 15, 2021, at 02:27 AM by [[~mistera]]: [==]%0a* [[Openbsd.Security]] . . . May 14, 2021, at 03:14 AM by [[~caesar]]: [==]%0a* [[Bouncer.Vision]] . . . May 13, 2021, at 09:47 AM by [[~mkf]]: [=added home page, removed "..."s=]%0a* [[Minetest.Worldbackup]] . . . May 12, 2021, at 11:02 AM by [[~AES]]: [==]%0a* [[Minetest.Texturestyle]] . . . May 12, 2021, at 11:00 AM by [[~AES]]: [==]%0a* [[Minetest.Serverlocations]] . . . May 12, 2021, at 10:59 AM by [[~AES]]: [==]%0a* [[Minetest.Addingarenas]] . . . May 12, 2021, at 10:58 AM by [[~jrmu]]: [==]%0a* [[Relay.Relay]] . . . May 12, 2021, at 09:10 AM by [[~jrmu]]: [==]%0a* [[Ngircd.Install-bej]] . . . May 11, 2021, at 05:26 AM by [[~bejelentkezni]]: [==]%0a* [[Botnow.Botnow]] . . . May 08, 2021, at 09:44 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Hopm-Arthur]] . . . May 07, 2021, at 12:28 PM by [[~Arthur]]: [==]%0a* [[Znc.Chroot69]] . . . May 06, 2021, at 03:36 AM by [[~bejelentkezni]]: [=back to 6.9 to see real changes=]%0a* [[Dig.Usage]] . . . May 04, 2021, at 02:36 AM by [[~sarah]]: [==]%0a* [[Bgpd.Configure]] . . . May 03, 2021, at 06:26 AM by [[~jrmu]]: [==]%0a* [[Cherry.Cherry]] . . . May 02, 2021, at 01:43 PM by [[~Oz]]: [==]%0a* [[Freedom.Unix]] . . . April 29, 2021, at 03:39 PM by [[~jrmu]]: [==]%0a* [[Pmwiki.Simpleurl]] . . . April 29, 2021, at 02:46 PM by [[~punk]]: [==]%0a* [[Gpl.Flaws]] . . . April 24, 2021, at 04:56 PM by [[~jrmu]]: [==]%0a* [[Iked.Windows]] . . . April 18, 2021, at 07:38 PM by [[~st13g]]: [==]%0a* [[Freedom.Libertyordeath]] . . . April 17, 2021, at 12:35 PM by [[~jrmu]]: [==]%0a* [[Minetest.Economy]] . . . April 15, 2021, at 02:32 PM by [[~jrmu]]: [==]%0a* [[Vim.Vim]] . . . April 11, 2021, at 11:14 PM by [[~monaco]]: [==]%0a* [[Minutemin.Duty]] . . . April 11, 2021, at 04:53 AM by [[~jrmu]]: [==]%0a* [[License.License]] . . . April 04, 2021, at 02:00 AM by [[~jrmu]]: [==]%0a* [[EthicalSource.HolierThanThou]] . . . April 04, 2021, at 01:56 AM by [[~jrmu]]: [==]%0a* [[Jrmu.Rmsboycott]] . . . April 03, 2021, at 01:36 AM by [[~jrmu]]: [==]%0a* [[Jrmu.Libertyordeath]] . . . April 02, 2021, at 12:56 PM by [[~jrmu]]: [==]%0a* [[Fig.Fig]] . . . March 31, 2021, at 10:15 AM by [[~chewy]]: [==]%0a* [[Coconut.Coconut]] . . . March 29, 2021, at 12:28 PM by [[~jrmu]]: [==]%0a* [[Ircnow.CodeForce]] . . . March 29, 2021, at 12:04 PM by [[~jrmu]]: [==]%0a* [[ClawsMail.Connect]] . . . March 29, 2021, at 08:42 AM by [[~miniontoby]]: [==]%0a* [[Freedom.Madeonirc]] . . . March 27, 2021, at 11:48 AM by [[~jrmu]]: [==]%0a* [[Third.Devs]] . . . March 27, 2021, at 11:41 AM by [[~jrmu]]: [==]%0a* [[Minutemin.Code]] . . . March 24, 2021, at 03:26 AM by [[~jrmu]]: [==]%0a* [[Cherry.Todo]] . . . March 23, 2021, at 03:23 PM by [[~Oz]]: [==]%0a* [[Freedom.Independence]] . . . March 22, 2021, at 01:13 PM by [[~wiz]]: [==]%0a* [[Ifconfig.Change]] . . . March 20, 2021, at 11:15 AM by [[~jrmu]]: [==]%0a* [[Marketing.Founders]] . . . March 20, 2021, at 01:40 AM by [[~jrmu]]: [==]%0a* [[NewsNow.Teams]] . . . March 18, 2021, at 09:47 AM by [[~miniontoby]]: [=banana=]%0a* [[NewsNow.NewsNow]] . . . March 17, 2021, at 04:33 PM by [[~miniontoby]]: [=more ways=]%0a* [[Vhost.Freedns]] . . . March 16, 2021, at 12:22 PM by [[~wiz]]: [==]%0a* [[Marketing.Freedom]] . . . March 15, 2021, at 01:30 PM by [[~jrmu]]: [==]%0a* [[Bsd.Labor]] . . . March 15, 2021, at 06:12 AM by [[~jrmu]]: [==]%0a* [[License.Discriminatory]] . . . March 15, 2021, at 06:12 AM by [[~jrmu]]: [==]%0a* [[Bsd.Hope]] . . . March 14, 2021, at 11:05 PM by [[~jrmu]]: [==]%0a* [[License.Publicdomain]] . . . March 14, 2021, at 10:02 AM by [[~jrmu]]: [==]%0a* [[Linux.Flaws]] . . . March 14, 2021, at 05:13 AM by [[~jrmu]]: [==]%0a* [[NewsNow.Browser]] . . . March 12, 2021, at 08:00 AM by [[~miniontoby]]: [==]%0a* [[Abuse.Code]] . . . March 09, 2021, at 03:44 PM by [[~jrmu]]: [==]%0a* [[Congress.Documents]] . . . March 07, 2021, at 04:50 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Goals]] . . . March 06, 2021, at 09:33 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Chatforce]] . . . March 05, 2021, at 02:15 PM by [[~jrmu]]: [==]%0a* [[Shell.Bash]] . . . March 05, 2021, at 10:19 AM by [[~jrmu]]: [==]%0a* [[User.Welcome]] . . . March 05, 2021, at 07:34 AM by [[~jrmu]]: [==]%0a* [[Immigrant.Welcome]] . . . March 05, 2021, at 06:59 AM by [[~jrmu]]: [==]%0a* [[Mail.Openrelay]] . . . March 04, 2021, at 03:20 PM by [[~jrmu]]: [==]%0a* [[Mail.Test]] . . . March 04, 2021, at 03:07 PM by [[~jrmu]]: [==]%0a* [[Minutemin.Game]] . . . March 04, 2021, at 10:16 AM by [[~jrmu]]: [==]%0a* [[Marketing.Recruit]] . . . March 04, 2021, at 09:39 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Howtoask]] . . . March 03, 2021, at 12:35 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Netizen]] . . . February 28, 2021, at 03:18 PM by [[~jrmu]]: [==]%0a* [[Servers.Rights]] . . . February 28, 2021, at 12:37 PM by [[~jrmu]]: [==]%0a* [[Marketing.Enterprise]] . . . February 28, 2021, at 11:52 AM by [[~jrmu]]: [==]%0a* [[Minutemin.Creed]] . . . February 28, 2021, at 03:21 AM by [[~jrmu]]: [==]%0a* [[Oidentd.ZNC]] . . . February 27, 2021, at 08:33 AM by [[~jrmu]]: [==]%0a* [[Oidentd.Install]] . . . February 27, 2021, at 08:32 AM by [[~jrmu]]: [==]%0a* [[Ln.Intro]] . . . February 25, 2021, at 12:20 PM by [[~jrmu]]: [==]%0a* [[Leafnode.Install]] . . . February 25, 2021, at 10:56 AM by [[~jrmu]]: [==]%0a* [[Guava.Todo]] . . . February 23, 2021, at 10:47 AM by [[~quofan]]: [==]%0a* [[Relays.Relays]] . . . February 22, 2021, at 04:22 PM by [[~jrmu]]: [==]%0a* [[Jujube.Jujube]] . . . February 21, 2021, at 04:22 PM by [[~fizi]]: [==]%0a* [[PSFTP.Connect]] . . . February 21, 2021, at 03:57 PM by [[~jrmu]]: [==]%0a* [[Outlook.Connect]] . . . February 21, 2021, at 03:23 PM by [[~jrmu]]: [==]%0a* [[AppleMail.Connect]] . . . February 20, 2021, at 04:38 PM by [[~jrmu]]: [==]%0a* [[Thunderbird.Pgp]] . . . February 19, 2021, at 04:44 PM by [[~jrmu]]: [==]%0a* [[License.Ircnow]] . . . February 19, 2021, at 09:45 AM by [[~miniontoby]]: [=2021=]%0a* [[Thunderbird.Connect]] . . . February 19, 2021, at 09:36 AM by [[~jrmu]]: [==]%0a* [[Shell.Mac]] . . . February 19, 2021, at 09:14 AM by [[~jrmu]]: [==]%0a* [[Minutemin.Training]] . . . February 18, 2021, at 06:42 AM by [[~jrmu]]: [==]%0a* [[Freedom.Openforeveryone]] . . . February 16, 2021, at 04:33 AM by [[~jrmu]]: [==]%0a* [[Ircnow.IRCitizen]] . . . February 15, 2021, at 05:32 AM by [[~jrmu]]: [==]%0a* [[IPv6.Overview]] . . . February 14, 2021, at 11:09 AM by [[~jrmu]]: [==]%0a* [[Tcpip.Overview]] . . . February 14, 2021, at 11:02 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Syspatch]] . . . February 14, 2021, at 11:00 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Netadmin]] . . . February 14, 2021, at 10:56 AM by [[~jrmu]]: [==]%0a* [[Marketing.Religion]] . . . February 14, 2021, at 10:37 AM by [[~jrmu]]: [==]%0a* [[Marketing.Independence]] . . . February 13, 2021, at 04:59 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Leafnode]] . . . February 12, 2021, at 01:40 PM by [[~chewy]]: [==]%0a* [[Oidentd.Pylink]] . . . February 12, 2021, at 01:25 PM by [[~jrmu]]: [==]%0a* [[Marketing.Opportunity]] . . . February 11, 2021, at 12:58 PM by [[~jrmu]]: [==]%0a* [[Marketing.Republic]] . . . February 11, 2021, at 06:45 AM by [[~jrmu]]: [==]%0a* [[Achurch.Install]] . . . February 10, 2021, at 04:33 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Pylink]] . . . February 08, 2021, at 08:33 AM by [[~jrmu]]: [==]%0a* [[Ircnow.OpofLiberty]] . . . February 06, 2021, at 12:53 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Allies]] . . . February 06, 2021, at 12:47 PM by [[~jrmu]]: [==]%0a* [[Freedom.Dueprocess]] . . . February 06, 2021, at 12:25 PM by [[~jrmu]]: [==]%0a* [[Freedom.Checks]] . . . February 06, 2021, at 12:21 PM by [[~jrmu]]: [==]%0a* [[Freedom.Rulebylaw]] . . . February 06, 2021, at 12:12 PM by [[~jrmu]]: [==]%0a* [[Freedom.Startupdream]] . . . February 06, 2021, at 12:12 PM by [[~jrmu]]: [==]%0a* [[Freedom.Federation]] . . . February 06, 2021, at 11:44 AM by [[~jrmu]]: [==]%0a* [[Freedom.Selfadmin]] . . . February 06, 2021, at 11:26 AM by [[~jrmu]]: [==]%0a* [[Ircnow.OpsofLiberty]] . . . February 06, 2021, at 02:13 AM by [[~jrmu]]: [==]%0a* [[Freedom.Homestead]] . . . February 05, 2021, at 12:49 PM by [[~jrmu]]: [==]%0a* [[Freedom.Software]] . . . February 05, 2021, at 11:31 AM by [[~jrmu]]: [==]%0a* [[Freedom.Opportunity]] . . . February 05, 2021, at 08:55 AM by [[~jrmu]]: [==]%0a* [[Unix.Workethic]] . . . February 05, 2021, at 08:49 AM by [[~jrmu]]: [==]%0a* [[Unix.Ethic]] . . . February 05, 2021, at 08:48 AM by [[~jrmu]]: [==]%0a* [[Freedom.Privacy]] . . . February 05, 2021, at 07:26 AM by [[~jrmu]]: [==]%0a* [[Debate.Privacy]] . . . February 05, 2021, at 07:05 AM by [[~jrmu]]: [==]%0a* [[Team.Policy]] . . . February 04, 2021, at 04:08 PM by [[~jrmu]]: [==]%0a* [[Freedom.Serversrights]] . . . February 04, 2021, at 02:43 PM by [[~jrmu]]: [==]%0a* [[Freedom.Serverrights]] . . . February 04, 2021, at 02:42 PM by [[~jrmu]]: [==]%0a* [[Freedom.Fork]] . . . February 04, 2021, at 02:39 PM by [[~jrmu]]: [==]%0a* [[Freedom.Lanofopportunity]] . . . February 04, 2021, at 01:24 PM by [[~jrmu]]: [==]%0a* [[Freedom.Opentoall]] . . . February 04, 2021, at 01:17 PM by [[~jrmu]]: [==]%0a* [[Freedom.Refuge]] . . . February 04, 2021, at 09:31 AM by [[~jrmu]]: [==]%0a* [[Dns.Providers]] . . . February 04, 2021, at 04:27 AM by [[~jrmu]]: [==]%0a* [[Guava.Guava]] . . . February 03, 2021, at 02:30 AM by [[~st13g]]: [==]%0a* [[Openbsd.Stable]] . . . February 02, 2021, at 02:25 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Base64]] . . . February 02, 2021, at 06:37 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Unboundadblock]] . . . February 02, 2021, at 04:29 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Pfbadhost]] . . . February 02, 2021, at 04:29 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Wraith]] . . . February 02, 2021, at 04:22 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Delphinusdnsd]] . . . February 02, 2021, at 01:51 AM by [[~jrmu]]: [==]%0a* [[Mango.Mango]] . . . January 31, 2021, at 12:01 PM by [[~nix]]: [==]%0a* [[Openbsd.Abuse]] . . . January 31, 2021, at 05:33 AM by [[~jrmu]]: [==]%0a* [[Freedom.Censorship]] . . . January 31, 2021, at 05:23 AM by [[~jrmu]]: [==]%0a* [[Debate.Firstamendment]] . . . January 31, 2021, at 05:20 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Phishing]] . . . January 31, 2021, at 05:02 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Audit]] . . . January 31, 2021, at 04:46 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Ongoing]] . . . January 31, 2021, at 01:19 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Partners]] . . . January 31, 2021, at 12:32 AM by [[~jrmu]]: [==]%0a* [[Orange.Todo]] . . . January 30, 2021, at 11:31 AM by [[~jrmu]]: [==]%0a* [[Pear.Pear]] . . . January 29, 2021, at 06:09 PM by [[~dennis]]: [==]%0a* [[Openbsd.Httpopenproxy]] . . . January 29, 2021, at 11:01 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Zncadmin]] . . . January 29, 2021, at 10:00 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Rbldns]] . . . January 29, 2021, at 05:45 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Setuid]] . . . January 28, 2021, at 06:53 AM by [[~jrmu]]: [==]%0a* [[Openbsd.PFTesting]] . . . January 25, 2021, at 03:28 PM by [[~jrmu]]: [==]%0a* [[Openbsd.ZNCDaily]] . . . January 25, 2021, at 11:35 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Irssi]] . . . January 25, 2021, at 07:08 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Sysadmins]] . . . January 24, 2021, at 10:36 AM by [[~jrmu]]: [==]%0a* [[Debate.UnixPhilosophy]] . . . January 18, 2021, at 05:05 AM by [[~category_mirror]]: [==]%0a* [[Openbsd.XTerm]] . . . January 17, 2021, at 01:48 PM by [[~miniontoby]]: [=copyright=]%0a* [[UsersCategoryMirrory.Statement]] . . . January 17, 2021, at 02:44 AM by [[~category_mirror]]: [==]%0a* [[Email.Outlook]] . . . January 16, 2021, at 05:13 PM by [[~Zouheir]]: [==]%0a* [[Plum.Todo]] . . . January 16, 2021, at 12:09 AM by [[~st13g]]: [==]%0a* [[Debate.Ipsec]] . . . January 13, 2021, at 10:39 AM by [[~jrmu]]: [==]%0a* [[Plum.Plum]] . . . January 12, 2021, at 03:02 PM by [[~wiz]]: [==]%0a* [[Openbsd.Slrn]] . . . January 12, 2021, at 02:40 PM by [[~Noxturnix]]: [==]%0a* [[OpenBSD.CPAN]] . . . January 12, 2021, at 01:48 PM by [[~Dima]]: [==]%0a* [[Jujube.Todo]] . . . January 11, 2021, at 05:13 PM by [[~fizi]]: [==]%0a* [[Ircnow.Ilines]] . . . January 11, 2021, at 09:55 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Netcat]] . . . January 09, 2021, at 02:20 PM by [[~jrmu]]: [==]%0a* [[OpenBSD.Perl]] . . . January 09, 2021, at 02:04 PM by [[~dima]]: [==]%0a* [[Openbsd.Perl]] . . . January 09, 2021, at 01:52 PM by [[~jrmu]]: [==]%0a* [[Fig.Log]] . . . January 07, 2021, at 11:23 AM by [[~dima]]: [=test=]%0a* [[Fig.Todo]] . . . January 06, 2021, at 01:06 PM by [[~jrmu]]: [==]%0a* [[Grape.Todo]] . . . January 06, 2021, at 01:05 PM by [[~jrmu]]: [==]%0a* [[Pear.Todo]] . . . January 06, 2021, at 01:05 PM by [[~jrmu]]: [==]%0a* [[Jujube.Team]] . . . January 06, 2021, at 01:04 PM by [[~jrmu]]: [==]%0a* [[Mango.Todo]] . . . January 06, 2021, at 01:04 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Censorship]] . . . January 06, 2021, at 03:01 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Pentesters]] . . . January 05, 2021, at 11:17 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Coders]] . . . January 05, 2021, at 11:11 AM by [[~jrmu]]: [==]%0a* [[Banana.Todo]] . . . January 04, 2021, at 09:41 AM by [[~miniontoby]]: [=znc=]%0a* [[Users.CategoryMirrory]] . . . January 04, 2021, at 01:10 AM by [[~category_mirror]]: [==]%0a* [[UsersCategoryMirrory.Test]] . . . January 03, 2021, at 08:17 PM by [[~category_mirrory]]: [==]%0a* [[Users.Categorymirrory]] . . . January 03, 2021, at 08:12 PM by [[~category_mirrory]]: [=wrong caps=]%0a* [[Banana.Banana]] . . . January 03, 2021, at 02:39 PM by [[~miniontoby]]: [==]%0a* [[Orange.Orange]] . . . January 03, 2021, at 02:10 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Backup]] . . . January 03, 2021, at 01:46 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Passwords]] . . . January 03, 2021, at 12:20 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Backups]] . . . January 02, 2021, at 11:44 AM by [[~jrmu]]: [==]%0a* [[Debate.Appledanger]] . . . January 02, 2021, at 01:35 AM by [[~jrmu]]: [==]%0a* [[Grape.Tasks]] . . . January 01, 2021, at 07:52 PM by [[~fizi]]: [==]%0a* [[Ircnow.Helpers]] . . . January 01, 2021, at 04:36 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Finances]] . . . January 01, 2021, at 04:15 AM by [[~jrmu]]: [==]%0a* [[Tutorial.Tutorial]] . . . January 01, 2021, at 03:25 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Testing]] . . . December 30, 2020, at 12:58 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Sshbackdoor]] . . . December 30, 2020, at 12:14 PM by [[~jrmu]]: [==]%0a* [[Mango.Packages]] . . . December 30, 2020, at 10:48 AM by [[~nix]]: [==]%0a* [[Ircnow.Contact]] . . . December 30, 2020, at 03:18 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Pf-bnc]] . . . December 29, 2020, at 06:30 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Partners2]] . . . December 29, 2020, at 02:52 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Tcltls]] . . . December 29, 2020, at 09:53 AM by [[~jrmu]]: [==]%0a* [[Debate.Mozilladanger]] . . . December 27, 2020, at 03:05 AM by [[~jrmu]]: [==]%0a* [[Debate.Controlcomputer]] . . . December 27, 2020, at 03:02 AM by [[~jrmu]]: [==]%0a* [[Debate.Facebookdanger]] . . . December 27, 2020, at 03:01 AM by [[~jrmu]]: [==]%0a* [[Debate.Openweb]] . . . December 27, 2020, at 02:59 AM by [[~jrmu]]: [==]%0a* [[Debate.Slackdanger]] . . . December 27, 2020, at 02:56 AM by [[~jrmu]]: [==]%0a* [[Debate.Youtubedanger]] . . . December 27, 2020, at 02:49 AM by [[~jrmu]]: [==]%0a* [[Debate.Freespeech]] . . . December 27, 2020, at 02:36 AM by [[~jrmu]]: [==]%0a* [[Debate.Ethicalflaws]] . . . December 27, 2020, at 02:31 AM by [[~jrmu]]: [==]%0a* [[Debate.Hatespeech]] . . . December 27, 2020, at 02:20 AM by [[~jrmu]]: [==]%0a* [[Debate.Monero]] . . . December 27, 2020, at 02:02 AM by [[~jrmu]]: [==]%0a* [[Debate.WhyNotC]] . . . December 26, 2020, at 06:43 PM by [[~searchsocial]]: [==]%0a* [[Debate.Python]] . . . December 26, 2020, at 06:21 PM by [[~jrmu]]: [==]%0a* [[Debate.Cash]] . . . December 26, 2020, at 06:18 PM by [[~jrmu]]: [==]%0a* [[Debate.Uberdanger]] . . . December 26, 2020, at 06:16 PM by [[~jrmu]]: [==]%0a* [[Debate.Microsoftdanger]] . . . December 26, 2020, at 06:15 PM by [[~jrmu]]: [==]%0a* [[Debate.Accessibility]] . . . December 26, 2020, at 06:14 PM by [[~jrmu]]: [==]%0a* [[Debate.Zoomdanger]] . . . December 26, 2020, at 06:08 PM by [[~jrmu]]: [==]%0a* [[Shell.Applications]] . . . December 19, 2020, at 06:21 PM by [[~fizi]]: [==]%0a* [[Third.Dillo]] . . . December 19, 2020, at 01:52 PM by [[~jrmu]]: [==]%0a* [[Third.Basilisk]] . . . December 19, 2020, at 01:38 PM by [[~jrmu]]: [==]%0a* [[Third.Directory]] . . . December 19, 2020, at 01:35 PM by [[~jrmu]]: [==]%0a* [[Guava.Packages]] . . . December 19, 2020, at 06:14 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Amplification]] . . . December 19, 2020, at 05:42 AM by [[~jrmu]]: [==]%0a* [[Openbsd.UDPFlood]] . . . December 18, 2020, at 10:39 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Tcpdump]] . . . December 18, 2020, at 09:12 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Tcpackflood]] . . . December 17, 2020, at 10:36 AM by [[~jrmu]]: [==]%0a* [[Openbsd.RSTFlood]] . . . December 17, 2020, at 10:34 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Tcpresetflood]] . . . December 17, 2020, at 10:34 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Ssdp]] . . . December 15, 2020, at 12:59 PM by [[~jrmu]]: [==]%0a* [[Bouncer.Igloo]] . . . December 14, 2020, at 09:39 AM by [[~Noxturnix]]: [==]%0a* [[Main.Terms]] . . . December 13, 2020, at 01:35 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Pf]] . . . December 13, 2020, at 12:03 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Upgrade68]] . . . December 13, 2020, at 11:12 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Install68]] . . . December 13, 2020, at 10:13 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Upgrade67]] . . . December 13, 2020, at 04:02 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Sysupgrade68]] . . . December 11, 2020, at 10:27 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Dokuwiki]] . . . December 10, 2020, at 02:23 PM by [[~miniontoby]]: [=code blocks fixed=]%0a* [[Openbsd.Acme-client]] . . . December 09, 2020, at 06:47 PM by [[~miniontoby]]: [=fixed troubleshooting links=]%0a* [[Freedom.Christian]] . . . December 08, 2020, at 01:12 AM by [[~jrmu]]: [==]%0a* [[Freedom.Finances]] . . . December 08, 2020, at 01:04 AM by [[~jrmu]]: [==]%0a* [[Shell.Sshkeys]] . . . December 07, 2020, at 10:36 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Install67]] . . . December 06, 2020, at 11:03 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Buyvm]] . . . December 06, 2020, at 02:42 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Install]] . . . December 04, 2020, at 04:15 PM by [[~jrmu]]: [==]%0a* [[Opernbsd.Buyvm]] . . . December 04, 2020, at 12:06 PM by [[~jrmu]]: [==]%0a* [[Bouncer.WeeChat]] . . . December 02, 2020, at 12:43 PM by [[~jrmu]]: [==]%0a* [[Bouncer.SimpleIRC]] . . . December 02, 2020, at 12:31 PM by [[~jrmu]]: [==]%0a* [[Freedom.Militia]] . . . December 02, 2020, at 04:18 AM by [[~jrmu]]: [==]%0a* [[Third.Third]] . . . December 01, 2020, at 01:49 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Oidentd]] . . . November 30, 2020, at 11:42 PM by [[~jrmu]]: [==]%0a* [[Ircnow.Helper]] . . . November 28, 2020, at 02:21 AM by [[~jrmu]]: [==]%0a* [[Bouncer.Hexchat]] . . . November 27, 2020, at 12:52 PM by [[~jrmu]]: [==]%0a* [[Bouncer.IRCCloud]] . . . November 24, 2020, at 11:53 AM by [[~jrmu]]: [==]%0a* [[Bouncer.AdiIRC]] . . . November 24, 2020, at 11:42 AM by [[~jrmu]]: [==]%0a* [[Bouncer.RevolutionIRC]] . . . November 24, 2020, at 11:35 AM by [[~jrmu]]: [==]%0a* [[Bouncer.KiwiIRC]] . . . November 24, 2020, at 11:34 AM by [[~jrmu]]: [==]%0a* [[Bouncer.KVIrc]] . . . November 24, 2020, at 11:33 AM by [[~jrmu]]: [==]%0a* [[Bouncer.IceChat]] . . . November 24, 2020, at 11:27 AM by [[~jrmu]]: [==]%0a* [[Bouncer.IRCCloudiOS]] . . . November 24, 2020, at 11:20 AM by [[~jrmu]]: [==]%0a* [[Bouncer.IRCCloudAndroid]] . . . November 24, 2020, at 11:20 AM by [[~jrmu]]: [==]%0a* [[Bouncer.IRCCloudWeb]] . . . November 24, 2020, at 11:19 AM by [[~jrmu]]: [==]%0a* [[Third.Catalog]] . . . November 23, 2020, at 07:52 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Checklist]] . . . November 20, 2020, at 12:44 AM by [[~gry]]: [=+=]%0a* [[Openbsd.Acopm]] . . . November 04, 2020, at 03:32 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Achurch]] . . . November 04, 2020, at 02:25 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Vi]] . . . November 04, 2020, at 12:51 PM by [[~jrmu]]: [==]%0a* [[Openbsd.Sudo]] . . . November 04, 2020, at 12:38 PM by [[~jrmu]]: [==]%0a* [[Freedom.Denomination]] . . . October 23, 2020, at 09:20 AM by [[~jrmu]]: [==]%0a* [[Vps.Intro]] . . . October 10, 2020, at 08:22 AM by [[~jrmu]]: [==]%0a* [[Ircweb.Ircweb]] . . . October 05, 2020, at 01:10 AM by [[~jrmu]]: [==]%0a* [[Http2irc.Http2irc]] . . . October 05, 2020, at 01:04 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Easyapp]] . . . September 29, 2020, at 12:13 PM by [[~jrmu]]: [==]%0a* [[Orange.Nl]] . . . September 17, 2020, at 08:43 AM by [[~miniontoby]]: [=Dutch correct page=]%0a* [[Grape.Guide]] . . . September 16, 2020, at 08:42 AM by [[~baytuch]]: [==]%0a* [[Orange.Id]] . . . September 08, 2020, at 09:51 AM by [[~gry]]: [=+=]%0a* [[Orange.Ru]] . . . September 07, 2020, at 11:29 PM by [[~gry]]: [=+=]%0a* [[Bouncer.MIRC]] . . . September 06, 2020, at 03:59 AM by [[~jrmu]]: [==]%0a* [[Debate.Bncnow]] . . . September 04, 2020, at 04:36 AM by [[~jrmu]]: [==]%0a* [[Openbsd.Cgit]] . . . September 01, 2020, at 05:51 PM by [[~baytuch]]: [==]%0a* [[Orange.Notes]] . . . August 27, 2020, at 03:38 AM by [[~gry]]: [=expanded=]%0a* [[Shell.ShellSSHKEYS]] . . . August 25, 2020, at 10:00 PM by [[~gry]]: [=permissions added=]%0a* [[Bots.Bots]] . . . August 25, 2020, at 12:02 PM by [[~jrmu]]: [==]%0a* [[Bouncer.Irccloud]] . . . August 24, 2020, at 12:20 PM by [[~jrmu]]: [==]%0a* [[GrapeTeam.Tracker]] . . . August 24, 2020, at 10:16 AM by [[~gry]]: [=+=]%0a* [[GrapeTeam.GrapeTeam]] . . . August 24, 2020, at 10:13 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Course]] . . . August 21, 2020, at 05:01 AM by [[~gry]]: [==]%0a* [[Openbsd.Bchs]] . . . August 20, 2020, at 07:11 AM by [[~jrmu]]: [==]%0a* [[Ircnow.Todo]] . . . August 20, 2020, at 06:48 AM by [[~jrmu]]: on_is_active php_session_active squirrelmailing sqsession_start troubleshooting authentication session_status config_default webmail_access modifications configuration unfortunately accessibility administrator webmail_error compatibility acceleration default_pref organization replacement disposition alternative information sourceforge permissions certificate interactive configuring preferences letsencrypt development compatible javascript configtest connection additional nameserver configured afterwards extracting attempting installing documents complains openhttpd functions localhost opensmtpd challenge supported subdomain receiving databases recommend necessary following languages delimiter directory debugging fusername essential addresses installed chrooted smtphost projects browsers normally location provides tlsmulti 26214400 required remember original security listener optional settings sendmail properly software specific licensed messages brackets instance writable services browsing defaults drawback continue opening control dovecot fastcgi already contact defines example initial unbound folders unusual request plugins general command servers defined private options however records contrib include restart because nologin disable exiting keypair baytuch strings misused charset appears content instead openbsd release sending mt_rand another subject version tarball warning charlie without changes resolve foxtrot uploads written client relayd needed return logout syntax longer cannot latest htdocs braces rather offset typing before themes ircnow frames across making should switch please detect secure invert readme global create update system locale report serial delete femail myname daemon lookup socket number errors trying issues actual stable inline attach master reload touch could color chown check chmod needs first intro shell rcctl php74 mkdir books hosts write above https there false using might every ascii happy delta curly array fatal bravo query where since which setup exist works notes saved files press alpha enter means class block title index chain strip lines known worry based ifend about zones this doas 2001 imap will well page your real acme make sure that aaaa ipv4 does fccf want 1008 2602 than sbin chsh help bind body some copy runs both must logs like when ctrl type echo xvzf find uses html many wiki easy fees more exec text once were have made mime done next move into ipv6 pop3 menu sign quit full motd hide give edit time www ssl etc var 127 day see has 162 bad gpl 451 fix ksh 644 zip its 755 ftp net way crt 634 usr 403 src nsd fpm dns max few db8 143 via by gz 22 cd rx 38 87 mv 80 9 +time=1674273543 Relayd.TLSMulti:1628325508: Relayd.Acceleration Openhttpd.Hosting Acme-client.Configure Pf.Guide Openssl.Http : troubleshooting acknowledgments configuration acceleration dramatically remote_addr server_port permissions server_addr connections simpletable certificate commentary configured especially consulting forwarding foreground plaintext correctly debugging fullchain openhttpd available forwarded verbosity splitting listening challenge following selective remaining instances directory stacksize newsyslog openfiles service1 service2 searches increase database disabled protocol symlinks starting services tlsmulti sortable requests complete template filtered properly networks rotation addition location listener expanded multiple messages concepts example keypair listens finally backlog running private www6tls warning openbsd respond content produce provide verbose replace hosting devices android earlier maximum inspect enabled another domains openssl syslogd reverse headers td76656 without archive default already missing labeled records address option actual relayd handle relays create nabble wwwtls define packet turned before client please border append serves common public errors either cannot number blocks syntax bottom daemon assume entire typing failed simply sample second notice output https certs class there check rcctl first pfctl width guide login fails queue where names large which value match avoid above ports using based wrong entry lines close title below doesn three users index known third proxy while strip 8020 sure 8001 8002 icmp 4096 have make 2001 need will both that ipv6 them this want acme they ipv4 your edit what sack time doas then must logs html 7691 into send busy wish from real upon look test like stop ones auto when well root load last says also ddos etc 443 crt sub see are any ip4 ios tcp org man cur 96m 128 its won var may nsd set dns how pem 100 dvv 127 168 192 ip6 db8 of n7 by ln= Relayd.Acceleration:1628324627: Pf.Guide Leafnode.Install Tcpip.Sockets Openbsd.Znc Openhttpd.Configure Openhttpd.Hosting Telnet.Http Znc.Chroot Openbsd.Netcat Acme-client.Configure Openssl.Http : troubleshooting acknowledgments eavesdropping configuration dramatically introduction acceleration permissions server_addr connections simpletable server_port remote_addr certificate integration application transparent forwarding encryption webhosting configured foreground indication afterwards especially commentary splitting openhttpd plaintext challenge openfiles forwarded stacksize listening selective necessary directory fullchain providing debugging correctly sometimes following newsyslog verbosity available instances location service1 service2 symlinks protocol possible searches template requests listener filtered bouncers sortable database rotation addition increase messages balancer networks properly features plumbing normally exposing leafnode starting disabled complete private example produce keypair openbsd missing warning running replace address labeled default records openssl sockets install android devices verbose td76656 archiv= blob - 19bdcf140f0d49cdc5a3d6914bbbb92ab3ef05d3 blob + 32e5aceae1575915abb9c44e66155e30a26ffeee --- wiki.d/SiteAdmin.Blocklist-MoinMaster +++ wiki.d/SiteAdmin.Blocklist-MoinMaster @@ -2,9 +2,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:68.0) Gecko/20100101 Firefox/68.0 SeaMonkey/2.53.14 charset=UTF-8 ctime=1596101899 -host=188.210.127.254 +host=38.87.162.242 name=SiteAdmin.Blocklist-MoinMaster passwdread=@lock -rev=591 +rev=592 text=%0a [@%0a## blocklist-note: NOTE: This page is automatically generated by blocklist.php%0a## blocklist-note: NOTE: Any edits to this page may be lost!%0a## blocklist-url: http://moinmo.in/BadContent?action=raw%0a## blocklist-when: 2020-07-30T09:38:19%0a# blocklist-format: regex%0a#### Unable to download blocklist (allow_url_fopen=)%0a @]%0a -time=1674070750 +time=1674216982 blob - fbeab88351ca1a77638d9d82b75e9097c53c4e8c blob + aedb429df90577914bd9b11d1c29b5eac33ee85f --- wiki.d/Texlive.Install +++ wiki.d/Texlive.Install @@ -1,15 +1,21 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 author=mkf charset=UTF-8 csum= ctime=1627998200 -host=198.251.81.133 +host=198.251.82.194 name=Texlive.Install -rev=2 +rev=4 targets= -text=To install LaTeX:%0a%0a[@%0a$ doas pkg_add texlive_texmf-full-2020p1%0a@]%0a%0aBy default, this creates a setuid root binary, used by dbus:%0a%0a[@%0a-rwsr-x--- 1 root _dbus - 73.9K Apr 19 12:36 /usr/local/libexec/dbus-daemon-launch-helper%0a@]%0a%0aThis makes the system insecure, so we remove the setuid bit:%0a%0a[@%0a$ doas chmod 0750 /usr/local/libexec/dbus-daemon-launch-helper%0a$ ls -lha /usr/local/libexec/dbus-daemon-launch-helper%0a-rwxr-x--- 1 root _dbus 73.9K Apr 19 12:36 /usr/local/libexec/dbus-daemon-launch-helper%0a@]%0a%0a -time=1627998686 +text=To install LaTeX:%0a%0a[@%0a$ doas pkg_add texlive_texmf-full-2020p1%0a@]%0a%0a(:if false:)%0aBy default, this creates a setuid root binary, used by dbus:%0a%0a[@%0a-rwsr-x--- 1 root _dbus - 73.9K Apr 19 12:36 /usr/local/libexec/dbus-daemon-launch-helper%0a@]%0a%0a%0aThis makes the system insecure, so we remove the setuid bit:%0a%0a[@%0a$ doas chmod 0750 /usr/local/libexec/dbus-daemon-launch-helper%0a$ ls -lha /usr/local/libexec/dbus-daemon-launch-helper%0a-rwxr-x--- 1 root _dbus 73.9K Apr 19 12:36 /usr/local/libexec/dbus-daemon-launch-helper%0a@]%0a(:endif:) +time=1674245117 +author:1674245117=mkf +diff:1674245117:1674245100:=7d6%0a%3c (:if false:)%0a14c13%0a%3c %0a---%0a> (:if false:)%0a +host:1674245117=198.251.82.194 +author:1674245100=mkf +diff:1674245100:1627998686:=13d12%0a%3c (:if false:)%0a21c20%0a%3c (:endif:)%0a\ No newline at end of file%0a---%0a> %0a +host:1674245100=198.251.82.194 author:1627998686=mkf diff:1627998686:1627998200:=7c7%0a%3c By default, this creates a setuid root binary, used by dbus:%0a---%0a> By default, this creates a setuid root binary:%0a host:1627998686=198.251.81.133 blob - 62bc76f1dce0e4a82627b8001e94b2a1e15c955b blob + d09ebef58c742e115995e17fda5964ed5f95a8ce --- wiki.d/Texlive.RecentChanges +++ wiki.d/Texlive.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=w3m/0.5.3+git20210102 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 charset=UTF-8 ctime=1627998200 -host=38.87.162.8 +host=198.251.82.194 name=Texlive.RecentChanges -rev=7 -text=* [[Texlive/Sinhala]] . . . November 28, 2021, at 06:35 AM by [[~jrmu]]: [==]%0a* [[Texlive/Install]] . . . August 03, 2021, at 01:51 PM by [[~mkf]]: [==]%0a -time=1638081303 +rev=9 +text=* [[Texlive/Install]] . . . January 20, 2023, at 08:05 PM by [[~mkf]]: [==]%0a* [[Texlive/Sinhala]] . . . November 28, 2021, at 06:35 AM by [[~jrmu]]: [==]%0a +time=1674245117 blob - 3c67087dae9a7b5261402b292d36d80b5b8ec621 blob + 65c7c6791080fb8023a244c2d875e520d416e223 --- wiki.d/TigerVNC.Install +++ wiki.d/TigerVNC.Install @@ -1,24 +1,15 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:93.0) Gecko/20100101 Firefox/93.0 -author=jrmu +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 +author=mkf charset=UTF-8 csum= -ctime=1625109418 -host=125.231.26.67 +ctime=1674239456 +host=198.251.82.194 name=TigerVNC.Install -rev=4 -targets=TigerVNC.SSH -text=Attach:xfce-desktop.png%0a%0a[@%0a$ doas rcctl enable xenodm%0a$ doas rcctl start xenodm%0a$ doas pkg_add tigervnc%0a$ vncpasswd%0a$ vncserver%0a@]%0a%0aYou want to use a vnc viewer like ssvnc to connect%0a%0a'''WARNING''': This setup has zero security. Everything you type including%0apasswords can be keylogged. %0a%0a[[TigerVNC.SSH | How to set up an SSH tunnel for VNC]][[%3c%3c]]%0aHow to set up an SSL tunnel for VNC (incomplete) -time=1640001615 -author:1640001615=jrmu -diff:1640001615:1634998980:=1,2d0%0a%3c Attach:xfce-desktop.png%0a%3c %0a -host:1640001615=125.231.26.67 -author:1634998980=Hawk -diff:1634998980:1625277707:=12,15c12,13%0a%3c passwords can be keylogged. %0a%3c %0a%3c [[TigerVNC.SSH | How to set up an SSH tunnel for VNC]][[%3c%3c]]%0a%3c How to set up an SSL tunnel for VNC (incomplete)%0a\ No newline at end of file%0a---%0a> passwords can be keylogged. Someone should research how to set up SSL or%0a> a howto guide for how to tunnel it over SSH.%0a -host:1634998980=2001:8a0:6813:4501:18d4:42f5:d6fb:184f -author:1625277707=jrmu -diff:1625277707:1625109418:=11,13c11%0a%3c '''WARNING''': This setup has zero security. Everything you type including%0a%3c passwords can be keylogged. Someone should research how to set up SSL or%0a%3c a howto guide for how to tunnel it over SSH.%0a---%0a> By default there is no SSL%0a -host:1625277707=125.231.34.36 -author:1625109418=jrmu -diff:1625109418:1625109418:=1,11d0%0a%3c [@%0a%3c $ doas rcctl enable xenodm%0a%3c $ doas rcctl start xenodm%0a%3c $ doas pkg_add tigervnc%0a%3c $ vncpasswd%0a%3c $ vncserver%0a%3c @]%0a%3c %0a%3c You want to use a vnc viewer like ssvnc to connect%0a%3c %0a%3c By default there is no SSL%0a -host:1625109418=125.224.28.174 +rev=1 +targets= +text=(:redirect Openbsd.TigerVNC status=301:) +time=1674239456 +author:1674239456=mkf +diff:1674239456:1674239456:=1d0%0a%3c (:redirect Openbsd.TigerVNC status=301:)%0a\ No newline at end of file%0a +host:1674239456=198.251.82.194 blob - e2eae0857d291973fab6e44bdd0febd0e9c242c9 blob + 4ee2ef685f50b99889da35176b5eae8799883071 --- wiki.d/TigerVNC.RecentChanges +++ wiki.d/TigerVNC.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:93.0) Gecko/20100101 Firefox/93.0 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 charset=UTF-8 ctime=1625109418 -host=125.231.26.67 +host=198.251.82.194 name=TigerVNC.RecentChanges -rev=7 -text=* [[TigerVNC/Install]] . . . December 20, 2021, at 12:00 PM by [[~jrmu]]: [==]%0a* [[TigerVNC/SSH]] . . . October 23, 2021, at 11:56 AM by [[~Hawk]]: [==]%0a -time=1640001615 +rev=9 +text=* [[TigerVNC/Install]] . . . January 20, 2023, at 06:30 PM by [[~mkf]]: [==]%0a* [[TigerVNC/SSH]] . . . October 23, 2021, at 11:56 AM by [[~Hawk]]: [==]%0a +time=1674239456 blob - 07ce71bfe729cf25042857162441d9dbd5058357 blob + 366c1b7a1e2229b7ea87639066d0acf384f347b5 --- wiki.d/Unrealircd.Install +++ wiki.d/Unrealircd.Install @@ -1,30 +1,15 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0) +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 author=mkf charset=UTF-8 -csum=and more -ctime=1618024927 -host=2.178.211.174 +csum= +ctime=1674242686 +host=198.251.82.194 name=Unrealircd.Install -rev=5 +rev=1 targets= -text=!! Dependencies%0a%0aWe need curl and gmake%0a[@%0a$ doas pkg_add curl gmake%0a@]%0a%0a!! Extra%0aMakeing a new user for unrealircd is recommend.%0a[@%0a$ doas useradd -m ircd%0a@]%0aNow we have a user called "ircd" now lets switch to it%0a[@%0a$ doas su ircd%0a@]%0a%0aYou can do @@$ whoami@@ to verify you're the @@ircd@@ user now go home @@$ cd@@%0a%0a!! Download & install%0aDownload the latest source code tarball , at the time of writeing this is 5.0.9.1 you can find the latest here [[ https://www.unrealircd.org/|www.unrealircd.org]], but this guide will be useing 5.0.9.1, should be the same for newer versions%0a[@%0a$ curl -LO https://www.unrealircd.org/downloads/unrealircd-5.0.9.1.tar.gz%0a@]%0a%0aNow extract it%0a[@%0a$ tar xzf unrealircd-5.0.9.1.tar.gz%0a@]%0a%0aNow go inside that dir%0a[@%0a$ cd unrealircd-5.0.9.1%0a@]%0a%0aNow lets build from sauce%0a[@%0a$ ./Config && make && make install%0a@]%0a%0aIt will ask a bunch of questions but you can just click enter on all of them to get default settings witch are fine for most people%0a%0a!!! Knowen errors%0a%0aIf you get this error "gmake[4]: *** [Makefile:1084: libcares_la-ares_process.lo] Error 1" then you will have to also install cares, this is sadly an issue that acures on openbsd on recent versions, hope it gets fixed soon%0a[@%0a$ exit%0a$ doas pkg_add libcares%0a$ doas su irc%0a$ cd ~/unrealircd-5.0.9.1%0a@]%0a%0aThen rerun the build command%0a[@%0a$ ./Config && make && make install%0a@]%0a%0a!!! Clean up%0aJust delete the tar file, you might want to delete source code folder too if low on storage%0a%0a!! Basic config%0aunrealircd has a example, copy it over and start changing it%0a[@%0a$ cd ~/unrealircd/conf%0a$ cp examples/example.conf unrealircd.conf%0a@]%0a%0aYou might want to edit the example config, when done just start it up%0a[@%0a$ ~/unrealircd/unrealircd start%0a@] -time=1635056747 -author:1635056747=mkf -csum:1635056747=and more -diff:1635056747:1635056717:=18c18%0a%3c You can do @@$ whoami@@ to verify you're the @@ircd@@ user now go home @@$ cd@@%0a---%0a> You can do `$ whoami` to verify you're the "ircd" user now go home `$ cd`%0a -host:1635056747=2.178.211.174 -author:1635056717=mkf -csum:1635056717=more wikify -diff:1635056717:1635056628:=9c9,10%0a%3c Makeing a new user for unrealircd is recommend.%0a---%0a> %0a> makeing a new user for unrealircd is recommend.%0a13a15%0a> %0a20a23%0a> %0a62d64%0a%3c unrealircd has a example, copy it over and start changing it%0a64a67,70%0a> @]%0a> %0a> copy example over%0a> [@%0a -host:1635056717=2.178.211.174 -author:1635056628=mkf -csum:1635056628=wikifiy -diff:1635056628:1618026180:=1,25c1,26%0a%3c !! Dependencies%0a%3c %0a%3c We need curl and gmake%0a%3c [@%0a%3c $ doas pkg_add curl gmake%0a%3c @]%0a%3c %0a%3c !! Extra%0a%3c %0a%3c makeing a new user for unrealircd is recommend.%0a%3c [@%0a%3c $ doas useradd -m ircd%0a%3c @]%0a%3c Now we have a user called "ircd" now lets switch to it%0a%3c %0a%3c [@%0a%3c $ doas su ircd%0a%3c @]%0a%3c %0a%3c You can do `$ whoami` to verify you're the "ircd" user now go home `$ cd`%0a%3c %0a%3c !! Download & install%0a%3c %0a%3c Download the latest source code tarball , at the time of writeing this is 5.0.9.1 you can find the latest here [[ https://www.unrealircd.org/|www.unrealircd.org]], but this guide will be useing 5.0.9.1, should be the same for newer versions%0a%3c [@%0a---%0a> 0. Dependencies%0a> %0a> We need curl%0a> %0a> $ doas pkg_add curl%0a> %0a> We also need gmake%0a> %0a> $ doas pkg_add gmake%0a> %0a> 1. Extra%0a> %0a> Ok so if you own a vm or doing this on coconut or something then I recommend makeing a new user for unrealircd ONLY (letter on also a user ONLY for services)%0a> %0a> $ doas useradd -m irc%0a> %0a> Now we have a user called "irc" now lets switch to it%0a> %0a> $ doas su irc%0a> %0a> You can do `$ whoami` to verify you're the "irc" user now go home `$ cd`%0a> %0a> 2. Download & install%0a> %0a> Download the latest source code tar, at the time of writeing this is 5.0.9.1 you can find the latest here https://www.unrealircd.org/download but this guide will be useing 5.0.9.1, should be the exact same for newer versions%0a> %0a27,30c28,30%0a%3c @]%0a%3c %0a%3c Now extract it%0a%3c [@%0a---%0a> %0a> Now untar it%0a> %0a32,33c32%0a%3c @]%0a%3c %0a---%0a> %0a35c34%0a%3c [@%0a---%0a> %0a37,38c36%0a%3c @]%0a%3c %0a---%0a> %0a40c38%0a%3c [@%0a---%0a> %0a42,43c40%0a%3c @]%0a%3c %0a---%0a> %0a46,47c43,44%0a%3c !!! Knowen errors%0a%3c %0a---%0a> 2.1. Knowen errors%0a> %0a49c46%0a%3c [@%0a---%0a> %0a50a48%0a> %0a51a50%0a> %0a52a52%0a> %0a54,55c54%0a%3c @]%0a%3c %0a---%0a> %0a57c56%0a%3c [@%0a---%0a> %0a59,61c58,60%0a%3c @]%0a%3c %0a%3c !!! Clean up%0a---%0a> %0a> 2.2. Clean up%0a> %0a64,65c63,66%0a%3c !! Basic config%0a%3c [@%0a---%0a> 3. Basic config%0a> %0a> go to the config folder%0a> %0a67,68c68%0a%3c @]%0a%3c %0a---%0a> %0a70c70%0a%3c [@%0a---%0a> %0a72,75c72,74%0a%3c @]%0a%3c %0a%3c You might want to edit the example config, when done just start it up%0a%3c [@%0a---%0a> %0a> You will want to edit the example config, when done just start it up%0a> %0a77d75%0a%3c @]%0a\ No newline at end of file%0a -host:1635056628=2.178.211.174 -author:1618026180=jrmu -diff:1618026180:1618024927:=1,38c1,21%0a%3c 0. Dependencies%0a%3c %0a%3c We need curl%0a%3c %0a%3c $ doas pkg_add curl%0a%3c %0a%3c We also need gmake%0a%3c %0a%3c $ doas pkg_add gmake%0a%3c %0a%3c 1. Extra%0a%3c %0a%3c Ok so if you own a vm or doing this on coconut or something then I recommend makeing a new user for unrealircd ONLY (letter on also a user ONLY for services)%0a%3c %0a%3c $ doas useradd -m irc%0a%3c %0a%3c Now we have a user called "irc" now lets switch to it%0a%3c %0a%3c $ doas su irc%0a%3c %0a%3c You can do `$ whoami` to verify you're the "irc" user now go home `$ cd`%0a%3c %0a%3c 2. Download & install%0a%3c %0a%3c Download the latest source code tar, at the time of writeing this is 5.0.9.1 you can find the latest here https://www.unrealircd.org/download but this guide will be useing 5.0.9.1, should be the exact same for newer versions%0a%3c %0a%3c $ curl -LO https://www.unrealircd.org/downloads/unrealircd-5.0.9.1.tar.gz%0a%3c %0a%3c Now untar it%0a%3c %0a%3c $ tar xzf unrealircd-5.0.9.1.tar.gz%0a%3c %0a%3c Now go inside that dir%0a%3c %0a%3c $ cd unrealircd-5.0.9.1%0a%3c %0a%3c Now lets build from sauce%0a%3c %0a---%0a> Ok this will be bad guide, there is vm issues so I couldnt do it in a vm to be sure%0a> anywho...%0a> %0a> 1. get the source code%0a> %0a> go here https://www.unrealircd.org/download and select whatever the stable branch is and download the latest source code%0a> at the time of writeing this, it is https://www.unrealircd.org/downloads/unrealircd-5.0.9.1.tar.gz%0a> so just download that I guess%0a> %0a> 2.%0a> %0a> You want to install cmake%0a> $ doas pkg_add cmake%0a> %0a> then you want to also untar the tar%0a> $ tar xzf unrealircd-*.tar.gz%0a> %0a> 3.%0a> %0a> Now you want to go inside that dirrectory%0a> Inside the dirrectory run%0a40,75c23,30%0a%3c %0a%3c It will ask a bunch of questions but you can just click enter on all of them to get default settings witch are fine for most people%0a%3c %0a%3c 2.1. Knowen errors%0a%3c %0a%3c If you get this error "gmake[4]: *** [Makefile:1084: libcares_la-ares_process.lo] Error 1" then you will have to also install cares, this is sadly an issue that acures on openbsd on recent versions, hope it gets fixed soon%0a%3c %0a%3c $ exit%0a%3c %0a%3c $ doas pkg_add libcares%0a%3c %0a%3c $ doas su irc%0a%3c %0a%3c $ cd ~/unrealircd-5.0.9.1%0a%3c %0a%3c Then rerun the build command%0a%3c %0a%3c $ ./Config && make && make install%0a%3c %0a%3c 2.2. Clean up%0a%3c %0a%3c Just delete the tar file, you might want to delete source code folder too if low on storage%0a%3c %0a%3c 3. Basic config%0a%3c %0a%3c go to the config folder%0a%3c %0a%3c $ cd ~/unrealircd/conf%0a%3c %0a%3c copy example over%0a%3c %0a%3c $ cp examples/example.conf unrealircd.conf%0a%3c %0a%3c You will want to edit the example config, when done just start it up%0a%3c %0a%3c $ ~/unrealircd/unrealircd start%0a---%0a> and ok done%0a> %0a> .%0a> .%0a> .%0a> %0a> Honestly idk why you don't follow this guide instead: https://www.unrealircd.org/docs/Installing_from_source%0a> %0a -host:1618026180=198.251.81.119 -author:1618024927=jrmu -diff:1618024927:1618024927:=1,30d0%0a%3c Ok this will be bad guide, there is vm issues so I couldnt do it in a vm to be sure%0a%3c anywho...%0a%3c %0a%3c 1. get the source code%0a%3c %0a%3c go here https://www.unrealircd.org/download and select whatever the stable branch is and download the latest source code%0a%3c at the time of writeing this, it is https://www.unrealircd.org/downloads/unrealircd-5.0.9.1.tar.gz%0a%3c so just download that I guess%0a%3c %0a%3c 2.%0a%3c %0a%3c You want to install cmake%0a%3c $ doas pkg_add cmake%0a%3c %0a%3c then you want to also untar the tar%0a%3c $ tar xzf unrealircd-*.tar.gz%0a%3c %0a%3c 3.%0a%3c %0a%3c Now you want to go inside that dirrectory%0a%3c Inside the dirrectory run%0a%3c $ ./Config && make && make install%0a%3c and ok done%0a%3c %0a%3c .%0a%3c .%0a%3c .%0a%3c %0a%3c Honestly idk why you don't follow this guide instead: https://www.unrealircd.org/docs/Installing_from_source%0a%3c %0a -host:1618024927=198.251.81.44 +text=(:redirect Openbsd.Unrealircd status=301:) +time=1674242686 +author:1674242686=mkf +diff:1674242686:1674242686:=1d0%0a%3c (:redirect Openbsd.Unrealircd status=301:)%0a\ No newline at end of file%0a +host:1674242686=198.251.82.194 blob - d8ae7a2131b978ede88a93194b9c5a1bfea3e011 blob + fff778ef0c093a7d25506e9d23b629c2fda20e37 --- wiki.d/Unrealircd.RecentChanges +++ wiki.d/Unrealircd.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0) +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 charset=UTF-8 ctime=1618024927 -host=2.178.211.174 +host=198.251.82.194 name=Unrealircd.RecentChanges -rev=5 -text=* [[Unrealircd/Install]] . . . October 24, 2021, at 06:25 AM by [[~mkf]]: [=and more=]%0a -time=1635056747 +rev=6 +text=* [[Unrealircd/Install]] . . . January 20, 2023, at 07:24 PM by [[~mkf]]: [==]%0a +time=1674242686 blob - c88c075a36f1cd927ea9f4de62eb6ef2a3d18985 blob + f6cbf9ed2a6d35e8e48f68c849fc71a6c3cc3e2b --- wiki.d/Vmm.Configure +++ wiki.d/Vmm.Configure @@ -1,16 +1,22 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36 -author=miniontoby +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:68.0) Gecko/20100101 Firefox/68.0 SeaMonkey/2.53.14 +author=mkf charset=UTF-8 -csum=fixed the .iso +csum= ctime=1627536240 -host=45.136.74.157 +host=188.210.127.254 name=Vmm.Configure -rev=5 +rev=7 targets= -text=(:title Configure vmm on OpenBSD:)%0a%0aYou will need to install vmm-firmware (which appears to be free software):%0a%0a[@%0a$ doas pkg_add vmm-firmware%0a@]%0a%0aBy default, there are only four tap interfaces. We need to create sufficient devices for all our virtual machines:%0a%0a[@%0a# cd /dev%0a# for i in $(jot 50 4 50); do sh MAKEDEV tap$i; done%0a@]%0a%0aWe need to increase arpq because we may have so many virtual machines on the same switch:%0a%0a[@%0a# sysctl net.inet.ip.arpq.maxlen=1024%0a# echo "net.inet.ip.arpq.maxlen=1024" >> /etc/sysctl.conf%0a@]%0a%0aWe will need to permit IPv4 and IPv6 forwarding for our virtual machines:%0a%0a[@%0a# sysctl net.inet.ip.forwarding=1%0a# echo "net.inet.ip.forwarding=1" >> /etc/sysctl.conf%0a# sysctl net.inet6.ip6.forwarding=1%0a# echo "net.inet6.ip6.forwarding=1" >> /etc/sysctl.conf%0a@]%0a%0aNext we must create /etc/hostname.bridge0:%0a%0a[@%0aadd if0%0a@]%0a%0awhere if0 is the interface device.%0a%0aWe edit /etc/vm.conf:%0a%0a[@%0asocket owner :vmdusers%0a%0aswitch "switch0" {%0a interface bridge0%0a}%0a%0avm "user123" {%0a owner user123%0a memory 512M%0a cdrom "/home/iso/install69.iso"%0a disk /home/user123/user123.qcow2%0a interface { %0a locked lladdr aa:bb:cc:dd:ee:01%0a switch "switch0"%0a }%0a}%0a@]%0a%0a***WARNING***: Do ***not*** use aa:bb:cc:dd:ee:xx. Make sure to choose your own random lladdr. However, make sure not to pick a broadcast MAC address. If the first octet of the address is an odd number (such as f1:xx:xx:xx:xx:xx or f3:xx:xx:xx:xx:xx), it will appear as a broadcast device and may be the cause of routing issues. Networking will no longer work as a result.%0a%0aNext we will need to download our [[https://openbsd.org/ftp.html|ISO for OpenBSD]].%0a%0a[@%0a$ doas useradd -m -g =uid -c "iso" -d /home/iso -s /sbin/nologin iso%0a$ ftp https://cdn.openbsd.org/pub/OpenBSD/7.0/amd64/install70.iso%0a$ ftp https://cdn.openbsd.org/pub/OpenBSD/7.0/amd64/SHA256.sig%0a$ signify -C -p /etc/signify/openbsd-70-base.pub -x SHA256.sig install70.iso%0aSignature Verified%0ainstall70.iso: OK%0a$ doas mv install70.iso /home/iso/%0a$ doas mv SHA256.sig /home/iso/%0a$ doas chown -R iso:iso /home/iso/%0a@]%0a%0aIf the signature does not verify, don't proceed.%0a%0aWe will want to enable and start vmd:%0a%0a[@%0a$ doas rcctl enable vmd%0a$ doas rcctl start vmd %0a@]%0a%0aWe need to create a new group vmdusers for each of our users so they can access the serial console:%0a%0a[@%0a# groupadd vmdusers%0a# chown root:vmdusers /var/run/vmd.sock%0a@]%0a%0aFor each virtual machine, we create a user and a disk image using install.pl:%0a%0a[@%0a$ ./install.pl%0a@]%0a%0a[@%0a# vmctl create -s 20G user.qcow2%0a@]%0a%0aYou will need to add this crontab entry for a user to prevent the networking from timing out:%0a%0aFor openbsd:%0a%0a[@%0a@reboot /usr/bin/tmux new -d 'while true; do /sbin/ping -i5 38.87.162.1; done' \;%0a@]%0a%0aIf some users are using the wrong IPs, you can run tcpdump with the -e flag to show the lladdr of tcp packets.%0a -time=1660205276 +text=(:title Configure vmm on OpenBSD:)%0a%0aYou will need to install vmm-firmware (which appears to be free software):%0a%0a[@%0a$ doas fw_update%0a@]%0a%0aBy default, there are only four tap interfaces. We need to create sufficient devices for all our virtual machines:%0a%0a[@%0a# cd /dev%0a# for i in $(jot 50 4 50); do sh MAKEDEV tap$i; done%0a@]%0a%0aWe need to increase arpq because we may have so many virtual machines on the same switch:%0a%0a[@%0a# sysctl net.inet.ip.arpq.maxlen=1024%0a# echo "net.inet.ip.arpq.maxlen=1024" >> /etc/sysctl.conf%0a@]%0a%0aWe will need to permit IPv4 and IPv6 forwarding for our virtual machines:%0a%0a[@%0a# sysctl net.inet.ip.forwarding=1%0a# echo "net.inet.ip.forwarding=1" >> /etc/sysctl.conf%0a# sysctl net.inet6.ip6.forwarding=1%0a# echo "net.inet6.ip6.forwarding=1" >> /etc/sysctl.conf%0a@]%0a%0aNext we must create /etc/hostname.bridge0:%0a%0a[@%0aadd if0%0a@]%0a%0awhere if0 is the interface device.%0a%0aWe edit /etc/vm.conf:%0a%0a[@%0asocket owner :vmdusers%0a%0aswitch "switch0" {%0a interface bridge0%0a}%0a%0avm "user123" {%0a owner user123%0a memory 512M%0a cdrom "/home/iso/install69.iso"%0a disk /home/user123/user123.qcow2%0a interface { %0a locked lladdr aa:bb:cc:dd:ee:01%0a switch "switch0"%0a }%0a}%0a@]%0a%0a***WARNING***: Do ***not*** use aa:bb:cc:dd:ee:xx. Make sure to choose your own random lladdr. However, make sure not to pick a broadcast MAC address. If the first octet of the address is an odd number (such as f1:xx:xx:xx:xx:xx or f3:xx:xx:xx:xx:xx), it will appear as a broadcast device and may be the cause of routing issues. Networking will no longer work as a result.%0a%0aNext we will need to download our [[https://openbsd.org/ftp.html|ISO for OpenBSD]].%0a%0a[@%0a$ doas useradd -m -g =uid -c "iso" -d /home/iso -s /sbin/nologin iso%0a$ ftp https://cdn.openbsd.org/pub/OpenBSD/7.0/amd64/install70.iso%0a$ ftp https://cdn.openbsd.org/pub/OpenBSD/7.0/amd64/SHA256.sig%0a$ signify -C -p /etc/signify/openbsd-70-base.pub -x SHA256.sig install70.iso%0aSignature Verified%0ainstall70.iso: OK%0a$ doas mv install70.iso /home/iso/%0a$ doas mv SHA256.sig /home/iso/%0a$ doas chown -R iso:iso /home/iso/%0a@]%0a%0aIf the signature does not verify, don't proceed.%0a%0aWe will want to enable and start vmd:%0a%0a[@%0a$ doas rcctl enable vmd%0a$ doas rcctl start vmd %0a@]%0a%0aWe need to create a new group vmdusers for each of our users so they can access the serial console:%0a%0a[@%0a# groupadd vmdusers%0a# chown root:vmdusers /var/run/vmd.sock%0a@]%0a%0aFor each virtual machine, we create a user and a disk image using install.pl:%0a%0a[@%0a$ ./install.pl%0a@]%0a%0a[@%0a# vmctl create -s 20G user.qcow2%0a@]%0a%0aYou will need to add this crontab entry for a user to prevent the networking from timing out:%0a%0aFor openbsd:%0a%0a[@%0a@reboot /usr/bin/tmux new -d 'while true; do /sbin/ping -i5 38.87.162.1; done' \;%0a@]%0a%0aIf some users are using the wrong IPs, you can run tcpdump with the -e flag to show the lladdr of tcp packets.%0a +time=1674244772 title=Configure vmm on OpenBSD +author:1674244772=mkf +diff:1674244772:1674244203:=6c6%0a%3c $ doas fw_update%0a---%0a> $ doas fwupdate%0a +host:1674244772=188.210.127.254 +author:1674244203=mkf +diff:1674244203:1660205276:=6c6%0a%3c $ doas fwupdate%0a---%0a> $ doas pkg_add vmm-firmware%0a +host:1674244203=198.251.82.194 author:1660205276=miniontoby csum:1660205276=fixed the .iso diff:1660205276:1648211416:=67c67%0a%3c $ ftp https://cdn.openbsd.org/pub/OpenBSD/7.0/amd64/install70.iso%0a---%0a> $ ftp https://cdn.openbsd.org/pub/OpenBSD/7.0/amd64/install69.iso%0a blob - 72983a552fa73906e0a1d7e80705d7ac31855c2e blob + 9a2b8ff76d8e65c507156ef730e888f0955c9d99 --- wiki.d/Vmm.RecentChanges +++ wiki.d/Vmm.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:68.0) Gecko/20100101 Firefox/68.0 SeaMonkey/2.53.14 charset=UTF-8 ctime=1617866331 -host=45.136.74.157 +host=188.210.127.254 name=Vmm.RecentChanges -rev=219 -text=* [[Vmm/Configure]] . . . August 11, 2022, at 08:07 AM by [[~miniontoby]]: [=fixed the .iso=]%0a* [[Vmm/Install]] . . . August 10, 2022, at 08:05 AM by [[~miniontoby]]: [=coconut to host=]%0a* [[Vmm/Alpine]] . . . June 13, 2022, at 05:42 PM by [[~fossdev]]: [==]%0a* [[Vmm/Arch]] . . . June 12, 2022, at 04:11 PM by [[~g1n]]: [=Added article about Arch Linux setup on VMM=]%0a* [[Vmm/Linux]] . . . April 20, 2022, at 05:33 AM by [[~jrmu]]: [==]%0a* [[Vmm/Vmm]] . . . April 15, 2022, at 12:20 PM by [[~Naglfar]]: [=Update: report from PiRATA=]%0a* [[Vmm/SlackwareIso]] . . . February 03, 2022, at 10:53 PM by [[~Naglfar]]: [=Slackware 15.0 x86 stable is released=]%0a* [[Vmm/DebianInstall]] . . . November 24, 2021, at 11:44 AM by [[~nicoz]]: [==]%0a* [[Vmm/AlmaLinux]] . . . November 20, 2021, at 06:47 AM by [[~dodocrypto]]: [==]%0a* [[Vmm/DebianIso]] . . . November 19, 2021, at 09:35 PM by [[~nicoz]]: [==]%0a* [[Vmm/RockyLinux]] . . . November 11, 2021, at 10:51 AM by [[~dodocrypto]]: [==]%0a* [[Vmm/Plan9]] . . . November 05, 2021, at 09:31 PM by [[~mkf]]: [=???=]%0a* [[Vmm/Homerouter]] . . . October 26, 2021, at 05:08 PM by [[~jrmu]]: [==]%0a* [[Vmm/Devuan4Iso]] . . . October 21, 2021, at 04:29 PM by [[~debiankaios]]: [=changed beowulf_3.1.1 to chimaera_4.0.0=]%0a* [[Vmm/Devuan-ISO]] . . . October 14, 2021, at 09:50 AM by [[~siva]]: [==]%0a* [[Vmm/Devuan-Simple]] . . . October 14, 2021, at 09:48 AM by [[~siva]]: [=Tutorial Created=]%0a* [[Vmm/Router]] . . . September 14, 2021, at 12:11 PM by [[~jrmu]]: [==]%0a* [[Vmm/Haiku]] . . . August 27, 2021, at 12:53 PM by [[~mkf]]: [==]%0a* [[Vmm/DragonflyBSD]] . . . August 23, 2021, at 07:31 PM by [[~mkf]]: [=logs=]%0a* [[Vmm/NetBSD]] . . . August 23, 2021, at 07:01 PM by [[~mkf]]: [=better logs?=]%0a* [[Vmm/UbuntuIso]] . . . August 22, 2021, at 06:40 AM by [[~jrmu]]: [==]%0a* [[Vmm/DevuanIso]] . . . August 22, 2021, at 05:44 AM by [[~jrmu]]: [==]%0a* [[Vmm/GuixIso]] . . . August 16, 2021, at 05:12 PM by [[~jrmu]]: [==]%0a* [[Vmm/VoidIso]] . . . August 16, 2021, at 06:19 AM by [[~jrmu]]: [==]%0a* [[Vmm/9front]] . . . August 09, 2021, at 06:16 AM by [[~mkf]]: [==]%0a* [[Vmm/Debian]] . . . June 04, 2021, at 07:48 PM by [[~mkf]]: [="LOL"=]%0a* [[Vmm/Optimize]] . . . May 19, 2021, at 04:04 AM by [[~jrmu]]: [==]%0a -time=1660205276 +rev=221 +text=* [[Vmm/Configure]] . . . January 20, 2023, at 07:59 PM by [[~mkf]]: [==]%0a* [[Vmm/Install]] . . . August 10, 2022, at 08:05 AM by [[~miniontoby]]: [=coconut to host=]%0a* [[Vmm/Alpine]] . . . June 13, 2022, at 05:42 PM by [[~fossdev]]: [==]%0a* [[Vmm/Arch]] . . . June 12, 2022, at 04:11 PM by [[~g1n]]: [=Added article about Arch Linux setup on VMM=]%0a* [[Vmm/Linux]] . . . April 20, 2022, at 05:33 AM by [[~jrmu]]: [==]%0a* [[Vmm/Vmm]] . . . April 15, 2022, at 12:20 PM by [[~Naglfar]]: [=Update: report from PiRATA=]%0a* [[Vmm/SlackwareIso]] . . . February 03, 2022, at 10:53 PM by [[~Naglfar]]: [=Slackware 15.0 x86 stable is released=]%0a* [[Vmm/DebianInstall]] . . . November 24, 2021, at 11:44 AM by [[~nicoz]]: [==]%0a* [[Vmm/AlmaLinux]] . . . November 20, 2021, at 06:47 AM by [[~dodocrypto]]: [==]%0a* [[Vmm/DebianIso]] . . . November 19, 2021, at 09:35 PM by [[~nicoz]]: [==]%0a* [[Vmm/RockyLinux]] . . . November 11, 2021, at 10:51 AM by [[~dodocrypto]]: [==]%0a* [[Vmm/Plan9]] . . . November 05, 2021, at 09:31 PM by [[~mkf]]: [=???=]%0a* [[Vmm/Homerouter]] . . . October 26, 2021, at 05:08 PM by [[~jrmu]]: [==]%0a* [[Vmm/Devuan4Iso]] . . . October 21, 2021, at 04:29 PM by [[~debiankaios]]: [=changed beowulf_3.1.1 to chimaera_4.0.0=]%0a* [[Vmm/Devuan-ISO]] . . . October 14, 2021, at 09:50 AM by [[~siva]]: [==]%0a* [[Vmm/Devuan-Simple]] . . . October 14, 2021, at 09:48 AM by [[~siva]]: [=Tutorial Created=]%0a* [[Vmm/Router]] . . . September 14, 2021, at 12:11 PM by [[~jrmu]]: [==]%0a* [[Vmm/Haiku]] . . . August 27, 2021, at 12:53 PM by [[~mkf]]: [==]%0a* [[Vmm/DragonflyBSD]] . . . August 23, 2021, at 07:31 PM by [[~mkf]]: [=logs=]%0a* [[Vmm/NetBSD]] . . . August 23, 2021, at 07:01 PM by [[~mkf]]: [=better logs?=]%0a* [[Vmm/UbuntuIso]] . . . August 22, 2021, at 06:40 AM by [[~jrmu]]: [==]%0a* [[Vmm/DevuanIso]] . . . August 22, 2021, at 05:44 AM by [[~jrmu]]: [==]%0a* [[Vmm/GuixIso]] . . . August 16, 2021, at 05:12 PM by [[~jrmu]]: [==]%0a* [[Vmm/VoidIso]] . . . August 16, 2021, at 06:19 AM by [[~jrmu]]: [==]%0a* [[Vmm/9front]] . . . August 09, 2021, at 06:16 AM by [[~mkf]]: [==]%0a* [[Vmm/Debian]] . . . June 04, 2021, at 07:48 PM by [[~mkf]]: [="LOL"=]%0a* [[Vmm/Optimize]] . . . May 19, 2021, at 04:04 AM by [[~jrmu]]: [==]%0a +time=1674244772 blob - 03423c0af8cfb3ab5903cdeb6b55d050ea16ec99 blob + b16387ce9b333d48aaea0473517ad16674c3cd51 --- wiki.d/Webnews.Install +++ wiki.d/Webnews.Install @@ -1,42 +1,15 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:82.0) Gecko/20100101 Firefox/82.0 -author=jrmu +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 +author=mkf charset=UTF-8 csum= -ctime=1613879572 -host=198.251.81.119 +ctime=1674241079 +host=198.251.82.194 name=Webnews.Install -rev=10 -targets=Openhttpd.Perl -text=First, see the [[openhttpd/perl|perl install]].%0a%0a[@%0a$ ftp http://www.dgate.org/webnews/tars/webnews-1.3.1.tar.gz%0a$ doas mv webnews /var/www/htdocs/%0a$ doas chown -R www:daemon /var/www/htdocs/webnews%0a@]%0a%0aAs normal user:%0a%0a[@%0a$ cpan%0a...%0aWhat approach do you want? (Choose 'local::lib', 'sudo' or 'manual')%0a [local::lib] %0a...%0acpan[1]> install News::NNTPClient%0acpan[2]> install News::Newsrc%0acpan[3]> install Set::IntSpan%0acpan[4]> install Text::Wrap%0acpan[5]> install HTTP::Date%0acpan[6]> install MIME::QuotedPrint%0acpan[7]> install MIME::Base64%0a@]%0a%0aThen we need to copy the perl libraries:%0a%0a[@%0a$ doas mkdir -p /var/www/usr/local/libdata/%0a$ doas cp -R /usr/local/libdata/perl5 /var/www/usr/local/libdata/%0a@]%0a%0aWe need to change two lines in /var/www/htdocs/webnews/webnews.cgi:%0a%0a[@%0aBEGIN { $CONFFILE = '/htdocs/webnews/webnews.conf'; }%0aBEGIN { $INSTALLDIR = '/htdocs/webnews'; }%0a@]%0a%0aNext we set up the conf file:%0a%0a[@%0a$ doas cp /var/www/htdocs/webnews/webnews.conf.example /var/www/htdocs/webnews/webnews.conf%0a@]%0a%0aThen make a few changes to /var/www/htdocs/webnews/webnews.conf:%0a%0a[@%0a$SERVER = 'example.ircnow.org';%0a$WNDIR = '/htdocs/webnews';%0a$BASEURL = '/';%0a@]%0a%0a!! Troubleshooting%0a%0a[@%0aNews::NNTPClient: Bad hostname: news.oddprotocol.cf at /htdocs/news/webnews.cgi line 119. News::NNTPClient:News::NNTPClient::SOCK1 has been closed at /htdocs/news/webnews.cgi line 147. News::NNTPClient: News::NNTPClient::SOCK1 has been closed at /htdocs/news/webnews.cgi line 169. Bad arg length for Socket::pack_sockaddr_in, length is 0, should be 4 at /usr/local/libdata/perl5/site_perl/News/NNTPClient.pm line 102. News::NNTPClient unexpected EOF on News::NNTPClient::SOCK1 at /htdocs/news/webnews.cgi line 0.%0a@]%0a%0asolution is to create /var/www/etc/resolv.conf -time=1615223634 -author:1615223634=jrmu -diff:1615223634:1613886417:=52,60c52%0a%3c @]%0a%3c %0a%3c !! Troubleshooting%0a%3c %0a%3c [@%0a%3c News::NNTPClient: Bad hostname: news.oddprotocol.cf at /htdocs/news/webnews.cgi line 119. News::NNTPClient:News::NNTPClient::SOCK1 has been closed at /htdocs/news/webnews.cgi line 147. News::NNTPClient: News::NNTPClient::SOCK1 has been closed at /htdocs/news/webnews.cgi line 169. Bad arg length for Socket::pack_sockaddr_in, length is 0, should be 4 at /usr/local/libdata/perl5/site_perl/News/NNTPClient.pm line 102. News::NNTPClient unexpected EOF on News::NNTPClient::SOCK1 at /htdocs/news/webnews.cgi line 0.%0a%3c @]%0a%3c %0a%3c solution is to create /var/www/etc/resolv.conf%0a\ No newline at end of file%0a---%0a> @]%0a\ No newline at end of file%0a -host:1615223634=198.251.81.119 -author:1613886417=jrmu -diff:1613886417:1613882730:=40,52d39%0a%3c Next we set up the conf file:%0a%3c %0a%3c [@%0a%3c $ doas cp /var/www/htdocs/webnews/webnews.conf.example /var/www/htdocs/webnews/webnews.conf%0a%3c @]%0a%3c %0a%3c Then make a few changes to /var/www/htdocs/webnews/webnews.conf:%0a%3c %0a%3c [@%0a%3c $SERVER = 'example.ircnow.org';%0a%3c $WNDIR = '/htdocs/webnews';%0a%3c $BASEURL = '/';%0a%3c @]%0a\ No newline at end of file%0a -host:1613886417=198.251.81.119 -author:1613882730=jrmu -diff:1613882730:1613882613:= -host:1613882730=198.251.81.119 -author:1613882613=jrmu -diff:1613882613:1613881473:=26,27d25%0a%3c Then we need to copy the perl libraries:%0a%3c %0a32,39d29%0a%3c %0a%3c We need to change two lines in /var/www/htdocs/webnews/webnews.cgi:%0a%3c %0a%3c [@%0a%3c BEGIN { $CONFFILE = '/htdocs/webnews/webnews.conf'; }%0a%3c BEGIN { $INSTALLDIR = '/htdocs/webnews'; }%0a%3c @]%0a%3c %0a -host:1613882613=198.251.81.119 -author:1613881473=jrmu -diff:1613881473:1613881022:=24,29c24%0a%3c @]%0a%3c %0a%3c [@%0a%3c $ doas mkdir -p /var/www/usr/local/libdata/%0a%3c $ doas cp -R /usr/local/libdata/perl5 /var/www/usr/local/libdata/%0a%3c @]%0a---%0a> @]%0a\ No newline at end of file%0a -host:1613881473=198.251.81.119 -author:1613881022=jrmu -diff:1613881022:1613881012:= -host:1613881022=198.251.81.119 -author:1613881012=jrmu -diff:1613881012:1613879805:=16,23d15%0a%3c ...%0a%3c cpan[1]> install News::NNTPClient%0a%3c cpan[2]> install News::Newsrc%0a%3c cpan[3]> install Set::IntSpan%0a%3c cpan[4]> install Text::Wrap%0a%3c cpan[5]> install HTTP::Date%0a%3c cpan[6]> install MIME::QuotedPrint%0a%3c cpan[7]> install MIME::Base64%0a -host:1613881012=198.251.81.119 -author:1613879805=jrmu -diff:1613879805:1613879685:=7,15d6%0a%3c @]%0a%3c %0a%3c As normal user:%0a%3c %0a%3c [@%0a%3c $ cpan%0a%3c ...%0a%3c What approach do you want? (Choose 'local::lib', 'sudo' or 'manual')%0a%3c [local::lib] %0a -host:1613879805=125.231.57.76 -author:1613879685=jrmu -diff:1613879685:1613879572:=3,7d2%0a%3c [@%0a%3c $ ftp http://www.dgate.org/webnews/tars/webnews-1.3.1.tar.gz%0a%3c $ doas mv webnews /var/www/htdocs/%0a%3c $ doas chown -R www:daemon /var/www/htdocs/webnews%0a%3c @]%0a\ No newline at end of file%0a -host:1613879685=125.231.57.76 -author:1613879572=jrmu -diff:1613879572:1613879572:=1,2d0%0a%3c First, see the [[openhttpd/perl|perl install]].%0a%3c %0a -host:1613879572=125.231.57.76 +rev=1 +targets= +text=(:redirect Openbsd.Webnews status=301:) +time=1674241079 +author:1674241079=mkf +diff:1674241079:1674241079:=1d0%0a%3c (:redirect Openbsd.Webnews status=301:)%0a\ No newline at end of file%0a +host:1674241079=198.251.82.194 blob - d11ae7a9adbb6f80caabf8dc33120a6134cf16a2 blob + 3454b30b3357e168cfb6949deafa4084fee734d8 --- wiki.d/Webnews.RecentChanges +++ wiki.d/Webnews.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:82.0) Gecko/20100101 Firefox/82.0 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 charset=UTF-8 ctime=1613879572 -host=198.251.81.119 +host=198.251.82.194 name=Webnews.RecentChanges -rev=10 -text=* [[Webnews/Install]] . . . March 08, 2021, at 05:13 PM by [[~jrmu]]: [==]%0a -time=1615223634 +rev=13 +text=* [[Webnews/Install]] . . . January 20, 2023, at 06:57 PM by [[~mkf]]: [==]%0a +time=1674241079 blob - 25d42ead49c6cca9cfbbda64e4d67866b9ece94d blob + 3571395b44e4db64f6752426472ba108a04bca4a --- wiki.d/Xfce.Install +++ wiki.d/Xfce.Install @@ -1,39 +1,18 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=w3m/0.5.3+git20210102 -author=jrmu +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 +author=mkf charset=UTF-8 csum= -ctime=1626662065 -host=125.224.22.161 +ctime=1674238238 +host=198.251.82.194 name=Xfce.Install -rev=9 +rev=2 targets= -text=[@%0a$ doas pkg_add xfce%0a@]%0a%0aIn /etc/X11/xinit/xinitrc, comment out these lines:%0a%0a[@%0a# start some nice programs%0axclock -geometry 50x50-1+1 &%0axconsole -iconic &%0axterm -geometry 80x24 &%0afvwm || xterm%0a@]%0a%0aand add this line underneath:%0a%0a[@%0astartxfce4 %0a@]%0a%0a(:if false:)%0aIn ~/.xsession, add:%0a%0a[@%0a/usr/local/bin/startxfce4 --with-ck-launch%0a@]%0a(:ifend:)%0a%0aThen @@$ doas rcctl restart xenodm@@%0a%0a'''NOTE''': For some systems, editing @@/etc/X11/xinit/xinitrc@@ does not seem to work, but this command does work:%0a%0a[@%0aecho 'startxfce4' > ~/.xsession%0a@]%0a%0aThen restart xenodm:%0a%0a[@%0a$ doas rcctl restart xenodm%0a@]%0a%0aAttach:xfce-desktop.png%0a -time=1633778869 -author:1633778869=jrmu -diff:1633778869:1633006721:=30,41d29%0a%3c %0a%3c '''NOTE''': For some systems, editing @@/etc/X11/xinit/xinitrc@@ does not seem to work, but this command does work:%0a%3c %0a%3c [@%0a%3c echo 'startxfce4' > ~/.xsession%0a%3c @]%0a%3c %0a%3c Then restart xenodm:%0a%3c %0a%3c [@%0a%3c $ doas rcctl restart xenodm%0a%3c @]%0a -host:1633778869=125.224.22.161 -author:1633006721=jrmu -diff:1633006721:1628658257:=30,31d29%0a%3c %0a%3c Attach:xfce-desktop.png%0a -host:1633006721=125.231.16.216 -author:1628658257=jrmu -diff:1628658257:1628658179:=20,27d19%0a%3c %0a%3c (:if false:)%0a%3c In ~/.xsession, add:%0a%3c %0a%3c [@%0a%3c /usr/local/bin/startxfce4 --with-ck-launch%0a%3c @]%0a%3c (:ifend:)%0a -host:1628658257=38.87.162.8 -author:1628658179=jrmu -diff:1628658179:1628656812:=12c12%0a%3c fvwm || xterm%0a---%0a> fvwm || xterm%0a18a19,24%0a> @]%0a> %0a> In ~/.xsession, add:%0a> %0a> [@%0a> /usr/local/bin/startxfce4 --with-ck-launch%0a -host:1628658179=38.87.162.8 -author:1628656812=jrmu -diff:1628656812:1626671743:=3,18d2%0a%3c @]%0a%3c %0a%3c In /etc/X11/xinit/xinitrc, comment out these lines:%0a%3c %0a%3c [@%0a%3c # start some nice programs%0a%3c xclock -geometry 50x50-1+1 &%0a%3c xconsole -iconic &%0a%3c xterm -geometry 80x24 &%0a%3c fvwm || xterm%0a%3c @]%0a%3c %0a%3c and add this line underneath:%0a%3c %0a%3c [@%0a%3c startxfce4 %0a -host:1628656812=38.87.162.8 -author:1626671743=jrmu -diff:1626671743:1626671708:=10,11d9%0a%3c %0a%3c Then @@$ doas rcctl restart xenodm@@%0a -host:1626671743=38.87.162.8 -author:1626671708=jrmu -diff:1626671708:1626662381:=5,6c5,6%0a%3c In ~/.xsession, add:%0a%3c %0a---%0a> In /etc/X11/xinit/xinitrc, comment out:%0a> %0a8c8,14%0a%3c /usr/local/bin/startxfce4 --with-ck-launch%0a---%0a> fvwm || xterm%0a> @]%0a> %0a> and replace with:%0a> %0a> [@%0a> startxfce4 &%0a -host:1626671708=38.87.162.8 -author:1626662381=jrmu -diff:1626662381:1626662065:=5,6c5,6%0a%3c In /etc/X11/xinit/xinitrc, comment out:%0a%3c %0a---%0a> In ~/.xsession:%0a> %0a8c8%0a%3c fvwm || xterm%0a---%0a> /usr/local/bin/startxfce4 --with-ck-launch%0a11,15d10%0a%3c and replace with:%0a%3c %0a%3c [@%0a%3c startxfce4 &%0a%3c @]%0a -host:1626662381=38.87.162.8 -author:1626662065=jrmu -diff:1626662065:1626662065:=1,10d0%0a%3c [@%0a%3c $ doas pkg_add xfce%0a%3c @]%0a%3c %0a%3c In ~/.xsession:%0a%3c %0a%3c [@%0a%3c /usr/local/bin/startxfce4 --with-ck-launch%0a%3c @]%0a%3c %0a -host:1626662065=38.87.162.8 +text=(:redirect Openbsd.Xfce status=301:) +time=1674238657 +author:1674238657=mkf +diff:1674238657:1674238238:=1c1%0a%3c (:redirect Openbsd.Xfce status=301:)%0a\ No newline at end of file%0a---%0a> (:redirect Openbsd.Xfce:)%0a\ No newline at end of file%0a +host:1674238657=198.251.82.194 +author:1674238238=mkf +diff:1674238238:1674238238:=1d0%0a%3c (:redirect Openbsd.Xfce:)%0a\ No newline at end of file%0a +host:1674238238=198.251.82.194 blob - 39ac37af41cab673ef4d6e678c3e024d8afb510a blob + 6d1cd1ce570931e1e12a2bd63032eecfd1671906 --- wiki.d/Xfce.RecentChanges +++ wiki.d/Xfce.RecentChanges @@ -1,9 +1,9 @@ version=pmwiki-2.2.130 ordered=1 urlencoded=1 -agent=w3m/0.5.3+git20210102 +agent=Mozilla/5.0 (X11; OpenBSD amd64; rv:102.0) Gecko/20100101 Firefox/102.0 charset=UTF-8 ctime=1626662065 -host=125.224.22.161 +host=198.251.82.194 name=Xfce.RecentChanges -rev=9 -text=* [[Xfce/Install]] . . . October 09, 2021, at 11:27 AM by [[~jrmu]]: [==]%0a -time=1633778869 +rev=11 +text=* [[Xfce/Install]] . . . January 20, 2023, at 06:17 PM by [[~mkf]]: [==]%0a +time=1674238657