Technitium DNS Server is an open source authoritative as well as recursive DNS server that can be used for self hosting a DNS server for privacy & security. It works out-of-the-box with no or minimal configuration and provides a user friendly web console accessible using any modern web browser. Implements not only ad- and malware blocking but DNS-over-TLS and DNS-over-HTTPS. Authoritative server as well as recursive resolver. Implements HTTP and SOCKS5 proxy support for tunneling resolution requests through Tor as well as proxy servers.
Written in Csharp. :(
Implementation of a super-lightweight network file system for sharing files across and between 8-bit computers. Originally designed for the Spectrum but has been ported to the Atari. Implementations exist for Linux, Spectrum, and Atari.
Protocol spec: https://github.com/FujiNetWIFI/spectranet/blob/master/tnfs/tnfs-protocol.md
A simple, personal chat program that runs on a single computer. No Internet, just you.
MultiChat was intended for folks that need to talk to the voices within them for one reason or another. Maybe you think better when you talk to yourself. Maybe you're a system and need to have a conversation externally. Maybe it's a handy tool for simulating social interactions ahead of time. Maybe you need a tool for roleplay, or want to write as though your characters were in a chat room. Maybe you just want to mess around. Whatever the reason, MultiChat was made to let you have that conversation.
Lightweight, no non-standard dependencies.
A REST API server for Cyberchef. node.js, unfortunately. Seems to require baked and saved recipes to do its thing.
Recoll is a desktop full-text search tool. Finds documents based on their contents as well as their file names. Can search most document formats, even if they're compressed (even Maildir/ and mailboxes). You may need external applications for text extraction. Based on Xapian. Primarily desktop but it could be run server-side. Indices are backwards-compatible.
Source code: https://framagit.org/medoc92/recoll
Flies on solid state storage!
Can be plugged into Searx: https://searx.github.io/searx/admin/engines/recoll.html
WaveDB is SQLite with a HTTP interface.
It is a ~6MB (~2MB UPX-compressed) self-contained, zero-dependency executable that bundles SQLite 3.35.5 (2021-04-19) with JSON1, RTREE, FTS5, GEOPOLY, STAT4, and SOUNDEX.
If you are already a fan of SQLite, WaveDB acts as a thin HTTP-server wrapper that lets you access your SQLite databases over a network.
WaveDB can be used as a lightweight, cross-platform, installation-free companion SQL database for Wave apps. The h2o-wave package includes non-blocking async functions to access WaveDB.
Database files managed by WaveDB are 100% interoperable with SQLite, which means you can manage them with the sqlite3 CLI, backup/restore/transfer them as usual, or use Litestream for replication.
Seems to be a general-purpose mapping server of some kind.
Waarzitje.nu is a basic application for submitting and retrieving live location updates. Originally focused on OsmAnd, but basically any application that supports REST could use it.
The back-end (REST API) of this application is made with Go, the front-end mapping interface is made with modern Vue 3 and TypeScript. Because of its modular setup, it is possible to run only the back-end, only the front-end or a combination of both.
A search engine made for honors class. Now made for everyone.
webhook is a lightweight configurable tool written in Go, that allows you to easily create HTTP endpoints (hooks) on your server, which you can use to execute configured commands. You can also pass data from the HTTP request (such as headers, payload or query variables) to your commands. webhook also allows you to specify rules which have to be satisfied in order for the hook to be triggered.
BlanketDB is a very simple database written in Python based on SQLite. It is intended for small IoT projects where you need a quick way to collect and store data from sensors and other devices. You communicate with BlanketDB using HTTP GET / POST / DELETE requests. Request and response bodies are usually JSON, but you can also POST HTML forms directly to BlanketDB. There is no schema in the database, you simply store objects in buckets.
Documentation: https://blanketdb.readthedocs.io.
Manticore Search is an open-source search engine that was born in 2017 as a continuation of the famous Sphinx Search engine. We took all the best from that, significantly improved its functionality, fixed hundreds of bugs, and rewrote it almost completely internally. And left it all open-sourced! That’s what makes Manticore Search a modern, fast and light-weight full-featured search engine.
We have designed and developed Manticore to provide you with multi-functional relevant search capabilities with high performance and low resource consumption and importantly easily integrable. It doesn’t matter what environment you are using, whether it’s Windows, Linux, MacOS or Docker, you can always use Manticore Search and connect to it from different programming languages or HTTP via JSON or even using MySQL client.
Github: https://github.com/manticoresoftware/manticoresearch
Problems I'm seeing
Sphinx is a full-text search engine, distributed under GPL version 2. Commercial licensing (eg. for embedded use) is also available upon request.
Generally, it's a standalone search engine, meant to provide fast, size-efficient and relevant full-text search functions to other applications. Sphinx was specially designed to integrate well with SQL databases and scripting languages.
Currently built-in data source drivers support fetching data either via direct connection to MySQL, or PostgreSQL, or from a pipe in a custom XML format. Adding new drivers (eg. to natively support some other DBMS) is designed to be as easy as possible.
Search API is natively ported to PHP, Python, Perl and Ruby and also available as a pluggable MySQL storage engine. API is very lightweight so porting it to new language is known to take a few hours.
As for the name, Sphinx is an acronym which is officially decoded as SQL Phrase Index. Yes, I know about CMU's Sphinx project.
There are plugins for multiple webapps out there. I've used the Mediawiki one extensively.
µStreamer is a lightweight and very quick server to stream MJPG video from any V4L2 device to the net. All new browsers have native support of this video format, as well as most video players such as mplayer, VLC etc. µStreamer is a part of the Pi-KVM project designed to stream VGA and HDMI screencast hardware data with the highest resolution and FPS possible.
If you're going to live-stream from your backyard webcam and need to control it, use mjpg-streamer. If you need a high-quality image with high FPS - µStreamer for the win.
In the AUR.
I wrote this script during the grueling process of installing and setting up an email server. It perfectly reproduces my successful steps to ensure the same setup time and time again, now with many improvements.
I'm glad to say that dozens, hundreds of people have now used it and there is a sizeable network of people with email servers thanks to this script.
I've linked this file on Github to a shorter, more memorable address on my website so you can get it on your machine with this short command:
curl -LO lukesmith.xyz/emailwiz.sh
When prompted by a dialog menu at the beginning, select "Internet Site", then give your full domain without any subdomain, i.e. lukesmith.xyz.
Debian (and derivatives) specific.
Sort of a self-hosted Youtube work-alike for your media collection. Browse, organize, and curate your stuff. Movies, shows, music. Live TV enabled, can function as a DVR.
Client apps for Android TV, FireTV, Roku, Kodi, Xbox One, PS4, and more. Or you can watch stuff in your web browser.
Github: https://github.com/jellyfin
REST API docs: https://api.jellyfin.org/
Official package repos for Debian and Ubuntu. In the AUR. There's even a portable version (if you have the .net core runtime handy).
Pleroma is a free, federated social networking server built on open protocols. It is compatible with GNU Social, Mastodon, and many other ActivityPub implementations.
The project consists of several components: Pleroma is the server implementation, and comes bundled with PleromaFE, the default frontend. Other useful utilities are also provided, such as an ActivityPub relay.
High performance, low latency, you can even run it on a RasPi (and many busy Pleroma instances are!)
Written in Elixir and Phoenix, with Postgres as its back-end.
Source code: https://git.pleroma.social/pleroma/pleroma/
FLOSS alternative to subsonic, supporting its many clients. Music streaming server / subsonic server API implementation. Browse online. Realtime transcoding for streaming. Jukebox mode. Multiple users. Scrobbling to last.fm. Tries to be lightweight enough to run on something like a RasPi.
Lightweight Music Server. Access your self-hosted music using a web interface. Lightweight - designed for something like a RasPi. Recommendation engine built in. Custom tags. Realtime transcoding for streaming. Implements the Subsonic API for compatibility.
Relies on MusicBrainz Identifiers in the ID3 metadata.
UI-less tool to connect Android phone with desktop. Copy files to and from your mobile. For use with the Device Connect application from the F-Droid appstore (https://www.f-droid.org/en/packages/net.dcnnt/).
Fast, typo tolerant search engine for building delightful search experiences. Has an API and a number of protocol modules for different languages. Written in C and C++.
Designed for people who don't want to fuck with Elasticsearch, they just want a document search engine. Lightweight, powerful, scalable. Tries to have smart defaults. Single executable. Uses far less memory than the usual Java-based search systems do. Tries to be flexible so you can build the search engine you need.
Looks like you define a JSON document with the stuff you want to be able to search and throw it over to the engine. Means you'll need to write some front-end tooling to extract the data you want to index, which might not be that big a deal. It could just be some shell scripts.