#nncp — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #nncp, aggregated by home.social.
-
Convince your friends to host their own email server a home and do help them set it up…
Then set up NNCP routes to and from their email server to your own self-hosted email server(s) and any of your mutual friend's self-hosted email servers
-
@orsinium I know, they stole email from us claiming to combat spam and somehow there is still spam
==Email==
Maybe I only need to receive email over SMTP.
Otherwise email transfer using NNCP with known-trusted-hosts of friends and family?
Perhaps #FOAF even?
Perhaps as part of NNCPNET?
Maybe (text-only) #USENET also via NNCP?
Edit: bc I just found #NNCP and #NNCPNET and think this could be a solution
==Webdev==
I can use #RubyOnRails as needed ¯\_(ツ)_/¯
-
@spacehobo This sent me down a rabbit hole and now I'm all jazzed up about #NNCP.
-
@karen With #NNCP, we break the tyranny of online with delay-tolerant networking. https://www.complete.org/nncp/ The new #NNCPNET is an email network running atop it -- with bridges to the public Internet. https://salsa.debian.org/jgoerzen/docker-nncpnet-mailnode/-/wikis/home
2/
-
@ireneista Oh interesting! I'd enjoy hearing some about your project.
These days I am mostly working with its successor #NNCP but UUCP still is fun to work with also. Especially over slow radios like #LoRa.
-
I have a new blog post: "I'm not very popular, thankfully. That makes the Internet fun again."
I muse that not having to care about subscriber counts lets me write about the things that interest me, from non-square DOS VGA text mode pixels in Linux to #NNCP and such. I couldn't do that if I cared about advertisers and subscriber counts and so forth.
-
@kelbot I'll also call out #UUCP. It was one of the last 2 large-scale asynchronous communication methods we had (the last being email, which still survives in that form). Could talk over anything. #NNCP is a worthy successor and, while it doesn't do modems, it does do #encryption and USB drives.
-
@usul @lwn I like to say "#NNCP is to #UUCP as #ssh is to telnet". That is, NNCP adds modern encryption and a lot more flexibility, while dropping UUCP's modem focus.
If you really do need to use modems, NNCP is more flexible than UUCP in how you get data in and out of it, and it is certainly possible to transport NNCP using UUCP. (Vice-versa is more difficult because UUCP has no API for this)
1/
-
This is a great article by #LWN @lwn about #NNCPNET, which uses #NNCP to form an email network that lets you run real mail servers (even with an Internet bridge) as easily as it used to be! https://lwn.net/SubscriberLink/1031208/2335d9c8b8eb28c5/
-
NNCPNET email: Atavistic project to bring back old style UUCP email but with modern protocols and tools
https://changelog.complete.org/archives/10768-announcing-the-nncpnet-email-network
#networking #internet #history #email #uucp #nncp #+ -
My new blog post, Memoirs of the Early #Internet, unearths a few relics of the early Internet and #UUCP days from some obscure sites.
https://changelog.complete.org/archives/10792-memoirs-of-the-early-internet
Researching cool things a person can do with #asynchronous #email over #NNCP (#NNCPNET) led me down that path. So while you're there, you can also check out the post about the NNCPNET Internet email gateway. https://changelog.complete.org/archives/10783-nncpnet-can-optionally-exchange-internet-email
-
NNCPNET Can Optionally Exchange Internet Email
A few days ago, I announced NNCPNET, the email network based atop NNCP. NNCPNET lets anyone run a real mail server on a network that supports all sorts of topologies for transport, from Internet to USB drives. And verification is done at the NNCP protocol level, so a whole host of Internet email bolt-ons (SPF, DMARC, DKIM, etc.) are unnecessary.
Shortly after announcing NNCPNET, I added an Internet bridge. This lets you get your own DOMAIN.nncpnet.org domain, and from there route email to and from the Internet using a gateway node. Simple, effective, and a way to get real email to and from your laptop or Raspberry Pi without having to have a static IP, SPF, DMARC, DKIM, etc.
It’s a volunteer-run, free, service. Give it a try!
-
All right so I kind of have the basics of what #nncp is now let's see if I can figure out how to set up an email server that runs over that I think the downside of it though is in order to send emails to other people add I would have to add them to the node list I think
-
My blog post on #NNCPNET, the #email network atop #NNCP : https://changelog.complete.org/archives/10768-announcing-the-nncpnet-email-network
-
Announcing the NNCPNET Email Network
From 1995 to 2019, I ran my own mail server. It began with a UUCP link, an expensive long-distance call for me then. Later, I ran a mail server in my apartment, then ran it as a VPS at various places.
But running an email server got difficult. You can’t just run it on a residential IP. Now there’s SPF, DKIM, DMARC, and TLS to worry about. I recently reviewed mail hosting services, and don’t get me wrong: I still use one, and probably will, because things like email from my bank are critical.
But we’ve lost the ability to tinker, to experiment, to have fun with email.
Not anymore. NNCPNET is an email system that runs atop NNCP. I’ve written a lot about NNCP, including a less-ambitious article about point-to-point email over NNCP 5 years ago. NNCP is to UUCP what ssh is to telnet: a modernization, with modern security and features. NNCP is an asynchronous, onion-routed, store-and-forward network. It can use as a transport anything from the Internet to a USB stick.
NNCPNET is a set of standards, scripts, and tools to facilitate a broader email network using NNCP as the transport. You can read more about NNCPNET on its wiki!
The “easy mode” is to use the Docker container (multi-arch, so you can use it on your Raspberry Pi) I provide, which bundles:
- Exim mail server
- NNCP
- Verification and routing tools I wrote. Because NNCP packets are encrypted and signed, we get sender verification “for free”; my tools ensure the From: header corresponds with the sending node.
- Automated nodelist tools; it will request daily nodelist updates and update its configurations accordingly, so new members can be communicated with
- Integration with the optional, opt-in Internet email bridge
It is open to all. The homepage has a more extensive list of features.
I even have mailing lists running on NNCPNET; see the interesting addresses page for more details.
There is extensive documentation, and of course the source to the whole thing is available.
The gateway to Internet SMTP mail is off by default, but can easily be enabled for any node. It is a full participant, in both directions, with SPF, DKIM, DMARC, and TLS.
You don’t need any inbound ports for any of this. You don’t need an always-on Internet connection. You don’t even need an Internet connection at all. You can run it from your laptop and still use Thunderbird to talk to it via its optional built-in IMAP server.
-
@jeremiah_ @elb #NNCPNET, the new #NNCP-based email network, now has a bidirectional, opt-in, Internet #email bridge! https://salsa.debian.org/jgoerzen/docker-nncpnet-mailnode/-/wikis/bridge/intro
This gates Internet email to/from NNCP. The bridge is off by default. It is a full participant in #SPF, #DKIM, #DMARC, and #TLS in both directions.
Yes, now you can get Internet email straight to your #RaspberryPi ! (And even without this, your Pis can email each other!)
-
@elb I'm now ready to announce #NNCPNET, the #NNCP-based email network. https://salsa.debian.org/jgoerzen/docker-nncpnet-mailnode/-/wikis/home
It is open to all. It can route email across the Internet or USB stick. You can run a full, real mail server without a public IP, port forwarding, or even Internet access. It's a friend-of-a-friend network; mail delivery is automatic, but adding people is done by humans.
It uses all the tools that you're used to with Internet email, but is the opposite of it. Enjoy!
-
I am thinking the time is right to implement a #NNCP-based email network.
Anyone interested?
-
@codemonkeymike I've even found people interested in my obscure asynchronous communication interests like #NNCP and #UUCP. Twitter was never great for less popular things and got worse over time as it tried to boost the popular.
#Mastodon is the closest thing I've seen to a 90s #BBS, and this is a compliment.
You can also follow hashtags here, so any post by any person that is followed by anybody on your instance with that hashtag will show up in your feed. 2/
-
Offline BBSing (gopher://thelambdalab.xyz:70/0phlog/2024-08-16-Offline-BBSing.txt) describes an interesting project of an #offlineFirst BBS based on #NNCP and QWK mail format (yeah, the same used by old BBSs) 🤩
I need to learn more about NNCP and understand whether a micropython implementation exists / is feasible (pointers are more than welcome!). #gwit was already a good concept to try and bring on smol hardware, and NNCP looks like a way more general extension.
Ooof I need more holidays for all of this! 😁
-
@minoru Thanks for sharing that info!
It's practical because Syncthing's very nice distributed nature lets it be an underlying communications layer for a lot of other things. For instance, I talk about using #Filespooler over #Syncthing here: https://www.complete.org/using-filespooler-over-syncthing/ , and #NNCP over Syncthing here: https://changelog.complete.org/archives/10219-a-simple-delay-tolerant-offline-capable-mesh-network-with-syncthing-optional-nncp
That you can have a "roaming" device (eg, a phone) nicely sync between two locations that otherwise don't have connectivity to each other is pretty slick.
-
@jaredwhite As I reflect on this, I think there are some other things that are sort of in the same nexus as #SlowSoftware: offline-capable, old and small tech, privacy-protecting software, #FLOSS, etc. Projects like #Gemini and #NNCP are great examples of things that fit in with your idea (#gopher too). Distributed, peer-to-peer systems are common.
What is this big "blob" of properties? I mean, there's the Small Technology Foundation. Your approach is about 20degrees different, also good 🙂
-
@alienghic @schlink Yes! This is a perfect use case for #NNCP. As @craigmaloney mentioned, #Syncthing can also do the job; if you name your files according to a set pattern, you can just add them to a directory on the sending side, and mv/rm them out of there on the receiving side when processed.
My #Filespooler tool https://www.complete.org/filespooler/ can provide some more queue-processing tools, esp. if you need the queue to be processed in order. It can run atop NNCP, Syncthing, or others.
-
Also in that article, I discuss tools like #dar, #kermit, #gensio, and #NNCP that can help you carry data to or from sensitive systems without using a traditional network. Also I mention data diodes (#datadiodes) - hardware devices that let data flow in only one direction. Interesting ideas there. https://changelog.complete.org/archives/10571-how-gapped-is-your-air
-
I recently started experimenting with #gensio, which can do some really cool things with #serial ports, TCP ports, etc. It can make a serial line a framed, reliable communications medium. It can act like netcat, socat, and so forth. You can use it to run #ssh or #NNCP over a serial line, or provide an encryption layer itself. I wrote up some ideas here: https://www.complete.org/using-gensio-and-ser2net/
-
CW: re: Fediverse meme
@ecliptik @w4v3 #UUCP is still included in Linux distributions, and you can still run email and Usenet over it. #FidoNet still survives as well, mainly on some modern BBS implementations like #SynchroNet. Neither are very popular these days though. I recommend #NNCP for new projects, but UUCP is also still fun to play with, and great if you have noisy serial links or radios to deal with! https://changelog.complete.org/archives/10042-long-range-radios-a-perfect-match-for-unix-protocols-from-the-70s /end
-
CW: re: Fediverse meme
@ecliptik @w4v3 #UUCP is still included in Linux distributions, and you can still run email and Usenet over it. #FidoNet still survives as well, mainly on some modern BBS implementations like #SynchroNet. Neither are very popular these days though. I recommend #NNCP for new projects, but UUCP is also still fun to play with, and great if you have noisy serial links or radios to deal with! https://changelog.complete.org/archives/10042-long-range-radios-a-perfect-match-for-unix-protocols-from-the-70s /end
-
CW: re: Fediverse meme
@ecliptik @w4v3 #UUCP is still included in Linux distributions, and you can still run email and Usenet over it. #FidoNet still survives as well, mainly on some modern BBS implementations like #SynchroNet. Neither are very popular these days though. I recommend #NNCP for new projects, but UUCP is also still fun to play with, and great if you have noisy serial links or radios to deal with! https://changelog.complete.org/archives/10042-long-range-radios-a-perfect-match-for-unix-protocols-from-the-70s /end
-
CW: re: Fediverse meme
@ecliptik @w4v3 #UUCP is still included in Linux distributions, and you can still run email and Usenet over it. #FidoNet still survives as well, mainly on some modern BBS implementations like #SynchroNet. Neither are very popular these days though. I recommend #NNCP for new projects, but UUCP is also still fun to play with, and great if you have noisy serial links or radios to deal with! https://changelog.complete.org/archives/10042-long-range-radios-a-perfect-match-for-unix-protocols-from-the-70s /end
-
CW: re: Fediverse meme
@ecliptik @w4v3 #UUCP is still included in Linux distributions, and you can still run email and Usenet over it. #FidoNet still survives as well, mainly on some modern BBS implementations like #SynchroNet. Neither are very popular these days though. I recommend #NNCP for new projects, but UUCP is also still fun to play with, and great if you have noisy serial links or radios to deal with! https://changelog.complete.org/archives/10042-long-range-radios-a-perfect-match-for-unix-protocols-from-the-70s /end
-
I wrote "Building an #Asynchronous, Internet-Optional Instant Messaging System" today. It suggests using #DeltaChat (@delta) across an #email system that can run on non-IP networks to achieve #IM coverage without having to have an Internet backbone, using things like #NNCP, #Syncthing, #Filespooler, and such. I love the ways we can combine interesting tools like this!
-
@stevelord @kas Incidentally, a second alternative along those lines would be to use #gensio to provide a reliable connection over an unreliable medium, and then use #nncp's nncp-daemon/nncp-call atop gensio.
I have thought about all this when I've considered running over #LoRA or #XBee SX links. In particular, in xbnet, I documented some #UUCP settings: https://github.com/jgoerzen/xbnet/blob/master/doc/xbnet.1.md#uucp
I haven't directly tried the NNCP-over-UUCP scenario, but I do think it should be fairly straightforward.
-
@zaddymagic @gentlemangeek @pluralistic Thanks for the tip. I haven't tried #ResilioSync since it's not #OpenSource and #syncthing and #NNCP meet my needs. Syncthing does have a way to exclude files by pattern as well: https://docs.syncthing.net/users/ignoring.html
-
New toy: #NNCP
🔗 https://www.complete.org/quux-org-nncp-public-relay/
Man, it feels like ages since I was using #AmigaUUCP :amiga:
I wonder if there are NNCP people enough on the #fediverse to justify an @nncp group. Let's see…
/cc [ @jgoerzen | #UUCP | #quux ] -
New toy: #NNCP
🔗 https://www.complete.org/quux-org-nncp-public-relay/
Man, it feels like ages since I was using #AmigaUUCP :amiga:
I wonder if there are NNCP people enough on the #fediverse to justify an @nncp group. Let's see…
/cc [ @jgoerzen | #UUCP | #quux ] -
New toy: #NNCP
🔗 https://www.complete.org/quux-org-nncp-public-relay/
Man, it feels like ages since I was using #AmigaUUCP :amiga:
I wonder if there are NNCP people enough on the #fediverse to justify an @nncp group. Let's see…
/cc [ @jgoerzen | #UUCP | #quux ] -
New toy: #NNCP
🔗 https://www.complete.org/quux-org-nncp-public-relay/
Man, it feels like ages since I was using #AmigaUUCP :amiga:
I wonder if there are NNCP people enough on the #fediverse to justify an @nncp group. Let's see…
/cc [ @jgoerzen | #UUCP | #quux ] -
New toy: #NNCP
🔗 https://www.complete.org/quux-org-nncp-public-relay/
Man, it feels like ages since I was using #AmigaUUCP :amiga:
I wonder if there are NNCP people enough on the #fediverse to justify an @nncp group. Let's see…
/cc [ @jgoerzen | #UUCP | #quux ] -
3/
Introducing Fast, Ordered Unixy #Queues over #NNCP and #Syncthing with #Filespooler: https://floss.social/@jgoerzen/108387639329271399
"#Modem World" and modern communities that span interests: https://floss.social/@jgoerzen/108546787833118936
Why do I feel drawn to work from my #DEC #vt510 #terminal? Does it have advantages over my 27" LCD GUI? https://floss.social/@jgoerzen/108898543787831520
Growing up through the #PC and #Internet revolution in #rural America: https://floss.social/@jgoerzen/108909211718813036
-
2/
How to tunnel NNCP over: #S3 #Nextcloud #Owncloud #WebDAV #ssh #tor #LoRA #Xbee #SFTP and #UUCP - https://floss.social/@jgoerzen/106786433628981477
My 12-yr-old decides to write an operating system and learn C. https://floss.social/@jgoerzen/106871449955753762
I offer #Usenet feeds over #NNCP. https://floss.social/@jgoerzen/106891544884588818
#Yggdrasil, the end-to-end encrypted #Mesh network that needs zero infra. https://floss.social/@jgoerzen/107584885919420001
Tools that work #Offline with #NoInternet. https://floss.social/@jgoerzen/107884945439834995
-
@gwil Welcome, gwil! Glad to see you here. It looks like your interests intersect mine quite a bit; I've been interested in #NNCP and #Syncthing as decentralized, offline-first or offline-capable systems, and recently wrote #Filespooler in that space.
I hadn't heard of #Earthstar. After reading the website, it sounds kind of like Syncthing, but with a more-public way of joining a share? (Sharing a link without having the approve the request) I'd be interested in other comparisons.
-
It seems that lately I’ve written several shell implementations of a simple queue that enforces ordered execution of jobs that may arrive out of order. After writing this for the nth time in bash, I decided it was time to do it properly. But first, a word on the why of it all.
Why did I bother?My needs arose primarily from handling Backups over Asynchronous Communication methods – in this case, NNCP. When backups contain incrementals that are unpacked on the destination, they must be applied in the correct order.
In some cases, like ZFS, the receiving side will detect an out-of-order backup file and exit with an error. In those cases, processing in random order is acceptable but can be slow if, say, hundreds or thousands of hourly backups have stacked up over a period of time. The same goes for using gitsync-nncp to synchronize git repositories. In both cases, a best effort based on creation date is sufficient to produce a significant performance improvement.
With other cases, such as tar or dar backups, the receiving cannot detect out of order incrementals. In those situations, the incrementals absolutely must be applied with strict ordering. There are many other situations that arise with these needs also. Filespooler is the answer to these.
Existing WorkBefore writing my own program, I of course looked at what was out there already. I looked at celeary, gearman, nq, rq, cctools work queue, ts/tsp (task spooler), filequeue, dramatiq, GNU parallel, and so forth.
Unfortunately, none of these met my needs at all. They all tended to have properties like:
- An extremely complicated client/server system that was incompatible with piping data over existing asynchronous tools
- A large bias to processing of small web requests, resulting in terrible inefficiency or outright incompatibility with jobs in the TB range
- An inability to enforce strict ordering of jobs, especially if they arrive in a different order from how they were queued
Many also lacked some nice-to-haves that I implemented for Filespooler:
- Support for the encryption and cryptographic authentication of jobs, including metadata
- First-class support for arbitrary compressors
- Ability to use both stream transports (pipes) and filesystem-like transports (eg, rclone mount, S3, Syncthing, or Dropbox)
Filespooler is a tool in the Unix tradition: that is, do one thing well, and integrate nicely with other tools using the fundamental Unix building blocks of files and pipes. Filespooler itself doesn’t provide transport for jobs, but instead is designed to cooperate extremely easily with transports that can be written to as a filesystem or piped to – which is to say, almost anything of interest.
Filespooler is written in Rust and has an extensive Filespooler Reference as well as many tutorials on its homepage. To give you a few examples, here are some links:
- Using Filespooler over Syncthing (and the most comprehensive tutorial)
- Using Filespooler over NNCP
- Compressing Filespooler Jobs
- Encrypting Filespooler Jobs with GPG or Age
- Guidelines for Writing To Filespooler Queues Without Using Filespooler
Filespooler is intentionally simple:
- The sender maintains a sequence file that includes a number for the next job packet to be created.
- The receiver also maintains a sequence file that includes a number for the next job to be processed.
fspl preparecreates a Filespooler job packet and emits it to stdout. It includes a small header (
-
@Milkman76 Well put. I absolutely agree. It is encouraging to see attempts at alternatives - #Gopher, #Gemini. And more broadly, #Matrix / #Element, #Signal, #NNCP, #Nextcloud, #ssh, #Syncthing, #OpenPGP / #GnuPG / #GPG, #OpenStreeMaps, and so forth. But obviously, while these are all growing, aside from maybe Signal, they are tiny compared to the spyware we all tolerate daily.
I talked about some of these topics here: https://www.complete.org/recovering-our-lost-free-will-online-tools-and-techniques-that-are-available-now/
-
Tools that work #Offline with #NoInternet
Moving now to more advanced tools, #NNCP is lets you assemble a network of peers that can communicate asynchronously using #sneakernet, #USB drives, radios, CD-Rs, Internet, #Tor, #Yggdrasil, #Syncthing, #Dropbox, #S3, you name it. Supports multi-hop file transfer and remote execution. Fully end-to-end encrypted. It's the offline version of #ssh. https://nncp.mirrors.quux.org/ 5/
-
There's a new post from @kensanata trying out #NNCP for the first time: https://alexschroeder.ch/wiki/2022-02-04_Wondering_about_NNCP Alex noted some gaps in the documentation I wrote, so I made some improvements, resulting in a new page on getting started with NNCP at https://www.complete.org/getting-started-with-nncp/ and more details on joining the #quux public relay at https://www.complete.org/quux-org-nncp-public-relay/ . Thank you for the writeup!
#NNCP is an end-to-end encrypted, #asynchronous communication tool. It's like #ssh but can be offline. I'm happy to answer questions!
-
There's a new post from @kensanata trying out #NNCP for the first time: https://alexschroeder.ch/wiki/2022-02-04_Wondering_about_NNCP Alex noted some gaps in the documentation I wrote, so I made some improvements, resulting in a new page on getting started with NNCP at https://www.complete.org/getting-started-with-nncp/ and more details on joining the #quux public relay at https://www.complete.org/quux-org-nncp-public-relay/ . Thank you for the writeup!
#NNCP is an end-to-end encrypted, #asynchronous communication tool. It's like #ssh but can be offline. I'm happy to answer questions!
-
@stibbons I actually use #NNCP quite a bit (and used #UUCP back in the day also). Unlike UUCP, NNCP assumes a clean connection - a reasonable assumption for most these days. Actually one of my use cases for this would be running NNCP over this kind of link. The NNCP author's canonical suggestion for NNCP over serial is to use TCP over PPP. That works fine to provide reliability, but has too much overhead for these very slow #XBee modems. https://changelog.complete.org/archives/tag/nncp
-
Now you can get a #Usenet feed over #NNCP! #NNCP is, by the way, a modern, end-to-end encrypted, Unixy, asynchronous project - NNCP is to #UUCP what #ssh is to #telnet.
My system at #quux is ready to offer full (non-binaries) Usenet feeds over NNCP, with communications happening over the quux NNCP public relay. DETAILED instructions: https://github.com/jgoerzen/nncp-tools/blob/main/docs/usenet.org