1579 lines
42 KiB
HTML

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="canonical" href="https://hay-kot.github.io/mealie/documentation/admin/user-management/">
<link rel="icon" href="../../../assets/img/favicon.png">
<meta name="generator" content="mkdocs-1.2.3, mkdocs-material-8.1.9">
<title>User Management - Mealie</title>
<link rel="stylesheet" href="../../../assets/stylesheets/main.2b4465f4.min.css">
<link rel="stylesheet" href="../../../assets/stylesheets/palette.e6a45f82.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700%7CRoboto+Mono&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link rel="stylesheet" href="../../../assets/stylesheets/custom.css">
<script>__md_scope=new URL("../../..",location),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
<script
async
defer
data-domain="hay-kot.github.io/mealie"
src="https://plausible.io/js/plausible.js"
></script>
</head>
<body dir="ltr" data-md-color-scheme="mealie" data-md-color-primary="" data-md-color-accent="">
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#user-management" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header md-header--lifted" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../../.." title="Mealie" class="md-header__button md-logo" aria-label="Mealie" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.1 13.34 3.91 9.16a4.008 4.008 0 0 1 0-5.66l7.02 7-2.83 2.84m5.31-.34 6.88 6.88-1.41 1.41L12 14.41l-6.88 6.88-1.41-1.41 9.65-9.66-.2-.22a1.98 1.98 0 0 1 0-2.81l4.34-4.37.93.92L15.19 7l.96.94 3.24-3.25.92.92-3.25 3.24.94.96 3.26-3.25.92.94-4.37 4.34c-.78.78-2.04.78-2.81 0l-.22-.2L13.41 13z"/></svg>
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Mealie
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
User Management
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="mealie" data-md-color-primary="" data-md-color-accent="" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m17.75 4.09-2.53 1.94.91 3.06-2.63-1.81-2.63 1.81.91-3.06-2.53-1.94L12.44 4l1.06-3 1.06 3 3.19.09m3.5 6.91-1.64 1.25.59 1.98-1.7-1.17-1.7 1.17.59-1.98L15.75 11l2.06-.05L18.5 9l.69 1.95 2.06.05m-2.28 4.95c.83-.08 1.72 1.1 1.19 1.85-.32.45-.66.87-1.08 1.27C15.17 23 8.84 23 4.94 19.07c-3.91-3.9-3.91-10.24 0-14.14.4-.4.82-.76 1.27-1.08.75-.53 1.93.36 1.85 1.19-.27 2.86.69 5.83 2.89 8.02a9.96 9.96 0 0 0 8.02 2.89m-1.64 2.02a12.08 12.08 0 0 1-7.8-3.47c-2.17-2.19-3.33-5-3.49-7.82-2.81 3.14-2.7 7.96.31 10.98 3.02 3.01 7.84 3.12 10.98.31z"/></svg>
</label>
<input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="" data-md-color-accent="" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_2">
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0-7 2.39 3.42C13.65 5.15 12.84 5 12 5c-.84 0-1.65.15-2.39.42L12 2M3.34 7l4.16-.35A7.2 7.2 0 0 0 5.94 8.5c-.44.74-.69 1.5-.83 2.29L3.34 7m.02 10 1.76-3.77a7.131 7.131 0 0 0 2.38 4.14L3.36 17M20.65 7l-1.77 3.79a7.023 7.023 0 0 0-2.38-4.15l4.15.36m-.01 10-4.14.36c.59-.51 1.12-1.14 1.54-1.86.42-.73.69-1.5.83-2.29L20.64 17M12 22l-2.41-3.44c.74.27 1.55.44 2.41.44.82 0 1.63-.17 2.37-.44L12 22z"/></svg>
</label>
</form>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/hay-kot/mealie/" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
hay-kot/mealie
</div>
</a>
</div>
</nav>
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-tabs__inner md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../../.." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../../getting-started/introduction/" class="md-tabs__link md-tabs__link--active">
Getting Started
</a>
</li>
<li class="md-tabs__item">
<a href="../../../api/redoc/" class="md-tabs__link">
API Reference
</a>
</li>
<li class="md-tabs__item">
<a href="../../../contributors/non-coders/" class="md-tabs__link">
Contributors Guide
</a>
</li>
<li class="md-tabs__item">
<a href="../../../roadmap/" class="md-tabs__link">
Development Road Map
</a>
</li>
<li class="md-tabs__item">
<a href="../../../changelog/v0.5.6/" class="md-tabs__link">
Change Log
</a>
</li>
</ul>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../../.." title="Mealie" class="md-nav__button md-logo" aria-label="Mealie" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.1 13.34 3.91 9.16a4.008 4.008 0 0 1 0-5.66l7.02 7-2.83 2.84m5.31-.34 6.88 6.88-1.41 1.41L12 14.41l-6.88 6.88-1.41-1.41 9.65-9.66-.2-.22a1.98 1.98 0 0 1 0-2.81l4.34-4.37.93.92L15.19 7l.96.94 3.24-3.25.92.92-3.25 3.24.94.96 3.26-3.25.92.94-4.37 4.34c-.78.78-2.04.78-2.81 0l-.22-.2L13.41 13z"/></svg>
</a>
Mealie
</label>
<div class="md-nav__source">
<a href="https://github.com/hay-kot/mealie/" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
hay-kot/mealie
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../.." class="md-nav__link">
Home
</a>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2" type="checkbox" id="__nav_2" checked>
<label class="md-nav__link" for="__nav_2">
Getting Started
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Getting Started" data-md-level="1">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
Getting Started
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../getting-started/introduction/" class="md-nav__link">
Introduction
</a>
</li>
<li class="md-nav__item">
<a href="../../getting-started/install/" class="md-nav__link">
Installation
</a>
</li>
<li class="md-nav__item">
<a href="../../getting-started/updating/" class="md-nav__link">
Updating
</a>
</li>
<li class="md-nav__item">
<a href="../../getting-started/api-usage/" class="md-nav__link">
API
</a>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_5" data-md-state="indeterminate" type="checkbox" id="__nav_2_5" checked>
<label class="md-nav__link" for="__nav_2_5">
Recipes
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Recipes" data-md-level="2">
<label class="md-nav__title" for="__nav_2_5">
<span class="md-nav__icon md-icon"></span>
Recipes
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../recipes/recipes/" class="md-nav__link">
Working With Recipes
</a>
</li>
<li class="md-nav__item">
<a href="../../recipes/organizing-recipes/" class="md-nav__link">
Organizing Recipes
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_6" data-md-state="indeterminate" type="checkbox" id="__nav_2_6" checked>
<label class="md-nav__link" for="__nav_2_6">
Users & Groups
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Users & Groups" data-md-level="2">
<label class="md-nav__title" for="__nav_2_6">
<span class="md-nav__icon md-icon"></span>
Users & Groups
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../users-groups/user-settings/" class="md-nav__link">
User Settings
</a>
</li>
<li class="md-nav__item">
<a href="../../users-groups/meal-planner/" class="md-nav__link">
Planning Meals
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_7" type="checkbox" id="__nav_2_7" checked>
<label class="md-nav__link" for="__nav_2_7">
Admin
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Admin" data-md-level="2">
<label class="md-nav__title" for="__nav_2_7">
<span class="md-nav__icon md-icon"></span>
Admin
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../dashboard/" class="md-nav__link">
Dashboard
</a>
</li>
<li class="md-nav__item">
<a href="../site-settings/" class="md-nav__link">
Site Settings
</a>
</li>
<li class="md-nav__item">
<a href="../building-pages/" class="md-nav__link">
Building Pages
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
User Management
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
User Management
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#startup" class="md-nav__link">
Startup
</a>
</li>
<li class="md-nav__item">
<a href="#creating-and-editing-users" class="md-nav__link">
Creating and Editing Users
</a>
<nav class="md-nav" aria-label="Creating and Editing Users">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#manually-creating-a-user" class="md-nav__link">
Manually Creating a User
</a>
</li>
<li class="md-nav__item">
<a href="#sign-up-links" class="md-nav__link">
Sign Up Links
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#creating-groups" class="md-nav__link">
Creating Groups
</a>
</li>
<li class="md-nav__item">
<a href="#password-reset" class="md-nav__link">
Password Reset
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../backups-and-exports/" class="md-nav__link">
Backups and Restore
</a>
</li>
<li class="md-nav__item">
<a href="../migration-imports/" class="md-nav__link">
Recipe Migration
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_8" data-md-state="indeterminate" type="checkbox" id="__nav_2_8" checked>
<label class="md-nav__link" for="__nav_2_8">
Toolbox
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Toolbox" data-md-level="2">
<label class="md-nav__title" for="__nav_2_8">
<span class="md-nav__icon md-icon"></span>
Toolbox
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../toolbox/notifications/" class="md-nav__link">
External Notifications
</a>
</li>
<li class="md-nav__item">
<a href="../../toolbox/organize-tools/" class="md-nav__link">
Organization Tools
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_2_9" data-md-state="indeterminate" type="checkbox" id="__nav_2_9" checked>
<label class="md-nav__link" for="__nav_2_9">
Community Guides
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Community Guides" data-md-level="2">
<label class="md-nav__title" for="__nav_2_9">
<span class="md-nav__icon md-icon"></span>
Community Guides
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../community-guide/ios/" class="md-nav__link">
iOS Shortcuts
</a>
</li>
<li class="md-nav__item">
<a href="../../community-guide/swag/" class="md-nav__link">
Reverse Proxy (SWAG)
</a>
</li>
<li class="md-nav__item">
<a href="../../community-guide/home-assistant/" class="md-nav__link">
Home Assistant
</a>
</li>
<li class="md-nav__item">
<a href="../../community-guide/bulk-url-import/" class="md-nav__link">
Bulk Url Import
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../api/redoc/" class="md-nav__link">
API Reference
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" data-md-state="indeterminate" type="checkbox" id="__nav_4" checked>
<label class="md-nav__link" for="__nav_4">
Contributors Guide
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Contributors Guide" data-md-level="1">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
Contributors Guide
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../contributors/non-coders/" class="md-nav__link">
Non-Code
</a>
</li>
<li class="md-nav__item">
<a href="../../../contributors/translating/" class="md-nav__link">
Translating
</a>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4_3" data-md-state="indeterminate" type="checkbox" id="__nav_4_3" checked>
<label class="md-nav__link" for="__nav_4_3">
Developers Guide
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Developers Guide" data-md-level="2">
<label class="md-nav__title" for="__nav_4_3">
<span class="md-nav__icon md-icon"></span>
Developers Guide
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../contributors/developers-guide/code-contributions/" class="md-nav__link">
Code Contributions
</a>
</li>
<li class="md-nav__item">
<a href="../../../contributors/developers-guide/starting-dev-server/" class="md-nav__link">
Dev Getting Started
</a>
</li>
<li class="md-nav__item">
<a href="../../../contributors/developers-guide/general-guidelines/" class="md-nav__link">
Guidelines
</a>
</li>
<li class="md-nav__item">
<a href="../../../contributors/developers-guide/style-guide/" class="md-nav__link">
Style Guide
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../roadmap/" class="md-nav__link">
Development Road Map
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" data-md-state="indeterminate" type="checkbox" id="__nav_6" checked>
<label class="md-nav__link" for="__nav_6">
Change Log
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="Change Log" data-md-level="1">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
Change Log
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../changelog/v0.5.6/" class="md-nav__link">
v0.5.6 Bug Fixes
</a>
</li>
<li class="md-nav__item">
<a href="../../../changelog/v0.5.5/" class="md-nav__link">
v0.5.5 Bug Fixes
</a>
</li>
<li class="md-nav__item">
<a href="../../../changelog/v0.5.4/" class="md-nav__link">
v0.5.4 Bug Fixes
</a>
</li>
<li class="md-nav__item">
<a href="../../../changelog/v0.5.3/" class="md-nav__link">
v0.5.3 Bug Fixes
</a>
</li>
<li class="md-nav__item">
<a href="../../../changelog/v0.5.2/" class="md-nav__link">
v0.5.2 Misc Updates
</a>
</li>
<li class="md-nav__item">
<a href="../../../changelog/v0.5.1/" class="md-nav__link">
v0.5.1 Bug Fixes
</a>
</li>
<li class="md-nav__item">
<a href="../../../changelog/v0.5.0/" class="md-nav__link">
v0.5.0 General Upgrades
</a>
</li>
<li class="md-nav__item">
<a href="../../../changelog/v0.4.3/" class="md-nav__link">
v0.4.3 Hot Fix
</a>
</li>
<li class="md-nav__item">
<a href="../../../changelog/v0.4.2/" class="md-nav__link">
v0.4.2 Backend/Migrations
</a>
</li>
<li class="md-nav__item">
<a href="../../../changelog/v0.4.1/" class="md-nav__link">
v0.4.1 Frontend/UI
</a>
</li>
<li class="md-nav__item">
<a href="../../../changelog/v0.4.0/" class="md-nav__link">
v0.4.0 Authentication
</a>
</li>
<li class="md-nav__item">
<a href="../../../changelog/v0.3.0/" class="md-nav__link">
v0.3.0 Improvements
</a>
</li>
<li class="md-nav__item">
<a href="../../../changelog/v0.2.0/" class="md-nav__link">
v0.2.0 Now With Tests!
</a>
</li>
<li class="md-nav__item">
<a href="../../../changelog/v0.1.0/" class="md-nav__link">
v0.1.0 Beta
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#startup" class="md-nav__link">
Startup
</a>
</li>
<li class="md-nav__item">
<a href="#creating-and-editing-users" class="md-nav__link">
Creating and Editing Users
</a>
<nav class="md-nav" aria-label="Creating and Editing Users">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#manually-creating-a-user" class="md-nav__link">
Manually Creating a User
</a>
</li>
<li class="md-nav__item">
<a href="#sign-up-links" class="md-nav__link">
Sign Up Links
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#creating-groups" class="md-nav__link">
Creating Groups
</a>
</li>
<li class="md-nav__item">
<a href="#password-reset" class="md-nav__link">
Password Reset
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<a href="https://github.com/hay-kot/mealie/edit/master/docs/documentation/admin/user-management.md" title="Edit this page" class="md-content__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z"/></svg>
</a>
<h1 id="user-management">User Management</h1>
<p>As of version v0.4.0 users have limited functionality, but they will offer more permissions and structure as time goes on. To understand the different systems, see each section below. Note, that by default all users will be assigned the default group. If you're only managing one household you won't need to do anything to set up a new group.</p>
<div class="admonition summary">
<p class="admonition-title">Users and Groups</p>
<div class="tabbed-set" data-tabs="1:3"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><label for="__tabbed_1_1"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z"/></svg></span> Admins</label><div class="tabbed-content">
<p>Mealie admins are super users that have access to all user data (excluding passwords). All admins can perform administrative tasks like adding users, resetting user passwords, backing up the database, migrating data, and managing site settings. </p>
<p><strong>Admins Can</strong></p>
<ul>
<li>All User Actions</li>
<li>Adjust Site Settings</li>
<li>Create and Update Users</li>
<li>Create and Update Groups</li>
<li>Generate User Sign-up Links</li>
<li>Migrate Data from other Services</li>
<li>Backup Site Data</li>
</ul>
</div>
<input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><label for="__tabbed_1_2"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"/></svg></span> Users</label><div class="tabbed-content">
<p>A single user created by an Admin that has basic privileges to edit their profile, create and edit recipes.</p>
<p><strong>Users Can</strong></p>
<ul>
<li>Manage Their Profile</li>
<li>Create, Edit, and Update Recipes</li>
<li>Create, Edit, and Update Mealplans <em>(By Group)</em></li>
<li>Set Mealplan Categories</li>
<li>Create and Schedule Webhooks <em>(By Group)</em></li>
</ul>
</div>
<input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><label for="__tabbed_1_3"><span class="twemoji"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"/></svg></span> Groups</label><div class="tabbed-content">
<p>User groups are a collection of users that are associated together. Typically used for separate households sharing a single instance.</p>
<p><strong>Groups Share</strong></p>
<ul>
<li>Mealplans</li>
<li>Mealplan Settings</li>
<li>Webhooks </li>
</ul>
</div>
</div>
</div>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>As of v0.4.0 any authenticated user is able to perform any action on the backend server through the API. To limit a standard users scope, the pages on the frontend are limited. Proper support for permission structures on the backend API will come in a later version. </p>
</div>
<h2 id="startup">Startup</h2>
<p>On the first startup you'll need to login to Mealie using the default username and password <code>changeme@email.com</code> and <code>MyPassword</code> or the default set through the env variable. On first login you'll be required to reset your password. After resetting your password you should also change your email address as appropriate. This will be used for logins on all future requests. </p>
<div class="admonition tip">
<p class="admonition-title">Tip</p>
<p>Your default password environment variable will be the default password for all new users that are created. This is stored in plain text and should not be used <strong>anywhere</strong> else.</p>
</div>
<h2 id="creating-and-editing-users">Creating and Editing Users</h2>
<p>There are two ways to create users in Mealie. </p>
<h3 id="manually-creating-a-user">Manually Creating a User</h3>
<p>In the Manage Users section you are able to create a user by providing the necessary information in the pop-up dialog. </p>
<p><img align="right" alt="Create User Image" src="../../../assets/img/add-user.webp" style="height:50%;width:50%" /></p>
<ul>
<li>User Name</li>
<li>Email</li>
<li>User Group</li>
<li>If they are an Admin</li>
</ul>
<p>When creating users manually, their password will be set from the default assigned by the ENV variable.</p>
<h3 id="sign-up-links">Sign Up Links</h3>
<p>You can generate sign-up links in the Manage Users section. Select the "create link" button and provide the name of the link and if the user will be an administrator. Once a link is created it will populate in the table where you'll be able to see all active links, delete a link, and copy the link as needed. </p>
<p><img alt="Sign Up Links Image" src="../../../assets/img/sign-up-links.webp" /></p>
<div class="admonition tip">
<p class="admonition-title">Tip</p>
<p>When a link is used it is automatically removed from the database.</p>
</div>
<h2 id="creating-groups">Creating Groups</h2>
<p>You can easily create and manage groups via the frontend in the admin panel under "Manage Users". Navigate to the groups tab and you'll find a "create group" button as well as a list of all groups in your database. To create a group, select the "create group" button and provide a name for the new group. Once created you can now assign users to the new group.</p>
<p><img alt="Group Management Panel" src="../../../assets/img/group-manager.png" /></p>
<div class="admonition tip">
<p class="admonition-title">Tip</p>
<p>User Groups can only be deleted if no users are a part of the group. If you want to delete a group, you must assign the users to another group before removing. </p>
</div>
<h2 id="password-reset">Password Reset</h2>
<p>If a user forgets their password an administrator is able to reset their password through the user management page. In the user table, select edit. In the popup window click the "Reset Password" to reset a user's password to the default. This is either 'MyPassword' or set through an environment variable. See the <a href="../../getting-started/install/">Installation Page</a> for more details on environment variables.</p>
</article>
</div>
</div>
<a href="#" class="md-top md-icon" data-md-component="top" data-md-state="hidden">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"/></svg>
Back to top
</a>
</main>
<footer class="md-footer">
<nav class="md-footer__inner md-grid" aria-label="Footer">
<a href="../building-pages/" class="md-footer__link md-footer__link--prev" aria-label="Previous: Building Pages" rel="prev">
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
</div>
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
Previous
</span>
Building Pages
</div>
</div>
</a>
<a href="../backups-and-exports/" class="md-footer__link md-footer__link--next" aria-label="Next: Backups and Restore" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
Next
</span>
Backups and Restore
</div>
</div>
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg>
</div>
</a>
</nav>
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.top", "navigation.expand", "navigation.sections", "navigation.tabs", "navigation.tabs.sticky"], "translations": {"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing", "select.version.title": "Select version"}, "search": "../../../assets/javascripts/workers/search.22074ed6.min.js"}</script>
<script src="../../../assets/javascripts/bundle.960e086b.min.js"></script>
<script src="../../../assets/js/extra.js"></script>
</body>
</html>