[HN Gopher] Show HN: I made Devzat - It's like discord but in th...
       ___________________________________________________________________
        
       Show HN: I made Devzat - It's like discord but in the terminal,
       over SSH
        
       Run `ssh devzat.hackclub.com` to try it out! The repo is here:
       https://github.com/quackduck/devzat (golang). It has markdown and
       emoji support, DMs, channels, and it can show images too. You can
       send code, and it gets syntax highlighted (you can change the
       theme). You can ping people like so: @user and it sends them a \a,
       which should play an audible sound if the terminal allows it.
       There's inbuilt games and rainbow names and a lot of other small
       things I don't remember right now.  You might find the auth system
       interesting: it's based on a hash of ssh pubkey (bans use that and
       a hash of IP, so it isn't so easy to get around a ban)  Also an
       interesting issue: bots that go around trying to brute force ssh
       into random IPs with common usernames. My current solution is
       banning if rapid successive joins are detected.
        
       Author : quackduck
       Score  : 116 points
       Date   : 2022-03-15 18:02 UTC (4 hours ago)
        
       | heyitsguay wrote:
       | Is this working now? I logged on and can't do anything and
       | nothing seems to be happening, i just get a snippet of text
       | starting "38m earlier"
        
         | quackduck wrote:
         | sorry, i have no idea why it went down lol, i've fixed it now
        
         | nrclark wrote:
         | Same for me, I'm guessing it's hugged from all the YC traffic.
        
           | quackduck wrote:
           | pretty much lol
        
       | hdb2 wrote:
       | I really dig this, but if I issue a command like cd, the output
       | should only be showed to the person who issued the command.
       | 
       | but this is really fun! nice job!
        
         | quackduck wrote:
         | That was an intentional choice
        
           | buzzert wrote:
           | What if you want to just say one of the commands? IMO, there
           | should be some sort of prefix (like '/') before commands to
           | disambiguate.
        
       | humanwhosits wrote:
       | I really like it, it seems like a great alternative to slack for
       | a team that just wants non-notification chat
        
         | quackduck wrote:
         | Heck yeah, feel free to email me updates (you can find my email
         | on my github) if you decide to try it out
        
       | odonnellryan wrote:
       | Lots of fun, but the issue with the images (is this the problem?)
       | needs to be fixed. And the command issue where everyone sees the
       | output - I wonder how hard that would be to address. Neat app!
        
         | quackduck wrote:
         | Everyone seeing output is an intentional choice. What's the
         | problem with images?
        
       | geoah wrote:
       | Love the fact that there are currently more people on the server
       | than likes on this post :D
       | 
       | You might wanna take a look at
       | https://github.com/charmbracelet/bubbletea ad specifically
       | https://github.com/charmbracelet/soft-serve for v2.
       | 
       | IRC style commands that are only sent to the sender would also be
       | nice as current version is a bit spammy with help and user
       | commands.
        
         | quackduck wrote:
         | idk if i wanna make this a TUI tbh, i've seen those libs
         | before. I don't think they support output to an io.Writer /
         | term.Terminal though
        
           | boomskats wrote:
           | I believe https://github.com/charmbracelet/wish is the repo
           | you're looking for!
           | 
           | (and also the repo the person you replied to probably meant
           | to post)
        
       | mixmastamyk wrote:
       | What is discord? Yes, I've heard of the company, but haven't used
       | it. You might do better with "chat" as more folks know what that
       | is.
        
         | bovermyer wrote:
         | I imagine the selection of people who would use Devzat's
         | feature set are at least passingly familiar with Discord.
         | 
         | People who aren't familiar with Discord but that would still
         | use text chat over SSH are probably more likely to use IRC.
        
         | drdaeman wrote:
         | I still remember when Discord was primarily a voice chat
         | (later, with screen sharing features too), essentially a
         | replacement for TeamSpeak/Mumble/Ventrilo, not IRC or XMPP MUC.
         | 
         | Looks like those days it's more of a Slack/Gitter/IRC
         | alternative.
        
         | charcircuit wrote:
         | Discord is one of the most popular chat platforms. Imagine IRC,
         | but more modern and the developers actually care about UX.
        
           | pmarreck wrote:
           | LOL @ the developers caring about UX. I can't count how many
           | times I tried to find some functionality only to have to
           | google how to do it.
        
             | charcircuit wrote:
             | The only time I've does this it turned out that a feature
             | didn't exist to do what I wanted, but you must admit the UX
             | of creating a new IRC server is a million times worse than
             | creating a new discord server.
        
           | fouc wrote:
           | I struggle to use Discord precisely because of the UX. and I
           | say that with years of IRCing in a terminal with a black
           | background. I vastly prefer Slack's theme.
           | 
           | Discord's dark & light themes are too hard on my eyes. They
           | feel like the designers have never worked on a 13" MBP and
           | only large monitors w/ non-retina displays.
        
           | sonicggg wrote:
           | But unfortunately it is highly censored. And if you're part
           | of any community that is banned, your account is banned as
           | well. It happens often. Something I experienced, as a former
           | member of a nootropics server.
           | 
           | I don't find the service very trustworthy, but I think that
           | if you're a gamer, it may work out just fine for you.
        
             | charcircuit wrote:
             | I agree that I wish their rules were more lax, but a trust
             | and safety ban of a server doesn't necessarily ban everyone
             | from the server. Just recently a server I was in got a
             | trust and safety ban and no one got banned. The server just
             | disappeared.
        
       | boxingrock wrote:
       | i knew the name looked familiar... there's already a hackthebox
       | out for it: https://www.youtube.com/watch?v=QEgtbzS1Pyc
        
         | quackduck wrote:
         | I know! An longtime user of Devzat made it
        
       | rav wrote:
       | After living through Google Chat going down while handling a
       | server incident at work, I created an internal, encrypted chat
       | system in order to have an alternative in case our regular
       | communications channel is down.
       | 
       | However the actual chat part of it is very barebones with a
       | simplistic JSON-based protocol and a simplistic IRC-like
       | interface - quite unlike devzat.
       | 
       | I wonder how hard it would be to untangle the authentication and
       | transport bits from devzat and plug in our own proprietary
       | auth/transport.
        
         | quackduck wrote:
         | I don't think it wouldn't be hard, since there isn't really
         | much auth (just some key and IP stuff), so you'd mainly have to
         | add your own. Feel free to email me (my email's on my github)
         | with updates / questions if you do decide to try it out!
        
       | makeworld wrote:
       | I just get "Permission denied (publickey)". The README says to
       | just run ssh-keygen, but I already have an RSA key. Does this
       | server only support ed25519 or something?
        
         | colbyhub wrote:
         | Using the following helped me join: ssh devzat.hackclub.com -p
         | 443
         | 
         | ... to get around my firewall!
        
         | kerblang wrote:
         | I think you are correct. Was able to get in by first doing
         | `ssh-keygen -t ed25519` to create new private/public keys (be
         | careful not to overwrite ssh keys that you are already using
         | for other things!). RSA support is being phased out in various
         | places.
        
         | hinkley wrote:
         | This is your week to learn about .ssh/config files.
        
           | quackduck wrote:
           | this is mostly a certain crypto lib's fault (maybe stdlib,
           | let me check)
        
       | alucardo wrote:
       | Post a video of a demo of it. Might drain attention :)
        
         | quackduck wrote:
         | Good idea, idk how to make good videos, probably an asciinema
         | would be good
        
       | 0xbadcafebee wrote:
       | > It's like discord but in the terminal, over SSH
       | 
       | so it's IRC?
        
         | quackduck wrote:
         | idk, i didn't exist when IRC was the hip thing
        
           | 0xbadcafebee wrote:
           | You might wanna check it out. Things like code quotes and
           | expand/collapse would be cool to add to an IRC client. I
           | think some clients already support emoji as it's just UTF8?
           | 
           | It's common for IRC users to use IRC from a terminal client
           | on their desktop. If they have a remote server they'll ssh
           | into a box and use their terminal client there. They'd also
           | use a _screen_ session to keep their IRC client running 24 /7
           | so they can keep receiving messages. Or they'll keep an
           | _eggdrop_ bot on a server somewhere, which is basically a
           | sorta IRC proxy that they connect to from any IRC client and
           | can keep their user online in the background.
           | 
           | Here's some stuff on IRC: https://github.com/ircdocs/modern-
           | irc | https://www.mirc.com/colors.html |
           | https://wiki.wireshark.org/IRC
           | 
           | Looks like there's some discord<->IRC gateways:
           | https://github.com/sjwhitak/discord-irc-matrix
           | https://github.com/qaisjp/go-discord-irc
           | https://discordrc.com/
        
         | willis936 wrote:
         | IRC never used SSH.
        
       | exabrial wrote:
       | make sure one's ssh-agent forwarding is off when connecting to
       | strange hosts :)
        
       | nog0x7cd wrote:
       | Looks cool, joined and made friends with a french dude. Totally
       | forgot how cool irc-like minimalism can be sometimes.
        
         | quackduck wrote:
         | Thanks lol, that makes me smile
        
       | bovermyer wrote:
       | I like it. A few observations:
       | 
       | * Hangman doesn't give you credit for all instances of a letter
       | when you guess it
       | 
       | * Starting a new game of hangman (maybe also TTT?)
       | interrupts/erases the previous one, if there's one in progress
       | 
       | * Images can be anything and aren't filtered - troll users could
       | present some nasty stuff
       | 
       | * User settings don't persist (e.g., nickname)
        
         | rhacker wrote:
         | sixel appears to be too large... it would be better if it made
         | small outputs
        
           | quackduck wrote:
           | sixel is super experimental
        
         | quackduck wrote:
         | I'm not good at handling user data so I haven't added
         | persistence, could in the future
         | 
         | IDK how to filter images oof
         | 
         | Wdym by that first point? (Hangman is case sensitive)
        
       ___________________________________________________________________
       (page generated 2022-03-15 23:00 UTC)