LX-Family

LX-Family

apps.detail.types.app from UnraidUser-0436170630's Repository

apps.detail.sections.overview

LX Family · Private Family OS with calendars, tasks, shopping, meals, chat, Android notifications, Family Cloud and dedicated child and pet profiles.

LX Family — Private Family OS

English · Deutsch

Open the live demo Download the Android app Start in five minutes

CI status Version 1.18.2 Node.js 22+ Docker ready Android 7+ MIT license

A self-hosted Family OS with separate spaces for parents, children, grandparents and pets.
Your routines, your server, your family data.

LX Family is a private Family OS that brings the everyday life of a household into one calm, role-aware app:

  • organize calendars, chores, meals, shopping, school, chat and family files;
  • give children an age-appropriate world with routines, missions, rewards and parental approval instead of a scaled-down admin screen;
  • keep everything on your own server, with optional Nextcloud, Home Assistant and native Android notifications.

New name, same safe update path: LX Family was previously called LX Family Planner. The repository, Docker image and Android package identifier deliberately stay stable, so existing installations update normally. Read the short renaming note.

Try it first

[!TIP] Open the read-only live demo
Family: Demo · password: demo
Choose Doris for the adult experience or Jeremy Pascal for the child experience. The demo is a shared showroom—please do not enter personal data.

LX Family adult dashboard

One-tap profile selection A real child experience
Bubble profile selection Child profile in the hero theme
See calendars, chores, cloud, pets, family mail and tablet mode
Shared calendar Chores and approvals
Shared family calendar Chore overview
Family Cloud inside LX Parent control centre
Integrated Family Cloud Parent control centre
Pet profile Family mailbox
Pet profile Mailbox for connected families

Landscape tablet mode

What makes it different?

LX Family A traditional family calendar
Children visual routines, missions, stars and parent-approved chores mostly the adult UI with fewer controls
Profiles adults, children, teens, grandparents, managed people and pets usually one generic account type
Family network invite grandparents or another household and share only what you approve usually one isolated household
Data ownership self-hosted SQLite, safe updates, optional Nextcloud provider account and cloud required
Home setup Docker, Proxmox, Unraid, Umbrel, CasaOS, Cosmos or plain Node.js vendor-specific
Integrations Android push, browser push, Home Assistant, Bring!, ICS and Gotify varies by vendor

Highlights

  • Family calendar: multiple participants, recurring appointments, birthdays, waste collection, ICS subscriptions and flexible reminders.
  • Chores that stay fair: shared assignments, automatic rotation, recurring routines and a four-eyes approval flow before children receive stars.
  • Meals and recipes: meal plan, cooking mode, shopping-list hand-off and safe imports from public recipe sites, Pinterest, Facebook Reels, Tandoor and My Recipe Box exports, including direct Android sharing of RTK backups.
  • Family communication: group chat, protected direct messages, a pinboard, attachments and a mailbox between explicitly connected families.
  • Child spaces: school timetable, pocket money, savings goals, moods, media limits, emergency card, achievements and profile-specific dashboards.
  • Designed for the whole home: dedicated pet profiles, managed profiles for people without an account, grandparent access and a landscape tablet mode.
  • Your infrastructure: encrypted integration secrets, consistent backups, migration simulation, data-integrity checks and an optional Family Cloud.

The complete feature and operations guide is available in the German documentation while the English guide is being expanded.

Quick start

Docker Compose (recommended)

git clone https://github.com/laxxx-lab/lx-family-planner.git
cd lx-family-planner
cp .env.example .env
sed -i "s/^APP_SECRET=.*/APP_SECRET=$(openssl rand -hex 32)/" .env
docker compose up -d --build

Open http://SERVER-IP:3001, create the first family and complete the guided setup. The secure defaults allow the first family registration and then close public registration automatically. Family names are not listed publicly.

Your server, your address: LX Family does not operate a hosted service for other families. Each installation uses its own IP address or domain. See self-hosting for LAN, HTTPS, Android and CORS.

[!IMPORTANT] Keep .env, APP_SECRET, data/ and backups/ private. Never commit a Firebase service account, Nextcloud password or real family content.

On Windows, Start-Familienplaner.cmd performs the same setup with a double click. Existing installations can use the guarded updater:

Every guarded update creates a consistent backup, runs migrations on a copy, checks the result and rolls back if validation fails. LX retains the three newest local backup-and-manifest pairs; a fourth is held only until a guarded update has passed all checks. The data/ and backups/ directories are independent from the application image.

Without Docker

Requires Node.js 22.13 or newer:

git clone https://github.com/laxxx-lab/lx-family-planner.git
cd lx-family-planner
npm ci
cp .env.example .env
npm run build
npm start

For development, run npm run server and npm run dev in separate terminals.

Languages

The visible language switch offers German, English, French, Spanish, Italian, Dutch and Polish before login and in the main header. The choice stays on the device. Set APP_LANGUAGE=en (or another supported language code) to choose the default for a new installation and server-generated notifications.

Translation catalogues are key-checked during CI so a language cannot silently lose UI strings. Native speakers are warmly invited to improve wording through small, focused pull requests.

Optional Family Cloud

LX can provision a separate Nextcloud account for each family, expose shared and personal profile folders inside the app, sync calendars in both directions and store encrypted backups. Enable the bundled Nextcloud profile with the provided helper instead of committing credentials:

./scripts/nextcloud-enable.sh

An existing Nextcloud can be used as well. See the detailed cloud guide for reverse proxy, trusted-domain, quota and restore instructions.

Quality and trust

Every pull request runs the same production-oriented checks used before a release:

  • JavaScript syntax and translation-key parity;
  • API, permissions, migration, backup and data-integrity regression tests;
  • recipe, calendar, push, Nextcloud and platform packaging tests;
  • a production frontend build;
  • safe-update simulation against a copied SQLite database.

Useful local commands:

npm run check
npm run backup
npm run simulate-update
npm run audit

Security-sensitive reports belong in a private GitHub Security Advisory, not in a public issue. Read the security policy, contribution guide and roadmap.

Project direction

LX is built around four principles: children are supported rather than monitored; private data is filtered on the server; integrations stay optional; and an update must not cost a family its history. Near-term work focuses on offline reliability, open CalDAV connections, a guided restore flow and optional modules for larger household features.

Development is maintainer-led and uses automated tests plus AI-assisted tooling. Changes are reviewed and validated against the working application before a release. See CONTRIBUTING.md for the workflow.

Help LX grow

If LX solves a real problem for your household:

  • give the repository a Star so more self-hosters can discover it;
  • share one concrete use case or screenshot in GitHub Discussions;
  • report a reproducible bug or propose a focused improvement;
  • help review an English or German translation.

Optional one-time or monthly support through GitHub Sponsors is being prepared. Sponsorship will never unlock features or create a paid priority lane: LX remains free and the same application for every family.

Built for families who want helpful software without giving up their home data.

apps.detail.sections.mediaGallery

1 / 3

apps.marketingCta.appInstallTitle

apps.marketingCta.appInstallDescription

apps.installHelp.stepOpen apps.installHelp.stepSearchApp apps.installHelp.stepReview apps.installHelp.stepInstall

apps.detail.sections.requirements

A 32-character or longer random APP_SECRET. Keep the same value for every update.

apps.detail.sections.categories

apps.detail.sections.related

apps.detail.sections.details

apps.detail.details.repository
ghcr.io/laxxx-lab/lx-family-planner:latest
apps.detail.details.lastUpdated2026-08-10
apps.detail.details.firstSeen2026-07-30

apps.detail.sections.runtime

apps.detail.details.webui
http://[IP]:[PORT:3001]
apps.detail.details.network
bridge
apps.detail.details.shell
bash
apps.detail.details.privileged
false

apps.detail.sections.configuration

WebUIPorttcp

Port used to open LX Family.

apps.detail.config.target
3001
apps.detail.config.default
3001
Family dataPathrw

Persistent database, integration secrets and Firebase configuration.

apps.detail.config.target
/app/data
apps.detail.config.default
/mnt/user/appdata/lx-family-planner/data
BackupsPathrw

Persistent LX Family backups.

apps.detail.config.target
/app/backups
apps.detail.config.default
/mnt/user/appdata/lx-family-planner/backups
Unraid user IDVariable

Linux user ID used for files in the appdata folders. Unraid normally uses 99 (nobody).

apps.detail.config.target
PUID
apps.detail.config.default
99
Unraid group IDVariable

Linux group ID used for files in the appdata folders. Unraid normally uses 100 (users).

apps.detail.config.target
PGID
apps.detail.config.default
100
App secretVariable

Random secret with at least 32 characters. Never change it after the first start.

apps.detail.config.target
APP_SECRET
Registration modeVariable

Secure default: only the first family can register. Use invite for controlled additional families or open only for an intentional public portal.

apps.detail.config.target
REGISTRATION_MODE
apps.detail.config.default
first-family
Registration invite codeVariable

Required by new families when registration mode is invite. Use a long random value.

apps.detail.config.target
REGISTRATION_INVITE_CODE
Public family directoryVariable

Keep false to prevent family names and profile counts from being visible before login.

apps.detail.config.target
PUBLIC_FAMILY_DIRECTORY
apps.detail.config.default
false
TimezoneVariable

Timezone used for calendar reminders and scheduled tasks.

apps.detail.config.target
TZ
apps.detail.config.default
Europe/Berlin
Secure session cookieVariable

Automatically uses secure cookies when accessed through HTTPS.

apps.detail.config.target
SESSION_COOKIE_SECURE
apps.detail.config.default
auto
Database fileVariable

Persistent SQLite database location.

apps.detail.config.target
DATABASE_FILE
apps.detail.config.default
/app/data/family_planner.sqlite
Legacy database fileVariable

Optional path used for a one-time migration from older LX versions.

apps.detail.config.target
LEGACY_DATABASE_FILE
apps.detail.config.default
/app/data/family_db.json