This repository provides the official Helm charts for deploying Mattermost, an open-source messaging platform, and its associated services (Focalboard, RTCD, Push Proxy, Calls Offloader) onto Kubernetes. The primary deployment method is the `mattermost-operator` chart, which uses Kubernetes Custom Resource Definitions (CRDs) to declaratively manage the full lifecycle of Mattermost installations, including databases, file stores, ingresses, and scaling. Legacy charts (`mattermost-enterprise-edition`, `mattermost-team-edition`) are included but deprecated in favor of the operator. The architecture is a collection of Helm charts, with the operator chart acting as the core. It relies on external dependencies like PostgreSQL, S3-compatible storage, and optionally Elasticsearch and Grafana. The repository demonstrates strong DevOps practices, including automated CI/CD for chart releases, end-to-end testing with kind, and embedded monitoring configuration. Key reusable patterns include a Helm-embedded Grafana dashboard template for application KPIs, an ExternalSecrets integration for secure credential management, a deprecation handling template for managing breaking changes, and advanced Kubernetes storage patterns (EFS, NFS). The codebase is actively maintained but carries some technical drift from legacy components and outdated Kubernetes API versions.
ownCloud Core is the server-side component of ownCloud Classic, a file synchronization and sharing platform. In production, it provides file storage, synchronization, sharing (internal and federated), WebDAV/CalDAV/CardDAV access, versioning, trash bin, system tags, comments, external storage backends (SMB, SFTP, WebDAV, Google Drive, etc.), encryption, user/group management, and a plugin architecture for extending functionality. The system handles file upload/download via WebDAV or OCS API, manages sharing permissions and propagation, runs background jobs for maintenance (expiration, cleanup, sync), and supports federation between ownCloud instances. The architecture is a monolithic PHP application with a plugin system (apps) that register capabilities, routes, settings panels, and background jobs. Key entry points include index.php (main request handler), occ CLI (Symfony Console commands for admin tasks), cron.php (background job execution), and apps/dav/appinfo/v2/remote.php (WebDAV server). The codebase uses a custom PHP framework with namespaced public interfaces (OCP) and internal implementations (OC), SabreDAV for WebDAV/CalDAV/CardDAV, Symfony Console for CLI, Doctrine DBAL for database migrations, and Guzzle HTTP client for federation. Primary data flows involve file operations (upload, download, move, copy) through the filesystem abstraction layer, with metadata stored in a relational database (MySQL, MariaDB, PostgreSQL, SQLite). Sharing creates permission records and propagates changes via event hooks. Federation uses OCM protocol for cross-server sharing. Background jobs handle trash expiration, version cleanup, external storage scanning, and federation sync. External dependencies include a database server, optional memcached for caching, and external storage services (SMB, SFTP, WebDAV servers, Google Drive). The codebase is large (7844 files) with extensive localization (20+ languages) and testing (PHPUnit, Behat acceptance tests, JS specs). It shows signs of ongoing maintenance with recent commits and CI activity, but also contains legacy code, deprecated interfaces, and a custom PHP dialect (traits via use keyword) that may hinder standard tooling.
Upvote RSS is a monolithic PHP web application that generates RSS feeds from social aggregation platforms including Reddit, Hacker News, Lemmy, Lobsters, PieFed, Mbin, and GitHub. The system features a modular architecture with separate classes for authentication, community-specific APIs, post processing, content parsing, and AI summarization. Users configure feeds through a web interface built with vanilla JavaScript web components, and the application employs sophisticated caching (Redis, APCu, filesystem) to optimize performance. The platform supports optional features like AI-generated summaries, content extraction, comment inclusion, and NSFW filtering.
Glance is a self-hostable web application designed as a customizable dashboard (startpage) that aggregates information from various sources into widgets. Built in Go, it features a modular widget architecture where each widget type (e.g., RSS, weather, clock) implements a common interface, allowing users to create personalized pages with multiple columns and widgets. The application serves HTML pages with embedded static assets (CSS, JS, images) and uses Go templates for server-side rendering, enhanced by a comprehensive set of template functions. Client-side JavaScript adds interactivity for dynamic updates, masonry layouts, and popovers. The system relies on a YAML-driven configuration (`glance.yml`) that supports variable substitution, file includes, and defines pages, columns, and widget settings. Data fetching is handled by centralized HTTP utilities with caching and user-agent rotation to avoid blocking external services. A theming system generates CSS variables from HSL-based configuration, enabling light/dark modes and custom themes. Optional authentication secures the dashboard, and the application includes diagnostic and CLI tools for maintenance. While the project demonstrates strong engineering in areas like request deduplication (singleflight), flexible configuration, and reusable template functions, it faces challenges due to its extensive widget proliferation (30+ types), coupling between frontend and backend logic, and reliance on an outdated Go version (1.26.6) which is no longer supported, indicating moderate technical drift. Despite these issues, Glance remains a popular and functional solution for personal dashboards.
PandaWiki is a production-ready, self-hosted AI knowledge base and wiki platform. The actual codebase implements document management with versioned releases, RAG-based Q&A and search, AI-assisted document summarization and editing, multi-source content ingestion (URL, RSS, Sitemap, Notion, Feishu, DingTalk, Confluence, EPUB, Wiki.js, Yuque, Siyuan, etc.), a customizable public landing page builder, analytics, comments, contribution review, and multi-channel bot integrations for WeChat, WeCom, DingTalk, Feishu/Lark, and Discord. It is not a data research repository, but it contains substantial document-ingestion and analytics pipelines that feed the RAG system. The architecture is a full-stack monolith-style application split across a Go backend (Echo + GORM + PostgreSQL + Redis + MinIO/S3 + NATS JetStream), a React admin panel (Vite/MUI/Redux), a Next.js public site, and a pnpm workspace of shared UI/icon/theme packages. The Go backend follows a layered design with handlers, use cases, repositories, middleware, and dependency injection via generated Wire code. A standalone MQ consumer process handles async RAG document updates, crawler exports, and cron-driven statistics aggregation. The public app is served separately from the admin panel, with an embeddable widget and an H5 chat interface. In production, documents are imported through crawler tasks or direct upload, converted to HTML/Markdown, chunked, and upserted into a configurable vector/RAG service. User chat requests rewrite the query, retrieve ranked chunks, and stream LLM responses via SSE with citations. Statistics are rolled up hourly into PostgreSQL. Authentication supports local accounts, JWT sessions, GitHub OAuth, LDAP, CAS, and enterprise SSO. Feature availability is gated by commercial license editions, with a private pro submodule adding enterprise functionality.
This repository is a monorepo of self-contained demo applications showing how to build and deploy multi-agent AI systems using Docker Compose, Docker Model Runner, and the MCP Gateway. It contains 12+ independent examples spanning Google ADK, A2A, Agno, CrewAI, LangGraph, Langchaingo (Go), Spring AI, Akka, and a Next.js agent UI. Each subproject is a standalone composition with its own compose.yaml, Dockerfile, and README, designed to run with a single `docker compose up --build` after creating a `.mcp.env` file. The demos are reference architectures rather than a single product, emphasizing local LLM inference, MCP tool integration, and switching between local and cloud models via compose override files.
EmailThing is a self-hosted email service providing web (PWA), CLI, and API interfaces for sending and receiving emails with custom domains. The system consists of a Bun-based backend API using PostgreSQL with Drizzle ORM, a React/Next.js PWA with Dexie IndexedDB for offline capabilities, and a CLI tool for management. It handles email storage via S3, authentication with JWT/sessions and passkeys, rate limiting with Redis, and integrates with external email services for sending while using Cloudflare Workers for reception. The architecture follows a monorepo pattern with clear separation: apps/api (backend server), apps/pwa (frontend interface), apps/cli (terminal tool), and shared packages for database, constants, and SDK. Key features include multi-user mailbox management, aliases, custom domain support, team collaboration, end-to-end encryption for sensitive data, and real-time synchronization between client and server. The system emphasizes user control over email infrastructure while providing modern web application experiences.
AppFlowy-Cloud is the Rust backend for the AppFlowy collaborative workspace platform, providing real-time document editing via CRDT (Yrs) with WebSocket sync, REST APIs for user/workspace management, AI features (chat, completion, embeddings), file storage (S3/MinIO), and background indexing. It follows a multi-service architecture with a main Actix-web server, a background worker (Axum), and an admin frontend (Axum/Askama), all orchestrated via Docker Compose. The codebase is extensive and well-structured, with many reusable libraries for database access, access control (Casbin), real-time protocol handling, and AI client integration. A significant portion is dedicated to integration tests covering collaborative sync, file uploads, and AI operations. However, this repository is explicitly marked as a legacy open-source release. The README states it is no longer maintained; active development has moved to a closed-source commercial fork. This results in some technical drift, such as deprecated endpoints, commented-out tests, and workarounds for known issues. Despite this, the code demonstrates high craftsmanship with clean abstractions (e.g., StreamRouter, ReconnectionManager, CollabStore trait) and robust patterns for distributed systems. It serves as a valuable reference for building real-time collaborative backends, but any reuse should account for its stale maintenance status and the need to update dependencies and fix known bugs.
Pingvin Share is a self-hosted file sharing platform designed as an alternative to services like WeTransfer. It provides a full-stack application with a NestJS backend and a Next.js frontend, featuring user authentication (local, OAuth2, TOTP, LDAP), file uploads with chunked transfers, password-protected and expiring shares, reverse shares for receiving files, an administrative panel for managing users and system configuration, and support for multiple storage backends (local filesystem or S3). The application includes virus scanning via ClamAV, email notifications, and extensive internationalization. The backend employs a modular architecture with distinct modules for authentication, user management, share handling, file storage, configuration, and scheduled jobs. Key reusable patterns include an abstracted file storage service (supporting local and S3 providers), a strategy-based OAuth provider interface, and a dynamic configuration service that loads settings from the database with optional YAML file overrides and runtime update notifications. The frontend presents a polished user interface with custom hooks for configuration and user state, reusable input components for timespans and file sizes, and a sophisticated chunked file upload UI with progress tracking and error recovery. Although the original repository has been archived (as of June 2025) with a recommendation to use a maintained fork, the codebase demonstrates solid engineering practices, clear separation of concerns, and several reusable components that could be adapted for similar projects. The Dockerized deployment and comprehensive feature set make it a viable self-hosted solution for file sharing needs.
goploader is a self-hosted file sharing system consisting of a Go-based command-line client and web server. The server provides both a web interface and REST API for file uploads/downloads, featuring optional client-side encryption (where encryption keys are never stored server-side), automatic expiration-based cleanup, and metadata storage via BoltDB. The client supports terminal-based uploads with features like progress bars, screenshot capture, and clipboard integration. Architecture follows a layered design with separation between HTTP handlers (views), data models, and utility components. While the core functionality is well-implemented, the codebase shows signs of technical debt including outdated frontend dependencies (Font Awesome 4.7.0), inconsistent Go version references, and a cryptographic concern (static IV in AES encryption mode). The maintainer explicitly notes the technology is outdated but maintains the repository in a working state.
Goblin is a web application that serves as a Go binary distribution service, allowing users to download and install Go binaries without having Go installed locally. The application consists of a Go-based HTTP server that resolves package versions from the Go proxy and GitHub, compiles binaries for requested OS/architecture combinations, and serves them to users. It includes a web frontend for documentation and usage examples, Docker configuration for easy deployment, and optional caching via S3-compatible storage. The architecture follows a standard web service pattern with clear separation between API handling, version resolution, binary building, and storage layers.
This repository is a curated collection of 280+ n8n workflow templates, organized into 18 categories covering email automation, AI agents, RAG pipelines, social media, DevOps, document processing, and more. It is not a software application itself but a library of importable JSON workflow definitions for the n8n automation platform. The templates demonstrate practical automation patterns such as webhook-triggered AI agents, scheduled data enrichment, human-in-the-loop approvals, and vector-store-based retrieval-augmented generation. While the collection is extensive and popular (25k+ stars), individual templates vary in quality, with many containing hardcoded placeholders, deprecated model references, and no automated testing. The repository serves as a valuable reference for n8n users seeking ready-made automation blueprints, but users must adapt credentials and verify compatibility with their n8n version.
MicroBin is a self-hosted pastebin and URL shortener implemented as a monolithic Rust web application using actix-web. It stores pastes (text, files, or URL redirects) in either SQLite (default) or a JSON file, with all state held in memory behind a single global Mutex. The application supports server-side and client-side AES encryption, expiration and burn-after-read limits, QR code generation, server-side syntax highlighting via syntect, multiple file attachments, and animal-name or hash-based opaque identifiers. It is configured entirely through CLI arguments or environment variables, and ships as a single static binary with templates and assets embedded via rust-embed and askama. The architecture is straightforward: actix-web route handlers in src/endpoints process HTTP requests, while src/util contains the database backends, encryption helpers, ID encoders, telemetry, and HTTP client construction. The system is designed for single-instance self-hosting with a small memory footprint. External dependencies include actix-web, rusqlite, askama, syntect, magic-crypt, and reqwest. A background telemetry thread posts anonymized configuration to api.microbin.eu every 24 hours unless disabled, and the admin panel checks for updates against the same API. Maintenance is active with recent commits, multi-platform release CI, and clippy analysis. Technical drift is medium: clap 3, env_logger 0.9, and askama 0.10 lag behind current major versions, and the CI pipeline uses deprecated actions-rs tooling and ::set-output syntax. The codebase has notable duplication (six near-identical auth handlers, repeated SQL schema definitions across every db_sqlite function) and a latent bug in the JSON database path where remove_expired calls delete(None, ...) which panics in JSON mode; the JSON path also hardcodes pasta_data/database.json instead of honoring the data_dir argument. The encryption scheme pads passwords with '#' instead of using a proper KDF, a design weakness for a security-focused feature.
Focalboard is a self-hosted project management application offering board/card-based work organization similar to Trello. The architecture consists of a Go backend server providing REST/WebSocket APIs, a React/TypeScript frontend with Redux state management, and native desktop clients (macOS Swift, Windows WPF, Linux) that embed the web UI. Key features include boards with multiple views (table/kanban/calendar/gallery), customizable properties, real-time collaboration, import/export from external tools (Trello, Asana, Notion), sharing capabilities, and Mattermost plugin compatibility. Data is stored in SQL databases (SQLite/MySQL/PostgreSQL) with schema migrations. The repository exhibits a maintenance warning indicating the project is currently not maintained despite recent commits, suggesting stale status with potential dependency drift.
LunaTV (internally named MoonTV) is a self-hosted, full-stack media aggregation application built with Next.js 14, React 18, TypeScript, Tailwind CSS, and PWA tooling. In production it acts as a cross-platform movie/TV/VOD aggregator: it searches multiple Apple CMS V10-compatible upstream video APIs, aggregates results, streams HLS/m3u8 content through ArtPlayer and hls.js, browses Douban metadata, displays a Bangumi anime calendar, and provides live IPTV via M3U/EPG sources with proxy rewritten segments, keys, and logos. It also ships authentication, favorites, play records, skip-intro settings, search history, an admin panel for managing video sources/categories/users/live configs, and encrypted data export/import. The repository is an application, not a data-research project; its data aggregation is runtime functionality rather than analytical pipelines.
Totum is a self-hosted, low-code/no-code application framework built on PHP 8.3 and PostgreSQL. It functions as a dynamic database and spreadsheet hybrid, allowing users to define data structures (tables, fields) via JSON configuration and implement business logic using a proprietary DSL ('Totum-code'). The system features a modular architecture with a CLI management tool (`bin/totum`), a web-based UI (`http/index.php`), and extensive role-based access control (RBAC). It supports multi-tenancy via schema mapping, external service integration (PDF, Excel, AI), and automated installation via Ansible playbooks for Ubuntu environments. The core logic relies heavily on traits for shared functionality and abstract base classes for table and field handling, creating a flexible but complex codebase. The application is designed for rapid business application construction (CRM, ERP, custom tools) without requiring traditional coding. It stores schema definitions and field configurations in PostgreSQL JSONB columns, enabling runtime structure modification. The calculation engine (`Calculate.php`) parses and executes custom code strings for data validation, formatting, and cross-table logic. While the architecture is robust for its intended purpose, it exhibits signs of technical debt including monolithic frontend JavaScript (`main.js`), hardcoded paths in installation scripts, and reliance on legacy libraries (Chart.js v2, jQuery). The codebase demonstrates significant craftsmanship in its dynamic table engine and calculation DSL, but maintenance requires careful handling of the custom parsing logic and schema migrations.
Overseerr is a full-stack self-hosted web application for managing media requests in a Plex ecosystem. Users can search for movies and TV shows via TMDB, submit requests (including 4K variants), and have those requests automatically pushed to Radarr/Sonarr for download. The application also tracks media availability by scanning Plex libraries, syncs Plex watchlists, and provides a comprehensive notification subsystem supporting Discord, Telegram, Slack, email, webhooks, and web push. It includes user management with granular permissions, quota enforcement, issue reporting, and a highly customizable discovery page built from TMDB-driven sliders, genres, networks, and studios. The frontend is Next.js (React) with Tailwind CSS, SWR, Formik, and react-intl i18n; the backend is Express with TypeORM on SQLite. The project is feature-rich and has been widely adopted, but the README states it is superseded by the Seerr community fork, and the codebase relies on several aging dependencies (Next.js 12, React 18, Tailwind 3) and a hardcoded TMDB API key. Despite this, the code is well-organized with clear separation between API clients, entities, routes, and UI components, and many parts are written with solid engineering patterns such as a base external API client with caching/rate limiting, a template-method scanner base class, and a clean notification agent interface.
Upstat is a self-hosted, open-source status monitoring and uptime tracking tool. The system consists of a Go (Fiber v2) backend API and a Next.js 15 web dashboard, deployed via Docker Compose with support for both PostgreSQL and SQLite databases. The backend periodically pings configurable HTTP endpoints, records heartbeats, calculates uptime percentages, and manages incidents triggered by status transitions. It integrates with multiple notification channels (Discord, Slack, Telegram, Ntfy, Gotify) and provides public status pages with real-time latency charts. The frontend uses shadcn/ui components, React Hook Form with Zod validation, and a custom client fetch wrapper for authenticated API calls. The monorepo also includes a documentation site (Fumadocs) and a static landing page. While the architecture is well-structured with clear separation of concerns (controllers, routes, models, utils), the codebase shows signs of technical drift including outdated dependencies, hardcoded secrets in Docker Compose files, committed SQLite database artifacts, and documentation inconsistencies between the manual API docs and generated OpenAPI spec. The project is functional and suitable for small to medium deployments but would benefit from dependency updates and cleanup before production use.
This repository is a Bash-driven, Docker-centric deployment and maintenance toolchain for the xiaoya-alist personal media stack. The actual product is an interactive installer/manager: main.sh dispatches to the monolithic all_in_one.sh, which provides numbered menus for installing, updating, uninstalling, and configuring AList, Emby, Jellyfin, TVBox, Portainer, Onelist, Auto_Symlink, CasaOS, cron containers, and cloud-drive token helpers. It is a CLI application, not a library or data pipeline; the primary data flows are downloading and extracting large media metadata archives (all.mp4, config.mp4, 115.mp4, etc.) with 7z/wget/aria2c inside xiaoyaliu/glue containers, persisting cloud-drive cookies/tokens, and recreating Docker containers while preserving their original run parameters. Architecturally, the codebase is a large interactive shell script supported by a small base shell library (base/base.sh) and several independent Flask helpers under glue_python/. The Python components implement QR-code OAuth flows for 115, Quark, UC, and Aliyun Drive, plus a reverse-engineered Aliyun TV token service and Emby plugin helpers. External dependencies include Docker, third-party Docker images (amilys/embyserver, xiaoyaliu/glue, ddsderek/*), GitHub/gitee mirrors, and cloud-drive web APIs. The repository also contains GitHub Actions for linting, version scraping, and Docker image publication. Maintenance is active, but the codebase shows notable drift and engineering debt: xiaoya_data_downloader.sh and xiaoya_notify.sh are explicit deprecated stubs, many shell files disable shellcheck, hardcoded endpoints/keys appear in source, and there is no automated runtime test coverage. The main shell script is monolithic and contains duplicated or overloaded function names, making it hard to modify safely. Still, the shell utility library and the standalone token-connector components demonstrate enough isolated utility to be reused in other projects.
GreenResourcesManager is an Electron + Vue 3 desktop application for local-first management of personal digital media collections—games, images, videos, novels, audio, websites, and software. It provides a config-driven UI with customizable pages, tag-based filtering, batch import, and built-in readers (EPUB, PDF, comic viewer, video player). Notable features include a desktop pet gamification system (affection, hunger, earnings), a disguise mode for privacy, a plugin system, and a local HTTP API for external access. Data is stored in SQLite with legacy JSON file backup. The application is actively developed (last commit April 2026) with a sizable feature set and internationalization (zh-CN, zh-TW, en, ja). However, the codebase shows significant technical drift: near-duplicate main-process code in `electron/` and `public/js/`, incomplete migration from JSON to SQLite, hardcoded Windows-specific paths, and extensive debug logging scattered throughout. The pet subsystem is tightly coupled and the plugin system remains marked as under development. While the config-driven UI pattern and composable architecture offer reuse potential, overall craftsmanship is average—functional but with notable boilerplate and coupling.