# Local development

If you wish to make and test changes to the Outline source code to customize your installation or contribute to the open source project then you’ll need to run a development version of the software. 

For the right balance of speed and performance we recommend running Redis + Postgres inside of Docker with the Node application running directly on the host machine. This guide assumes this setup.

# Dependencies

Install these dependencies if you don't already have them:


1. [Git](https://git-scm.com/)
2. [Docker for Desktop](https://www.docker.com/) or [Colima](https://github.com/abiosoft/colima)
3. [Node.js](https://nodejs.org/) (v20 LTS preferred)
4. [Yarn](https://yarnpkg.com/) (>= 4)
5. [mkcert](https://github.com/FiloSottile/mkcert) (For SSL)


# Download

Clone the source code with the following command:

```bash
git clone git@github.com:outline/outline
```


# Configuration

## Env

Copy the `.env.sample` file to `.env` – for development the contents should mostly work as in the sample but it is required to configure at least one [authentication provider](/doc/authentication-7ViKRmRY5o) of your choice or provision a user – see the bottom of this file.

# Running

```bash
make up
```

This command will download the Node dependencies, create and migrate the database, install the local SSL certificates, and build and launch a development version of Outline.

---

**Documents**

- [License restrictions](https://docs.getoutline.com/s/hosting/doc/license-restrictions-f9aq6uEL3H)
- [Requirements](https://docs.getoutline.com/s/hosting/doc/requirements-ULdYnwi4wG)
- [Installation methods](https://docs.getoutline.com/s/hosting/doc/installation-methods-pSvgz9j0QC)
- [Configuration](https://docs.getoutline.com/s/hosting/doc/configuration-509J4lAzjo)
- [Business + Enterprise](https://docs.getoutline.com/s/hosting/doc/business-enterprise-rv0715NxO3)
- [Backups](https://docs.getoutline.com/s/hosting/doc/backups-KZtPOADCHG)
- [Troubleshooting](https://docs.getoutline.com/s/hosting/doc/troubleshooting-HXckrzCqDJ)