[
  {
    "path": ".github/ISSUE_TEMPLATE/submit-new-product.md",
    "content": "---\nname: Submit new product\nabout: Consider to check /MostWanted.md for the list of in-demand services\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n## Criteria\n1. Every day needs (mostly for personal usage);\n1. Open-source and free;\n1. Server-side which is suitable for common VPS;\n1. You are the only who control and being responsible of your data.\n\n## Please, NO\n1. Early stage/alpha/yesterday started products;\n1. Dead or abandoned products;\n1. Community Edition with reduced list of features (users limit, no your own domain, etc).\n\n## Hell, YES\n1. Products with tutorials and how-to's;\n1. Community-driven products;\n1. Products with GitHub/GitLab/Bitbucket open repos.\n"
  },
  {
    "path": ".github/workflows/maintenance.yml",
    "content": "name: Maintenance\non:\n  push:\n    branches:\n      - 'master'\n  schedule:\n    - cron: \"30 14 * * *\"\n  workflow_dispatch:\n\nenv:\n  GH_ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}\n\njobs:\n  maintenance:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n\n      - name: Set up Python\n        uses: actions/setup-python@v4\n        with:\n          python-version: '3.10'\n\n      - name: Update project data\n        run: python3 keep-alive.py\n\n      - name: Generate README\n        run: python3 readme-gen.py\n\n      - name: Commit and push changes\n        run: |\n          git config --global user.email \"actions@users.noreply.github.com\"\n          git config --global user.name \"Maintenance\"\n          git add dyos-db.json README.md\n          git commit -m \"Update stars and activity stats [skip ci]\" || echo \"No changes to commit\"\n          git push\n"
  },
  {
    "path": ".gitignore",
    "content": ".vscode\n.env"
  },
  {
    "path": "MostWanted.md",
    "content": "## List of most wanted products and tuts\n- Tor\n    - [Nipe](https://heitorgouvea.me/nipe/#/)\n    - [Tor Socks5 proxy in container](https://github.com/PeterDaveHello/tor-socks-proxy)\n- Secrets management\n    - [Vault](https://www.hashicorp.com/products/vault/secrets-management)\n    - [Conjure](https://www.conjur.org/)\n- Personal finance tracker 💳\n    - [Ontrack](https://github.com/inoda/ontrack)\n- Video game streaming 🕹\n    - [Parsec](https://parsecgaming.com/)\n        - [Paperspace Cloud with Parsec](https://www.paperspace.com/gaming)\n    - [Moonlight](https://moonlight-stream.org/)\n    - GeForce Now\n    - [How to make it in 2015 on AWS](https://lg.io/2015/07/05/revised-and-much-faster-run-your-own-highend-cloud-gaming-service-on-ec2.html)\n    - [2016 in Azure](https://lg.io/2016/10/12/cloudy-gamer-playing-overwatch-on-azures-new-monster-gpu-instances.html)\n    - [Steam Remote Play](https://store.steampowered.com/remoteplay/)\n    - [2015 HN tread](https://news.ycombinator.com/item?id=9864534)\n- Stocks portfolio watcher 💹\n- Personal Document Management System\n    - [Paperless](https://github.com/the-paperless-project/paperless)\n    - [EveryDocs](https://github.com/jonashellmann/everydocs-core/)\n- Contacts list 📇\n- Tasks 📋\n- Video calls server\n    - [Tuber](https://github.com/trailofbits/tubertc) — Peer-to-Peer Video Chat for Corporate LANs\n- Torrent machine\n    - [Cloud Torrent](https://github.com/jpillora/cloud-torrent)\n- Notetaking service with sharing\n- Web clipper\n- Screenshot sharing\n- Survey monkey\n\n### 📲 Deploy your own `Cloud buffer`\n- [Cloud Clip](https://github.com/skywind3000/CloudClip) — copy and paste text with gist between systems"
  },
  {
    "path": "README-old.md",
    "content": "**[[Submit product or tutorial](https://github.com/Atarity/deploy-your-own-saas/issues/new?assignees=&labels=&template=submit-new-product.md)]** or make it thru PR.\n\n![Scryer](/scryer.jpg)\n\n### 🙊 Deploy your own `VPN`\n- [OpenVPN](https://openvpn.net/) — full-featured open source VPN solution. [(Digital Ocean tutorial)](https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-16-04)\n- [dockovpn.io](https://github.com/alekslitvinenk/docker-openvpn) —\nstateless OpenVPN dockerized server which doesn't require persistent storage.\n- [WireGuard](https://www.wireguard.com/) — faster, simpler, leaner, and more useful than IPsec. It intends to be considerably more performant than OpenVPN. [(Digital Ocean tutorial)](https://www.digitalocean.com/community/tutorials/how-to-create-a-point-to-point-vpn-with-wireguard-on-ubuntu-16-04)\n- [Algo VPN](https://github.com/trailofbits/algo) — set of Ansible scripts that simplify the setup of a personal Wireguard and IPsec VPN.\n\n### 🎧 Deploy your own `Music streaming service`\n- [Ampache](https://github.com/ampache/ampache) — web based audio/video streaming application and file manager.\n- [Madsonic](https://beta.madsonic.org/pages/index.jsp) — web-based media library and media streamer with jukebox functionality.\n- [Mopidy](https://www.mopidy.com/) — extensible music server.\n- [Koel](https://koel.dev/) — simple web-based personal audio streaming service. [(GitHub)](https://github.com/phanan/koel)\n- [Funkwhale](https://funkwhale.audio/) — web-based music library with Airsonic compatibility. [(GitLab)](https://dev.funkwhale.audio/funkwhale/funkwhale)\n- [AzuraCast](https://www.azuracast.com/) — web radio management suite, with a modern web app. [(GitHub)](https://github.com/AzuraCast/AzuraCast)\n- [Black Candy](https://github.com/blackcandy-org/blackcandy) — music streaming server with web UI and iOS/Android apps.\n- [Audiobookshelf](https://audiobookshelf.org) — audiobook and podcast server. [(GitHub)](https://github.com/advplyr/audiobookshelf)\n\n### 📷 Deploy your own `Photo hosting`\n- [Immich](https://immich.app/) — high performance photo and video solution with familiar UI. [(GitHub)](https://github.com/immich-app/immich)\n- [Chevereto](https://chevereto.com/free) — powerful and fast image hosting script that allows you to create your very own image hosting website in just minutes.\n- [PhotoPrism](https://photoprism.app/) — personal photo management with Ai classification and lots of features. [(GitHub)](https://github.com/photoprism/photoprism)\n- [Lychee](https://lychee.electerious.com/) — upload, manage and share photos like from a native application. [(GitHub)](https://github.com/electerious/Lychee)\n- [Photo-Stream](https://github.com/maxvoltar/photo-stream/) — super-simple, jekyll-based, self-hosted photo stream.\n- [Piwigo](https://piwigo.org/) — PHP image gallery. [(GitHub)](https://github.com/Piwigo)\n- [Pinry](https://docs.getpinry.com/) — your own Pinterest with boards and tags. [(GitHub)](https://github.com/pinry/pinry)\n\n### 📚 Deploy your own `eBooks catalog`\n- [Calibre](https://github.com/kovidgoyal/calibre) — e-book manager, packed with all you need features (including server).\n- [COPS](https://github.com/seblucas/cops) — Calibre OPDS and HTML server. [(Urown tutorial)](https://roll.urown.net/server/ebooks.html)\n- [Calibre-Web](https://github.com/janeczku/calibre-web) — web UI for Calibre database.\n\n### 📄 Deploy your own `Google Docs`\n- [Collabora](https://www.collaboraoffice.com/collabora-online/) — LibreOffice in the cloud with collaboration features. [(tutorial for OwnCloud)](https://www.collaboraoffice.com/code/docker/)\n- [ONLYOFFICE CE](https://www.onlyoffice.com/) — private cloud office with collaboration features. CE version distributed as [Docker image](https://helpcenter.onlyoffice.com/server/docker/opensource/deploy-community-edition-in-digitalocean.aspx). [(GitHub)](https://github.com/ONLYOFFICE)\n- [SeaTable](https://seatable.io/) — your own Airtable where spreadsheets meets database.\n- [Baserow](https://baserow.io/) — your own API-focused Airtable with plugins.\n- [Nocodb](https://docs.nocodb.com) — Airtable alternative could be based on top of MySQL, PostgreSQL, SQL Server, SQLite & MariaDB with solid GUI [(GitHub)](https://github.com/nocodb/nocodb)\n\n### 🎬 Deploy your own `Netflix`\n- [Jellyfin](https://jellyfin.org/) — media system that puts you in control of managing and streaming your media. [(GitHub)](https://github.com/jellyfin/jellyfin)\n\n### 📝 Deploy your own `Notes`\n- [CodiMD](https://github.com/hackmdio/codimd) — realtime collaborative markdown notes.\n- [Standard Notes](https://standardnotes.org/) — clean and simple web app with E2E encryption, extensions and clients. [How to self-host tutorial](https://theselfhostingblog.com/posts/how-to-completely-self-host-standard-notes/)\n- [TinyList](https://tinylist.app/) — your own Google Keep. Simple and clean. [(GitHub)](https://github.com/baggachipz/tinylist)\n- [Leanote](http://leanote.org/) — your own Evernote. [(GitHub)](https://github.com/leanote/leanote)\n- [Bangle.io](https://bangle.io/) — web only WYSIWYG note taking app that saves notes locally in markdown. [(GitHub)](https://github.com/bangle-io/bangle-io)\n- [Memos](https://usememos.com/) — memo hub with knowledge management and socialization. [(GitHub)](https://github.com/usememos/memos)\n\n### 🏷 Deploy your own `Bookmarks service`\n- [Unmark](https://github.com/cdevroe/unmark) — application for bookmarks. [(Tutplus tutorial from 2014)](https://computers.tutsplus.com/tutorials/host-your-own-bookmarking-webapp-with-unmark--cms-21385)\n- [Bookmarks](https://github.com/dyu/bookmarks) — self-hosted bookmarking app that can import bookmarks from delicious and chrome.\n- [xBrowserSync](https://www.xbrowsersync.org/) — secure and anonymous bookmarking server with browser plugins and mobile app. [(GitHub)](https://github.com/xbrowsersync)\n- [Nextcloud Bookmarks](https://apps.nextcloud.com/apps/bookmarks) — bookmark app for Nextcloud with browser plugins, mobile and desktop apps. [(GitHub)](https://github.com/nextcloud/bookmarks)\n- [LinkAce](https://www.linkace.org/) — bookmark archive with tags, lists and sharing features. [(GitHub)](https://github.com/Kovah/LinkAce)\n- [Linkding](https://github.com/sissbruecker/linkding) — simple bookmarks with tags and neat UI.\n- [Benotes](https://github.com/fr0tt/benotes) — bookmark taking web app with additional note taking feature.\n- [Briefkasten](https://github.com/ndom91/briefkasten) — bookmark web app with REST API, OAuth, drag-n-drop and browser extension.\n- [Hoarder](hoarder.app) — bookmark-everything app with AI-based tagging and full text search. [(GitHub)](https://github.com/hoarder-app/hoarder)\n- [Readeck](https://readeck.org/) — selfhosted bookmarking app with the modern UI, smart features and browser extension. [(Codeberg)](https://codeberg.org/readeck/readeck)\n\n### 🔤 Deploy your own `URL shortener`\n- [Yourls](https://github.com/YOURLS/YOURLS) — Your Own URL Shortener.\n- [Kutt](https://kutt.it/) — modern URL shortener with support for custom domains. [(GitHub)](https://github.com/thedevs-network/kutt)\n- [Delta](https://github.com/fosslife/delta) — a file uploader and URL shortener packed with features and CLI.\n- [Shlink](https://shlink.io/) — URL shortener with neat UI, API and analytics. [(GitHub)](https://github.com/shlinkio/shlink).\n- [CLI based approach](https://dev.to/commonshost/build-your-own-url-shortener-in-15-minutes-279n)\n\n### 🗓 Deploy your own `Calendar`\n- [Radicale](https://radicale.org/) — CalDAV and CardDAV Server made with Python.\n- [Sabre](http://sabre.io/) — CardDAV, CalDAV and WebDAV server made with PHP.\n- [Calendar Server](https://github.com/apple/ccs-calendarserver) — Calendar and contacts server made by Apple.\n\n### 🗄 Deploy your own `Cloud storage`\n- [OwnCloud](https://github.com/owncloud/core) — personal cloud which runs on your own server. [(tutorial)](https://doc.owncloud.org/server/10.2/admin_manual/installation/deployment_considerations.html)\n- [Nextcloud](https://nextcloud.com/) — enhanced OwnCloud fork with tons of [additional services](https://apps.nextcloud.com/) like calendars, mail, contacts, video calls, etc [(GitHub)](https://github.com/nextcloud).\n- [Syncthing](https://syncthing.net/) — continuous file synchronization program.\n- [MinIO](https://github.com/minio/minio) — object storage server compatible with Amazon S3 APIs.\n- [Teedy](https://teedy.io/) — lightweight document management system with workflows [(GitHub)](https://github.com/sismics/docs)\n- [Filestash](https://www.filestash.app/) — easily turn popular backends like SFTP, S3, GitHub etc into web-based file manager [(GitHub)](https://github.com/mickael-kerjean/filestash)\n\n### 🕸 Deploy your own `DNS`\n- [Unbound](https://github.com/NLnetLabs/unbound) — validating, recursive, caching DNS resolver. [(Urown tutorial)](https://roll.urown.net/server/dns/unbound.html)\n\n### 🛑 Deploy your own `AdBlock`\n- [Pi-hole](https://pi-hole.net/) — network-wide ad blocking software you can deploy to local Raspberry Pi or [always-free instance of Google Cloud](https://github.com/n3m351d4/Pi-Hole-PiVPN-on-Google-Compute-Engine-Free-Tier-with-Full-Tunnel-and-Split-Tunnel-OpenVPN-Configs). Yes, you've got the irony right. [(GitHub)](https://github.com/pi-hole)\n- [AdGuard Home](https://adguard.com/en/adguard-home/overview.html) — network-wide DNS resolver with encryption for blocking ads & tracking. [(GitHub)](https://github.com/AdguardTeam/AdGuardHome)\n\n### ✉️ Deploy your own `Email server`\n- [Mailu](https://mailu.io/) — dockerized, secured mail suite which is easy to install and maintain.\n- [Mailcow](https://mailcow.email/) — dockerized mail server suite based on Postfix, Dovecot, Nginx, PHP, MariaDB, Rspamd and more. [(GitHub)](https://github.com/mailcow/mailcow-dockerized)\n- [iRedMail](https://www.iredmail.org/) — mail server suite with vast of options.\n- [Mail-in-a-Box](https://mailinabox.email/) — another mail server suite based on Postfix, Dovecot, Z-Push, Roundcube, Nextcloud, Apache SpamAssassin, Postgrey, Nginx. [(GitHub)](https://github.com/mail-in-a-box/mailinabox)\n- [Roundcube](https://roundcube.net/) — browser-based IMAP client with an application-like user interface.\n- [Postal](https://postal.atech.media/) — a fully featured mail server with web UI. [(GitHub)](https://github.com/postalhq/postal)\n- [Maddy](https://maddy.email/) — a composable all-in-one mail server written in Golang. [(GitHub)](https://github.com/foxcpp/maddy)\n\n### 💬 Deploy your own `Chat server`\n- [Prosody IM](https://prosody.im/) — modern XMPP communication server. [(Urown tutorial)](https://roll.urown.net/server/prosody.html)\n- [Zulip](https://zulipchat.com/) — team chat which combined the immediacy of real-time chat with an email threading model. [(GitHub)](https://github.com/zulip/zulip)\n- [Rocket Chat](https://rocket.chat/) — WebChat platform. [(GitHub)](https://github.com/RocketChat/Rocket.Chat)\n- [Mattermost](https://mattermost.com/) — private cloud, Slack-alternative. [(GitHub)](https://github.com/mattermost/mattermost-server)\n- [Mumble](https://www.mumble.info) — low-latency, high quality **voice chat** for gaming. [(GitHub)](https://github.com/mumble-voip/mumble)\n- [Matrix](https://matrix.org) — ecosystem for open federated Instant Messaging and VoIP. [(GitHub)](https://github.com/matrix-org)\n- [Riot](https://about.riot.im/) — multi platform chat app based on Matrix protocol.\n\n### 📹 Deploy your own `Video calls`\n- [Jitsi](https://jitsi.org/) — Multi-platform open-source video conferencing. [(GitHub)](https://github.com/jitsi)\n- [Nextcloud Talk](https://nextcloud.com/talk/) — chat or video calls via web or mobile apps, including screen sharing and webinar functionality. [(GitHub)](https://github.com/nextcloud/spreed/)\n\n### ✍️ Deploy your own `Publishing system`\n- [Jekyll](https://jekyllrb.com/) — static websites and blogs. [(GitHub)](https://github.com/jekyll/jekyll)\n- [Hugo](https://gohugo.io/) — static site generators with amazing speed.\n- [Ghost](https://github.com/TryGhost/Ghost) — headless Node.js CMS for professional publishing.\n- [Gatsby](https://gatsbyjs.org/) — React-based framework that helps developers build fast websites and apps. [(GitHub)](https://github.com/gatsbyjs/gatsby)\n\n### 🗣 Deploy your own `Disqus` comments\n- [Isso](https://posativ.org/isso/) — lightweight commenting server. It aims to be a drop-in replacement for Disqus. [(GitHub)](https://github.com/posativ/isso)\n- [Remark42](https://remark42.com/) — self-hosted, lightweight, and simple  commenting system, which doesn’t spy on users [(GitHub)](https://github.com/umputun/remark42)\n- [Staticman](https://staticman.net/) — commenting server for static sites which stores all user generated content into your own repository. [(GitHub)](https://github.com/eduardoboucas/staticman)\n- [Code It Yourself approach by Tania Rascia](https://www.taniarascia.com/add-comments-to-static-site/)\n\n### 📈 Deploy your own `Web analytics engine`\n- [Ackee](https://ackee.electerious.com) — self-hosted, Node.js based analytics tool for those who care about privacy.\n- [Matomo](https://github.com/matomo-org/matomo) — open analytics platform.\n- [GoAccess](https://goaccess.io/) — real-time web log analyzer and interactive viewer that runs in a terminal or through browser. [(GitHub)](https://github.com/allinurl/goaccess)\n- [Fathom Lite](https://github.com/usefathom/fathom) — Simple, privacy-focused website analytics.\n- [Shynet](https://github.com/milesmcc/shynet) — Privacy-friendly, detailed web analytics that works without cookies or JS.\n- [GoatCounter](https://github.com/arp242/goatcounter) — Easy analytics without tracking.\n\n### 🔍 Deploy your own `Google search`\n- [Whoogle](https://github.com/benbusby/whoogle-search) — Deploy your own search engine that privately uses Google results.\n\n### 📦 Deploy your own `Cloud backup`\n- [Duplicity](http://duplicity.nongnu.org/) — backs up directories by producing encrypted tar-format volumes and uploading them to a remote or local file server.\n- [Borg](https://www.borgbackup.org/) — deduplicating archiver\nwith compression and encryption.\n- [ElkarBackup](https://github.com/elkarbackup/elkarbackup) — backup solution based on RSync/RSnapshot.\n- [Restic](https://restic.net/) — encrypted, deduplicated & simple backups with an easy-to-use CLI. [(GitHub)](https://github.com/restic/restic/)\n\n### 🔗 Deploy your own `Web archive`\n- [ArchiveBox](https://archivebox.io) — self-hosted web archive. [(GitHub)](https://github.com/pirate/ArchiveBox)\n- [Archivy](https://archivy.github.io/) — knowledge repository that allows you to preserve content. [(GitHub)](https://github.com/archivy/archivy/)\n\n### 🍕 Deploy your own `file sharing server`\n- [Send](https://gitlab.com/timvisee/send) — simple, private file sharing with encryption. A Firefox Send fork.\n- [FilePizza](https://github.com/kern/filepizza) — peer-to-peer file transfers with only browser.\n- [Lufi](https://github.com/ldidry/lufi) — convenient file sharing with E2E encryption.\n- [Linx](https://github.com/andreimarcu/linx-server) — simple file/code/media sharing website.\n- [XBackBone](https://xbackbone.app/) — PHP file manager that support the instant sharing tools like ShareX, uPic, etc [(GitHub)](https://github.com/SergiX44/XBackBone)\n- [Enclosed](https://enclosed.cc/) — Minimalistic web app designed for sending private and secure notes. [(Github)](https://github.com/CorentinTh/enclosed)\n\n### 📂 Deploy your own `Information storing and organization system`\n- [Bookstack](https://github.com/BookStackApp/BookStack) — platform to create documentation/wiki content built with PHP & Laravel.\n- [MediaWiki](https://www.mediawiki.org/wiki/MediaWiki) — collaboration and documentation platform with enormous capabilities.\n- [Dokuwiki](https://www.dokuwiki.org/) — simple wiki that doesn't require a database. [(GitHub)](https://github.com/splitbrain/dokuwiki)\n- [Outline](https://www.getoutline.com/) — fastest wiki and knowledge base for growing teams with markdown support and clean UI. [(GitHub)](https://github.com/outline/outline)\n- [Wiki.js](https://wiki.js.org/) — lightweight and extensible wiki made with Node.js. [(GitHub)](https://github.com/Requarks/wiki)\n- [Hypothes.is](https://web.hypothes.is/) — web annotating system with search, storing, collaboration, sharing and integrations. [(GitHub)](https://github.com/hypothesis/h)\n\n### 🔑 Deploy your own `Password manager`\n- [Bitwarden](https://bitwarden.com/) — easiest and safest way to store, share, and sync sensitive data. [(GitHub)](https://github.com/bitwarden/server)\n- [LessPass](https://lesspass.com/) — stateless password manager. [(GitHub)](https://github.com/lesspass/lesspass)\n\n### 🤥 Deploy your own `Read it Later`\n- [Shiori](https://github.com/go-shiori/shiori) — simple bookmarks manager written intended as a simple clone of Pocket.\n- [Wallabag](https://www.wallabag.org/en) — self hostable application for saving web pages.\n- [Shaark](https://github.com/MarceauKa/shaark) — knowledge storage for web links, notes, pictures and passwords with clean web UI.\n\n### 🗞 Deploy your own `RSS reader`\n- [Selfoss](https://selfoss.aditu.de/) — multipurpose rss reader, live stream, mashup, aggregation web application.\n- [FreshRSS](https://freshrss.org/) — rss aggregator with responsive UI.[(GitHub)](https://github.com/FreshRSS/FreshRSS)\n- [Tiny Tiny RSS](https://tt-rss.org/) — web-based news feed reader and aggregator.\n- [Miniflux](https://miniflux.app/) — minimalist and opinionated feed reader.\n\n### 🇫🇮 Deploy your own `Git server`\n- [GitLab CE](https://gitlab.com/gitlab-org/gitlab-foss) — turn-key git hosting solution. [(Digital Ocean tutorial)](https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-gitlab-on-ubuntu-18-04)\n- [Gitolight](https://github.com/sitaramc/gitolite) — git hosting on a server, with very fine-grained access control and many powerful features.\n- [Gitea](https://gitea.io) — lightweight and powerful git server made with Go, so you can deploy it even on Raspberry Pi. [(GitHub)](https://github.com/go-gitea)\n- [Pagure](https://pagure.io/pagure) — lightweight, powerful, and flexible git-centered forge with decentralization features.\n- [Forgejo](https://forgejo.org/) — lightweight, git-based software forging infrastructure with decentralised features. Base of [Codeberg](https://codeberg.org/) platform. \n\n### 🗑 Deploy your own `Gist/PasteBin`\n- [Privatebin](https://privatebin.info/) — minimalist, online pastebin where the server has zero knowledge of pasted data. [(GitHub)](https://github.com/PrivateBin/PrivateBin)\n- [0bin](https://0bin.net/) — client side encrypted pastebin that can run without a database. [(GitHub)](https://github.com/sametmax/0bin)\n- [Opengist](https://github.com/thomiceli/opengist) — git-powered pastebin.\n\n\n### 🐵 Deploy your own `Mailchimp`\n- [Listmonk](https://github.com/knadh/listmonk) — newsletter and mailing list manager with a modern dashboard.\n\n### 🥋Deploy your own `Kanban board`\n- [Wekan](https://github.com/wekan/wekan) — collaborative Kanban board.\n- [Kanboard](https://kanboard.org/) — project management software that focuses on the Kanban methodology. [(GitHub)](https://github.com/kanboard/kanboard)\n- [Taiga](https://taiga.io) — project management software with a kanban board, sprints, wiki and tickets. [(GitHub)](https://github.com/taigaio)\n- [Phabricator](https://www.phacility.com/phabricator/) — a collection of web apps which contains bug tracker, kanban board, wiki, chat and everything you need to build software. [(GitHub)](https://github.com/phacility/phabricator/)\n- [Planka](https://planka.app/) — Kanban board which looks and feels exactly like Trello. [(GitHub)](https://github.com/plankanban/planka)\n\n### 🛰 Deploy your own `GPS tracking system`\n- [OwnTracks](https://github.com/owntracks) — lightweight program for storing and accessing location data published via MQTT or HTTP by the OwnTracks apps.\n- [µlogger server](https://github.com/bfabiszewski/ulogger-server) — web application for real-time collection of geolocation data, tracks viewing and management.\n- [Dawarich](https://dawarich.app/) - Self-hosted alternative to Google Location History\n\n### 💳 Deploy your own `Personal finance tracker`\n- [Firefly III](https://www.firefly-iii.org/) — financial manager to help you keep track of expenses, income, budgets and everything in between. [(GitHub)](https://github.com/firefly-iii/firefly-iii)\n- [Ledger](https://www.ledger-cli.org/) — plain text double-entry accounting with 3rd party UI like [Prudent](https://prudent.me/). [Entry point to plain text accounting](https://plaintextaccounting.org/)\n- [Beancount](https://github.com/beancount/beancount) — plain text double-entry accounting with 3rd party web UI like [Fava](https://github.com/beancount/fava)\n- [ezBookkeeping](https://ezbookkeeping.mayswind.net/) — a lightweight personal finance app with a user-friendly interface and powerful bookkeeping features. [(GitHub)](https://github.com/mayswind/ezbookkeeping)\n\n### 🏠 Deploy your own `Smart home`\n- [Home Asisstant](https://www.home-assistant.io/) — home automation hub which can be deployed on Raspberry Pi [(GitHub)](https://github.com/home-assistant/core)\n- [OpenHAB](https://www.openhab.org/) — vendor-neutral,  hardware/protocol-agnostic home automation hub [(GitHub)](https://github.com/openhab)\n- [Home Bridge](https://homebridge.io/) — lightweight server that emulates the iOS HomeKit API so you can work with smart home devices that do not support the HomeKit protocol. [(GitHub)](https://github.com/homebridge/homebridge)\n\n### 🌀 Deploy your own `IFTTT`\n- [Activepieces](https://www.activepieces.com) - a no-code open-source business automation tool. [(GitHub)](https://github.com/activepieces/activepieces)\n- [n8n](https://n8n.io/) — node-based Workflow Automation Tool with visual editor. [(GitHub)](https://github.com/n8n-io/n8n)\n- [Beehive](https://github.com/muesli/beehive) — a flexible event/agent & automation system made with Go.\n- [Huginn](https://github.com/huginn/huginn) — system for building agents that perform automated tasks for you online. Written in Ruby.\n- [Kibitzr](https://kibitzr.github.io/) — tiny server to notify about (almost) anything in the web. [(GitHub)](https://github.com/kibitzr/kibitzr)\n\n### 🔐 Deploy your own `Google Authenticator` (2FA, OTP)\n- [2FAuth](https://demo.2fauth.app/login) — a web app to manage your Two-Factor Authentication. [(GitHub)](https://github.com/Bubka/2FAuth)\n\n### 🎙 Deploy your own `Twitch`\n- [Lightspeed](https://github.com/GRVYDEV/Project-Lightspeed) — a self-contained OBS → FTL → WebRTC live streaming server.\n\n### 🐳 Deploy your own `Container Management System`\n- [Portainer](https://www.portainer.io/) — container management tool. It allows anyone to deploy and manage containers without the need to write code. [(GitHub)](https://github.com/portainer/portainer)\n- [Yacht](https://github.com/SelfhostedPro/Yacht) — a web interface for managing docker containers with an emphasis on templating to provide 1 click deployments.\n- [Pterodactyl](https://pterodactyl.io) — game server management panel. It runs game servers in isolated containers while exposing a beautiful web UI to the users. [(Github)](https://github.com/pterodactyl/panel)\n- [Umbrel](https://umbrel.com/) — either a docker image or OS that provides you with the most beautiful web interface to manage containerized web services. [(Github)](https://github.com/getumbrel/umbrel)\n\n----\n\nWorth to check:\n- https://www.reddit.com/r/selfhosted/\n- https://geek-cookbook.funkypenguin.co.nz/\n- https://github.com/sovereign/sovereign\n- https://roll.urown.net/about.html\n\nCover mashup based on [KADA★BURA](https://www.kadaburadraws.com/pixel-art#/text-rpg/) art.\n"
  },
  {
    "path": "README.md",
    "content": "![Scryer](/scryer.jpg)\n\n&nbsp;\n### 🙊 Deploy your own `VPN`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Algo VPN](https://github.com/trailofbits/algo) | Set of Ansible scripts that simplify the setup of a personal Wireguard and IPsec VPN. | 30331 | 🟢 2d |\n| [OpenVPN](https://github.com/OpenVPN/openvpn) | Full-featured open source VPN solution. | 13397 | 🟢 4h |\n| [dockovpn.io](https://github.com/alekslitvinenk/docker-openvpn) | Stateless OpenVPN dockerized server which doesn't require persistent storage. | 1422 | 🔴 1y |\n| [WireGuard](https://www.wireguard.com/) | Faster, simpler, leaner, and more useful than IPsec. It intends to be considerably more performant than OpenVPN. | n/a | n/a |\n\n&nbsp;\n### 🎧 Deploy your own `Music streaming service`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Koel](https://github.com/phanan/koel) | Simple web-based personal audio streaming service. | 17095 | 🟢 7m |\n| [Audiobookshelf](https://github.com/advplyr/audiobookshelf) | Audiobook and podcast server. | 12136 | 🟢 16h |\n| [Mopidy](https://github.com/mopidy/mopidy) | Extensible music server. | 8477 | 🟢 7d |\n| [Black Candy](https://github.com/blackcandy-org/blackcandy) | Music streaming server with web UI and iOS/Android apps. | 4167 | 🟢 3d |\n| [Ampache](https://github.com/ampache/ampache) | Web based audio/video streaming application and file manager. | 3778 | 🟢 10d |\n| [AzuraCast](https://github.com/AzuraCast/AzuraCast) | Web radio management suite, with a modern web app. | 3771 | 🟢 4d |\n| [Madsonic](https://beta.madsonic.org/pages/index.jsp) | Web-based media library and media streamer with jukebox functionality. | n/a | n/a |\n| [Funkwhale](https://funkwhale.audio/) | Web-based music library with Airsonic compatibility. | n/a | n/a |\n\n&nbsp;\n### 📷 Deploy your own `Photo hosting`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Immich](https://github.com/immich-app/immich) | High performance photo and video solution with familiar UI. | 95253 | 🟢 4m |\n| [PhotoPrism](https://github.com/photoprism/photoprism) | Personal photo management with Ai classification and lots of features. | 39476 | 🟢 6d |\n| [Lychee](https://github.com/electerious/Lychee) | Upload, manage and share photos like from a native application. | 6369 | 🔴 4y |\n| [Piwigo](https://github.com/Piwigo/Piwigo) | PHP image gallery. | 3754 | 🟢 2d |\n| [Pinry](https://github.com/pinry/pinry) | Your own Pinterest with boards and tags. | 3349 | 🟠 2mo |\n| [Chevereto](https://github.com/chevereto/chevereto) | Powerful and fast image hosting script that allows you to create your very own image hosting website in just minutes. | 900 | 🟠 2mo |\n\n&nbsp;\n### 📚 Deploy your own `eBooks catalog`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Calibre](https://github.com/kovidgoyal/calibre) | E-book manager packed with all you need features including server, viewer, editor and more. | 24424 | 🟢 5h |\n| [Calibre-Web](https://github.com/janeczku/calibre-web) | Web UI for Calibre database. | 16776 | 🟢 13d |\n| [COPS](https://github.com/seblucas/cops) | Calibre OPDS and HTML server. | 1483 | 🔴 1y |\n\n&nbsp;\n### 📄 Deploy your own `Google Docs`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Nocodb](https://github.com/nocodb/nocodb) | Airtable alternative could be based on top of MySQL, PostgreSQL, SQL Server, SQLite & MariaDB with solid GUI | 62500 | 🟢 43m |\n| [ONLYOFFICE CE](https://github.com/ONLYOFFICE/DesktopEditors) | Private cloud office with collaboration features. CE version distributed as [Docker image](https://helpcenter.onlyoffice.com/server/docker/opensource/deploy-community-edition-in-digitalocean.aspx). | 4582 | 🟢 17d |\n| [Baserow](https://github.com/baserow/baserow) | Your own API-focused Airtable with plugins. | 4456 | 🟢 47m |\n| [Collabora](https://github.com/CollaboraOnline/online) | LibreOffice in the cloud with collaboration features. | 3068 | 🟢 54m |\n| [SeaTable](https://github.com/seatable/seatable) | Your own Airtable where spreadsheets meets database. | 700 | 🟠 4mo |\n\n&nbsp;\n### 🎬 Deploy your own `Netflix`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Jellyfin](https://github.com/jellyfin/jellyfin) | Media system that puts you in control of managing and streaming your media. | 49475 | 🟢 34m |\n\n&nbsp;\n### 📝 Deploy your own `Notes`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Memos](https://github.com/usememos/memos) | Memo hub with knowledge management and socialization. | 58074 | 🟢 2h |\n| [Leanote](https://github.com/leanote/leanote) | Your own Evernote. | 11714 | 🔴 2y |\n| [CodiMD](https://github.com/hackmdio/codimd) | Realtime collaborative markdown notes. | 10011 | 🟠 5mo |\n| [Standard Notes](https://github.com/standardnotes/app) | Clean and simple web app with E2E encryption, extensions and clients. [How to self-host tutorial](https://theselfhostingblog.com/posts/how-to-completely-self-host-standard-notes/) | 6358 | 🟢 2d |\n| [Bangle.io](https://github.com/bangle-io/bangle-io) | Web only WYSIWYG note taking app that saves notes locally in markdown. | 1209 | 🟠 3mo |\n| [TinyList](https://github.com/baggachipz/tinylist) | Your own Google Keep. Simple and clean. | 133 | 🟠 1mo |\n\n&nbsp;\n### 🏷 Deploy your own `Bookmarks service`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Hoarder](https://github.com/hoarder-app/hoarder) | Bookmark-everything app with AI-based tagging and full text search. | 24220 | 🟢 19h |\n| [Linkding](https://github.com/sissbruecker/linkding) | Simple bookmarks with tags and neat UI. | 10325 | 🟢 1d |\n| [LinkAce](https://github.com/Kovah/LinkAce) | Bookmark archive with tags, lists and sharing features. | 3267 | 🟢 21h |\n| [xBrowserSync](https://github.com/xbrowsersync/app) | Secure and anonymous bookmarking server with browser plugins and mobile app. | 1689 | 🟢 13m |\n| [Unmark](https://github.com/cdevroe/unmark) | Application for bookmarks. | 1627 | 🟠 1mo |\n| [Nextcloud Bookmarks](https://github.com/nextcloud/bookmarks) | Bookmark app for Nextcloud with browser plugins, mobile and desktop apps. | 1167 | 🟢 14h |\n| [Briefkasten](https://github.com/ndom91/briefkasten) | Bookmark web app with REST API, OAuth, drag-n-drop and browser extension. | 1166 | 🟠 10mo |\n| [Benotes](https://github.com/fr0tt/benotes) | Bookmark taking web app with additional note taking feature. | 857 | 🟠 11mo |\n| [Bookmarks](https://github.com/dyu/bookmarks) | Self-hosted bookmarking app that can import bookmarks from delicious and chrome. | 149 | 🔴 2y |\n| [Readeck](https://readeck.org/) | Selfhosted bookmarking app with the modern UI, smart features and browser extension. | n/a | n/a |\n\n&nbsp;\n### 🔤 Deploy your own `URL shortener`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Yourls](https://github.com/YOURLS/YOURLS) | Customizable, URL shortener in PHP. Detailed stats, analytics, plugins, and more included. | 11937 | 🟢 19h |\n| [Kutt](https://github.com/thedevs-network/kutt) | Modern URL shortener with support for custom domains. | 10658 | 🟢 20d |\n| [Shlink](https://github.com/shlinkio/shlink) | URL shortener with neat UI, API and analytics. | 4791 | 🟢 3d |\n| [Delta](https://github.com/fosslife/delta) | A file uploader and URL shortener packed with features and CLI. | 127 | 🔴 4y |\n\n&nbsp;\n### 🗓 Deploy your own `Calendar`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Radicale](https://github.com/Kozea/Radicale) | Small CalDAV and CardDAV server made with Python. Simple file storage and plugins | 4493 | 🟢 8h |\n| [Sabre](https://github.com/sabre-io/Baikal) | CardDAV, CalDAV and WebDAV server made with PHP. | 3103 | 🟠 2mo |\n| [Calendar Server](https://github.com/apple/ccs-calendarserver) | Calendar and contacts server made by Apple. | 505 | 🔴 6y |\n\n&nbsp;\n### 🗄 Deploy your own `Cloud storage`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Syncthing](https://github.com/syncthing/syncthing) | Continuous file synchronization program. | 80973 | 🟢 3d |\n| [MinIO](https://github.com/minio/minio) | Object storage server compatible with Amazon S3 APIs. | 60522 | 🟠 1mo |\n| [Nextcloud](https://github.com/nextcloud/server) | Enhanced OwnCloud fork with tons of [additional services](https://apps.nextcloud.com/) like calendars, mail, contacts, video calls, etc . | 34394 | 🟢 0m |\n| [Filestash](https://github.com/mickael-kerjean/filestash) | Easily turn popular backends like SFTP, S3, GitHub etc into web-based file manager | 13901 | 🟢 8h |\n| [OwnCloud](https://github.com/owncloud/core) | Personal cloud which runs on your own server. | 8747 | 🟢 57m |\n| [Teedy](https://github.com/sismics/docs) | Lightweight document management system with workflows | 2536 | 🟠 1mo |\n\n&nbsp;\n### 🕸 Deploy your own `DNS`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Unbound](https://github.com/NLnetLabs/unbound) | Validating, recursive, caching DNS resolver. Fast and lean and incorporates modern features based on open standards. | 4337 | 🟢 6d |\n\n&nbsp;\n### 🛑 Deploy your own `AdBlock`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Pi-hole](https://github.com/pi-hole/pi-hole) | Network-wide ad blocking software you can deploy to local Raspberry Pi or [always-free instance of Google Cloud](https://github.com/n3m351d4/Pi-Hole-PiVPN-on-Google-Compute-Engine-Free-Tier-with-Full-Tunnel-and-Split-Tunnel-OpenVPN-Configs). Yes, you've got the irony right. | 56193 | 🟢 2d |\n| [AdGuard Home](https://github.com/AdguardTeam/AdGuardHome) | Network-wide DNS resolver with encryption for blocking ads & tracking. | 33130 | 🟢 6h |\n\n&nbsp;\n### ✉️ Deploy your own `Email server`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Postal](https://github.com/postalhq/postal) | A fully featured mail server with web UI. | 16410 | 🟢 20h |\n| [Mail-in-a-Box](https://github.com/mail-in-a-box/mailinabox) | Another mail server suite based on Postfix, Dovecot, Z-Push, Roundcube, Nextcloud, Apache SpamAssassin, Postgrey, Nginx. | 15234 | 🟠 1mo |\n| [Mailcow](https://github.com/mailcow/mailcow-dockerized) | Dockerized mail server suite based on Postfix, Dovecot, Nginx, PHP, MariaDB, Rspamd and more. | 12382 | 🟢 7d |\n| [Mailu](https://github.com/Mailu/Mailu) | Dockerized, secured mail suite which is easy to install and maintain. | 7115 | 🟢 4h |\n| [Roundcube](https://github.com/roundcube/roundcubemail) | Browser-based IMAP client with an application-like user interface. | 6856 | 🟢 5h |\n| [Maddy](https://github.com/foxcpp/maddy) | A composable all-in-one mail server written in Golang. | 5897 | 🟢 3d |\n| [iRedMail](https://github.com/iredmail/iRedMail) | Mail server suite with vast of options. | 1775 | 🟢 1d |\n\n&nbsp;\n### 💬 Deploy your own `Chat server`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Rocket Chat](https://github.com/RocketChat/Rocket.Chat) | WebChat platform. | 44973 | 🟢 4m |\n| [Mattermost](https://github.com/mattermost/mattermost-server) | Private cloud, Slack-alternative. | 35898 | 🟢 1h |\n| [Zulip](https://github.com/zulip/zulip) | Team chat which combined the immediacy of real-time chat with an email threading model. | 24912 | 🟢 21h |\n| [Mumble](https://github.com/mumble-voip/mumble) | Low-latency, high quality **voice chat** for gaming. | 7849 | 🟢 15h |\n| [Prosody IM](https://prosody.im/) | Modern XMPP communication server. | n/a | n/a |\n| [Matrix](https://matrix.org) | Ecosystem for open federated Instant Messaging and VoIP. | n/a | n/a |\n\n&nbsp;\n### 📹 Deploy your own `Video calls`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Jitsi](https://github.com/jitsi/jitsi-meet) | Multi-platform open-source video conferencing. | 28839 | 🟢 12m |\n| [Nextcloud Talk](https://github.com/nextcloud/spreed/) | Chat or video calls via web or mobile apps, including screen sharing and webinar functionality. | 2075 | 🟢 1h |\n\n&nbsp;\n### ✍️ Deploy your own `Publishing system`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Hugo](https://github.com/gohugoio/hugo) | Static site generators with amazing speed. | 87168 | 🟢 4h |\n| [Gatsby](https://github.com/gatsbyjs/gatsby) | React-based framework with performance, scalability, and security built in. | 55953 | 🟢 1d |\n| [Ghost](https://github.com/TryGhost/Ghost) | Headless Node.js CMS for professional publishing. | 52105 | 🟢 15m |\n| [Jekyll](https://github.com/jekyll/jekyll) | Static websites and blogs. | 51480 | 🟢 8d |\n| [Eleventy](https://github.com/11ty/eleventy) | A simpler site generator. Transforms a directory of templates (of varying types) into HTML. | 19514 | 🟢 1d |\n\n&nbsp;\n### 🗣 Deploy your own `Disqus comments`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Remark42](https://github.com/umputun/remark42) | Self-hosted, lightweight, and simple  commenting system, which doesn’t spy on users | 5460 | 🟢 4d |\n| [Isso](https://github.com/posativ/isso) | Lightweight commenting server. It aims to be a drop-in replacement for Disqus. | 5270 | 🟢 12d |\n| [Staticman](https://github.com/eduardoboucas/staticman) | Commenting server for static sites which stores all user generated content into your own repository. | 2454 | 🔴 1y |\n\n&nbsp;\n### 📈 Deploy your own `Web analytics engine`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Matomo](https://github.com/matomo-org/matomo) | Open analytics platform. | 21361 | 🟢 2h |\n| [GoAccess](https://github.com/allinurl/goaccess) | Real-time web log analyzer and interactive viewer that runs in a terminal or through browser. | 20350 | 🟢 16d |\n| [Fathom Lite](https://github.com/usefathom/fathom) | Simple, privacy-focused website analytics. | 7996 | 🟢 2d |\n| [GoatCounter](https://github.com/arp242/goatcounter) | Easy analytics without tracking. | 5560 | 🟢 12d |\n| [Ackee](https://github.com/electerious/Ackee) | Self-hosted, Node.js based analytics tool for those who care about privacy. | 4630 | 🟢 24d |\n| [Shynet](https://github.com/milesmcc/shynet) | Privacy-friendly, detailed web analytics that works without cookies or JS. | 3129 | 🟢 4d |\n\n&nbsp;\n### 🔍 Deploy your own `Google search`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [SearXNG](https://github.com/searxng/searxng) | Metasearch engine which aggregates results from various search services and databases. Users are neither tracked nor profiled. | 26848 | 🟢 7h |\n| [Whoogle](https://github.com/benbusby/whoogle-search) | Search results without ads, JavaScript, AMP links, cookies, or IP address tracking. | 11410 | 🟠 1mo |\n\n&nbsp;\n### 📦 Deploy your own `Cloud backup`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Restic](https://github.com/restic/restic/) | Encrypted, deduplicated & simple backups with an easy-to-use CLI. | 32761 | 🟢 19d |\n| [Borg](https://github.com/borgbackup/borg) | Deduplicating archiver with compression and authenticated encryption. | 13093 | 🟢 18h |\n| [ElkarBackup](https://github.com/elkarbackup/elkarbackup) | Backup solution based on RSync/RSnapshot. | 414 | 🟢 17d |\n\n&nbsp;\n### 🔗 Deploy your own `Web archive`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [ArchiveBox](https://github.com/pirate/ArchiveBox) | Web archive. Preserve and organize content from websites in a variety of formats. | 27092 | 🟢 4d |\n| [Archivy](https://github.com/archivy/archivy/) | Knowledge repository that allows you to preserve content. | 3255 | 🔴 2y |\n\n&nbsp;\n### 🍕 Deploy your own `file sharing server`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [FilePizza](https://github.com/kern/filepizza) | Peer-to-peer file transfers with only browser. | 9956 | 🟢 1h |\n| [Enclosed](https://github.com/CorentinTh/enclosed) | Minimalistic web app designed for sending private and secure notes. | 1963 | 🟢 2d |\n| [Linx](https://github.com/andreimarcu/linx-server) | Simple file/code/media sharing website. | 1568 | 🟠 10mo |\n| [XBackBone](https://github.com/SergiX44/XBackBone) | PHP file manager that support the instant sharing tools like ShareX, uPic, etc | 1131 | 🟢 22d |\n| [Lufi](https://github.com/ldidry/lufi) | Convenient file sharing with E2E encryption. | 342 | 🟠 1mo |\n| [Send](https://gitlab.com/timvisee/send) | Simple, private file sharing with encryption. A Firefox Send fork. | n/a | n/a |\n\n&nbsp;\n### 📂 Deploy your own `Information storing and organization system`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Outline](https://github.com/outline/outline) | Fastest wiki and knowledge base for growing teams with markdown support and clean UI. | 37727 | 🟢 1h |\n| [Wiki.js](https://github.com/Requarks/wiki) | Lightweight and extensible wiki made with Node.js. | 28047 | 🟢 11d |\n| [Bookstack](https://github.com/BookStackApp/BookStack) | Platform to create documentation/wiki content built with PHP & Laravel. | 18489 | 🟢 11h |\n| [MediaWiki](https://github.com/wikimedia/mediawiki) | Collaboration and documentation platform with enormous capabilities. | 5006 | 🟢 2h |\n| [Dokuwiki](https://github.com/splitbrain/dokuwiki) | Simple wiki that doesn't require a database. | 4585 | 🟢 12h |\n| [Hypothes.is](https://github.com/hypothesis/h) | Web annotating system with search, storing, collaboration, sharing and integrations. | 3127 | 🟢 14h |\n\n&nbsp;\n### 🔑 Deploy your own `Password manager`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Bitwarden](https://github.com/bitwarden/server) | Easiest and safest password manager to store, share, and sync sensitive data. | 18293 | 🟢 16m |\n| [LessPass](https://github.com/lesspass/lesspass) | Stateless password manager. | 5987 | 🟢 6d |\n\n&nbsp;\n### 🤥 Deploy your own `Read it Later`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Wallabag](https://github.com/wallabag/wallabag) | Self hostable application for saving web pages. | 12578 | 🟢 7h |\n| [Shiori](https://github.com/go-shiori/shiori) | Simple bookmarks manager written intended as a simple clone of Pocket. | 11370 | 🟠 1mo |\n| [Shaark](https://github.com/MarceauKa/shaark) | Knowledge storage for web links, notes, pictures and passwords with clean web UI. | 588 | 🔴 1y |\n\n&nbsp;\n### 🗞 Deploy your own `RSS reader`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [FreshRSS](https://github.com/FreshRSS/FreshRSS) | Rss aggregator with responsive UI. | 14439 | 🟢 1d |\n| [Miniflux](https://github.com/miniflux/v2) | Minimalist and opinionated feed reader. | 8929 | 🟢 1d |\n| [Selfoss](https://github.com/fossar/selfoss) | Multipurpose rss reader, live stream, mashup, aggregation web application. | 2454 | 🟢 15d |\n| [Tiny Tiny RSS](https://github.com/tt-rss/tt-rss) | Web-based news feed reader and aggregator. | 663 | 🟢 3d |\n\n&nbsp;\n### 🇫🇮 Deploy your own `Git server`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Gitea](https://github.com/go-gitea/gitea) | Lightweight and powerful git server made with Go, so you can deploy it even on Raspberry Pi. | 54395 | 🟢 20h |\n| [GitLab CE](https://github.com/gitlabhq/gitlabhq) | Turn-key git hosting solution. | 24268 | 🟢 2h |\n| [Gitolight](https://github.com/sitaramc/gitolite) | Git hosting on a server, with very fine-grained access control and many powerful features. | 8577 | 🟢 25d |\n| [Pagure](https://github.com/Pagure/pagure) | Lightweight, powerful, and flexible git-centered forge with decentralization features. | 221 | 🟢 7d |\n| [Forgejo](https://forgejo.org/) | Lightweight, git-based software forging infrastructure with decentralised features. Base of [Codeberg](https://codeberg.org/) platform. | n/a | n/a |\n\n&nbsp;\n### 🗑 Deploy your own `Gist/PasteBin`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Privatebin](https://github.com/PrivateBin/PrivateBin) | Minimalist, online pastebin where the server has zero knowledge of pasted data. | 8111 | 🟢 4h |\n| [Opengist](https://github.com/thomiceli/opengist) | Git-powered pastebin. | 3050 | 🟢 7d |\n| [0bin](https://github.com/sametmax/0bin) | Client side encrypted pastebin that can run without a database. | 1406 | 🟠 6mo |\n\n&nbsp;\n### 🐵 Deploy your own `Mailchimp`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Listmonk](https://github.com/knadh/listmonk) | High performance newsletter and mailing list manager with a modern dashboard. Single binary app. | 19303 | 🟢 14h |\n\n&nbsp;\n### 🥋Deploy Deploy your own `Kanban board`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Wekan](https://github.com/wekan/wekan) | Collaborative Kanban board. | 20887 | 🟢 1h |\n| [Phabricator](https://github.com/phacility/phabricator/) | A collection of web apps which contains bug tracker, kanban board, wiki, chat and everything you need to build software. | 12308 | 🔴 1y |\n| [Planka](https://github.com/plankanban/planka) | Kanban board which looks and feels exactly like Trello. | 11694 | 🟢 1d |\n| [Kanboard](https://github.com/kanboard/kanboard) | Project management software that focuses on the Kanban methodology. | 9511 | 🟢 12d |\n| [Taiga](https://github.com/taigaio/taiga-docker) | Project management software with a kanban board, sprints, wiki and tickets. | 2011 | 🟠 5mo |\n\n&nbsp;\n### 🛰 Deploy your own `GPS tracking system`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [µlogger server](https://github.com/bfabiszewski/ulogger-server) | Web application for real-time collection of geolocation data, tracks viewing and management. | 605 | 🟠 11mo |\n| [OwnTracks](https://github.com/owntracks) | Lightweight program for storing and accessing location data published via MQTT or HTTP by the OwnTracks apps. | n/a | n/a |\n\n&nbsp;\n### 💳 Deploy your own `Personal finance tracker`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Firefly III](https://github.com/firefly-iii/firefly-iii) | Financial manager to help you keep track of expenses, income, budgets and everything in between. | 22707 | 🟢 7h |\n| [Ledger](https://github.com/ledger/ledger) | Plain text double-entry accounting with 3rd party UI like [Prudent](https://prudent.me/). [Entry point to plain text accounting](https://plaintextaccounting.org/) | 5882 | 🟢 2d |\n| [Beancount](https://github.com/beancount/beancount) | Plain text double-entry accounting with 3rd party web UI like [Fava](https://github.com/beancount/fava) | 5387 | 🟠 1mo |\n| [ezBookkeeping](https://github.com/mayswind/ezbookkeeping) | A lightweight personal finance app with a user-friendly interface and powerful bookkeeping features. | 4503 | 🟢 2d |\n\n&nbsp;\n### 🏠 Deploy your own `Smart home`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Home Asisstant](https://github.com/home-assistant/core) | Home automation hub which can be deployed on Raspberry Pi | 85473 | 🟢 3m |\n| [Home Bridge](https://github.com/homebridge/homebridge) | Lightweight server that emulates the iOS HomeKit API so you can work with smart home devices that do not support the HomeKit protocol. | 25249 | 🟢 6d |\n| [OpenHAB](https://www.openhab.org/) | Vendor-neutral,  hardware/protocol-agnostic home automation hub | n/a | n/a |\n\n&nbsp;\n### 🌀 Deploy your own `IFTTT`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [n8n](https://github.com/n8n-io/n8n) | Node-based Workflow Automation Tool with visual editor. | 180183 | 🟢 5m |\n| [Huginn](https://github.com/huginn/huginn) | System for building agents that perform automated tasks for you online. Written in Ruby. | 48901 | 🟢 2h |\n| [Beehive](https://github.com/muesli/beehive) | A flexible event/agent & automation system made with Go. | 6483 | 🔴 3y |\n| [Kibitzr](https://github.com/kibitzr/kibitzr) | Tiny server to notify about (almost) anything in the web. | 712 | 🟠 10mo |\n\n&nbsp;\n### 🔐 Deploy your own `One-time password provider`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [2FAuth](https://github.com/Bubka/2FAuth) | A web app to manage your Two-Factor Authentication accounts and generate security codes. | 3816 | 🟢 1d |\n\n&nbsp;\n### 🐳 Deploy your own `Container Management System`\n\n| Name | Description | ⭐️ | Updated |\n| :--- | :--- | :---: | :--- |\n| [Portainer](https://github.com/portainer/portainer) | Container management tool. It allows anyone to deploy and manage containers without the need to write code. | 36905 | 🟢 1h |\n| [Umbrel](https://github.com/getumbrel/umbrel) | Either a docker image or OS that provides you with the most beautiful web interface to manage containerized web services. | 10804 | 🟠 1mo |\n| [Pterodactyl](https://github.com/pterodactyl/panel) | Game server management panel. It runs game servers in isolated containers while exposing a beautiful web UI to the users. | 8708 | 🟠 1mo |\n| [Yacht](https://github.com/SelfhostedPro/Yacht) | A web interface for managing docker containers with an emphasis on templating to provide 1 click deployments. | 47 | 🟠 1mo |\n\n----\n\nWorth to check:\n- https://www.reddit.com/r/selfhosted/\n- https://github.com/sovereign/sovereign\n\nCover mashup based on [KADA★BURA](https://www.kadaburadraws.com/pixel-art#/text-rpg/) art.\n"
  },
  {
    "path": "dyos-db.json",
    "content": "{\n    \"groups\": [\n        {\n            \"name\": \"VPN\",\n            \"icon\": \"🙊\",\n            \"projects\": [\n                {\n                    \"name\": \"OpenVPN\",\n                    \"description\": \"Full-featured open source VPN solution.\",\n                    \"github\": \"https://github.com/OpenVPN/openvpn\",\n                    \"site\": \"http://community.openvpn.net\",\n                    \"stars\": 13397,\n                    \"pushed_at\": \"2026-03-20T10:07:15Z\",\n                    \"archived\": false,\n                    \"etag\": \"719b575776b824b2f154486749066f0661bde8252b0d9e173550f8797fa24d85\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"dockovpn.io\",\n                    \"description\": \"Stateless OpenVPN dockerized server which doesn't require persistent storage.\",\n                    \"github\": \"https://github.com/alekslitvinenk/docker-openvpn\",\n                    \"site\": \"https://dockovpn.io\",\n                    \"stars\": 1422,\n                    \"pushed_at\": \"2024-06-30T10:38:41Z\",\n                    \"archived\": false,\n                    \"etag\": \"c8f622e8aea254e331c88d5a8e26edc114db789abd6e01c0bce07ba31a030747\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"WireGuard\",\n                    \"description\": \"Faster, simpler, leaner, and more useful than IPsec. It intends to be considerably more performant than OpenVPN.\",\n                    \"github\": \"\",\n                    \"site\": \"https://www.wireguard.com/\",\n                    \"stars\": 0,\n                    \"pushed_at\": \"\",\n                    \"archived\": false\n                },\n                {\n                    \"name\": \"Algo VPN\",\n                    \"description\": \"Set of Ansible scripts that simplify the setup of a personal Wireguard and IPsec VPN.\",\n                    \"github\": \"https://github.com/trailofbits/algo\",\n                    \"site\": \"https://blog.trailofbits.com/2016/12/12/meet-algo-the-vpn-that-works/\",\n                    \"stars\": 30331,\n                    \"pushed_at\": \"2026-03-18T12:30:08Z\",\n                    \"archived\": false,\n                    \"etag\": \"f5f311aaa1abe6bf29a5fdb958a09e9d74011f20ad6388549783e7d3edc9a3b6\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Music streaming service\",\n            \"icon\": \"🎧\",\n            \"projects\": [\n                {\n                    \"name\": \"Ampache\",\n                    \"description\": \"Web based audio/video streaming application and file manager.\",\n                    \"github\": \"https://github.com/ampache/ampache\",\n                    \"site\": \"http://ampache.org\",\n                    \"stars\": 3778,\n                    \"pushed_at\": \"2026-03-10T06:35:19Z\",\n                    \"archived\": false,\n                    \"etag\": \"67367642ac67a049379dc92037661fda6b3408f17782aabc177c23dfd7c11350\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Madsonic\",\n                    \"description\": \"Web-based media library and media streamer with jukebox functionality.\",\n                    \"github\": \"\",\n                    \"site\": \"https://beta.madsonic.org/pages/index.jsp\",\n                    \"stars\": 0,\n                    \"pushed_at\": \"\",\n                    \"archived\": false\n                },\n                {\n                    \"name\": \"Mopidy\",\n                    \"description\": \"Extensible music server.\",\n                    \"github\": \"https://github.com/mopidy/mopidy\",\n                    \"site\": \"https://mopidy.com\",\n                    \"stars\": 8477,\n                    \"pushed_at\": \"2026-03-13T09:25:48Z\",\n                    \"archived\": false,\n                    \"etag\": \"cb4a4ae57aaf61c28ce322f857d4f5b7b0448a636ced981a074bd7c1e675a7b6\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Koel\",\n                    \"description\": \"Simple web-based personal audio streaming service.\",\n                    \"github\": \"https://github.com/phanan/koel\",\n                    \"site\": \"https://koel.dev\",\n                    \"stars\": 17095,\n                    \"pushed_at\": \"2026-03-20T14:41:26Z\",\n                    \"archived\": false,\n                    \"etag\": \"c6290ad2895f8db26568140f75c46368028da1e653d5c938269b9ecb76e92721\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Funkwhale\",\n                    \"description\": \"Web-based music library with Airsonic compatibility.\",\n                    \"github\": \"\",\n                    \"site\": \"https://funkwhale.audio/\",\n                    \"stars\": 0,\n                    \"pushed_at\": \"\",\n                    \"archived\": false\n                },\n                {\n                    \"name\": \"AzuraCast\",\n                    \"description\": \"Web radio management suite, with a modern web app.\",\n                    \"github\": \"https://github.com/AzuraCast/AzuraCast\",\n                    \"site\": \"https://www.azuracast.com/\",\n                    \"stars\": 3771,\n                    \"pushed_at\": \"2026-03-16T11:53:41Z\",\n                    \"archived\": false,\n                    \"etag\": \"c0792cb2ea0e13e3b47f39b2296b20a97d18dc7da661ae4817d406e1edeff50e\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Black Candy\",\n                    \"description\": \"Music streaming server with web UI and iOS/Android apps.\",\n                    \"github\": \"https://github.com/blackcandy-org/blackcandy\",\n                    \"site\": \"https://github.com/blackcandy-org/blackcandy\",\n                    \"stars\": 4167,\n                    \"pushed_at\": \"2026-03-17T11:22:10Z\",\n                    \"archived\": false,\n                    \"etag\": \"cb81776ea4328f279c9f29d1aa9c24cead67eb8e35ab1d8dcb9411752afd8e7e\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Audiobookshelf\",\n                    \"description\": \"Audiobook and podcast server.\",\n                    \"github\": \"https://github.com/advplyr/audiobookshelf\",\n                    \"site\": \"https://audiobookshelf.org\",\n                    \"stars\": 12136,\n                    \"pushed_at\": \"2026-03-19T22:27:59Z\",\n                    \"archived\": false,\n                    \"etag\": \"bbcbaafbf0d65e4c913e1095e40327d163cb37bc3f7ea547590ebe38f54861ba\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Photo hosting\",\n            \"icon\": \"📷\",\n            \"projects\": [\n                {\n                    \"name\": \"Immich\",\n                    \"description\": \"High performance photo and video solution with familiar UI.\",\n                    \"github\": \"https://github.com/immich-app/immich\",\n                    \"site\": \"https://immich.app\",\n                    \"stars\": 95253,\n                    \"pushed_at\": \"2026-03-20T14:44:13Z\",\n                    \"archived\": false,\n                    \"etag\": \"010a3937935d53a5944dadbfa7f875bff6cefe6e04e89a99a48002d5ab6bce55\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Chevereto\",\n                    \"description\": \"Powerful and fast image hosting script that allows you to create your very own image hosting website in just minutes.\",\n                    \"github\": \"https://github.com/chevereto/chevereto\",\n                    \"site\": \"https://chevereto.com\",\n                    \"stars\": 900,\n                    \"pushed_at\": \"2026-01-06T13:19:00Z\",\n                    \"archived\": false,\n                    \"etag\": \"eab9df60d13c69ef5322bab802b5004c1e1dffd30ec7b559af20907ec92748c3\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"PhotoPrism\",\n                    \"description\": \"Personal photo management with Ai classification and lots of features.\",\n                    \"github\": \"https://github.com/photoprism/photoprism\",\n                    \"site\": \"https://www.photoprism.app\",\n                    \"stars\": 39476,\n                    \"pushed_at\": \"2026-03-14T12:04:24Z\",\n                    \"archived\": false,\n                    \"etag\": \"34cdca57981c249e9f0fc21bbee5641d4a5201be6f781ee45476045498e80768\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Lychee\",\n                    \"description\": \"Upload, manage and share photos like from a native application.\",\n                    \"github\": \"https://github.com/electerious/Lychee\",\n                    \"site\": \"https://lychee.electerious.com\",\n                    \"stars\": 6369,\n                    \"pushed_at\": \"2022-01-08T15:56:54Z\",\n                    \"archived\": false,\n                    \"etag\": \"5ed5e5a1cc96f6d515e38a72900dad538253d5ccc3a1388eb128a8a54c7f78e8\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Piwigo\",\n                    \"description\": \"PHP image gallery.\",\n                    \"github\": \"https://github.com/Piwigo/Piwigo\",\n                    \"site\": \"https://piwigo.org\",\n                    \"stars\": 3754,\n                    \"pushed_at\": \"2026-03-18T11:03:33Z\",\n                    \"archived\": false,\n                    \"etag\": \"a3de93c3334c4355875330c698fd992f193b0d82f78d95dd4fc85e643e6566ea\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Pinry\",\n                    \"description\": \"Your own Pinterest with boards and tags.\",\n                    \"github\": \"https://github.com/pinry/pinry\",\n                    \"site\": \"https://pinry.github.io/pinry/\",\n                    \"stars\": 3349,\n                    \"pushed_at\": \"2026-01-05T16:46:25Z\",\n                    \"archived\": false,\n                    \"etag\": \"10657bf6db432606ce3a34e36003346e6d19722da1fab5c94b75b6579508a1f8\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"eBooks catalog\",\n            \"icon\": \"📚\",\n            \"projects\": [\n                {\n                    \"name\": \"Calibre\",\n                    \"description\": \"E-book manager packed with all you need features including server, viewer, editor and more.\",\n                    \"github\": \"https://github.com/kovidgoyal/calibre\",\n                    \"site\": \"https://calibre-ebook.com\",\n                    \"stars\": 24424,\n                    \"pushed_at\": \"2026-03-20T09:44:09Z\",\n                    \"archived\": false,\n                    \"etag\": \"a61d76838416ce9902002a23feae39065801b321319691eb974ede07d9471c03\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"COPS\",\n                    \"description\": \"Calibre OPDS and HTML server.\",\n                    \"github\": \"https://github.com/seblucas/cops\",\n                    \"site\": \"http://blog.slucas.fr/en/oss/calibre-opds-php-server\",\n                    \"stars\": 1483,\n                    \"pushed_at\": \"2024-04-03T23:53:06Z\",\n                    \"archived\": false,\n                    \"etag\": \"1b748baa1b4e4773e1fe1a4d51fd646c242e884212f9c032badbd9254f44fa61\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Calibre-Web\",\n                    \"description\": \"Web UI for Calibre database.\",\n                    \"github\": \"https://github.com/janeczku/calibre-web\",\n                    \"site\": \"https://github.com/janeczku/calibre-web\",\n                    \"stars\": 16776,\n                    \"pushed_at\": \"2026-03-07T09:24:59Z\",\n                    \"archived\": false,\n                    \"etag\": \"e658f93ff8bc72a27e7965decca41945455502e18d8000229af703971adc68d7\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Google Docs\",\n            \"icon\": \"📄\",\n            \"projects\": [\n                {\n                    \"name\": \"Collabora\",\n                    \"description\": \"LibreOffice in the cloud with collaboration features.\",\n                    \"github\": \"https://github.com/CollaboraOnline/online\",\n                    \"site\": \"https://collaboraonline.com\",\n                    \"stars\": 3068,\n                    \"pushed_at\": \"2026-03-20T13:54:05Z\",\n                    \"archived\": false,\n                    \"etag\": \"7618063b727d73d61193dabd689c1ab89aa65576499d72eefd7b40522a64e52f\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"ONLYOFFICE CE\",\n                    \"description\": \"Private cloud office with collaboration features. CE version distributed as [Docker image](https://helpcenter.onlyoffice.com/server/docker/opensource/deploy-community-edition-in-digitalocean.aspx).\",\n                    \"github\": \"https://github.com/ONLYOFFICE/DesktopEditors\",\n                    \"site\": \"https://www.onlyoffice.com\",\n                    \"stars\": 4582,\n                    \"pushed_at\": \"2026-03-03T14:21:29Z\",\n                    \"archived\": false,\n                    \"etag\": \"7d660042bd3a24157e5eed62980c7842190c9df195695976153c1bb50d0a4748\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"SeaTable\",\n                    \"description\": \"Your own Airtable where spreadsheets meets database.\",\n                    \"github\": \"https://github.com/seatable/seatable\",\n                    \"site\": \"https://seatable.io\",\n                    \"stars\": 700,\n                    \"pushed_at\": \"2025-11-12T10:35:19Z\",\n                    \"archived\": false,\n                    \"etag\": \"4df9b42dd14de8ae55166ef92296731279ceba8e06466d2ef2d3e3b8868eeb84\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Baserow\",\n                    \"description\": \"Your own API-focused Airtable with plugins.\",\n                    \"github\": \"https://github.com/baserow/baserow\",\n                    \"site\": \"https://baserow.io\",\n                    \"stars\": 4456,\n                    \"pushed_at\": \"2026-03-20T14:01:13Z\",\n                    \"archived\": false,\n                    \"etag\": \"b2bb135e46305ce4ca03493b46ba326052b4c34aee6050c95b6a4b555b2d57ff\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Nocodb\",\n                    \"description\": \"Airtable alternative could be based on top of MySQL, PostgreSQL, SQL Server, SQLite & MariaDB with solid GUI\",\n                    \"github\": \"https://github.com/nocodb/nocodb\",\n                    \"site\": \"https://nocodb.com\",\n                    \"stars\": 62500,\n                    \"pushed_at\": \"2026-03-20T14:05:03Z\",\n                    \"archived\": false,\n                    \"etag\": \"af3720d3261839738f6b745d9989563f0ef5e0825a4688d91d7e8e941a0570be\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Netflix\",\n            \"icon\": \"🎬\",\n            \"projects\": [\n                {\n                    \"name\": \"Jellyfin\",\n                    \"description\": \"Media system that puts you in control of managing and streaming your media.\",\n                    \"github\": \"https://github.com/jellyfin/jellyfin\",\n                    \"site\": \"https://jellyfin.org\",\n                    \"stars\": 49475,\n                    \"pushed_at\": \"2026-03-20T14:14:36Z\",\n                    \"archived\": false,\n                    \"etag\": \"253a1302cb06ece6c27eb8ca3cc98f611b7c9bd1906191000b298c85a20bafb6\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Notes\",\n            \"icon\": \"📝\",\n            \"projects\": [\n                {\n                    \"name\": \"CodiMD\",\n                    \"description\": \"Realtime collaborative markdown notes.\",\n                    \"github\": \"https://github.com/hackmdio/codimd\",\n                    \"site\": \"https://hackmd.io/c/codimd-documentation\",\n                    \"stars\": 10011,\n                    \"pushed_at\": \"2025-10-02T02:51:07Z\",\n                    \"archived\": false,\n                    \"etag\": \"9bdf060a91e1a8471fcfb98e3da78c4fa25bed09566a2524bf668df3e1db3a1a\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Standard Notes\",\n                    \"description\": \"Clean and simple web app with E2E encryption, extensions and clients. [How to self-host tutorial](https://theselfhostingblog.com/posts/how-to-completely-self-host-standard-notes/)\",\n                    \"github\": \"https://github.com/standardnotes/app\",\n                    \"site\": \"https://standardnotes.com\",\n                    \"stars\": 6358,\n                    \"pushed_at\": \"2026-03-17T16:07:34Z\",\n                    \"archived\": false,\n                    \"etag\": \"dc1afbce09357c52129bb6259ada8e2034a021e373fa52449fe4da7ec846db12\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"TinyList\",\n                    \"description\": \"Your own Google Keep. Simple and clean.\",\n                    \"github\": \"https://github.com/baggachipz/tinylist\",\n                    \"site\": \"https://tinylist.app/\",\n                    \"stars\": 133,\n                    \"pushed_at\": \"2026-02-07T16:31:58Z\",\n                    \"archived\": false,\n                    \"etag\": \"8466daa5ac6895fd6bc8238829aba48b5705b8a580d3cdbbf361aaba5a6f6df5\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Leanote\",\n                    \"description\": \"Your own Evernote.\",\n                    \"github\": \"https://github.com/leanote/leanote\",\n                    \"site\": \"http://leanote.com\",\n                    \"stars\": 11714,\n                    \"pushed_at\": \"2023-11-27T06:36:09Z\",\n                    \"archived\": false,\n                    \"etag\": \"015cea7f671e904a64a1162834b568a87e556d382f91a1bf3e5102de5d009922\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Bangle.io\",\n                    \"description\": \"Web only WYSIWYG note taking app that saves notes locally in markdown.\",\n                    \"github\": \"https://github.com/bangle-io/bangle-io\",\n                    \"site\": \"https://bangle.io\",\n                    \"stars\": 1209,\n                    \"pushed_at\": \"2025-11-20T21:27:47Z\",\n                    \"archived\": false,\n                    \"etag\": \"244d4e8721d473f6bd1ec3234f05728c01043a47292fa9054028ab344ffd6d02\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Memos\",\n                    \"description\": \"Memo hub with knowledge management and socialization.\",\n                    \"github\": \"https://github.com/usememos/memos\",\n                    \"site\": \"https://usememos.com\",\n                    \"stars\": 58074,\n                    \"pushed_at\": \"2026-03-20T12:19:46Z\",\n                    \"archived\": false,\n                    \"etag\": \"3ff09387c8f36a126f45d5e34e8a471c92f567ae4b86ee73e4c002cce945cadd\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Bookmarks service\",\n            \"icon\": \"🏷\",\n            \"projects\": [\n                {\n                    \"name\": \"Unmark\",\n                    \"description\": \"Application for bookmarks.\",\n                    \"github\": \"https://github.com/cdevroe/unmark\",\n                    \"site\": \"https://unmark.it\",\n                    \"stars\": 1627,\n                    \"pushed_at\": \"2026-02-11T12:25:04Z\",\n                    \"archived\": false,\n                    \"etag\": \"e0b303c03247c7cc706602d47f9f8a1dc519b77f07f5ca8199a65c0652d51fb9\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Bookmarks\",\n                    \"description\": \"Self-hosted bookmarking app that can import bookmarks from delicious and chrome.\",\n                    \"github\": \"https://github.com/dyu/bookmarks\",\n                    \"site\": \"https://apps.dyuproject.com/bookmarks/\",\n                    \"stars\": 149,\n                    \"pushed_at\": \"2023-04-28T09:59:45Z\",\n                    \"archived\": false,\n                    \"etag\": \"839086ef06f349def7fb14b0bb243a87d4124ecafbedcc40f57e7d495f6fb02b\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"xBrowserSync\",\n                    \"description\": \"Secure and anonymous bookmarking server with browser plugins and mobile app.\",\n                    \"github\": \"https://github.com/xbrowsersync/app\",\n                    \"site\": \"https://www.xbrowsersync.org/\",\n                    \"stars\": 1689,\n                    \"pushed_at\": \"2026-03-20T14:35:18Z\",\n                    \"archived\": false,\n                    \"etag\": \"f4a0f56cc92193b8e4f7ff8c0fb02b726c938df75d677932d94551bb2d696e25\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Nextcloud Bookmarks\",\n                    \"description\": \"Bookmark app for Nextcloud with browser plugins, mobile and desktop apps.\",\n                    \"github\": \"https://github.com/nextcloud/bookmarks\",\n                    \"site\": \"https://apps.nextcloud.com/apps/bookmarks\",\n                    \"stars\": 1167,\n                    \"pushed_at\": \"2026-03-20T00:28:41Z\",\n                    \"archived\": false,\n                    \"etag\": \"82dd4b8958aa6dbe16958e46c084d00cd72a2f44b5fa02d8fb4d7a62bbbae52b\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"LinkAce\",\n                    \"description\": \"Bookmark archive with tags, lists and sharing features.\",\n                    \"github\": \"https://github.com/Kovah/LinkAce\",\n                    \"site\": \"https://www.linkace.org\",\n                    \"stars\": 3267,\n                    \"pushed_at\": \"2026-03-19T17:14:45Z\",\n                    \"archived\": false,\n                    \"etag\": \"ecb35fae7a78a8ea5d8e16b0a5ead77029b01826f98529e34388b1c7c61e0bca\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Linkding\",\n                    \"description\": \"Simple bookmarks with tags and neat UI.\",\n                    \"github\": \"https://github.com/sissbruecker/linkding\",\n                    \"site\": \"https://linkding.link/\",\n                    \"stars\": 10325,\n                    \"pushed_at\": \"2026-03-18T23:08:25Z\",\n                    \"archived\": false,\n                    \"etag\": \"dfdcb80e3e7596ff62c6bf7d15c4bfaa31c5ffadb5df544ca5e27cba0b6b0bb1\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Benotes\",\n                    \"description\": \"Bookmark taking web app with additional note taking feature.\",\n                    \"github\": \"https://github.com/fr0tt/benotes\",\n                    \"site\": \"https://benotes.org\",\n                    \"stars\": 857,\n                    \"pushed_at\": \"2025-04-10T18:35:21Z\",\n                    \"archived\": false,\n                    \"etag\": \"98b7f5ebabfce04ebd671ca73525f7bc05e6519d44fa796dcd0e1b927ce7a27d\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Briefkasten\",\n                    \"description\": \"Bookmark web app with REST API, OAuth, drag-n-drop and browser extension.\",\n                    \"github\": \"https://github.com/ndom91/briefkasten\",\n                    \"site\": \"https://briefkastenhq.com\",\n                    \"stars\": 1166,\n                    \"pushed_at\": \"2025-05-08T15:44:03Z\",\n                    \"archived\": false,\n                    \"etag\": \"055a81cbc6128c9e1ffa2b2671b8a36330b7ef479056b1fb571142865bc2a045\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Hoarder\",\n                    \"description\": \"Bookmark-everything app with AI-based tagging and full text search.\",\n                    \"github\": \"https://github.com/hoarder-app/hoarder\",\n                    \"site\": \"https://karakeep.app\",\n                    \"stars\": 24220,\n                    \"pushed_at\": \"2026-03-19T19:38:27Z\",\n                    \"archived\": false,\n                    \"etag\": \"e726e9d316d2d732a3d47fd74ce30c3646e9ec8538254ee785bd9b748eb71d09\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Readeck\",\n                    \"description\": \"Selfhosted bookmarking app with the modern UI, smart features and browser extension.\",\n                    \"github\": \"\",\n                    \"site\": \"https://readeck.org/\",\n                    \"stars\": 0,\n                    \"pushed_at\": \"\",\n                    \"archived\": false\n                }\n            ]\n        },\n        {\n            \"name\": \"URL shortener\",\n            \"icon\": \"🔤\",\n            \"projects\": [\n                {\n                    \"name\": \"Yourls\",\n                    \"description\": \"Customizable, URL shortener in PHP. Detailed stats, analytics, plugins, and more included.\",\n                    \"github\": \"https://github.com/YOURLS/YOURLS\",\n                    \"site\": \"https://yourls.org\",\n                    \"stars\": 11937,\n                    \"pushed_at\": \"2026-03-19T18:49:05Z\",\n                    \"archived\": false,\n                    \"etag\": \"19e7de8ec40e28a759b80650e3e1f1c323a3d23bda6df662d68adb679c7b7d9b\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Kutt\",\n                    \"description\": \"Modern URL shortener with support for custom domains.\",\n                    \"github\": \"https://github.com/thedevs-network/kutt\",\n                    \"site\": \"https://kutt.it\",\n                    \"stars\": 10658,\n                    \"pushed_at\": \"2026-02-27T16:45:16Z\",\n                    \"archived\": false,\n                    \"etag\": \"ea87dd17d47d2c69bca932db98a401746727ba75b6eb7460949b2c775f97e952\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Delta\",\n                    \"description\": \"A file uploader and URL shortener packed with features and CLI.\",\n                    \"github\": \"https://github.com/fosslife/delta\",\n                    \"site\": \"https://github.com/fosslife/delta\",\n                    \"stars\": 127,\n                    \"pushed_at\": \"2021-04-11T09:26:30Z\",\n                    \"archived\": false,\n                    \"etag\": \"982fa825a0d780bbd4914ecd61b11b2ce4d399c5fa4c587c8e8a347ad3ce1350\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Shlink\",\n                    \"description\": \"URL shortener with neat UI, API and analytics.\",\n                    \"github\": \"https://github.com/shlinkio/shlink\",\n                    \"site\": \"https://shlink.io\",\n                    \"stars\": 4791,\n                    \"pushed_at\": \"2026-03-17T08:12:51Z\",\n                    \"archived\": false,\n                    \"etag\": \"a63cb0b15ebfbd142bac4581b9a281e783f3858d68f3d3978d6937255bf380dc\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Calendar\",\n            \"icon\": \"🗓\",\n            \"projects\": [\n                {\n                    \"name\": \"Radicale\",\n                    \"description\": \"Small CalDAV and CardDAV server made with Python. Simple file storage and plugins\",\n                    \"github\": \"https://github.com/Kozea/Radicale\",\n                    \"site\": \"https://radicale.org\",\n                    \"stars\": 4493,\n                    \"pushed_at\": \"2026-03-20T06:03:17Z\",\n                    \"archived\": false,\n                    \"etag\": \"7cc67019f732537735339e7104632842883f71471a8aa1dc04b685f80c9dc0a6\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Sabre\",\n                    \"description\": \"CardDAV, CalDAV and WebDAV server made with PHP.\",\n                    \"github\": \"https://github.com/sabre-io/Baikal\",\n                    \"site\": \"https://sabre.io/baikal/\",\n                    \"stars\": 3103,\n                    \"pushed_at\": \"2026-01-06T19:47:56Z\",\n                    \"archived\": false,\n                    \"etag\": \"77d24c6c3d381955f402283a4665ee7ab60d089c8e13f0649e17de3f6002748a\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Calendar Server\",\n                    \"description\": \"Calendar and contacts server made by Apple.\",\n                    \"github\": \"https://github.com/apple/ccs-calendarserver\",\n                    \"site\": \"https://www.calendarserver.org\",\n                    \"stars\": 505,\n                    \"pushed_at\": \"2020-02-12T17:54:53Z\",\n                    \"archived\": false,\n                    \"etag\": \"038d62d668182551aed2776d9ca7014fa77fd5ab801076985cd2ccf2f1f34e87\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Cloud storage\",\n            \"icon\": \"🗄\",\n            \"projects\": [\n                {\n                    \"name\": \"OwnCloud\",\n                    \"description\": \"Personal cloud which runs on your own server.\",\n                    \"github\": \"https://github.com/owncloud/core\",\n                    \"site\": \"https://owncloud.com\",\n                    \"stars\": 8747,\n                    \"pushed_at\": \"2026-03-20T13:51:38Z\",\n                    \"archived\": false,\n                    \"etag\": \"cc11c88db5cc845662cfdf95800328897ed1052a5d7915abd16efcbf16ff0abe\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Nextcloud\",\n                    \"description\": \"Enhanced OwnCloud fork with tons of [additional services](https://apps.nextcloud.com/) like calendars, mail, contacts, video calls, etc .\",\n                    \"github\": \"https://github.com/nextcloud/server\",\n                    \"site\": \"https://nextcloud.com\",\n                    \"stars\": 34394,\n                    \"pushed_at\": \"2026-03-20T14:48:15Z\",\n                    \"archived\": false,\n                    \"etag\": \"8f5b28301cade75c1371fa2303fa7e2a180a94e75ba860521d52b070cbf33924\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Syncthing\",\n                    \"description\": \"Continuous file synchronization program.\",\n                    \"github\": \"https://github.com/syncthing/syncthing\",\n                    \"site\": \"https://syncthing.net/\",\n                    \"stars\": 80973,\n                    \"pushed_at\": \"2026-03-17T07:55:11Z\",\n                    \"archived\": false,\n                    \"etag\": \"17e727e4532f188d7d377b9c44568289411fe20d4de1e878d9261f656c400b1c\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"MinIO\",\n                    \"description\": \"Object storage server compatible with Amazon S3 APIs.\",\n                    \"github\": \"https://github.com/minio/minio\",\n                    \"site\": \"https://github.com/minio/minio\",\n                    \"stars\": 60522,\n                    \"pushed_at\": \"2026-02-12T20:18:51Z\",\n                    \"archived\": false,\n                    \"etag\": \"af681052ed4263e866a135ecf7832c29eed67c0c449c6128063802d0876c7b59\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Teedy\",\n                    \"description\": \"Lightweight document management system with workflows\",\n                    \"github\": \"https://github.com/sismics/docs\",\n                    \"site\": \"https://teedy.io\",\n                    \"stars\": 2536,\n                    \"pushed_at\": \"2026-02-09T19:26:47Z\",\n                    \"archived\": false,\n                    \"etag\": \"75cbc8dac0ddf026d812e143a1c158257e3b0a3b0754ad98c993aaa04796c02d\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Filestash\",\n                    \"description\": \"Easily turn popular backends like SFTP, S3, GitHub etc into web-based file manager\",\n                    \"github\": \"https://github.com/mickael-kerjean/filestash\",\n                    \"site\": \"https://www.filestash.app/\",\n                    \"stars\": 13901,\n                    \"pushed_at\": \"2026-03-20T06:46:29Z\",\n                    \"archived\": false,\n                    \"etag\": \"26c8e1031ec51cbc744a3da82974a9b07a389d41fcf09f1eff4627675d2ccc81\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"DNS\",\n            \"icon\": \"🕸\",\n            \"projects\": [\n                {\n                    \"name\": \"Unbound\",\n                    \"description\": \"Validating, recursive, caching DNS resolver. Fast and lean and incorporates modern features based on open standards.\",\n                    \"github\": \"https://github.com/NLnetLabs/unbound\",\n                    \"site\": \"https://nlnetlabs.nl/unbound\",\n                    \"stars\": 4337,\n                    \"pushed_at\": \"2026-03-13T15:49:39Z\",\n                    \"archived\": false,\n                    \"etag\": \"4710e9da39045f34d618787ed2a239d39f87c1c0dc3249fe001594644632659e\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"AdBlock\",\n            \"icon\": \"🛑\",\n            \"projects\": [\n                {\n                    \"name\": \"Pi-hole\",\n                    \"description\": \"Network-wide ad blocking software you can deploy to local Raspberry Pi or [always-free instance of Google Cloud](https://github.com/n3m351d4/Pi-Hole-PiVPN-on-Google-Compute-Engine-Free-Tier-with-Full-Tunnel-and-Split-Tunnel-OpenVPN-Configs). Yes, you've got the irony right.\",\n                    \"github\": \"https://github.com/pi-hole/pi-hole\",\n                    \"site\": \"https://pi-hole.net\",\n                    \"stars\": 56193,\n                    \"pushed_at\": \"2026-03-17T21:50:37Z\",\n                    \"archived\": false,\n                    \"etag\": \"232509a628da7d32be18dc9caa108bf6f6809f0b5795b36d7b067024ab184259\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"AdGuard Home\",\n                    \"description\": \"Network-wide DNS resolver with encryption for blocking ads & tracking.\",\n                    \"github\": \"https://github.com/AdguardTeam/AdGuardHome\",\n                    \"site\": \"https://adguard.com/adguard-home/overview.html\",\n                    \"stars\": 33130,\n                    \"pushed_at\": \"2026-03-20T08:48:19Z\",\n                    \"archived\": false,\n                    \"etag\": \"9527321cc143843e88df799f5895ed28467353e6c8fbcc288b54c3cef2230fe7\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Email server\",\n            \"icon\": \"✉️\",\n            \"projects\": [\n                {\n                    \"name\": \"Mailu\",\n                    \"description\": \"Dockerized, secured mail suite which is easy to install and maintain.\",\n                    \"github\": \"https://github.com/Mailu/Mailu\",\n                    \"site\": \"https://mailu.io\",\n                    \"stars\": 7115,\n                    \"pushed_at\": \"2026-03-20T10:26:20Z\",\n                    \"archived\": false,\n                    \"etag\": \"5c4538f6355ea2d3e098956e1434495f00d5ada35e58ed508ad92a1ee5c798f2\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Mailcow\",\n                    \"description\": \"Dockerized mail server suite based on Postfix, Dovecot, Nginx, PHP, MariaDB, Rspamd and more.\",\n                    \"github\": \"https://github.com/mailcow/mailcow-dockerized\",\n                    \"site\": \"https://mailcow.email\",\n                    \"stars\": 12382,\n                    \"pushed_at\": \"2026-03-13T13:15:04Z\",\n                    \"archived\": false,\n                    \"etag\": \"c9961b677777d4799986876ef175164745798adba1b8a568cb141d629fccd3d6\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"iRedMail\",\n                    \"description\": \"Mail server suite with vast of options.\",\n                    \"github\": \"https://github.com/iredmail/iRedMail\",\n                    \"site\": \"https://www.iredmail.org/\",\n                    \"stars\": 1775,\n                    \"pushed_at\": \"2026-03-19T09:48:08Z\",\n                    \"archived\": false,\n                    \"etag\": \"72439bea145efbefafaf32bdf788107a3d067091ec12f2b57c1c6c572b91d479\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Mail-in-a-Box\",\n                    \"description\": \"Another mail server suite based on Postfix, Dovecot, Z-Push, Roundcube, Nextcloud, Apache SpamAssassin, Postgrey, Nginx.\",\n                    \"github\": \"https://github.com/mail-in-a-box/mailinabox\",\n                    \"site\": \"https://mailinabox.email/\",\n                    \"stars\": 15234,\n                    \"pushed_at\": \"2026-02-01T15:29:39Z\",\n                    \"archived\": false,\n                    \"etag\": \"f72a7270c20d12e4b3e4bb27bd88bb6a4c87f5bcd82ac0d43fada436df1166f5\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Roundcube\",\n                    \"description\": \"Browser-based IMAP client with an application-like user interface.\",\n                    \"github\": \"https://github.com/roundcube/roundcubemail\",\n                    \"site\": \"https://roundcube.net\",\n                    \"stars\": 6856,\n                    \"pushed_at\": \"2026-03-20T09:29:55Z\",\n                    \"archived\": false,\n                    \"etag\": \"ecd7336725c28f1b7a21efd4a4ff22a284bbdfa7320041490dc111656f348f94\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Postal\",\n                    \"description\": \"A fully featured mail server with web UI.\",\n                    \"github\": \"https://github.com/postalhq/postal\",\n                    \"site\": \"https://postalserver.io\",\n                    \"stars\": 16410,\n                    \"pushed_at\": \"2026-03-19T18:46:54Z\",\n                    \"archived\": false,\n                    \"etag\": \"ec74c2f31438bb82a7eafebd30f0a33fde57a11a2994abe15f04ff25c165bc5f\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Maddy\",\n                    \"description\": \"A composable all-in-one mail server written in Golang.\",\n                    \"github\": \"https://github.com/foxcpp/maddy\",\n                    \"site\": \"https://maddy.email\",\n                    \"stars\": 5897,\n                    \"pushed_at\": \"2026-03-16T23:31:57Z\",\n                    \"archived\": false,\n                    \"etag\": \"b8e559fac15c2d24b469fa40af5c84d7d5081d79fc3285d155e4527f6e31b38e\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Chat server\",\n            \"icon\": \"💬\",\n            \"projects\": [\n                {\n                    \"name\": \"Prosody IM\",\n                    \"description\": \"Modern XMPP communication server.\",\n                    \"github\": \"\",\n                    \"site\": \"https://prosody.im/\",\n                    \"stars\": 0,\n                    \"pushed_at\": \"\",\n                    \"archived\": false\n                },\n                {\n                    \"name\": \"Zulip\",\n                    \"description\": \"Team chat which combined the immediacy of real-time chat with an email threading model.\",\n                    \"github\": \"https://github.com/zulip/zulip\",\n                    \"site\": \"https://zulip.com\",\n                    \"stars\": 24912,\n                    \"pushed_at\": \"2026-03-19T16:54:51Z\",\n                    \"archived\": false,\n                    \"etag\": \"e073237fca6948e555c7832e3da5e16dc69afc4d462fed2e84feac562a8326d1\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Rocket Chat\",\n                    \"description\": \"WebChat platform.\",\n                    \"github\": \"https://github.com/RocketChat/Rocket.Chat\",\n                    \"site\": \"https://rocket.chat/\",\n                    \"stars\": 44973,\n                    \"pushed_at\": \"2026-03-20T14:44:28Z\",\n                    \"archived\": false,\n                    \"etag\": \"5c411449a96a68b58ac4bcfc0c2ce25d4745a6f35c91bcc5fbf7c07c6317a0d3\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Mattermost\",\n                    \"description\": \"Private cloud, Slack-alternative.\",\n                    \"github\": \"https://github.com/mattermost/mattermost-server\",\n                    \"site\": \"https://mattermost.com\",\n                    \"stars\": 35898,\n                    \"pushed_at\": \"2026-03-20T13:46:47Z\",\n                    \"archived\": false,\n                    \"etag\": \"72ae7ef6ccb7ae52fa23cf531dd9044f0b1ce3ba6f8fcb630f1ff88f497422a6\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Mumble\",\n                    \"description\": \"Low-latency, high quality **voice chat** for gaming.\",\n                    \"github\": \"https://github.com/mumble-voip/mumble\",\n                    \"site\": \"https://www.mumble.info\",\n                    \"stars\": 7849,\n                    \"pushed_at\": \"2026-03-19T23:09:57Z\",\n                    \"archived\": false,\n                    \"etag\": \"87a9250369399c9e72302c13cbf15b609866271d1835eac36a4c678a7b0a193c\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Matrix\",\n                    \"description\": \"Ecosystem for open federated Instant Messaging and VoIP.\",\n                    \"github\": \"\",\n                    \"site\": \"https://matrix.org\",\n                    \"stars\": 0,\n                    \"pushed_at\": \"\",\n                    \"archived\": false\n                }\n            ]\n        },\n        {\n            \"name\": \"Video calls\",\n            \"icon\": \"📹\",\n            \"projects\": [\n                {\n                    \"name\": \"Jitsi\",\n                    \"description\": \"Multi-platform open-source video conferencing.\",\n                    \"github\": \"https://github.com/jitsi/jitsi-meet\",\n                    \"site\": \"https://jitsi.org/meet\",\n                    \"stars\": 28839,\n                    \"pushed_at\": \"2026-03-20T14:36:02Z\",\n                    \"archived\": false,\n                    \"etag\": \"99375ddf3ed1258bf143cd205ddb6dc20957b60f4d7dc7be5a6a271d82e14162\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Nextcloud Talk\",\n                    \"description\": \"Chat or video calls via web or mobile apps, including screen sharing and webinar functionality.\",\n                    \"github\": \"https://github.com/nextcloud/spreed/\",\n                    \"site\": \"https://nextcloud.com/talk\",\n                    \"stars\": 2075,\n                    \"pushed_at\": \"2026-03-20T13:08:59Z\",\n                    \"archived\": false,\n                    \"etag\": \"5215f7008c5f701b890c45e446ce033bf1e29a4ae805cb3ef2749aff21921b1d\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Publishing system\",\n            \"icon\": \"✍️\",\n            \"projects\": [\n                {\n                    \"name\": \"Jekyll\",\n                    \"description\": \"Static websites and blogs.\",\n                    \"github\": \"https://github.com/jekyll/jekyll\",\n                    \"site\": \"https://jekyllrb.com\",\n                    \"stars\": 51480,\n                    \"pushed_at\": \"2026-03-11T15:41:20Z\",\n                    \"archived\": false,\n                    \"etag\": \"2f19aa6be807ae8880fffcec6ecb78cd6aadd73cde9c0f30f30399161d8b7e55\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Hugo\",\n                    \"description\": \"Static site generators with amazing speed.\",\n                    \"github\": \"https://github.com/gohugoio/hugo\",\n                    \"site\": \"https://gohugo.io\",\n                    \"stars\": 87168,\n                    \"pushed_at\": \"2026-03-20T10:37:39Z\",\n                    \"archived\": false,\n                    \"etag\": \"b2abeac1d4ede4b0f5cf19c20c0d5b57d2841dca7964e0a26b5396c3a9bb6152\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Ghost\",\n                    \"description\": \"Headless Node.js CMS for professional publishing.\",\n                    \"github\": \"https://github.com/TryGhost/Ghost\",\n                    \"site\": \"https://ghost.org\",\n                    \"stars\": 52105,\n                    \"pushed_at\": \"2026-03-20T14:33:09Z\",\n                    \"archived\": false,\n                    \"etag\": \"7a32ce8ebfda16632397e4d453b7ed9b2c827d18fb3ebfd9a460638c54c70592\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Gatsby\",\n                    \"description\": \"React-based framework with performance, scalability, and security built in.\",\n                    \"github\": \"https://github.com/gatsbyjs/gatsby\",\n                    \"site\": \"https://www.gatsbyjs.com\",\n                    \"stars\": 55953,\n                    \"pushed_at\": \"2026-03-19T13:30:00Z\",\n                    \"archived\": false,\n                    \"etag\": \"cf47b6d16c879028ce70b4f0ffe064f099984e96efd8538e1670070e5e6ad2df\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Eleventy\",\n                    \"description\": \"A simpler site generator. Transforms a directory of templates (of varying types) into HTML.\",\n                    \"github\": \"https://github.com/11ty/eleventy\",\n                    \"site\": \"https://www.11ty.dev/\",\n                    \"stars\": 19514,\n                    \"pushed_at\": \"2026-03-18T21:32:06Z\",\n                    \"archived\": false,\n                    \"etag\": \"de460bcf971ea652ea0af3a140a14508382f4b58626ffe2887ec38bb01fa223d\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Disqus comments\",\n            \"icon\": \"🗣\",\n            \"projects\": [\n                {\n                    \"name\": \"Isso\",\n                    \"description\": \"Lightweight commenting server. It aims to be a drop-in replacement for Disqus.\",\n                    \"github\": \"https://github.com/posativ/isso\",\n                    \"site\": \"https://isso-comments.de\",\n                    \"stars\": 5270,\n                    \"pushed_at\": \"2026-03-07T21:49:19Z\",\n                    \"archived\": false,\n                    \"etag\": \"61acc1284240e4db4b7a8dc64f9fb865762f3f8cee4eba13dd732fd3d8afb2ab\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Remark42\",\n                    \"description\": \"Self-hosted, lightweight, and simple  commenting system, which doesn’t spy on users\",\n                    \"github\": \"https://github.com/umputun/remark42\",\n                    \"site\": \"https://remark42.com\",\n                    \"stars\": 5460,\n                    \"pushed_at\": \"2026-03-16T06:38:00Z\",\n                    \"archived\": false,\n                    \"etag\": \"10418a8a951aa7aa78364c31827620f1b53d71defd93344bfcb7e762068d43ca\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Staticman\",\n                    \"description\": \"Commenting server for static sites which stores all user generated content into your own repository.\",\n                    \"github\": \"https://github.com/eduardoboucas/staticman\",\n                    \"site\": \"https://staticman.net\",\n                    \"stars\": 2454,\n                    \"pushed_at\": \"2024-04-24T16:29:25Z\",\n                    \"archived\": false,\n                    \"etag\": \"91a68479b0f97c6b13261b1bff6eac6fe9c3b05bfe6d53330c6c7776ec44a138\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Web analytics engine\",\n            \"icon\": \"📈\",\n            \"projects\": [\n                {\n                    \"name\": \"Ackee\",\n                    \"description\": \"Self-hosted, Node.js based analytics tool for those who care about privacy.\",\n                    \"github\": \"https://github.com/electerious/Ackee\",\n                    \"site\": \"https://ackee.electerious.com\",\n                    \"stars\": 4630,\n                    \"pushed_at\": \"2026-02-23T15:43:18Z\",\n                    \"archived\": false,\n                    \"etag\": \"f5a8d74fc196a35b384571b0876d177780837cb7492d7a61baf33394520d8e9a\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Matomo\",\n                    \"description\": \"Open analytics platform.\",\n                    \"github\": \"https://github.com/matomo-org/matomo\",\n                    \"site\": \"https://matomo.org/\",\n                    \"stars\": 21361,\n                    \"pushed_at\": \"2026-03-20T12:24:41Z\",\n                    \"archived\": false,\n                    \"etag\": \"9cf993abc9eb6447974f4e4a96b0a632787214726c3d52232acba3b377ed85d3\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"GoAccess\",\n                    \"description\": \"Real-time web log analyzer and interactive viewer that runs in a terminal or through browser.\",\n                    \"github\": \"https://github.com/allinurl/goaccess\",\n                    \"site\": \"https://goaccess.io\",\n                    \"stars\": 20350,\n                    \"pushed_at\": \"2026-03-04T00:30:22Z\",\n                    \"archived\": false,\n                    \"etag\": \"0ea997881245cb2ab9bf591d76bbf9ab2315722066b4c39249e0a9091ad5852b\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Fathom Lite\",\n                    \"description\": \"Simple, privacy-focused website analytics.\",\n                    \"github\": \"https://github.com/usefathom/fathom\",\n                    \"site\": \"https://usefathom.com/\",\n                    \"stars\": 7996,\n                    \"pushed_at\": \"2026-03-18T09:11:04Z\",\n                    \"archived\": false,\n                    \"etag\": \"8b688de9e3dd96d49b8700895df673912a26022590da80e80202fa1ce0991f3a\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Shynet\",\n                    \"description\": \"Privacy-friendly, detailed web analytics that works without cookies or JS.\",\n                    \"github\": \"https://github.com/milesmcc/shynet\",\n                    \"site\": \"https://github.com/milesmcc/shynet\",\n                    \"stars\": 3129,\n                    \"pushed_at\": \"2026-03-15T23:00:29Z\",\n                    \"archived\": false,\n                    \"etag\": \"f5767fe38df44359cf95d6054b994aa160e7e4051573e925c25003b0588cc25c\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"GoatCounter\",\n                    \"description\": \"Easy analytics without tracking.\",\n                    \"github\": \"https://github.com/arp242/goatcounter\",\n                    \"site\": \"https://www.goatcounter.com\",\n                    \"stars\": 5560,\n                    \"pushed_at\": \"2026-03-07T18:06:57Z\",\n                    \"archived\": false,\n                    \"etag\": \"0549a63b17cc7093d3ac47670fc29d242c6428028fbe185a45297fafc093f81d\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Google search\",\n            \"icon\": \"🔍\",\n            \"projects\": [\n                {\n                    \"name\": \"Whoogle\",\n                    \"description\": \"Search results without ads, JavaScript, AMP links, cookies, or IP address tracking.\",\n                    \"github\": \"https://github.com/benbusby/whoogle-search\",\n                    \"site\": \"https://pypi.org/project/whoogle-search/\",\n                    \"stars\": 11410,\n                    \"pushed_at\": \"2026-02-11T02:36:00Z\",\n                    \"archived\": false,\n                    \"etag\": \"5503b3e91ccc9994566be8a5766c0c1b9f5b0a31838fb21d78ece445251864c3\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"SearXNG\",\n                    \"description\": \"Metasearch engine which aggregates results from various search services and databases. Users are neither tracked nor profiled.\",\n                    \"github\": \"https://github.com/searxng/searxng\",\n                    \"site\": \"https://docs.searxng.org\",\n                    \"stars\": 26848,\n                    \"pushed_at\": \"2026-03-20T07:25:17Z\",\n                    \"archived\": false,\n                    \"etag\": \"246855563b6987d0c8dd029d6eaf87ee4f5a2657c68e1152feca03dacfcb0ffe\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Cloud backup\",\n            \"icon\": \"📦\",\n            \"projects\": [\n                {\n                    \"name\": \"Borg\",\n                    \"description\": \"Deduplicating archiver with compression and authenticated encryption.\",\n                    \"github\": \"https://github.com/borgbackup/borg\",\n                    \"site\": \"https://www.borgbackup.org/\",\n                    \"stars\": 13093,\n                    \"pushed_at\": \"2026-03-19T19:51:24Z\",\n                    \"archived\": false,\n                    \"etag\": \"6e0b326eb40c2d30184a8e41cb711b4251747bd3049e79a502ca3b49c8e6f1b7\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"ElkarBackup\",\n                    \"description\": \"Backup solution based on RSync/RSnapshot.\",\n                    \"github\": \"https://github.com/elkarbackup/elkarbackup\",\n                    \"site\": \"https://www.elkarbackup.org\",\n                    \"stars\": 414,\n                    \"pushed_at\": \"2026-03-03T11:22:11Z\",\n                    \"archived\": false,\n                    \"etag\": \"7e5b5abf587cbab37f6ea8090d013a18fc984d122301145f25d37e2ff297dc69\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Restic\",\n                    \"description\": \"Encrypted, deduplicated & simple backups with an easy-to-use CLI.\",\n                    \"github\": \"https://github.com/restic/restic/\",\n                    \"site\": \"https://restic.net\",\n                    \"stars\": 32761,\n                    \"pushed_at\": \"2026-03-01T01:43:21Z\",\n                    \"archived\": false,\n                    \"etag\": \"00850b7346a371302541d60d1a723ece125bee550f9db55f4e344f98df4a7847\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Web archive\",\n            \"icon\": \"🔗\",\n            \"projects\": [\n                {\n                    \"name\": \"ArchiveBox\",\n                    \"description\": \"Web archive. Preserve and organize content from websites in a variety of formats.\",\n                    \"github\": \"https://github.com/pirate/ArchiveBox\",\n                    \"site\": \"https://archivebox.io\",\n                    \"stars\": 27092,\n                    \"pushed_at\": \"2026-03-16T06:34:51Z\",\n                    \"archived\": false,\n                    \"etag\": \"df001fb7534e4dc7e3ad4783900bea7dfedad23662cc1e0adcc3819f31ea96c6\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Archivy\",\n                    \"description\": \"Knowledge repository that allows you to preserve content.\",\n                    \"github\": \"https://github.com/archivy/archivy/\",\n                    \"site\": \"https://archivy.github.io\",\n                    \"stars\": 3255,\n                    \"pushed_at\": \"2023-07-25T23:33:15Z\",\n                    \"archived\": false,\n                    \"etag\": \"cdf88d5961bb7c3db2c88f0fe2623cb5ec0cc3136242bd28cc76ea72b3cc27af\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"file sharing server\",\n            \"icon\": \"🍕\",\n            \"projects\": [\n                {\n                    \"name\": \"Send\",\n                    \"description\": \"Simple, private file sharing with encryption. A Firefox Send fork.\",\n                    \"github\": \"\",\n                    \"site\": \"https://gitlab.com/timvisee/send\",\n                    \"stars\": 0,\n                    \"pushed_at\": \"\",\n                    \"archived\": false\n                },\n                {\n                    \"name\": \"FilePizza\",\n                    \"description\": \"Peer-to-peer file transfers with only browser.\",\n                    \"github\": \"https://github.com/kern/filepizza\",\n                    \"site\": \"https://file.pizza\",\n                    \"stars\": 9956,\n                    \"pushed_at\": \"2026-03-20T13:44:14Z\",\n                    \"archived\": false,\n                    \"etag\": \"3984a94e5923efec97ce5ea0e870816eccd2b307fc7c2b90983b5479b0933395\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Lufi\",\n                    \"description\": \"Convenient file sharing with E2E encryption.\",\n                    \"github\": \"https://github.com/ldidry/lufi\",\n                    \"site\": \"https://github.com/ldidry/lufi\",\n                    \"stars\": 342,\n                    \"pushed_at\": \"2026-01-22T17:20:18Z\",\n                    \"archived\": false,\n                    \"etag\": \"bce5a0af0a2f6a4a86d63d600f68777b2fe39102d0fc0289c62bfc8c5e4fdee5\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Linx\",\n                    \"description\": \"Simple file/code/media sharing website.\",\n                    \"github\": \"https://github.com/andreimarcu/linx-server\",\n                    \"site\": \"https://github.com/andreimarcu/linx-server\",\n                    \"stars\": 1568,\n                    \"pushed_at\": \"2025-04-26T21:39:02Z\",\n                    \"archived\": false,\n                    \"etag\": \"1166cc4ff46d73ba2023c418adf2464595246f1318022578c0a75f1b4dcb40da\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"XBackBone\",\n                    \"description\": \"PHP file manager that support the instant sharing tools like ShareX, uPic, etc\",\n                    \"github\": \"https://github.com/SergiX44/XBackBone\",\n                    \"site\": \"https://xbackbone.app\",\n                    \"stars\": 1131,\n                    \"pushed_at\": \"2026-02-25T19:55:38Z\",\n                    \"archived\": false,\n                    \"etag\": \"1cecbefa65b642201ec8dfa18d5f1b3303eed04182f22db2262eee28f3c1378a\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Enclosed\",\n                    \"description\": \"Minimalistic web app designed for sending private and secure notes.\",\n                    \"github\": \"https://github.com/CorentinTh/enclosed\",\n                    \"site\": \"https://enclosed.cc\",\n                    \"stars\": 1963,\n                    \"pushed_at\": \"2026-03-18T01:00:38Z\",\n                    \"archived\": false,\n                    \"etag\": \"a0cb17c31ccead3df58eeb623b00e58a950a93f7cef8ec5564fe4cacadd7351d\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Information storing and organization system\",\n            \"icon\": \"📂\",\n            \"projects\": [\n                {\n                    \"name\": \"Bookstack\",\n                    \"description\": \"Platform to create documentation/wiki content built with PHP & Laravel.\",\n                    \"github\": \"https://github.com/BookStackApp/BookStack\",\n                    \"site\": \"https://www.bookstackapp.com/\",\n                    \"stars\": 18489,\n                    \"pushed_at\": \"2026-03-20T03:29:14Z\",\n                    \"archived\": false,\n                    \"etag\": \"46bd565f88ec78efd9c8fb0e784a4c90d95662fe775358a5ecba45611e1a55d1\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"MediaWiki\",\n                    \"description\": \"Collaboration and documentation platform with enormous capabilities.\",\n                    \"github\": \"https://github.com/wikimedia/mediawiki\",\n                    \"site\": \"https://www.mediawiki.org\",\n                    \"stars\": 5006,\n                    \"pushed_at\": \"2026-03-20T12:08:12Z\",\n                    \"archived\": false,\n                    \"etag\": \"56ac931908401ccebfe0cfaed3d9d86dbf95d23df04548f9e082f2352adbcd58\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Dokuwiki\",\n                    \"description\": \"Simple wiki that doesn't require a database.\",\n                    \"github\": \"https://github.com/splitbrain/dokuwiki\",\n                    \"site\": \"http://www.dokuwiki.org\",\n                    \"stars\": 4585,\n                    \"pushed_at\": \"2026-03-20T02:34:28Z\",\n                    \"archived\": false,\n                    \"etag\": \"3a01457574f32af4cce978743b6134897f112a814cf57de52a9a1409f2dbf061\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Outline\",\n                    \"description\": \"Fastest wiki and knowledge base for growing teams with markdown support and clean UI.\",\n                    \"github\": \"https://github.com/outline/outline\",\n                    \"site\": \"https://www.getoutline.com\",\n                    \"stars\": 37727,\n                    \"pushed_at\": \"2026-03-20T13:45:54Z\",\n                    \"archived\": false,\n                    \"etag\": \"67a6216ae95ce8a1f0a59708cdc51e89db92462593570f4da9878b3842bd60f8\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Wiki.js\",\n                    \"description\": \"Lightweight and extensible wiki made with Node.js.\",\n                    \"github\": \"https://github.com/Requarks/wiki\",\n                    \"site\": \"https://js.wiki\",\n                    \"stars\": 28047,\n                    \"pushed_at\": \"2026-03-09T06:34:49Z\",\n                    \"archived\": false,\n                    \"etag\": \"68bf98f7e47b762a74094163318bb64319ae06c5bdf456e3890f7999d9aabf4a\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Hypothes.is\",\n                    \"description\": \"Web annotating system with search, storing, collaboration, sharing and integrations.\",\n                    \"github\": \"https://github.com/hypothesis/h\",\n                    \"site\": \"https://hypothes.is/\",\n                    \"stars\": 3127,\n                    \"pushed_at\": \"2026-03-20T00:09:50Z\",\n                    \"archived\": false,\n                    \"etag\": \"839a20bccd803752ef34ffe3d8ff1f029c2da4605f9b4040c9fcb85cd342b991\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Password manager\",\n            \"icon\": \"🔑\",\n            \"projects\": [\n                {\n                    \"name\": \"Bitwarden\",\n                    \"description\": \"Easiest and safest password manager to store, share, and sync sensitive data.\",\n                    \"github\": \"https://github.com/bitwarden/server\",\n                    \"site\": \"https://bitwarden.com\",\n                    \"stars\": 18293,\n                    \"pushed_at\": \"2026-03-20T14:32:29Z\",\n                    \"archived\": false,\n                    \"etag\": \"d800174a6e15e704b58df8f3819f5776b7d27a8a24e04d526f701b1384812863\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"LessPass\",\n                    \"description\": \"Stateless password manager.\",\n                    \"github\": \"https://github.com/lesspass/lesspass\",\n                    \"site\": \"https://www.lesspass.com\",\n                    \"stars\": 5987,\n                    \"pushed_at\": \"2026-03-14T00:13:03Z\",\n                    \"archived\": false,\n                    \"etag\": \"b882c642977678b4434c80334de71c1a43564086413fc5bd538123aa51fcd7e3\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Read it Later\",\n            \"icon\": \"🤥\",\n            \"projects\": [\n                {\n                    \"name\": \"Shiori\",\n                    \"description\": \"Simple bookmarks manager written intended as a simple clone of Pocket.\",\n                    \"github\": \"https://github.com/go-shiori/shiori\",\n                    \"site\": \"https://github.com/go-shiori/shiori\",\n                    \"stars\": 11370,\n                    \"pushed_at\": \"2026-02-01T10:14:02Z\",\n                    \"archived\": false,\n                    \"etag\": \"f4facdbc9acf03f134f128fa7aba2ed95bd1bc4dda66e0429dcf9b22ef137b82\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Wallabag\",\n                    \"description\": \"Self hostable application for saving web pages.\",\n                    \"github\": \"https://github.com/wallabag/wallabag\",\n                    \"site\": \"https://wallabag.org\",\n                    \"stars\": 12578,\n                    \"pushed_at\": \"2026-03-20T07:00:16Z\",\n                    \"archived\": false,\n                    \"etag\": \"1b94e3aa35d9251e65370a7a8095a26b6e1fcbc0cfcd7fcd10415bbf9b1b6e41\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Shaark\",\n                    \"description\": \"Knowledge storage for web links, notes, pictures and passwords with clean web UI.\",\n                    \"github\": \"https://github.com/MarceauKa/shaark\",\n                    \"site\": \"https://github.com/MarceauKa/shaark\",\n                    \"stars\": 588,\n                    \"pushed_at\": \"2024-05-30T12:06:23Z\",\n                    \"archived\": false,\n                    \"etag\": \"035699c1d080dfbd3c92df3156a5e13599d592d6140e3619370cb48f28a64fa8\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"RSS reader\",\n            \"icon\": \"🗞\",\n            \"projects\": [\n                {\n                    \"name\": \"Selfoss\",\n                    \"description\": \"Multipurpose rss reader, live stream, mashup, aggregation web application.\",\n                    \"github\": \"https://github.com/fossar/selfoss\",\n                    \"site\": \"https://selfoss.aditu.de\",\n                    \"stars\": 2454,\n                    \"pushed_at\": \"2026-03-04T23:57:41Z\",\n                    \"archived\": false,\n                    \"etag\": \"22b0e759d98602f0969077e6e8645c589c65974c88958b452fcbffd54d13be03\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"FreshRSS\",\n                    \"description\": \"Rss aggregator with responsive UI.\",\n                    \"github\": \"https://github.com/FreshRSS/FreshRSS\",\n                    \"site\": \"https://freshrss.org\",\n                    \"stars\": 14439,\n                    \"pushed_at\": \"2026-03-19T13:25:20Z\",\n                    \"archived\": false,\n                    \"etag\": \"0f58a2cda244e87d3548fab1ba498f17f6c3c69516446f872db376e0ad96215f\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Tiny Tiny RSS\",\n                    \"description\": \"Web-based news feed reader and aggregator.\",\n                    \"github\": \"https://github.com/tt-rss/tt-rss\",\n                    \"site\": \"https://tt-rss.org/\",\n                    \"stars\": 663,\n                    \"pushed_at\": \"2026-03-17T10:30:43Z\",\n                    \"archived\": false,\n                    \"etag\": \"387e72edbc9809dcff5cfaf0a0be5e43a8b4365f3ea9c8f9e315135ba1178e04\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Miniflux\",\n                    \"description\": \"Minimalist and opinionated feed reader.\",\n                    \"github\": \"https://github.com/miniflux/v2\",\n                    \"site\": \"https://miniflux.app\",\n                    \"stars\": 8929,\n                    \"pushed_at\": \"2026-03-19T03:25:40Z\",\n                    \"archived\": false,\n                    \"etag\": \"696b07930e9ea967cb2cee279d5d819c6a01e1f27d16de3e754fab369a9e50d6\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Git server\",\n            \"icon\": \"🇫🇮\",\n            \"projects\": [\n                {\n                    \"name\": \"GitLab CE\",\n                    \"description\": \"Turn-key git hosting solution.\",\n                    \"github\": \"https://github.com/gitlabhq/gitlabhq\",\n                    \"site\": \"https://about.gitlab.com/getting-help/\",\n                    \"stars\": 24268,\n                    \"pushed_at\": \"2026-03-20T12:08:02Z\",\n                    \"archived\": false,\n                    \"etag\": \"7e6c27d7dc84d20a611283c2123b4b3824d11323fd59f2d6c0eedef454c7b48c\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Gitolight\",\n                    \"description\": \"Git hosting on a server, with very fine-grained access control and many powerful features.\",\n                    \"github\": \"https://github.com/sitaramc/gitolite\",\n                    \"site\": \"https://github.com/sitaramc/gitolite/wiki\",\n                    \"stars\": 8577,\n                    \"pushed_at\": \"2026-02-22T15:31:38Z\",\n                    \"archived\": false,\n                    \"etag\": \"49e46b5f3daa83c4221d3735eb1ca8f022058c4255012cf9b98365adaa6aba60\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Gitea\",\n                    \"description\": \"Lightweight and powerful git server made with Go, so you can deploy it even on Raspberry Pi.\",\n                    \"github\": \"https://github.com/go-gitea/gitea\",\n                    \"site\": \"https://gitea.com\",\n                    \"stars\": 54395,\n                    \"pushed_at\": \"2026-03-19T18:13:41Z\",\n                    \"archived\": false,\n                    \"etag\": \"c3cda97a49770eb7dd3074b43d06fdb7d374ad325bb9fbd5c45c1bfe762e7752\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Pagure\",\n                    \"description\": \"Lightweight, powerful, and flexible git-centered forge with decentralization features.\",\n                    \"github\": \"https://github.com/Pagure/pagure\",\n                    \"site\": \"https://pagure.io/pagure\",\n                    \"stars\": 221,\n                    \"pushed_at\": \"2026-03-13T11:57:51Z\",\n                    \"archived\": false,\n                    \"etag\": \"ed2fe165865ad29eb7779cc74346143562b2dbb8cd437d05eecdb647c82e073e\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Forgejo\",\n                    \"description\": \"Lightweight, git-based software forging infrastructure with decentralised features. Base of [Codeberg](https://codeberg.org/) platform.\",\n                    \"github\": \"\",\n                    \"site\": \"https://forgejo.org/\",\n                    \"stars\": 0,\n                    \"pushed_at\": \"\",\n                    \"archived\": false\n                }\n            ]\n        },\n        {\n            \"name\": \"Gist/PasteBin\",\n            \"icon\": \"🗑\",\n            \"projects\": [\n                {\n                    \"name\": \"Privatebin\",\n                    \"description\": \"Minimalist, online pastebin where the server has zero knowledge of pasted data.\",\n                    \"github\": \"https://github.com/PrivateBin/PrivateBin\",\n                    \"site\": \"https://privatebin.info/\",\n                    \"stars\": 8111,\n                    \"pushed_at\": \"2026-03-20T10:22:20Z\",\n                    \"archived\": false,\n                    \"etag\": \"c189ffd7e5c999945f95d632e3bc2a7a8682105664b8ede3dda5c33dc36ac58b\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"0bin\",\n                    \"description\": \"Client side encrypted pastebin that can run without a database.\",\n                    \"github\": \"https://github.com/sametmax/0bin\",\n                    \"site\": \"https://0bin.net/\",\n                    \"stars\": 1406,\n                    \"pushed_at\": \"2025-08-19T16:11:16Z\",\n                    \"archived\": false,\n                    \"etag\": \"7cd53b835fee7610fc716bf9e6faa7a9fdb83c14a50c16260408ed916ee64462\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Opengist\",\n                    \"description\": \"Git-powered pastebin.\",\n                    \"github\": \"https://github.com/thomiceli/opengist\",\n                    \"site\": \"https://opengist.io\",\n                    \"stars\": 3050,\n                    \"pushed_at\": \"2026-03-13T03:36:20Z\",\n                    \"archived\": false,\n                    \"etag\": \"8dadf113e46995832136f52d602eae3cb384ac8e38f3453c4cf8b8abe8d34c92\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Mailchimp\",\n            \"icon\": \"🐵\",\n            \"projects\": [\n                {\n                    \"name\": \"Listmonk\",\n                    \"description\": \"High performance newsletter and mailing list manager with a modern dashboard. Single binary app.\",\n                    \"github\": \"https://github.com/knadh/listmonk\",\n                    \"site\": \"https://listmonk.app\",\n                    \"stars\": 19303,\n                    \"pushed_at\": \"2026-03-20T00:39:02Z\",\n                    \"archived\": false,\n                    \"etag\": \"c5d53777f89bfd5732f9a4197568183499b18b3c5bffca2b2e8f8cfa6c8f838c\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Kanban board\",\n            \"icon\": \"🥋Deploy\",\n            \"projects\": [\n                {\n                    \"name\": \"Wekan\",\n                    \"description\": \"Collaborative Kanban board.\",\n                    \"github\": \"https://github.com/wekan/wekan\",\n                    \"site\": \"https://wekan.fi\",\n                    \"stars\": 20887,\n                    \"pushed_at\": \"2026-03-20T13:03:40Z\",\n                    \"archived\": false,\n                    \"etag\": \"9a4d4d98891b5af965ec48410427310678b9dfbd5f4167ddbda2503f8acb7ff4\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Kanboard\",\n                    \"description\": \"Project management software that focuses on the Kanban methodology.\",\n                    \"github\": \"https://github.com/kanboard/kanboard\",\n                    \"site\": \"https://kanboard.org\",\n                    \"stars\": 9511,\n                    \"pushed_at\": \"2026-03-07T20:50:03Z\",\n                    \"archived\": false,\n                    \"etag\": \"9042943dae4d239d1c7524e73c006890daab90a1680d3cda1452e28dd2a0b465\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Taiga\",\n                    \"description\": \"Project management software with a kanban board, sprints, wiki and tickets.\",\n                    \"github\": \"https://github.com/taigaio/taiga-docker\",\n                    \"site\": \"https://taiga.io\",\n                    \"stars\": 2011,\n                    \"pushed_at\": \"2025-10-13T18:08:48Z\",\n                    \"archived\": false,\n                    \"etag\": \"421b684247f9bc5aabe46d20a1b96bb704cccaf4c4240aac318c3f847d5ba49e\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Phabricator\",\n                    \"description\": \"A collection of web apps which contains bug tracker, kanban board, wiki, chat and everything you need to build software.\",\n                    \"github\": \"https://github.com/phacility/phabricator/\",\n                    \"site\": \"http://phacility.com/phabricator/\",\n                    \"stars\": 12308,\n                    \"pushed_at\": \"2024-04-12T10:28:40Z\",\n                    \"archived\": false,\n                    \"etag\": \"cf2645a931087c65f21921e22376d12ab071354585fccf8dcc3975f8cb907ea2\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Planka\",\n                    \"description\": \"Kanban board which looks and feels exactly like Trello.\",\n                    \"github\": \"https://github.com/plankanban/planka\",\n                    \"site\": \"https://planka.app\",\n                    \"stars\": 11694,\n                    \"pushed_at\": \"2026-03-19T11:28:14Z\",\n                    \"archived\": false,\n                    \"etag\": \"5aea41e929c41890fa93d5b9ae67dc1ac6c93a7f015fa16dfbfe70dcd60b253f\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"GPS tracking system\",\n            \"icon\": \"🛰\",\n            \"projects\": [\n                {\n                    \"name\": \"OwnTracks\",\n                    \"description\": \"Lightweight program for storing and accessing location data published via MQTT or HTTP by the OwnTracks apps.\",\n                    \"github\": \"\",\n                    \"site\": \"https://github.com/owntracks\",\n                    \"stars\": 0,\n                    \"pushed_at\": \"\",\n                    \"archived\": false\n                },\n                {\n                    \"name\": \"µlogger server\",\n                    \"description\": \"Web application for real-time collection of geolocation data, tracks viewing and management.\",\n                    \"github\": \"https://github.com/bfabiszewski/ulogger-server\",\n                    \"site\": \"https://github.com/bfabiszewski/ulogger-server\",\n                    \"stars\": 605,\n                    \"pushed_at\": \"2025-03-30T18:00:13Z\",\n                    \"archived\": false,\n                    \"etag\": \"19a93879e97c7236b69f40c28bda056eccf8ed8b5ae79e8d4661160bd414ec60\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Personal finance tracker\",\n            \"icon\": \"💳\",\n            \"projects\": [\n                {\n                    \"name\": \"Firefly III\",\n                    \"description\": \"Financial manager to help you keep track of expenses, income, budgets and everything in between.\",\n                    \"github\": \"https://github.com/firefly-iii/firefly-iii\",\n                    \"site\": \"https://firefly-iii.org/\",\n                    \"stars\": 22707,\n                    \"pushed_at\": \"2026-03-20T07:25:21Z\",\n                    \"archived\": false,\n                    \"etag\": \"a7abbc4e1517a273e0af537ec1fa6cc5eb1ffeeb4d04ceb493ad43faba7c3071\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Ledger\",\n                    \"description\": \"Plain text double-entry accounting with 3rd party UI like [Prudent](https://prudent.me/). [Entry point to plain text accounting](https://plaintextaccounting.org/)\",\n                    \"github\": \"https://github.com/ledger/ledger\",\n                    \"site\": \"https://www.ledger-cli.org\",\n                    \"stars\": 5882,\n                    \"pushed_at\": \"2026-03-17T20:27:58Z\",\n                    \"archived\": false,\n                    \"etag\": \"dec8b66e957d8140032eb5e12b5b6853f153b723901ef37edfe1581afde7219e\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Beancount\",\n                    \"description\": \"Plain text double-entry accounting with 3rd party web UI like [Fava](https://github.com/beancount/fava)\",\n                    \"github\": \"https://github.com/beancount/beancount\",\n                    \"site\": \"http://beancount.github.io/\",\n                    \"stars\": 5387,\n                    \"pushed_at\": \"2026-01-30T03:05:26Z\",\n                    \"archived\": false,\n                    \"etag\": \"90aaf0142fdc2682741c2358f7076c51b8af50b9e0a34c40bc90f96c61f088a1\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"ezBookkeeping\",\n                    \"description\": \"A lightweight personal finance app with a user-friendly interface and powerful bookkeeping features.\",\n                    \"github\": \"https://github.com/mayswind/ezbookkeeping\",\n                    \"site\": \"https://ezbookkeeping.mayswind.net\",\n                    \"stars\": 4503,\n                    \"pushed_at\": \"2026-03-17T16:12:01Z\",\n                    \"archived\": false,\n                    \"etag\": \"a910638fba98168533e9d4129b66aed433ca5b6ce86091d025b106067defe61f\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Smart home\",\n            \"icon\": \"🏠\",\n            \"projects\": [\n                {\n                    \"name\": \"Home Asisstant\",\n                    \"description\": \"Home automation hub which can be deployed on Raspberry Pi\",\n                    \"github\": \"https://github.com/home-assistant/core\",\n                    \"site\": \"https://www.home-assistant.io\",\n                    \"stars\": 85473,\n                    \"pushed_at\": \"2026-03-20T14:44:59Z\",\n                    \"archived\": false,\n                    \"etag\": \"fde76514b31d247f514a1db03a3bf484fa31c4dfb2059e382efab25f05f183ac\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"OpenHAB\",\n                    \"description\": \"Vendor-neutral,  hardware/protocol-agnostic home automation hub\",\n                    \"github\": \"\",\n                    \"site\": \"https://www.openhab.org/\",\n                    \"stars\": 0,\n                    \"pushed_at\": \"\",\n                    \"archived\": false\n                },\n                {\n                    \"name\": \"Home Bridge\",\n                    \"description\": \"Lightweight server that emulates the iOS HomeKit API so you can work with smart home devices that do not support the HomeKit protocol.\",\n                    \"github\": \"https://github.com/homebridge/homebridge\",\n                    \"site\": \"https://homebridge.io\",\n                    \"stars\": 25249,\n                    \"pushed_at\": \"2026-03-14T12:12:16Z\",\n                    \"archived\": false,\n                    \"etag\": \"ea5cbf000a43eab4971703c7f7ef920218027e0b9b9f8c52cb49820725276463\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"IFTTT\",\n            \"icon\": \"🌀\",\n            \"projects\": [\n                {\n                    \"name\": \"n8n\",\n                    \"description\": \"Node-based Workflow Automation Tool with visual editor.\",\n                    \"github\": \"https://github.com/n8n-io/n8n\",\n                    \"site\": \"https://n8n.io\",\n                    \"stars\": 180183,\n                    \"pushed_at\": \"2026-03-20T14:43:21Z\",\n                    \"archived\": false,\n                    \"etag\": \"604181af10bc9a6a1e0c83b9154d6d6a3285496f665fed0d8d139397d8019bf8\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Beehive\",\n                    \"description\": \"A flexible event/agent & automation system made with Go.\",\n                    \"github\": \"https://github.com/muesli/beehive\",\n                    \"site\": \"https://github.com/muesli/beehive\",\n                    \"stars\": 6483,\n                    \"pushed_at\": \"2023-02-25T01:54:22Z\",\n                    \"archived\": false,\n                    \"etag\": \"ae7937c0edd991f60f7ae17ddcb137e64d95c9fa2d61f0a60b68c234262b5626\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Huginn\",\n                    \"description\": \"System for building agents that perform automated tasks for you online. Written in Ruby.\",\n                    \"github\": \"https://github.com/huginn/huginn\",\n                    \"site\": \"https://github.com/huginn/huginn\",\n                    \"stars\": 48901,\n                    \"pushed_at\": \"2026-03-20T12:36:29Z\",\n                    \"archived\": false,\n                    \"etag\": \"f035c33354f3b9e6290b011566e861e95f0070f3d0ec4bf20228bd6e993c5eca\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Kibitzr\",\n                    \"description\": \"Tiny server to notify about (almost) anything in the web.\",\n                    \"github\": \"https://github.com/kibitzr/kibitzr\",\n                    \"site\": \"https://kibitzr.github.io\",\n                    \"stars\": 712,\n                    \"pushed_at\": \"2025-05-05T16:24:19Z\",\n                    \"archived\": false,\n                    \"etag\": \"d08e86ece15a7df3c0d36331d0f2a7c57045995ff8c9bf97c8a89577f406d7c0\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"One-time password provider\",\n            \"icon\": \"🔐\",\n            \"projects\": [\n                {\n                    \"name\": \"2FAuth\",\n                    \"description\": \"A web app to manage your Two-Factor Authentication accounts and generate security codes.\",\n                    \"github\": \"https://github.com/Bubka/2FAuth\",\n                    \"site\": \"https://docs.2fauth.app/\",\n                    \"stars\": 3816,\n                    \"pushed_at\": \"2026-03-19T00:06:04Z\",\n                    \"archived\": false,\n                    \"etag\": \"5a4f4f1c88fe25ee7adf83bfab6365fbddac62e79db9c8cebc6b55d5c1fda27d\",\n                    \"error\": null\n                }\n            ]\n        },\n        {\n            \"name\": \"Container Management System\",\n            \"icon\": \"🐳\",\n            \"projects\": [\n                {\n                    \"name\": \"Portainer\",\n                    \"description\": \"Container management tool. It allows anyone to deploy and manage containers without the need to write code.\",\n                    \"github\": \"https://github.com/portainer/portainer\",\n                    \"site\": \"https://www.portainer.io\",\n                    \"stars\": 36905,\n                    \"pushed_at\": \"2026-03-20T13:24:05Z\",\n                    \"archived\": false,\n                    \"etag\": \"c210d3bdfe9032bfab145157775247b2b33ce647e7250852027c6d59627fe07e\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Yacht\",\n                    \"description\": \"A web interface for managing docker containers with an emphasis on templating to provide 1 click deployments.\",\n                    \"github\": \"https://github.com/SelfhostedPro/Yacht\",\n                    \"site\": \"https://github.com/SelfhostedPro/Yacht\",\n                    \"stars\": 47,\n                    \"pushed_at\": \"2026-02-17T14:31:02Z\",\n                    \"archived\": false,\n                    \"etag\": \"e71c1734b5d5e04fbafc6185e6eae75fca0411d28828a19062cbfaecb14ecbe8\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Pterodactyl\",\n                    \"description\": \"Game server management panel. It runs game servers in isolated containers while exposing a beautiful web UI to the users.\",\n                    \"github\": \"https://github.com/pterodactyl/panel\",\n                    \"site\": \"https://pterodactyl.io\",\n                    \"stars\": 8708,\n                    \"pushed_at\": \"2026-02-14T19:36:15Z\",\n                    \"archived\": false,\n                    \"etag\": \"6dc720787c96b82526bc81858e8f4bc8e99d790d4d35a884ef82d83a27962d2c\",\n                    \"error\": null\n                },\n                {\n                    \"name\": \"Umbrel\",\n                    \"description\": \"Either a docker image or OS that provides you with the most beautiful web interface to manage containerized web services.\",\n                    \"github\": \"https://github.com/getumbrel/umbrel\",\n                    \"site\": \"https://umbrel.com\",\n                    \"stars\": 10804,\n                    \"pushed_at\": \"2026-02-11T06:34:24Z\",\n                    \"archived\": false,\n                    \"etag\": \"f97f604c9c63580f91aeb20e9fbd6b8e3270d5c28b25d864d3b619caa88cce42\",\n                    \"error\": null\n                }\n            ]\n        }\n    ]\n}"
  },
  {
    "path": "keep-alive.py",
    "content": "import os\nimport json\nimport re\nimport urllib.request\nimport urllib.error\nfrom datetime import datetime\n\ndef get_github_repo_info(github_url, token, etag=None):\n    match = re.search(r'github\\.com/([^/]+)/([^/#?]+)', github_url)\n    if not match:\n        return None\n\n    owner = match.group(1)\n    repo = match.group(2).replace('.git', '')\n\n    api_url = f\"https://api.github.com/repos/{owner}/{repo}\"\n    headers = {\n        \"Authorization\": f\"token {token}\",\n        \"Accept\": \"application/vnd.github.v3+json\",\n        \"User-Agent\": \"DYOS-DB-Enricher\"\n    }\n\n    if etag:\n        # Restore quotes if they were stripped for storage\n        request_etag = etag if etag.startswith('\"') else f'\"{etag}\"'\n        headers[\"If-None-Match\"] = request_etag\n\n    req = urllib.request.Request(api_url, headers=headers)\n\n    try:\n        with urllib.request.urlopen(req) as response:\n            status = response.getcode()\n            if status == 200:\n                data = json.loads(response.read().decode('utf-8'))\n                raw_etag = response.headers.get(\"ETag\")\n                return {\n                    \"status\": \"ok\",\n                    \"stars\": data.get(\"stargazers_count\", 0),\n                    \"pushed_at\": data.get(\"pushed_at\", \"\"),\n                    \"site\": data.get(\"homepage\") or \"\",\n                    \"etag\": raw_etag.strip('\"') if raw_etag else None\n                }\n    except urllib.error.HTTPError as e:\n        if e.code == 304:\n            return {\"status\": \"not_modified\"}\n        error_msg = f\"HTTP Error {e.code}\"\n        print(f\"Error fetching {github_url}: {error_msg}\")\n        return {\"status\": \"error\", \"message\": error_msg}\n    except Exception as e:\n        error_msg = str(e)\n        print(f\"Exception for {github_url}: {error_msg}\")\n        return {\"status\": \"error\", \"message\": error_msg}\n    return None\n\ndef load_env():\n    env_path = os.path.join(os.path.dirname(__file__), \".env\")\n    if os.path.exists(env_path):\n        with open(env_path, \"r\") as f:\n            for line in f:\n                if line.startswith(\"GH_ACCESS_TOKEN=\"):\n                    return line.strip().split(\"=\", 1)[1]\n    return None\n\ndef main():\n    token = os.environ.get(\"GH_ACCESS_TOKEN\") or load_env()\n    if not token:\n        print(\"Error: GH_ACCESS_TOKEN not found in environment or .env file.\")\n        exit(1)\n\n    db_path = \"dyos-db.json\"\n\n    try:\n        with open(db_path, \"r\", encoding=\"utf-8\") as f:\n            db = json.load(f)\n    except FileNotFoundError:\n        print(\"Database file not found.\")\n        return\n\n    updated_count = 0\n    not_modified_count = 0\n    non_github_count = 0\n    archived_count = 0\n    total_in_db = 0\n\n    for group in db.get(\"groups\", []):\n        for project in group.get(\"projects\", []):\n            total_in_db += 1\n            if project.get(\"archived\"):\n                archived_count += 1\n                continue\n            github_url = project.get(\"github\")\n            if not github_url:\n                non_github_count += 1\n                continue\n\n            current_etag = project.get(\"etag\")\n            info = get_github_repo_info(github_url, token, current_etag)\n\n            if not info:\n                non_github_count += 1\n                continue\n\n            if info[\"status\"] == \"ok\":\n                project[\"stars\"] = info[\"stars\"]\n                project[\"pushed_at\"] = info[\"pushed_at\"]\n                if info[\"site\"]:\n                    project[\"site\"] = info[\"site\"]\n                project[\"etag\"] = info[\"etag\"]\n                project[\"error\"] = None\n                updated_count += 1\n                print(f\"Updated: {project['name']}\")\n            elif info[\"status\"] == \"not_modified\":\n                not_modified_count += 1\n                project[\"error\"] = None\n                # print(f\"Not modified: {project['name']}\")\n            elif info[\"status\"] == \"error\":\n                project[\"error\"] = info[\"message\"]\n\n    with open(db_path, \"w\", encoding=\"utf-8\") as f:\n        json.dump(db, f, indent=4, ensure_ascii=False)\n\n    print(f\"Done. Updated: {updated_count}, Not modified: {not_modified_count}, Non-GitHub: {non_github_count}, Archived: {archived_count}, Total in DB: {total_in_db}\")\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "readme-gen.py",
    "content": "import json\nfrom datetime import datetime, timezone\n\ndef format_relative_time(pushed_at_str):\n    if not pushed_at_str:\n        return \"\", \"\"\n\n    try:\n        # GitHub uses UTC 'Z' or offset\n        pushed_at = datetime.fromisoformat(pushed_at_str.replace('Z', '+00:00'))\n        # Current time\n        now = datetime.now(timezone.utc)\n\n        diff = now - pushed_at\n        seconds = diff.total_seconds()\n\n        if seconds < 0:\n            return \"just now\", \"🟢\"\n\n        minutes = seconds / 60\n        hours = minutes / 60\n        days = hours / 24\n        months = days / 30.44\n        years = days / 365.25\n\n        # Determine status color\n        if days < 31:\n            status = \"🟢\"\n        elif days < 365:\n            status = \"🟠\"\n        else:\n            status = \"🔴\"\n\n        # Determine relative text\n        if hours < 1:\n            text = f\"{int(minutes)}m\"\n        elif days < 1:\n            text = f\"{int(hours)}h\"\n        elif months < 1:\n            text = f\"{int(days)}d\"\n        elif years < 1:\n            text = f\"{int(months)}mo\"\n        else:\n            text = f\"{int(years)}y\"\n\n        return text, status\n    except Exception:\n        return \"\", \"\"\n\ndef main():\n    db_path = \"dyos-db.json\"\n    output_path = \"README.md\"\n\n    try:\n        with open(db_path, \"r\", encoding=\"utf-8\") as f:\n            db = json.load(f)\n    except FileNotFoundError:\n        print(f\"Error: {db_path} not found.\")\n        return\n\n    # Header\n    lines = []\n    lines.append(\"![Scryer](/scryer.jpg)\")\n    lines.append(\"\")\n\n    for group in db.get(\"groups\", []):\n        group_name = group.get(\"name\", \"Unknown\")\n        icon = group.get(\"icon\", \"\")\n        lines.append(f\"&nbsp;\")\n        lines.append(f\"### {icon} Deploy your own `{group_name}`\")\n\n        # Table Header\n        lines.append(\"\")\n        lines.append(\"| Name | Description | ⭐️ | Updated |\")\n        lines.append(\"| :--- | :--- | :---: | :--- |\")\n\n        # Sort projects by stars count descending\n        projects = group.get(\"projects\", [])\n        projects.sort(key=lambda x: x.get(\"stars\", 0), reverse=True)\n\n        for project in projects:\n            name = project.get(\"name\", \"Unnamed\")\n            description = project.get(\"description\", \"\")\n            github = project.get(\"github\", \"\")\n            site = project.get(\"site\", \"\")\n            stars = project.get(\"stars\", 0)\n            pushed_at = project.get(\"pushed_at\", \"\")\n\n            # Primary Link: GitHub priority, then Site\n            primary_link = github if github else site\n\n            rel_time, status = format_relative_time(pushed_at)\n\n            # Table Row\n            stars_val = str(stars) if stars > 0 else \"n/a\"\n            updated_val = f\"{status} {rel_time}\".strip() if rel_time else \"n/a\"\n\n            # Clean up description to ensure it doesn't break table (remove newlines if any)\n            description = description.replace(\"\\n\", \" \")\n\n            lines.append(f\"| [{name}]({primary_link}) | {description} | {stars_val} | {updated_val} |\")\n\n        lines.append(\"\")\n\n    # Footer\n    lines.append(\"----\")\n    lines.append(\"\")\n    lines.append(\"Worth to check:\")\n    lines.append(\"- https://www.reddit.com/r/selfhosted/\")\n    lines.append(\"- https://github.com/sovereign/sovereign\")\n    lines.append(\"\")\n    lines.append(\"Cover mashup based on [KADA★BURA](https://www.kadaburadraws.com/pixel-art#/text-rpg/) art.\")\n\n    with open(output_path, \"w\", encoding=\"utf-8\") as f:\n        f.write(\"\\n\".join(lines) + \"\\n\")\n\n    print(f\"Successfully generated {output_path} with table layout.\")\n\nif __name__ == \"__main__\":\n    main()\n"
  }
]