{"id":50843865,"url":"https://github.com/ulsklyc/yuvomi","last_synced_at":"2026-06-14T08:03:09.522Z","repository":{"id":346653472,"uuid":"1190598050","full_name":"ulsklyc/yuvomi","owner":"ulsklyc","description":"Self-hosted family planner - tasks, calendars, shopping, meals, budget. Your data, your server.  ","archived":false,"fork":false,"pushed_at":"2026-06-08T22:32:51.000Z","size":238985,"stargazers_count":880,"open_issues_count":13,"forks_count":51,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-06-09T00:04:27.651Z","etag":null,"topics":["docker","family","family-planner","home-automation","open-source","planner-app","privacy-first","progressive-web-app","pwa","self-hosted","selfhosted","selfhosted-apps"],"latest_commit_sha":null,"homepage":"https://ulsklyc.github.io/yuvomi/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ulsklyc.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":"ulsklyc","thanks_dev":null,"custom":null}},"created_at":"2026-03-24T12:46:14.000Z","updated_at":"2026-06-08T22:33:33.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ulsklyc/yuvomi","commit_stats":null,"previous_names":["ulsklyc/oikos","ulsklyc/yuvomi"],"tags_count":455,"template":false,"template_full_name":null,"purl":"pkg:github/ulsklyc/yuvomi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulsklyc%2Fyuvomi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulsklyc%2Fyuvomi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulsklyc%2Fyuvomi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulsklyc%2Fyuvomi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ulsklyc","download_url":"https://codeload.github.com/ulsklyc/yuvomi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ulsklyc%2Fyuvomi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34313520,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","family","family-planner","home-automation","open-source","planner-app","privacy-first","progressive-web-app","pwa","self-hosted","selfhosted","selfhosted-apps"],"created_at":"2026-06-14T08:03:08.910Z","updated_at":"2026-06-14T08:03:09.516Z","avatar_url":"https://github.com/ulsklyc.png","language":"JavaScript","funding_links":["https://buymeacoffee.com/ulsklyc"],"categories":[],"sub_categories":[],"readme":"\u003e ### 📣 Oikos is now **Yuvomi**\n\u003e This project was renamed from **Oikos** to **Yuvomi** to avoid a trademark conflict with an unrelated product of the same name. **Nothing about the app changes** — same code, same data, same maintainer.\n\u003e\n\u003e - Old links (`github.com/ulsklyc/oikos`) automatically redirect here.\n\u003e - The Docker image moved to `ghcr.io/ulsklyc/yuvomi`; the old `ghcr.io/ulsklyc/oikos` keeps working for now — please update at your convenience.\n\u003e - Your existing data and settings are fully preserved on upgrade.\n\u003e\n\u003e New home: **https://yuvomi.cloud/** · Questions? Open a [discussion](https://github.com/ulsklyc/yuvomi/discussions).\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"docs/logo.svg\" alt=\"Yuvomi\" width=\"92\" /\u003e\n\n  \u003ch1\u003eYuvomi\u003c/h1\u003e\n  \u003cp\u003e\u003cstrong\u003eThe self-hosted family planner. Private, offline-capable, and beautiful.\u003c/strong\u003e\u003c/p\u003e\n\n  \u003cp\u003e\n    \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT-blue?style=flat-square\" alt=\"MIT License\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/ulsklyc/yuvomi/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/ulsklyc/yuvomi?style=flat-square\u0026color=6c3aed\u0026label=release\" alt=\"Latest Release\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/ulsklyc/yuvomi/pkgs/container/yuvomi\"\u003e\u003cimg src=\"https://img.shields.io/badge/ghcr.io-yuvomi-2496ED?style=flat-square\u0026logo=docker\u0026logoColor=white\" alt=\"Docker Image\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://nodejs.org\"\u003e\u003cimg src=\"https://img.shields.io/badge/node-%E2%89%A522-339933?style=flat-square\u0026logo=node.js\u0026logoColor=white\" alt=\"Node.js ≥22\"\u003e\u003c/a\u003e\n    \u003cimg src=\"https://img.shields.io/badge/PWA-ready-5A0FC8?style=flat-square\u0026logo=pwa\u0026logoColor=white\" alt=\"PWA\"\u003e\n    \u003ca href=\"https://github.com/ulsklyc/yuvomi/pulls\"\u003e\u003cimg src=\"https://img.shields.io/badge/PRs-welcome-brightgreen?style=flat-square\" alt=\"PRs Welcome\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://apps.truenas.com/catalog/oikos_community/\"\u003e\u003cimg src=\"https://img.shields.io/badge/TrueNAS-0095D5?style=flat-square\u0026logo=truenas\u0026logoColor=white\" alt=\"TrueNAS SCALE\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://ca.unraid.net/apps/oikos-0s9fwat1sxc881\"\u003e\u003cimg src=\"https://img.shields.io/badge/Unraid-F1A208?style=flat-square\u0026logo=unraid\u0026logoColor=white\" alt=\"Unraid\"\u003e\u003c/a\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Umbrel-241E22?style=flat-square\u0026logo=umbrel\u0026logoColor=white\" alt=\"Umbrel\"\u003e\n  \u003c/p\u003e\n\n  \u003cp\u003e\n    \u003ca href=\"docs/installation.md\"\u003e\u003cstrong\u003e→ Install\u003c/strong\u003e\u003c/a\u003e \u0026nbsp;·\u0026nbsp;\n    \u003ca href=\"https://yuvomi.cloud/\"\u003e\u003cstrong\u003eWebsite \u0026 screenshots\u003c/strong\u003e\u003c/a\u003e \u0026nbsp;·\u0026nbsp;\n    \u003ca href=\"docs/SPEC.md\"\u003e\u003cstrong\u003eDocs\u003c/strong\u003e\u003c/a\u003e \u0026nbsp;·\u0026nbsp;\n    \u003ca href=\"CHANGELOG.md\"\u003e\u003cstrong\u003eChangelog\u003c/strong\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003e\u003cb\u003e14\u003c/b\u003e\u003cbr\u003e\u003csub\u003emodules\u003c/sub\u003e\u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\u003csub\u003e·\u003c/sub\u003e\u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\u003cb\u003e19\u003c/b\u003e\u003cbr\u003e\u003csub\u003elanguages\u003c/sub\u003e\u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\u003csub\u003e·\u003c/sub\u003e\u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\u003cb\u003e0\u003c/b\u003e\u003cbr\u003e\u003csub\u003etrackers\u003c/sub\u003e\u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\u003csub\u003e·\u003c/sub\u003e\u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\u003cb\u003eAES-256\u003c/b\u003e\u003cbr\u003e\u003csub\u003eoptional DB encryption\u003c/sub\u003e\u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\u003csub\u003e·\u003c/sub\u003e\u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\u003cb\u003eMIT\u003c/b\u003e\u003cbr\u003e\u003csub\u003elicense\u003c/sub\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd width=\"72%\" align=\"center\"\u003e\n        \u003cpicture\u003e\n          \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs/screenshots/dashboard-dark-web.png\"\u003e\n          \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"docs/screenshots/dashboard-light-web.png\"\u003e\n          \u003cimg src=\"docs/screenshots/dashboard-light-web.png\" alt=\"Yuvomi dashboard — tasks, calendar events, meals and shopping at a glance\" width=\"680\"\u003e\n        \u003c/picture\u003e\n      \u003c/td\u003e\n      \u003ctd width=\"28%\" align=\"center\" valign=\"middle\"\u003e\n        \u003cpicture\u003e\n          \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs/screenshots/dashboard-dark-mobile.png\"\u003e\n          \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"docs/screenshots/dashboard-light-mobile.png\"\u003e\n          \u003cimg src=\"docs/screenshots/dashboard-light-mobile.png\" alt=\"Yuvomi on mobile\" width=\"148\"\u003e\n        \u003c/picture\u003e\n        \u003cbr\u003e\n        \u003csub\u003eMobile PWA\u003c/sub\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n  \u003csub\u003eSwitch GitHub to dark mode to preview the dark theme \u0026nbsp;·\u0026nbsp; \u003ca href=\"https://yuvomi.cloud/\"\u003eSee all screenshots →\u003c/a\u003e\u003c/sub\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\nYuvomi keeps your household organized — tasks, groceries, meals, calendar, budget, and more — in one private place, without cloud accounts or subscriptions. Runs as a Docker or Podman container on any home server or NAS, including rootless Podman on SELinux-enabled RHEL/Fedora/CentOS Stream systems. A polished, mobile-first PWA makes it feel native on every device.\n\nEach module is independent. Use what fits, skip what doesn't.\n\n---\n\n## App screenshots\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" width=\"50%\"\u003e\n        \u003cpicture\u003e\n          \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs/screenshots/tasks-dark-web.png\"\u003e\n          \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"docs/screenshots/tasks-light-web.png\"\u003e\n          \u003cimg src=\"docs/screenshots/tasks-light-web.png\" alt=\"Tasks — Kanban board with priorities, deadlines and multi-member assignment\"\u003e\n        \u003c/picture\u003e\n        \u003cbr\u003e\u003csub\u003e\u003cb\u003eTasks\u003c/b\u003e — Kanban board, recurring schedules, multi-assignment\u003c/sub\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" width=\"50%\"\u003e\n        \u003cpicture\u003e\n          \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs/screenshots/calendar-dark-web.png\"\u003e\n          \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"docs/screenshots/calendar-light-web.png\"\u003e\n          \u003cimg src=\"docs/screenshots/calendar-light-web.png\" alt=\"Calendar with Google OAuth and CalDAV sync\"\u003e\n        \u003c/picture\u003e\n        \u003cbr\u003e\u003csub\u003e\u003cb\u003eCalendar\u003c/b\u003e — Google OAuth, iCloud, CalDAV, ICS subscriptions\u003c/sub\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003cpicture\u003e\n          \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs/screenshots/budget-dark-web.png\"\u003e\n          \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"docs/screenshots/budget-light-web.png\"\u003e\n          \u003cimg src=\"docs/screenshots/budget-light-web.png\" alt=\"Budget — income, expenses and split costs with debt simplification\"\u003e\n        \u003c/picture\u003e\n        \u003cbr\u003e\u003csub\u003e\u003cb\u003eBudget\u003c/b\u003e — Income, expenses, split costs, CSV export\u003c/sub\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003cpicture\u003e\n          \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs/screenshots/meals-dark-web.png\"\u003e\n          \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"docs/screenshots/meals-light-web.png\"\u003e\n          \u003cimg src=\"docs/screenshots/meals-light-web.png\" alt=\"Meals — weekly drag-and-drop planner with recipe import\"\u003e\n        \u003c/picture\u003e\n        \u003cbr\u003e\u003csub\u003e\u003cb\u003eMeals\u003c/b\u003e — Weekly planner, recipes, one-click shopping export\u003c/sub\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003cpicture\u003e\n          \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs/screenshots/shopping-dark-web.png\"\u003e\n          \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"docs/screenshots/shopping-light-web.png\"\u003e\n          \u003cimg src=\"docs/screenshots/shopping-light-web.png\" alt=\"Shopping — collaborative aisle-organized lists\"\u003e\n        \u003c/picture\u003e\n        \u003cbr\u003e\u003csub\u003e\u003cb\u003eShopping\u003c/b\u003e — Shared lists, aisle groups, swipe gestures\u003c/sub\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003cpicture\u003e\n          \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs/screenshots/contacts-dark-web.png\"\u003e\n          \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"docs/screenshots/contacts-light-web.png\"\u003e\n          \u003cimg src=\"docs/screenshots/contacts-light-web.png\" alt=\"Contacts — family directory with CardDAV sync\"\u003e\n        \u003c/picture\u003e\n        \u003cbr\u003e\u003csub\u003e\u003cb\u003eContacts\u003c/b\u003e — Family directory, CardDAV sync\u003c/sub\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n  \u003ca href=\"https://yuvomi.cloud/\"\u003eView all screenshots →\u003c/a\u003e\n\u003c/div\u003e\n\n---\n\n## Modules\n\n| | Module | What it does |\n|:---:|---|---|\n| ![tasks](https://raw.githubusercontent.com/ulsklyc/yuvomi/main/docs/icons/tasks.png) | **Tasks** | Shared tasks with deadlines, priorities, subtasks, recurring schedules, multi-member assignment, Kanban, and mobile bulk controls. Optional CalDAV import of Apple Reminders. |\n| ![shopping](https://raw.githubusercontent.com/ulsklyc/yuvomi/main/docs/icons/shopping.png) | **Shopping** | Collaborative lists organized by aisle. Touch-safe quick add, swipe gestures, and meal-plan import in one tap. Optional CalDAV import. |\n| ![meals](https://raw.githubusercontent.com/ulsklyc/yuvomi/main/docs/icons/meals.png) | **Meals** | Weekly drag-and-drop planner with multiple items per slot. Direct export to shopping list. |\n| ![recipes](https://raw.githubusercontent.com/ulsklyc/yuvomi/main/docs/icons/recipes.png) | **Recipes** | Create, duplicate, and scale recipes. Pre-fill meal slots or save any planned meal as a recipe. |\n| ![calendar](https://raw.githubusercontent.com/ulsklyc/yuvomi/main/docs/icons/calendar.png) | **Calendar** | Google Calendar (OAuth) and CalDAV sync (iCloud, Nextcloud, Radicale). ICS subscriptions, recurring events, file attachments, public \u0026 school holiday overlays (OpenHolidays), month and agenda views. |\n| ![documents](https://raw.githubusercontent.com/ulsklyc/yuvomi/main/docs/icons/documents.png) | **Documents** | Upload and organize family files. Folders, tags, per-document visibility controls, in-browser preview, drag-and-drop. New files, including calendar attachments, can optionally use WebDAV storage; Paperless-ngx and Papra (DMS) linking and uploads are supported. |\n| ![budget](https://raw.githubusercontent.com/ulsklyc/yuvomi/main/docs/icons/budget.png) | **Budget** | Income, expenses, recurring entries, trend charts, CSV export. Split Expenses with automatic debt simplification. |\n| ![housekeeping](https://raw.githubusercontent.com/ulsklyc/yuvomi/main/docs/icons/housekeeping.png) | **Housekeeping** | Manage household staff — schedules, check-in/out, daily or hourly billing, chores, supply requests. |\n| ![notes](https://raw.githubusercontent.com/ulsklyc/yuvomi/main/docs/icons/notes.png) | **Notes \u0026 Contacts** | Colored sticky notes with Markdown. Contact directory with CardDAV sync. |\n| ![birthdays](https://raw.githubusercontent.com/ulsklyc/yuvomi/main/docs/icons/birthdays.png) | **Birthdays** | Birthday tracker with automatic calendar events, age display, and custom reminders. |\n| ![family](https://raw.githubusercontent.com/ulsklyc/yuvomi/main/docs/icons/family.png) | **Family** | Member profiles with roles, photos, phone, email, and birthday — synced to Contacts and Birthdays. |\n| ![reminders](https://raw.githubusercontent.com/ulsklyc/yuvomi/main/docs/icons/reminders.png) | **Reminders** | Time-based notifications on tasks and calendar events with in-app badge counter. |\n| ![api-tokens](https://raw.githubusercontent.com/ulsklyc/yuvomi/main/docs/icons/api-tokens.png) | **API Tokens** | Named Bearer / X-API-Key tokens for integrations. OpenAPI 3.0 spec included. |\n| ![backup](https://raw.githubusercontent.com/ulsklyc/yuvomi/main/docs/icons/backup.png) | **Backup** | Manual and scheduled database backup and restore, with automatic pre-restore rollback. Optional WebDAV upload target (Nextcloud, ownCloud, Hetzner, etc.). |\n\n\u003e **WebDAV document storage needs its own backup.** SQLite/database backups contain document metadata and links, but not document binaries stored on WebDAV. Back up the WebDAV target separately.\n\u003e WebDAV targets configured in the admin UI must resolve to public network addresses. For a trusted\n\u003e LAN or loopback target, set `DOCUMENT_STORAGE_WEBDAV_URL` through the deployment environment.\n\n---\n\n## Design \u0026 technology\n\n- **Disciplined Liquid Glass UI** — readable work surfaces, subtle translucent navigation, spring animations, and module-tinted overlays — built in pure CSS, no framework\n- **PWA** — installable on any device, works offline, refreshes release-bound caches reliably, and stays responsive from phone to desktop with a persistent five-destination mobile bar, configurable favorites, and tuned touch targets\n- **Privacy first** — fully self-hosted, optional SQLCipher AES-256 database encryption (enabled in the recommended Docker setup), zero telemetry\n- **SSO / OpenID Connect** — optional single sign-on via any OIDC provider (Authentik, Keycloak, Google, Microsoft Entra) configured with four env vars; Authorization Code + PKCE flow\n- **Zero build step** — pure ES modules, no bundler, no transpiler, no framework\n- **Multilingual** — 19 languages with automatic locale detection (de, en, es, fr, it, sv, el, ru, tr, zh, ja, ar, hi, pt, uk, pl, nl, cs, vi)\n\n---\n\n## Install anywhere\n\n### Web installer (recommended)\n\nA localized setup wizard — 18 languages — that runs in your browser. Auto-detects Docker or Podman, configures HTTPS, SSO, and scheduled backups, then starts the container and creates your admin account.\n\n```bash\ngit clone https://github.com/ulsklyc/yuvomi.git \u0026\u0026 cd yuvomi\nnode tools/installer/install-server.js\n```\n\nOpen **http://localhost:8090**. Requires Node.js 18+ on the host.\n\n### Docker / Podman\n\n**Pre-built image:**\n\n```bash\ncurl -O https://raw.githubusercontent.com/ulsklyc/yuvomi/main/docker-compose.yml\ncurl -O https://raw.githubusercontent.com/ulsklyc/yuvomi/main/.env.example\ncp .env.example .env          # set SESSION_SECRET and DB_ENCRYPTION_KEY\ndocker compose up -d\n```\n\n**Build from source:**\n\n```bash\ngit clone https://github.com/ulsklyc/yuvomi.git \u0026\u0026 cd yuvomi\ncp .env.example .env\ndocker compose up -d --build\n```\n\nOpen `http://localhost:3000`. The first visit walks you through creating your admin account.\n\n\u003e **Podman (RHEL / Fedora / CentOS Stream):** Both installers auto-detect Podman and use `podman-compose.yml` with SELinux `:Z` labels. For a manual start: `podman compose -f podman-compose.yml up -d`. Rootless systemd autostart: `tools/quadlet/oikos.container`.\n\n### NAS \u0026 home servers\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eTrueNAS SCALE\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003eApps → Discover Apps → search \u003cb\u003eYuvomi\u003c/b\u003e → Install\u003c/td\u003e\n    \u003ctd\u003eNo terminal required. Community Apps Catalog. Version updates via Renovate.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eUmbrel\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003eApp Store → search \u003cb\u003eYuvomi\u003c/b\u003e → Install\u003c/td\u003e\n    \u003ctd\u003eOne-click install. Everything stays on your Umbrel.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cb\u003eUnraid\u003c/b\u003e\u003c/td\u003e\n    \u003ctd\u003eApps → search \u003cb\u003eYuvomi\u003c/b\u003e → Apply\u003c/td\u003e\n    \u003ctd\u003eCommunity Applications template. Set \u003ccode\u003eSESSION_SECRET\u003c/code\u003e during install.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003e **New to Docker or Podman?** The **[Installation Guide](docs/installation.md)** covers engine setup, HTTPS/reverse proxy, backups, and troubleshooting step by step.\n\n---\n\n## Tech stack\n\n\u003cp\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Express-000000?style=flat-square\u0026logo=express\u0026logoColor=white\" alt=\"Express\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/SQLite%20%2F%20SQLCipher-003B57?style=flat-square\u0026logo=sqlite\u0026logoColor=white\" alt=\"SQLite / SQLCipher\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Vanilla_JS_(ES_Modules)-F7DF1E?style=flat-square\u0026logo=javascript\u0026logoColor=black\" alt=\"Vanilla JS\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Plain_CSS-1572B6?style=flat-square\u0026logo=css3\u0026logoColor=white\" alt=\"Plain CSS\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Docker-2496ED?style=flat-square\u0026logo=docker\u0026logoColor=white\" alt=\"Docker\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Podman-892CA0?style=flat-square\u0026logo=podman\u0026logoColor=white\" alt=\"Podman\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/PWA-5A0FC8?style=flat-square\u0026logo=pwa\u0026logoColor=white\" alt=\"PWA\"\u003e\n\u003c/p\u003e\n\n---\n\n## Documentation\n\n[Installation](docs/installation.md) \u0026nbsp;·\u0026nbsp; [Spec \u0026 data model](docs/SPEC.md) \u0026nbsp;·\u0026nbsp; [Modules](MODULES.md) \u0026nbsp;·\u0026nbsp; [Contributing](CONTRIBUTING.md) \u0026nbsp;·\u0026nbsp; [Security](SECURITY.md) \u0026nbsp;·\u0026nbsp; [Privacy for self-hosters](docs/PRIVACY-FOR-SELFHOSTERS.md) \u0026nbsp;·\u0026nbsp; [Changelog](CHANGELOG.md) \u0026nbsp;·\u0026nbsp; [Backlog](BACKLOG.md)\n\nIf you self-host Yuvomi in a GDPR context (EU/EEA, processing other people's data), read [docs/PRIVACY-FOR-SELFHOSTERS.md](docs/PRIVACY-FOR-SELFHOSTERS.md) before going live: it covers third-country assessments for every external service (weather, CalDAV/CardDAV, OIDC, WebDAV backup and document storage), data-processing-agreement notes, log-retention guidance, and a records-of-processing template.\n\n---\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n\n\u003cdiv align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003csub\u003eBuilt with care for families who value privacy and simplicity.\u003c/sub\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fulsklyc%2Fyuvomi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fulsklyc%2Fyuvomi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fulsklyc%2Fyuvomi/lists"}