this post was submitted on 03 Oct 2025
168 points (99.4% liked)

Selfhosted

52054 readers
1128 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

This can be installed with a 15kb install script that compiles all resources and hosts the server right in your pocket.

top 22 comments
sorted by: hot top controversial new old
[–] CIA_chatbot@lemmy.world 26 points 3 days ago (3 children)
[–] hereforawhile@lemmy.ml 1 points 14 hours ago* (last edited 14 hours ago)

Ok,

Here is a more polished version with MIT license.

Improvements

-User counts

-Connection Status Indicator

-Ability to turn on persistent rooms. By default, the server only relays in real time. /persist turns on chat logs. The server then stores encrypted messages and users can chat asynchronously.

-Rotating onion address and keeping existing onion now work correctly. If you rotate a onion address, since encryption keys are partially derived from the onion address, the client will be unable to decrypt messages even if the same password is used.

-filter command can be used to bootstrap private rooms in a scenario where multiple people want to use the same server, yet chat privately. All it does is filter out messages that it can't decrypt because it has the wrong password.

-Got rid of ncurses set up menus to slim down the script a bit.

-Removed redundant server manager commands and now only list two. Quit and Quit and Flush (this deletes everything in the server directory except persistent chat logs if they were turned on)

New UI

Example of Encrypted Chat Logs on Server Side

I noticed some of my devices during testing wouldn't connect without hosting a server in a seperate instance. I'm not sure why this is happening but if you can't connect, try to host a server and then connect to another host. This seemed to fix the issue.

[–] hereforawhile@lemmy.ml 16 points 3 days ago

Ok this is still super early but it's working on the few devices I tried with a fresh install of termux.

https://pastebin.com/cRL6MnKe

[–] hereforawhile@lemmy.ml 12 points 3 days ago (2 children)

Working on a slightly more polished version. I can release soon.

[–] solrize@lemmy.ml 7 points 3 days ago (1 children)

Wow, it is cute. I'm still having trouble imagining using it, but I like the idea of a curses chat client under tmux.

[–] Yaky@slrpnk.net 4 points 3 days ago

Profanity for XMPP and gomuks for Matrix are both neat ncurses clients that work pretty well.

[–] CIA_chatbot@lemmy.world 4 points 3 days ago

Thanks, looks cool

[–] hereforawhile@lemmy.ml 24 points 3 days ago
[–] Geometrinen_Gepardi@sopuli.xyz 9 points 3 days ago (1 children)

Was this coded on a phone touchscreen?

[–] Flatfire@lemmy.ca 9 points 3 days ago

Echoing the sentiment of the other commenter. A link would be great!

[–] solrize@lemmy.ml 4 points 3 days ago (2 children)

I don't get it, how to other clients connect and do they use the same program? It does look cool though the tmux keyboard is bare bones.

[–] Johnmannesca@lemmy.world 1 points 19 hours ago

Use unexpected keyboard, nobody expects the unexpected keyboard!

[–] hereforawhile@lemmy.ml 5 points 3 days ago (1 children)

The install script contains all the pieces needed to be the host server or just a client. Because termux allows you to run multiple sessions, if you are the host, you have to run the server in one session and then connect in a different session.

What's not shown in the screen shot is that if you choose to host, a onion address is generated. This is how other clients connect.

[–] solrize@lemmy.ml 2 points 3 days ago (1 children)

I did see some onion code in the script, but didn't figure out that it was listening on an onion port. Cool. I'm not sure of the attraction of running it on a phone, but I'll take your word for it ;). Do you actually use it? Yeah I can see wanting to reorganize it in some ways, and maybe try to use some more standard protocols (irc?) or a subset. Does tor not already provide its own crypto?

[–] hereforawhile@lemmy.ml 5 points 3 days ago

Yeah, tor is already encrypting between each node and since both clients are connecting to the rendezvous point inside of the Tor network it should already theoretically be encrypted E2E... The other crypto is just in case that's not true... why not add other layers of encryption if you can.

No I don't use it it's kinda just a lil hobby. Nice to know I can depoly worldwide anonymous coms from my pocket though.

I have better more usable methods

[–] possiblylinux127@lemmy.zip 2 points 3 days ago (1 children)

I honestly would prefer something like Briar

[–] hereforawhile@lemmy.ml 3 points 2 days ago

I thought briar was known to leak Wifi and BT identifiers is that fixed?

[–] phase@lemmy.8th.world 1 points 2 days ago (1 children)

Is Termux still up to date? I thought it wasn't available on android anymore. Is it on something else?

[–] hereforawhile@lemmy.ml 1 points 2 days ago

I think you can but the developers recommend getting it from GitHub or F-Droid because of google play policy issues.

[–] Jayjader@jlai.lu 3 points 3 days ago

Kudos for developing this on your phone! I've played around with termux, even have a Bluetooth keyboard, but I've never had the courage to actually code through it.