--- title: Install ZITADEL on MacOS description: "Install PostgreSQL, then deploy ZITADEL on MacOS using Homebrew or by downloading from GitHub and running the binary" sidebar_label: MacOS --- import NoteInstanceNotFound from './troubleshooting/_note_instance_not_found.mdx'; import Disclaimer from './_disclaimer.mdx' import DefaultUser from './_defaultuser.mdx' import Next from './_next.mdx' ## Install PostgreSQL Download a `postgresql` binary as described [in the PostgreSQL docs](https://www.postgresql.org/download/macosx/). ZITADEL is tested against PostgreSQL latest stable tag and latest Ubuntu LTS. ## Run PostgreSQL ```bash sudo pg_ctl init -D /tmp/postgresql sudo pg_ctl start -D /tmp/postgresql ``` ## Install ZITADEL ### Homebrew ```bash brew install zitadel/tap/zitadel ``` ### Download from GitHub Download the ZITADEL release according to your architecture from [Github](https://github.com/zitadel/zitadel/releases/latest) ## Unpack the archive move to your download location and unpack the archive ```bash #unpack and copy to /usr/local/bin LATEST=$(curl -i https://github.com/zitadel/zitadel/releases/latest | grep location: | cut -d '/' -f 8 | tr -d '\r'); wget -qO- https://github.com/zitadel/zitadel/releases/download/$LATEST/zitadel_Darwin_$(uname -m).tar.gz | tar -xJ zitadel && sudo mv zitadel /usr/local/bin ``` ## Run ZITADEL ```bash ZITADEL_DATABASE_POSTGRES_DSN="postgresql://root:postgres@localhost:5432/postgres?sslmode=disable" ZITADEL_EXTERNALSECURE=false zitadel start-from-init --masterkey "MasterkeyNeedsToHave32Characters" --tlsMode disabled ``` ## VideoGuide ### Setup ZITADEL with a service account ```bash ZITADEL_DATABASE_POSTGRES_DSN="postgresql://root:postgres@localhost:5432/postgres?sslmode=disable" ZITADEL_EXTERNALSECURE=false ZITADEL_FIRSTINSTANCE_MACHINEKEYPATH=/tmp/zitadel-admin-sa.json ZITADEL_FIRSTINSTANCE_ORG_MACHINE_MACHINE_USERNAME=zitadel-admin-sa ZITADEL_FIRSTINSTANCE_ORG_MACHINE_MACHINE_NAME=Admin ZITADEL_FIRSTINSTANCE_ORG_MACHINE_MACHINEKEY_TYPE=1 zitadel start-from-init --masterkey "MasterkeyNeedsToHave32Characters" --tlsMode disabled # then you can move your machine key mv /tmp/zitadel-admin-sa.json $HOME/zitadel-admin-sa.json ``` This key can be used to provision resources with for example [Terraform](/guides/manage/terraform-provider).