243 applications
Wizarr screenshot thumbnail

Wizarr

Getting non-technical friends and family onto a media server is its most tedious chore - Wizarr solves it. Instead of manually creating accounts, dictating server addresses, and explaining which app to install, you send one invite link. When the recipient clicks it, Wizarr creates their account on your server automatically - Plex, Jellyfin, Emby, Audiobookshelf, Komga, Kavita, and Romm are all supported - then walks them through a mobile-first, app-like onboarding wizard: download the right client, sign in, and learn how to request movies through your Overseerr or Ombi instance, with an optional Discord server invite along the way. Invitations are genuinely manageable: set expiration dates, usage limits, passphrases, library-scoped access tiers, and time-limited memberships that end access automatically. The wizard itself is fully customizable - Markdown-based steps managed from the admin UI, organized into pre-invite and post-invite phases (terms of service before joining, app setup after), reorderable bundles assignable to specific invitation types, and combined flows for invites spanning multiple servers. Multi-server and multi-admin support manages several backends from one dashboard, SSO support is plug-and-play, and a REST API with OpenAPI/Swagger documentation covers automation. A Flask/HTMX app in a single Docker container.

Deploy
Restreamer screenshot thumbnail

Restreamer

Point OBS or a hardware encoder at Restreamer's built-in RTMP or SRT ingest and it serves your website while rebroadcasting to YouTube Live, Twitch, Facebook, Vimeo, TikTok, LinkedIn, PeerTube, and anything else that accepts RTMP, SRT, or HLS - a complete self-hosted live-streaming server from datarhei. That multistreaming normally costs a monthly Restream.io subscription; here it's one FFmpeg process per destination on your own hardware. The web UI is genuinely approachable, with a wizard that walks beginners through camera setup, while professionals get the full surface: multiple audio/video inputs (USB, RTSP network cameras, virtual devices), codec and processing settings, separate audio muxing, and hardware acceleration via Nvidia CUDA, Intel VAAPI, or Raspberry Pi. Serving your own audience is first-class - a built-in Video.js player embeds in your site, a ready-made publication website streams without any embedding work, HLS chunk sizes are tunable, and automatic Let's Encrypt handles HTTPS. Viewer and bandwidth monitoring with limits keeps traffic costs predictable, and it's GDPR-friendly: no third-party provider, no audience data stored. A fully Swagger-documented REST API drives automation. SRT support keeps latency under a second.

Deploy
Tiddlywiki screenshot thumbnail

Tiddlywiki

The entire wiki - content, code, and interface - is built from "tiddlers," small addressable units of information that link, transclude, tag, and filter into each other: TiddlyWiki is a non-linear personal notebook with a design philosophy unlike anything else in this catalog. Instead of pages in a hierarchy, you compose views by pulling tiddlers together on demand, which is why researchers, zettelkasten practitioners, and GTD devotees have sworn by it for two decades. The whole application is JavaScript, and the UI itself is written in hackable WikiText - customization goes as deep as rewriting the interface from inside the wiki. Self-hosting runs the Node.js version, which upgrades the classic single-HTML-file architecture in the ways that matter for a server: every tiddler is stored as an individual text file (Git-friendly, organizable), edits save through the HTTP API from any modern browser including phones, and one installation can serve multiple wikis blending shared and unique content. The plugin ecosystem covers graph visualizations, themes, languages, and hundreds of community extensions, declared per-wiki in a simple tiddlywiki.info file; the newer MultiWikiServer plugin adds multi-user accounts and tiddler sharing. Your notes stay usable for decades, independent of any corporation - the project's founding promise. BSD-licensed.

Deploy
Flatnotes screenshot thumbnail

Flatnotes

A web interface for a folder of Markdown files - Flatnotes is exactly that, and the discipline of that design is why people love it. Every note is a plain .md file in a single flat directory: no database, no proprietary format, no hierarchy to maintain, no export step if you ever leave. Edit notes in the browser or open the same files in VS Code or Obsidian, sync them with Syncthing or rsync while the app is running - the Whoosh-powered search index synchronizes incrementally, so external edits just show up. The interface is a clean Vue.js app with both WYSIWYG and raw Markdown editing modes (TOAST UI Editor), instant full-text search behind the "/" shortcut with partial-match support, wikilinks for cross-note references, and automatic tag extraction from #hashtags in note bodies. Light and dark themes and a mobile-responsive layout make it pleasant everywhere. Authentication is flexible for a personal tool: none, read-only, username/password, or TOTP two-factor. A documented REST API covers create/read/update/delete for automation. The operational story is the quiet selling point - the only state is the notes folder and a rebuildable index, so backup is copying a directory. For a personal notepad that respects your data, Flatnotes nails minimal.

Deploy
WBO screenshot thumbnail

WBO

A Node.js server, a large shared canvas, and a URL - WBO (Whiteboard Ophir) is collaborative whiteboarding reduced to its essence. There are no accounts and no setup - to collaborate, you send someone the board's link, and every stroke appears for all connected users in real time over WebSockets, with cursor positions shared so you can see where collaborators are working. Board state persists automatically and continuously, so a diagram drawn in today's lesson is still there next week at the same URL. Boards come in three flavors: a public free-for-all, private boards with random unguessable names, and named boards with custom URLs shared by anyone who knows the name. The tools cover teaching and brainstorming needs - pencil, straight lines, rectangles, ellipses, text annotations, eraser, a full color palette with brush sizes - and boards export as SVG or PNG. Despite the simplicity, the server is production-minded: JWT authentication gates board access with granular capabilities (open, edit, and clear as separate permissions), rate limiting caps per-client message volume, reverse-proxy and subpath deployment are supported, and OpenTelemetry provides metrics, logs, and traces. It works on tablets and touch devices, speaks multiple languages, and consumes minimal resources. AGPL-licensed.

Deploy
Whoogle screenshot thumbnail

Whoogle

Google's search results without Google's surveillance: Whoogle is a self-hosted proxy that strips the tracking and keeps the results. Your query goes from browser to your Whoogle instance, which fetches results from Google with a randomly generated User Agent and strips everything hostile before returning them: no ads or sponsored content, no third-party JavaScript or cookies, no AMP links, no URL tracking tags like utm_source, no referrer header - and Google sees your server's IP, never yours. Unlike metasearch engines that blend sources, Whoogle proxies Google exclusively, so result quality is exactly what you'd get logged out and incognito, minus the noise. A lightweight Flask app configured entirely through environment variables, it supports DuckDuckGo-style bang shortcuts, autocomplete suggestions, safe search, per-country and per-language filtering, site blocklists, and automatic rewriting of social links to privacy front-ends like Nitter and Invidious. Privacy hardening goes further: built-in Tor routing makes Google see an exit node instead of your server, HTTP/SOCKS proxy support covers other setups, and POST-based queries keep search terms out of logs. Light, dark, and fully custom CSS themes plus browser search-engine registration make it a drop-in default on desktop and mobile. Stateless, tiny, and trivial to run.

Deploy
ByteStash screenshot thumbnail

ByteStash

The functions, config files, and one-liners you keep re-deriving finally get a searchable home: ByteStash is a self-hosted code snippet manager - a private Gist. Each snippet holds multiple code fragments, so a Docker Compose file, its .env template, and a plaintext usage note live together under one titled, categorized entry. Monaco-based syntax highlighting covers dozens of languages, from Python, TypeScript, Go, and Rust to YAML, Dockerfiles, Terraform, and Markdown. Retrieval is the point: filter by language or category, search titles and descriptions, and optionally include snippet contents in full-text search. Snippets can be pinned for quick access and shared via public links that recipients open without an account. Multi-user support runs on JWT authentication with optional OIDC single sign-on for teams on centralized identity, and a full CRUD REST API with Swagger documentation wires snippet retrieval into editors, scripts, and CI pipelines. Storage is a single SQLite database with optional encryption, and collections export as JSON or Markdown. A React frontend on a Node.js backend, deployed as one lightweight container.

Deploy
MediKeep screenshot thumbnail

MediKeep

Your medical history, fragmented across a dozen patient portals, in one place on your server: MediKeep (formerly Personal Medical Records Keeper) is a self-hosted health record system. Built with a React frontend and FastAPI backend over PostgreSQL, it organizes 14 categories of medical data - medications with dosages and schedules, conditions, procedures, allergies, immunizations, symptoms, injuries, doctor visits and encounters, treatments, lab results, and even medical equipment with service dates and supplier info. Treatment management is genuinely sophisticated: an advanced mode links treatments to their medications with per-medication overrides for prescriber, pharmacy, and effective dates, and reverse lookup shows which treatments use a given medication. A dashboard summarizes records and recent activity, file uploads attach documents to records, and tagging works across categories. When a new specialist asks for your history, the report builder assembles custom reports by category and exports to PDF, JSON, or CSV - a curated, portable summary instead of a folder of photocopies. Authentication supports Google and GitHub SSO with OIDC providers like Keycloak and Authelia expected to work, and the built-in backup system protects the archive. Health data is exactly what should never live in someone else's cloud.

Deploy
KeeWeb screenshot thumbnail

KeeWeb

Your KeePass vaults, opened from any browser: KeeWeb reads, edits, and creates standard KDBX files, so it works with the same databases as KeePass and KeePassXC without conversion or lock-in. Self-hosting the web app gives you a password manager reachable from any modern browser, including mobile, with no client installation and no third-party cloud in the loop. All KDBX cryptography runs client-side; the server just serves the static app. Open multiple vault files simultaneously and search them all from one box, with advanced options covering specific fields, password history, and regular expressions. Vaults load from local files, your own server (WebDAV), or Dropbox, Google Drive, and OneDrive, with automatic sync - and files are cached for offline use, so a dropped connection never locks you out; changes resync once you're back online. Day-to-day niceties include a configurable password generator, protected fields that stay masked and are held in memory more defensively, entry history, tags with easy input, drag-and-drop attachments, and per-entry icons with favicon fetching. The optional KeeWeb Connect extension (Chrome, Firefox, Edge, Safari) autofills credentials using the keepassxc-protocol. MIT-licensed with matching desktop apps for macOS, Windows, and Linux.

Deploy
ExpenseOwl screenshot thumbnail

ExpenseOwl

Log a date, amount, and category; get a clean monthly pie chart and a cashflow strip showing income, expenses, and net balance - ExpenseOwl is expense tracking stripped to what actually matters. The MIT-licensed Go application deliberately is not a budgeting system - no envelopes, no accounts, no double-entry, no bank sync - because its author found tools like Firefly III and Actual too heavy for the simple question "where did this month's money go?" The dashboard makes that question fast: click a pie slice to exclude fixed costs like rent and see discretionary spending clearly, then drill into a chronological table view to inspect or delete individual transactions. Recurring transactions handle salaries and subscriptions automatically, optional tags add a second classification axis, and settings cover custom categories, currency symbol, and a configurable month start date for non-calendar pay cycles. CSV import migrates data from virtually any other tool, and CSV export keeps your data portable. It ships as a self-contained binary and multi-architecture Docker image with zero internet interaction, stores data in flat JSON files by default (PostgreSQL optional), and installs as a PWA on phones. Single-user by design; pair it with an authenticating reverse proxy if exposed publicly.

Deploy
EasyAppointments screenshot thumbnail

EasyAppointments

Service businesses get a booking page without per-booking commissions or monthly SaaS fees from Easy!Appointments, the self-hosted appointment scheduler. Customers pick a service, provider, and open time slot from a clean web form; the system enforces working plans, breaks, and booking rules you define per provider, then confirms by email to both sides. The structure fits real service organizations: multiple providers with individual schedules, multiple service types with their own durations and prices, and admin/secretary roles for front-desk management. Two-way Google Calendar synchronization keeps each provider's external calendar authoritative - book in Easy!Appointments and it appears in Google Calendar, block time in Google and the slot disappears from the booking form. Version 1.6 adds SMS notifications and payment support, and a REST API opens the scheduling data to custom integrations. Built on PHP (CodeIgniter) with MySQL, it installs in a single folder and can share a database with your existing site; a WordPress plugin embeds the booking form directly in pages or posts. The interface ships in dozens of languages with time-zone handling throughout. GPL-3.0 licensed and free for commercial use - a helpdesk, clinic, salon, or consultancy runs its whole booking workflow on its own server.

Deploy
phpMyAdmin screenshot thumbnail

phpMyAdmin

Since 1998, phpMyAdmin has been the standard web interface for MySQL and MariaDB - the tool millions of developers, DBAs, and hosting companies reach for when a database needs inspecting, fixing, or migrating. Written in PHP, it covers effectively the entire administration surface: create, browse, alter, and drop databases, tables, views, columns, and indexes; insert and edit rows through a tabular editor; manage user accounts and granular privileges; and maintain stored procedures, triggers, and events - all without touching a command line. The SQL editor executes arbitrary queries with syntax highlighting, autocompletion, history, and bookmarkable statements, including batch queries. Import/export is a migration workhorse: read SQL, CSV, XML, and OpenDocument spreadsheets in; write out to SQL dumps, CSV, JSON, XML, PDF, Word, LaTeX, and more - the fastest path for moving a WordPress database or handing a schema to a colleague. The Designer view renders your schema as an interactive ER diagram with drag-and-drop relationship editing, and data transformations display BLOBs as images or download links inline. Server maintenance views surface configuration suggestions. Multi-server support, dark mode, and translations into 72 languages round out a tool that earns its ubiquity. GPL-licensed.

Deploy
Papercups screenshot thumbnail

Papercups

Companies with privacy and security concerns about piping customer conversations through Intercom or Zendesk run Papercups - open-source live customer chat. The stack is a deliberate strength: an Elixir/Phoenix API over PostgreSQL, with real-time messaging powered by Phoenix Channels and Presence - the same BEAM foundation trusted by Discord and PagerDuty for fault-tolerant, low-latency messaging. Customers see a customizable chat widget that embeds in any site as an HTML snippet, a React component, or even inside React Native apps, with configurable colors, greetings, and away messages. Your team sees a dashboard for managing conversations - close, assign, and prioritize - with Markdown and emoji in replies. The killer workflow is the reply-channel integration: connect Slack or Mattermost and every customer conversation becomes a synced thread your team answers without leaving the tool they already live in, with two-way message syncing handled by webhooks. Email and SMS channels extend intake beyond the widget, an analytics dashboard tracks communication patterns, and the Storytime feature adds real-time screen sharing to watch users navigate while you help them. A documented API supports fully custom chat UIs in Svelte, Flutter, or Vue. MIT-licensed and GDPR-conscious - customer data stays in your PostgreSQL.

Deploy
Upvote RSS screenshot thumbnail

Upvote RSS

The antidote to doomscrolling: Upvote RSS turns Reddit, Hacker News, Lemmy, Lobsters, PieFed, Mbin, and trending GitHub repositories into calm, filtered RSS feeds. The MIT-licensed PHP app's killer feature is intelligent filtering: beyond simple score thresholds, the "posts per day" filter analyzes a community's recent history and computes the score cutoff that yields your target volume - say, exactly three r/technology posts daily - while a percentage-based threshold mode stays consistent as communities grow. Feeds are rich, not bare links: parsed full-article content via Readability (with optional Readability.js, Mercury, or Browserless for JavaScript-heavy pages), embedded videos and image galleries, top-voted comments with pinned-moderator filtering, scores, reading-time estimates, and optional AI summaries through Ollama, OpenAI, Gemini, Anthropic, Mistral, DeepSeek, or any OpenAI-compatible endpoint - with automatic provider fallback. A web UI builds the feed URL interactively with live preview; paste the result into any RSS reader. Reddit support includes custom domains like old.reddit.com plus NSFW filtering and blurring. Caching via filesystem, Redis, or APCu keeps repeated fetches cheap and avoids re-running paid summarizations.

Deploy
Nzbget screenshot thumbnail

Nzbget

Written in optimized C++ where competitors use Python or Java, NZBGet saturates fast connections while idling on CPU and RAM - which is why the performance-obsessed Usenet downloader has long been the client of choice for NAS boxes, Raspberry Pis, and routers as much as full servers. The engineering shows in the recovery pipeline. Instead of shelling out to par2cmdline, NZBGet integrates the par2 source directly and exploits its knowledge of exactly which articles failed - quick par-verification checks only what needs checking, and its own multicore repair implementation runs 2-3x faster than the external tool on the same hardware. Fast par-rename deobfuscates scrambled filenames in seconds without a full verification pass, and rar-rename recovers names for multivolume archives even when no par2 files exist. DirectWrite assembles articles straight into sparse destination files, skipping temporary-file churn entirely, with an article cache and queue-pausing options to eliminate disk contention. Automation is complete: a remote web interface, full JSON-RPC API, RSS feeds with duplicate detection, scheduling and prioritization, and an extension manager for Python and Bash scripts triggered by download events. Sonarr, Radarr, and every major indexer integrate natively.

Deploy
Keila screenshot thumbnail

Keila

Among open-source Mailchimp alternatives, Keila has the most modern UI - built in Germany on Elixir and Phoenix (the PETAL stack), with GDPR-conscious defaults including an optional no-tracking mode, and 100% open source with no proprietary premium tier. Campaign authoring is flexible three ways: a visual block editor with multi-column layouts, Markdown with or without WYSIWYG for hybrid HTML-plus-plain- text sends, and raw MJML for hand-coded designs. The personalization system is unusually clean - every contact carries custom data as a single JSON object (populated from sign-up form fields or pushed from your CMS/CRM), and Shopify's Liquid template language renders it into fully dynamic emails. Targeting uses a visual segment editor backed by a powerful segment language for complex logic over tags, language preferences, and any custom field. Sign-up forms with custom fields grow your lists; open and click tracking measures campaigns; scheduled sending handles timing. Delivery pipes through your own SMTP or first-class integrations with AWS SES (including automated bounce handling), SendGrid, Mailgun, and Postmark. A full REST API manages contacts, campaigns, and segments, with Erlang/OTP reliability underneath. Comfortable at 100K+ subscribers. AGPL-licensed, EU-hosted project, actively developed.

Deploy
Lingva Translate screenshot thumbnail

Lingva Translate

What Nitter was to Twitter and Invidious is to YouTube, Lingva Translate is to Google Translate: a privacy front-end delivering the service's full capability while cutting Google out of the loop between you and your text. Built on Next.js with TypeScript and Chakra UI, it uses the purpose-built Lingva Scraper to fetch translations from Google Translate without your browser ever touching a Google-related service - no cookies, no tracking, no account, while retaining what makes Google Translate hard to give up: 100+ languages with the translation quality of Google's production models, unlike offline engines that trade privacy for accuracy. The clean interface covers automatic source-language detection, text-to-speech audio playback for pronunciations, definitions and examples, and light/dark themes. For developers, every instance doubles as a translation API: a RESTful endpoint at /api/v1/:source/:target/:query returns JSON translations, an audio endpoint serves TTS buffers, and a full GraphQL API at /api/graphql exposes translations, audio, and language lists for richer integrations - all unmetered on your own instance. Deployment is a single stateless container with one environment variable for the site domain; defaults for theme and language pair are configurable. GPL-licensed, and popular as the translation backend for privacy-respecting apps.

Deploy
Carbone screenshot thumbnail

Carbone

Document-generation code is the worst kind of code in your backlog - Carbone kills it. Its insight is separating design from data - templates are ordinary office documents (DOCX, ODT, XLSX, PPTX, HTML, even custom XML) built in LibreOffice, Microsoft Office, or Google Docs, with mustache-like markers such as {d.companyName} typed directly into the text. Send a template plus JSON from your existing APIs to the HTTP API, and Carbone returns the finished document - exported as-is or converted to PDF, XLSX, CSV, HTML, PNG, EPUB, and more via its integrated LibreOffice converter (Chromium and OnlyOffice engines are also supported for HTML-fidelity and office-format conversions). The template language goes well beyond substitution: loops over arrays render dynamic table rows, filters and aggregations run inside the document, and built-in formatters handle dates, numbers, currencies, timezones, and locales, with custom JavaScript formatters when needed. One template serves multiple languages through translation markers with auto-maintained translation files. The XML-agnostic engine means anything your document editor can design - pagination, headers, footers, nested tables, charts - survives generation intact, and Carbone guarantees no breaking changes in template syntax. Node.js-based, fast via multi-threaded LibreOffice conversion. The invoices, contracts, and reports your product owes its users become template edits, not sprints.

Deploy