Journiv
A Day One alternative that keeps your most personal writing on your own server: Journiv is journaling purpose-built for self-hosters. The FastAPI backend runs on SQLite by default with optional PostgreSQL, Redis, and Celery for background work, behind a clean, minimal web UI. Unlike general note-taking apps, it ships the features journaling actually needs: customizable moods and mood groups, activity tracking, goals with automated progress from logged activities, and daily writing prompts filterable by category and difficulty so a blank page never stalls you. Quick Log captures a moment in seconds and expands into a full entry later; "On This Day" resurfaces entries from past weeks, months, and years. Multiple journals separate work, gratitude, and personal writing, with tags and full-text search across everything, plus media uploads with automatic thumbnails and an Immich integration for linking photo-library memories. Analytics chart mood trends and writing patterns over time. Data portability is taken seriously: native import of Day One exports, JSON/Markdown/HTML export, and a standalone HTML viewer that opens your archive in any browser with no server running. OIDC single sign-on works with Authentik or Keycloak, and multi-arch images cover amd64 and arm64.
Hastebin
"Throw it on a haste and send the link" entered developer vocabulary because of Hastebin (haste-server), the minimalist open-source pastebin. Written in Node.js with three stated design goals - be really pretty, be really simple, be easy to set up - it does one job precisely: paste code, logs, stack traces, or config snippets, press save (or Ctrl+N for a new one), and get a short random-key URL to share. Syntax highlighting renders pastes readably across common languages, a raw view serves plain text for curl and scripts, and duplicate-and-edit makes iterating on a shared snippet trivial. The killer workflow is the terminal: with the haste-client utility or a one-line shell function, `cat error.log | haste` prints a shareable URL straight from stdout - the fastest route from a broken build to a colleague's eyeballs. Storage is pluggable through a simple adapter interface: filesystem by default, Redis with optional key expiration for pastes that should age out, and configurable key length, maximum paste size, and static documents. Self-hosting matters here because pastes often contain internal logs and stack traces that should never sit on a public pastebin - your instance keeps them inside your network, under your retention rules.
Chief-Onboarding
New hires fail from information overload and IT bottlenecks, not lack of goodwill - the observation behind ChiefOnboarding, a free, open-source employee onboarding platform (Django, Celery, PostgreSQL, Redis). Its answer is sequences - drag-and-drop timelines that drip-feed to-do items, resources, courses, forms, and badges to each new hire, triggered by dates or by completing a previous item, so nobody faces everything at once. Onboarding starts before day one: preboarding pages welcome hires early, and colleagues can leave personal messages that appear there. The account provisioning module creates the new hire's Slack, Google, Asana, and other accounts automatically on the scheduled day via a library of integrations plus custom webhooks - the IT ticket queue never gets involved. Everything works through two equivalent interfaces: a full web dashboard and a Slack bot, either usable standalone. Slack can even auto-create new hire accounts when someone joins the workspace and assign default sequences with zero manual action. Colleague tasks with comments and collaboration, a searchable people directory, scheduled introductions, and per-hire timezone awareness (no 3 a.m. notifications) round it out. No trackers, no phoning home - third-party credentials sit in encrypted fields on your server.
Tandoor
The deep end of self-hosted recipe management: Tandoor Recipes is a Django/Vue application that replaces Paprika, AnyList, and ad-choked recipe sites with a database you control. Import is where most people start: paste any URL and Tandoor scrapes schema.org markup for ingredients, instructions, images, times, and nutrition; bulk-paste URLs for batch import; or migrate wholesale from Mealie, Paprika, Nextcloud Cookbook, Pepperplate, and other managers with built-in importers. The structured recipe editor tracks ingredients individually, which is what powers everything downstream: full-text search with trigram similarity, a "what can I make with what's in the fridge" ingredient search, automatic nutrition via OpenFoodFacts, and shopping lists that merge duplicate ingredients across recipes, convert units, scale by servings, and sort by your supermarket's actual aisle layout. The weekly meal planner is drag-and-drop, feeds shopping lists automatically, exports to your calendar, and shows a nutritional summary for the week. Multi-user support comes with a granular permission system - shared household cookbooks, private recipes, even secret ones - and shopping lists sync in real time so two people can shop simultaneously. A full REST API integrates with Home Assistant and Grocy. For households serious about cooking, Tandoor's depth is unmatched.
PsiTransfer
Upload files, get a share link, let it expire: PsiTransfer is a self-hosted WeTransfer with no accounts, no logins, and no third-party cloud with size caps and metadata harvesting. The engineering focus is large files over imperfect networks. Uploads use the tus.io resumable protocol, so a dropped connection on a multi-gigabyte video resumes exactly where it stopped once you're back online; downloads support HTTP range headers for the same resilience, and everything streams, so file size is bounded by your disk rather than memory. Files organize into upload buckets with retention you control: expire after a set time (up to weeks) or after a one-time download, with automatic cleanup when links lapse. Recipients need nothing installed - they open the link, preview files in modal views, and grab everything as a zip or tar.gz archive with one click. Buckets can be password-protected (AES-encrypted download lists), and security-through-obscurity is done properly: bucket URLs use hashed UUID tokens and stored filenames are replaced with UUIDs. An optional admin page (enabled by setting an admin password) lists bucket information and storage. The Vue.js frontend ships under 100 KB gzipped and is fully responsive. Honest caveat from the author: no end-to-end payload encryption yet. BSD-licensed, Docker-ready.
Monetr
After the bills are covered, how much is actually safe to spend? monetr organizes an entire budgeting application around that one question. Inspired by the defunct Simple bank, it budgets paycheck by paycheck rather than month by month. Funding schedules encode when you get paid - including multiple schedules per account and a weekend-exclusion option for deposits that land early - and every expense or savings goal is tied to one. monetr then calculates how much of each recurring obligation (rent, car payment, subscriptions, on any repeat interval) to set aside from each paycheck, so a large bill never has to come out of a single check. What remains after allocations is surfaced as Free-To-Use, and a forecasting timeline projects contributions, due dates, and leftover funds forward so low-balance periods are visible before they happen. Transactions arrive either as OFX uploads from your bank or automatically through a Plaid connection using your own API credentials, keeping balances and transactions synced without manual entry. The app is mobile-friendly and installable as a PWA on desktop or phone. Self-hosting via Docker Compose is completely free, with all source code public and your financial data on your own hardware.
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.
BeaverHabits
No targets, no gamification spiral, no motivational nagging: Beaver Habit Tracker is a self-hosted habit tracker deliberately built without "Goals". The core loop is honest: add habits, check them off each day, watch streaks accumulate on a calendar view. Its design follows behavioral-science basics - make it obvious (visual streak cues), make it attractive (progress is the motivator), make it satisfying (tracking becomes its own reward). Beyond the daily checklist it supports per-day notes intelligently grouped per habit, periodic habits, habit categories and tags, drag-to-reorder (manual or automatic), dark mode, and detailed streak and frequency views. Data lives where you choose: a single SQLite database or flat JSON files on a mounted volume, with JSON export and import for full portability. A REST API opens automation - community integrations already cover Stream Deck buttons, Home Assistant triggers, and CalDAV. The Python app ships as one Docker container with no external dependencies; environment variables tune everything from first day of week and index-page columns to iOS standalone PWA mode, and single-user setups can bypass the login entirely with TRUSTED_LOCAL_EMAIL. BSD-3-Clause licensed with no commercial restrictions - a well-executed single-purpose tool whose mobile PWA works anywhere a browser does.
Peppermint
A deliberately simple ticketing system standing in for both Zendesk and Jira: Peppermint handles internal staff requests and external customer support alike. The stack is modern full-stack TypeScript: Next.js and React over Prisma and PostgreSQL, which makes it light to run and approachable for developers extending it. Ticket creation is straightforward - a markdown editor with file uploads, assignment, status tracking, and a logical workflow that new agents grasp without a manual. Mailbox integration converts email into tickets automatically: configure SMTP/IMAP per mailbox and incoming messages become trackable tickets. Each client accumulates an interaction history, giving agents context on every past request before replying. Two touches distinguish it from bare-bones ticketing: a built-in markdown notebook with todo lists for internal documentation and knowledge sharing, and OIDC authentication so agents sign in through your existing identity provider - Keycloak, Okta, Authentik, or Azure AD. Configurable webhooks and email notifications push ticket events to third-party services. The UI is responsive from mobile to 4K, and everything works fully offline in air-gapped environments. Docker-native and scalable via Kubernetes, with an active community of 3,000+ GitHub stargazers.
Shiori
Most web links eventually break - the sobering statistic Shiori, a bookmark manager with archiving by default, is built on. Its answer is archiving by default - where possible, every bookmark you save gets a clean, readable offline copy parsed from the page, ads and navigation stripped, so the article survives even after the original URL dies. Conceived as a simple Pocket clone and written in Go, the entire server is a single binary using roughly 25-30 MB of RAM with SQLite out of the box (Postgres and MySQL supported) - genuinely the lightest archiving bookmark manager you can run. Saving is one click through the Firefox and Chrome extensions, and finding things again is where Shiori quietly outperforms its size: full-text search covers the archived page content, not just titles and tags, so you can find that article by a phrase you remember from paragraph six. Reader mode presents the cleaned text; archive mode shows the preserved page. It's dual-interface by design - a pretty web UI (installable as a PWA on mobile) and a complete CLI for terminal devotees - plus a REST API for scripting. Pocket imports work natively, and Netscape HTML handles browser imports and exports. Multi-user support included. MIT-licensed.
Shaarli
Personal, minimalist, database-free bookmarking - Shaarli is a philosophy as much as an app. Everything lives in a single compressed datastore file inside data/: no MySQL, no PostgreSQL, backup by copying one directory. That write-once/read-many file is usually served straight from OS disk caches, which is why a decade-old Shaarli instance with tens of thousands of links still responds instantly. Designed deliberately single-user, it saves URL, title, unlimited-length description, and tags (with autocomplete, renaming, and merging), marks entries public or private, and automatically strips utm_source and fb tracking parameters from saved URLs. That description field is why the community uses Shaarli as far more than bookmarks: a microblog, read-it-later queue, code-snippet base, pastebin, and shared clipboard between machines. Sharing is one click via bookmarklet or Android apps; consumption is per-tag RSS/Atom feeds plus a daily digest feed; search is full-text with tag filtering. A REST API opens it to any client, a plugin and theme system extends the PHP core (Markdown rendering, thumbnails), and import/export uses browser-standard Netscape HTML - your data enters and leaves freely. LDAP login is supported, no telemetry is sent anywhere, and the UI degrades gracefully without JavaScript. The anti-cloud Delicious.
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.
Homarr
A single pane of glass for every service you run, arranged by drag-and-drop with no YAML or JSON files: Homarr is the modern dashboard for self-hosted infrastructure. Its grid system arranges apps, widgets, and bookmarks on desktop or touch, backed by an icon picker with over 11,000 icons. What separates Homarr from static launchers is 50+ live integrations: Plex, Jellyfin, and Emby media stats, the *arr suite (Sonarr, Radarr) with a unified release calendar, download clients, Pi-hole and AdGuard Home controls, Proxmox, Home Assistant, OPNsense, and Unifi monitoring. Widgets update in real time over WebSockets (tRPC and Redis under the hood), and a built-in search queries thousands of data points across connected services. Custom widgets extend the reach to any HTTP API without code: define endpoint, auth, and refresh interval in the management UI, then render responses as stat grids, tables, progress bars, status indicators, action buttons, or full custom JSX layouts - with an AI-prompt helper for generating templates. Multi-user support is first-class: credentials, OIDC, or LDAP sign-on, groups with granular permissions, and secrets encrypted with AES-256-CBC. A robust background-job system scales it from a Raspberry Pi homelab to deployments serving hundreds of users.
Nametag
CRM mechanics applied to your actual relationships instead of a sales pipeline: Nametag is a Personal Relationship Manager (PRM). It exists to fix the things you keep forgetting: when you last talked to an old friend, their kids' names, the birthday you missed twice. Contacts are tracked with flexible attributes - names, birthdays, important dates, and free-form notes for everything else - and organized into custom groups. Where it goes beyond a contacts app is relationship mapping: you define how people connect to each other (family, friends, colleagues, or custom relationship types), and an interactive D3.js-powered graph renders your entire personal network so you can see clusters and connections at a glance. Staying in touch is automated: scheduled reminders fire for birthdays, important dates, and reach-out nudges, with optional email delivery via a Resend API key for password resets and reminder notifications. Built with Next.js, it is mobile-responsive, ships with full dark mode, and supports multiple languages including English and Spanish. Because it is self-hosted, there are no account tiers or contact limits - unlimited people and relationships, with every note about your personal life stored on your own server rather than a social-graph company's cloud. A lightweight, single-container deployment makes it one of the easiest personal tools to run.
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.
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.
Heimdall
Links stop drowning in browser bookmarks once Heimdall - the application dashboard from the LinuxServer.io team - gives every web app and service you run a single, organized front door. Items come in three tiers. Generic items link to anything on the web with a name, color, and optional icon. Foundation apps are recognized as you type, auto-filling the application's icon and tile color so a full homelab dashboard assembles in minutes. Enhanced apps go further: supply API credentials and the tile shows live data - queue size and download speed for SABnzbd and NZBGet, plus integrations for Sonarr, Radarr, Plex, Jellyfin, Pi-hole, Portainer, Transmission, and many more. There are no iframes and no apps-within-apps; tiles are honest links with real-time stats layered on. Tiles arrange by drag and drop, backgrounds are customizable, an optional search bar (Google, Bing, or DuckDuckGo) makes it work as a browser start page, and optional multi-user authentication keeps dashboards personal. Built on Laravel with SQLite file-based storage - no external database - it stays light, responsive on mobile, and simple to back up. A natural first deployment: the page that ties every other self-hosted service together.
Wally
Started as an ExpenseOwl-inspired project, Wally grew into a lightweight, self-hosted expense tracker more capable in every direction its author touched. The backend is Python FastAPI over SQLite, which means every deployment ships a full REST API with interactive documentation at /api/docs - automating imports or wiring in external tools requires no reverse engineering, and when the optional login page is enabled you can mint scoped API keys from the Settings page for token-based integrations. The transactions view is built on AG Grid, bringing real search, column sorting, and per-column filtering to your ledger, with a footer totaling rows, income, and expenses for whatever slice you have filtered. Dashboards go beyond the usual monthly doughnut: a Change button swaps in year-scale line graphs so you can track a single category - restaurants, say - across time. Recurring transactions edit intelligently, letting you apply changes to all instances or only future ones. CSV import and export use a simple six-column format handled from Settings, the refined dark theme is genuinely easy on the eyes, and the interface is translated into more than ten languages. The whole thing runs from one small container with a single data volume.