Kitchen Board

A family wall board for shopping, meals, calendars, chores and timers

  • ghcr.io/hsinghhira/kitchen-board:latest
  • v1.6
  • Updated 30 Oct 2026
  • port 6179
  • amd64 · arm64
  • Home

Screenshots

Kitchen Board screenshot 1: BoardKitchen Board screenshot 2: CalendarKitchen Board screenshot 3: StockKitchen Board screenshot 4: MealsKitchen Board screenshot 5: ChoresKitchen Board screenshot 6: Themes

Open the app

Web App

http://localhost:6179/

About Kitchen Board

Kitchen Board is a household organiser made to live on a kitchen tablet and on everyone's phone. It looks like a paper wall calendar with a shopping list pinned to it, and keeps every screen in sync as people tick things off. Every install makes its own sign-in key on first start.

Features

  • Shared shopping lists with a focused Shopping Trip mode
  • Stock, meal planning and Mealie recipe import
  • A shared calendar with recurring events, .ics feeds and Google Calendar overlays
  • Chores, rewards, routines, countdowns and kitchen timers
  • Notes, weather and simple statistics
  • A photo-frame screensaver, with an optional Immich album
  • Push, email and Apprise notifications, OIDC single sign-on, and six languages
  • Installs as an app on phones (PWA)

How to use

  1. Open Kitchen Board at http://[ZIMAOS-IP-ADDRESS]:6179.
  2. Sign in with your ADMIN_EMAIL and password.
  3. Open Admin to add the people in your household.
  4. Add shopping items, events and chores. Every screen updates by itself.
  5. On a phone, use "Add to Home Screen" to install it like an app.

Before you install

Change ADMIN_EMAIL from [email protected] to your email. Set ADMIN_PASSWORD (8 characters or more), or leave it empty and Kitchen Board prints one in the app log on the line with Password:. Both are only read on the very first start. It is ready in about half a minute. The sign-in key is made on first start and kept in the data folder as .secret_key. Email, push notifications, OIDC and more are in the Variables tab; add them in the app settings, or set most of them in the Admin page.

The settings in the first table are already in the app settings. To use any other one, open the app settings, add the variable with your value, save, and the app restarts with it. A setting you leave out uses its default.

In the app settings

VariableDefault valueDescription
TZ$TZYour time zone. It is filled in from your ZimaOS time zone. Leave it unless you need another.
ADMIN_EMAIL[email protected]The email you sign in with as the first admin. Replace [email protected] with your own. Only used on the very first start.
ADMIN_PASSWORD—Optional. The first admin's password, at least 8 characters. Leave it empty and Kitchen Board makes one and prints it in the app log on the line with "Password:". Only used on the very first start.

Server

VariableDefault valueDescription
SECRET_KEY—Your own sign-in key, at least 32 characters (openssl rand -hex 32). Leave it out: each install makes its own on first start and keeps it in the data folder as .secret_key. Changing it signs everyone out.
KB_LANGUAGEen-GBThe starting language: en-GB, en-001, de, fr, it or es. The language picked in Admin wins once it is saved.
ALLOWED_HOSTS—Comma-separated host names Kitchen Board answers to, like 192.168.1.20,kitchen.local. Leave it out to answer on any address. If you set it, add every address you open it by.
APP_BASE_URL—The address used in password reset and magic sign-in emails, like http://192.168.1.20:6179. Leave it out to use the address in the browser.
SECURE_COOKIESfalseSet to true when you open Kitchen Board through https.
TRUSTED_PROXY_IPS127.0.0.1,::1Reverse proxy IPs whose forwarded visitor address is trusted for the sign-in rate limit.
FORWARDED_ALLOW_IPS127.0.0.1Reverse proxy IPs whose proxy headers are trusted.
NIGHTLY_BACKUP_KEEP7Nightly database copies kept in data/backups. 0 turns them off.
DB_WATCHDOG_EXIT_MINUTES10Minutes the database may stop answering before the app restarts itself. 0 only logs it.

Sign-in

VariableDefault valueDescription
ACCESS_TOKEN_EXPIRE_MINUTES525600How long a sign-in lasts, in minutes. The default is one year.
PASSWORD_RESET_EXPIRE_MINUTES60How long a password reset link works, in minutes.
MAGIC_LOGIN_EXPIRE_MINUTES15How long a magic sign-in link works, in minutes.

Sign in with OIDC

VariableDefault valueDescription
OIDC_ENABLEDfalseSet to true to show a single sign-on button. The Admin page setting wins once saved.
OIDC_ISSUER—Your provider's address, like https://id.example.com.
OIDC_CLIENT_ID—The client ID from your provider.
OIDC_CLIENT_SECRET—The client secret. Leave it out for a public client.
OIDC_DISPLAY_NAME—The name on the sign-in button, like Pocket ID.
OIDC_SCOPESopenid email profileThe scopes asked for.
OIDC_REDIRECT_URI—Your own callback address. Leave it out to build it from APP_BASE_URL.
OIDC_AUTO_PROVISIONfalseSet to true to make an account the first time someone signs in.
OIDC_ENFORCE_LOCAL_MFAfalseSet to true to also ask for the Kitchen Board authenticator code.
OIDC_ALLOW_PRIVATE_NETWORKfalseSet to true when your provider runs on your home network.

Email (SMTP)

VariableDefault valueDescription
SMTP_HOST—Your SMTP server, for password resets and magic sign-in links.
SMTP_PORT587The SMTP port.
SMTP_USERNAME—The SMTP user name, often the sending mailbox.
SMTP_PASSWORD—The SMTP password or app password.
SMTP_FROM—The From address. Leave it out to use SMTP_USERNAME.
SMTP_ENCRYPTIONstarttlsstarttls (port 587), ssl (port 465) or none.
SMTP_AUTH_MODEpasswordpassword, or oauth2 with the SMTP_OAUTH_* settings below.
SMTP_OAUTH_PROVIDERcustomgoogle, microsoft or custom, for oauth2 email.
SMTP_OAUTH_TOKEN_URL—The token address, for a custom OAuth provider.
SMTP_OAUTH_CLIENT_ID—The OAuth client ID for email.
SMTP_OAUTH_CLIENT_SECRET—The OAuth client secret for email.
SMTP_OAUTH_REFRESH_TOKEN—The refresh token used to get email access tokens.
SMTP_OAUTH_SCOPE—An optional scope, like https://mail.google.com/.
SMTP_OAUTH_REDIRECT_URI—The OAuth callback address. Leave it out to use /admin/email-oauth/callback.

Notifications

VariableDefault valueDescription
VAPID_PUBLIC_KEY—The public key for web push notifications. Push stays off without a key pair. Keys made in the Admin page win.
VAPID_PRIVATE_KEY—The private key paired with VAPID_PUBLIC_KEY.
VAPID_EMAIL[email protected]The contact email sent with push notifications.
APPRISE_URLS—Apprise notification URLs, one per line.
docker-compose.yml
name: kitchen-board

services:
  kitchen-board:
    image: ghcr.io/hsinghhira/kitchen-board:latest
    container_name: kitchen-board
    restart: unless-stopped
    stop_grace_period: 30s
    network_mode: bridge
    environment:
      - TZ=$TZ
      - [email protected]
      - ADMIN_PASSWORD=
    ports:
      - target: 8000
        published: "6179"
        protocol: tcp
    volumes:
      - type: bind
        source: /DATA/AppData/$AppID/data
        target: /data
        bind:
          create_host_path: true
    healthcheck:
      test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health/db')"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 30s
    deploy:
      resources:
        limits:
          cpus: "1.00"
          memory: 512M
        reservations:
          cpus: "0.00"
          memory: 64M
    labels:
      icon: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/kitchen-board/icon.png
    x-casaos:
      id: com.icestore.kitchen-board
      envs:
        - container: TZ
          description:
            en_US: >-
              Your time zone. It is filled in from your ZimaOS time zone.
              Leave it unless you need another.
        - container: ADMIN_EMAIL
          description:
            en_US: >-
              The email you sign in with as the first admin. Replace
              [email protected] with your own. Only used on the very first
              start.
        - container: ADMIN_PASSWORD
          description:
            en_US: >-
              Optional. The first admin's password, at least 8 characters.
              Leave it empty and Kitchen Board makes one and prints it in the
              app log on the line with "Password:". Only used on the very
              first start.
      ports:
        - container: "8000"
          description:
            en_US: Kitchen Board web app, published on host as 6179
      volumes:
        - container: /data
          description:
            en_US: >-
              The SQLite database (kitchenboard.db), nightly backups,
              uploaded photos and .secret_key, this install's own sign-in key
              made on first start. Back this folder up.

x-casaos:
  id: com.icestore.kitchen-board
  architectures:
    - amd64
    - arm64
  main: kitchen-board
  author: HSinghHira
  category: Home
  developer: g33kphr33k
  icon: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/kitchen-board/icon.png
  thumbnail: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/kitchen-board/screenshot-1.png
  screenshot_link:
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/kitchen-board/screenshot-1.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/kitchen-board/screenshot-2.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/kitchen-board/screenshot-3.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/kitchen-board/screenshot-4.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/kitchen-board/screenshot-5.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/kitchen-board/screenshot-6.png
  title:
    en_US: Kitchen Board
  tagline:
    en_US: A family wall board for shopping, meals, calendars, chores and timers
  description:
    en_US: >-
      Visit: [https://icestore.hsinghhira.me/app/kitchen-board/](https://icestore.hsinghhira.me/app/kitchen-board/) for full details


      Kitchen Board is a household organiser made to live on a kitchen tablet
      and on everyone's phone. It looks like a paper wall calendar with a
      shopping list pinned to it, and keeps every screen in sync as people
      tick things off. Every install makes its own sign-in key on first start.


      **Features**


      - Shared shopping lists with a focused Shopping Trip mode

      - Stock, meal planning and Mealie recipe import

      - A shared calendar with recurring events, .ics feeds and Google
        Calendar overlays

      - Chores, rewards, routines, countdowns and kitchen timers

      - Notes, weather and simple statistics

      - A photo-frame screensaver, with an optional Immich album

      - Push, email and Apprise notifications, OIDC single sign-on, and
        six languages

      - Installs as an app on phones (PWA)


      **How to use?**


      1. Open Kitchen Board at http://[ZIMAOS-IP-ADDRESS]:6179.

      2. Sign in with your ADMIN_EMAIL and password.

      3. Open Admin to add the people in your household.

      4. Add shopping items, events and chores. Every screen updates by
         itself.

      5. On a phone, use "Add to Home Screen" to install it like an app.
  tips:
    before_install:
      en_US: >-
        1. Find ADMIN_EMAIL. Change [email protected] to your email.


        2. You can set ADMIN_PASSWORD now (8 characters or more). Or leave it
           empty and Kitchen Board makes one for you.


        3. More settings, like email, push notifications and sign in with
           OIDC, are listed on the Kitchen Board page at
           https://icestore.hsinghhira.me/app/kitchen-board/ (Variables tab).
           You can add them now or later in the app settings. Most can also
           be set in the Admin page.


        4. Start the installation. It is ready in about half a minute.


        5. If you left the password empty, open the app log and find the
           line with "Password:". That is your password.


        6. Open http://[ZIMAOS-IP-ADDRESS]:6179 and sign in with your email
           and password.
  index: /
  port_map: "6179"
  scheme: http
  is_uncontrolled: false
  version: "1.6"
  update_at: "2026-10-30"
  release_notes:
    en_US: |-
      - First IceStore release, on port 6179
      - Built on g33kphr33k/kitchenboard 1.6, plus a start script that makes each install's own SECRET_KEY
      - No secret in the compose file: it is made on first start and kept in the data folder as .secret_key
  repo: "https://gitlab.com/g33kphr33k/kitchen-board"
  support: "https://gitlab.com/g33kphr33k/kitchen-board/-/issues"
  docs: "https://gitlab.com/g33kphr33k/kitchen-board/-/blob/main/README.md"

Install Kitchen Board

Something not working with Kitchen Board?

Report it so it gets fixed, or ask for an app that is not here yet.

More Home apps

See all