--- title: 'Developing' description: 'This guide will help you set up and run Infisical in development mode.' --- ## Clone the repo ```bash # change location to the path you want Infisical to be installed cd ~ # clone the repo and cd to Infisical dir git clone https://github.com/Infisical/infisical cd infisical ``` ## Set up environment variables Start by creating a .env file at the root of the Infisical directory Reference the [environment variable list](https://infisical.com/docs/self-hosting/configuration/envars) and provided [`.env.example`](https://raw.githubusercontent.com/Infisical/infisical/main/.env.example) template to fill out your .env file. ### Keys `ENCRYPTION_KEY`, `JWT_SIGNUP_SECRET`, `JWT_REFRESH_SECRET`, `JWT_AUTH_SECRET`, `JWT_SERVICE_SECRET` values can be generated with this [32-byte random hex generator](https://www.browserling.com/tools/random-hex). ### Database Use to the following `MONGO_URL`, `MONGO_USERNAME`, `MONGO_PASSWORD`, `SITE_URL` values: ``` MONGO_URL=mongodb://root:example@mongo:27017/?authSource=admin MONGO_USERNAME=root MONGO_PASSWORD=example SITE_URL=http://localhost:8080 ``` If you decide to use your own `MONGO_USERNAME` and `MONGO_PASSWORD`, you'll have to modify `MONGO_URL` to take the form: `mongodb://[MONGO_USERNAME]:[MONGO_PASSWORD]@mongo:27017/?authSource=admin`. ### Mailing Option 1: Bring your own SMTP server and credentials by filling in `SMTP_HOST`, `SMTP_FROM_ADDRESS`, `SMTP_FROM_NAME`, `SMTP_USERNAME`, and `SMTP_PASSWORD`. `SMTP_HOST` is set to `smtp.gmail.com` by default. For `SMTP_USERNAME` and `SMTP_PASSWORD`, you'll need an email with 2-step-verification and an [app password](https://support.google.com/mail/answer/185833?hl=en) for it. Option 2: Use the provided (Mailhog) SMTP server and browse emails sent by the backend on `http://localhost:8025`. To use this option, set the following `SMTP_HOST`, `SMTP_PORT`, `SMTP_FROM_NAME`, `SMTP_USERNAME`, `SMTP_PASSWORD` values: ``` SMTP_HOST=smtp-server SMTP_PORT=1025 SMTP_FROM_ADDRESS=team@infisical.com SMTP_FROM_NAME=[whatever you like] SMTP_USERNAME=team@infisical.com SMTP_PASSWORD= ``` Make sure to leave the `SMTP_PASSWORD` blank so the backend can connect to MailHog. ## Docker for development ```bash # build and start the services docker-compose -f docker-compose.dev.yml up --build --force-recreate ``` Then browse http://localhost:8080 ```bash # To stop environment use Control+C (on Mac) CTRL+C (on Win) or docker-compose -f docker-compose.dev.yml down # start services docker-compose -f docker-compose.dev.yml up ```