diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 6c1d1275a..2eeadcb49 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -13,6 +13,7 @@ requests should be made against. The changes on the `main`
branch are tagged into a release monthly.
### Prerequisites
+
- [Node.js](https://nodejs.org/en) version >=16.x
- [pnpm package manager](https://pnpm.io/installation) version 7
- [Docker](https://www.docker.com/get-started/)
@@ -21,60 +22,63 @@ branch are tagged into a release monthly.
1. Clone the repo into a public GitHub repository or [fork the repo](https://github.com/triggerdotdev/trigger.dev/fork). If you plan to distribute the code, keep the source code public to comply with the [Apache Licence 2.0](https://github.com/triggerdotdev/trigger.dev/blob/main/LICENSE).
- ```
- git clone https://github.com/triggerdotdev/trigger.dev.git
- ```
- > If you are on windows, run the following command on gitbash with admin privileges:
- > `git clone -c core.symlinks=true https://triggerdotdev/trigger.dev.git`
+ ```
+ git clone https://github.com/triggerdotdev/trigger.dev.git
+ ```
+
+ > If you are on windows, run the following command on gitbash with admin privileges:
+ > `git clone -c core.symlinks=true https://triggerdotdev/trigger.dev.git`
+
2. Navigate to the project folder
- ```
- cd trigger.dev
- ```
+ ```
+ cd trigger.dev
+ ```
3. Install the required packages using pnpm.
- ```
- pnpm i
- ```
+ ```
+ pnpm i
+ ```
4. Create your `.env` files
- ```
- cp .env.example .env && cp packages/database/.env.example packages/database/.env
- ```
+ ```
+ cp .env.example .env && cp packages/database/.env.example packages/database/.env
+ ```
5. Open the root `.env` file and fill in the required values Magic Link:
-
- Both of these secrets should be random strings, which you can easily generate (and copy into your pasteboard) with the following command:
-
- ```sh
- openssl rand -hex 16 | pbcopy
- ```
-
Then set them here:
+ Both of these secrets should be random strings, which you can easily generate (and copy into your pasteboard) with the following command:
- ```
- SESSION_SECRET=
- MAGIC_LINK_SECRET=
- ```
-
-7. Start Docker. This starts the required services like Postgres.
- ```
- pnpm run docker
- ```
-8. Migrate the database
- ```
- pnpm run db:migrate
- ```
-9. Run the seed script
- ```
- pnpm run db:seed
- ```
-5. Run the app. See the section below.
+ ```sh
+ openssl rand -hex 16 | pbcopy
+ ```
+
+ Then set them here:
+
+ ```
+ SESSION_SECRET=
+ MAGIC_LINK_SECRET=
+ ```
+
+6. Start Docker. This starts the required services like Postgres. If this is your first time using Docker, consider going through this [guide](docker-setup.md)
+ ```
+ pnpm run docker
+ ```
+7. Migrate the database
+ ```
+ pnpm run db:migrate
+ ```
+8. Run the seed script
+ ```
+ pnpm run db:seed
+ ```
+9. Run the app. See the section below.
## Running
1. You can run the app with:
- ```
- pnpm run dev --filter webapp
- ```
-
- It should run on port `3030`: [http://localhost:3030](http://localhost:3030/)
+
+ ```
+ pnpm run dev --filter webapp
+ ```
+
+ It should run on port `3030`: [http://localhost:3030](http://localhost:3030/)
2. Once the app is running click the magic link button and enter your email.
3. Check your terminal, the magic link email should have printed out.
diff --git a/docker-setup.md b/docker-setup.md
new file mode 100644
index 000000000..375426946
--- /dev/null
+++ b/docker-setup.md
@@ -0,0 +1,122 @@
+## Setting up Docker for the first time.
+
+In thc contributing guide of Trigger.dev, there's a section that requires you to start Docker.
+
+If you don't have Docker installed on your machine, you'll run into some complications (errors).
+
+Below are the steps on how you can avoid that.
+
+First you need to setup docker-compose as it is an underlying tool that this command: `pnpm run docker` fires behind the scene.
+
+To install Docker Compose on Linux Ubuntu via the terminal, you can follow these steps:
+
+1. Update the package index on your system by running the following command:
+
+ ```shell
+ sudo apt update
+ ```
+
+2. Install the required dependencies by running the following command:
+
+ ```shell
+ sudo apt install curl
+ ```
+
+3. Download the Docker Compose binary into the `/usr/local/bin` directory using the `curl` command:
+
+ ```shell
+ sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
+ ```
+
+4. Set the appropriate permissions to make the `docker-compose` binary executable:
+
+ ```shell
+ sudo chmod +x /usr/local/bin/docker-compose
+ ```
+
+5. Verify that Docker Compose has been successfully installed by running the following command:
+
+ ```shell
+ docker-compose --version
+ ```
+
+ This command should display the version information of Docker Compose without any errors.
+
+After following these steps, you should have Docker Compose installed on your Ubuntu system, and you can use it by running `docker-compose` commands in the terminal.
+
+When you've verified that the `docker-compose` package is installed and you proceed to start Docker with `pnpm run docker`.
+
+You'll probably get an error similar to the one below:
+
+```shell
+Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
+ ELIFECYCLE Command failed with exit code 1.
+```
+
+The error message suggests that the Docker daemon is not running on your system. The Docker daemon is responsible for managing and running Docker containers.
+
+To resolve this issue, you may need to install Docker properly on your Ubuntu system. Here are the steps to install Docker on Ubuntu:
+
+1. Update the package index on your system by running the following command:
+
+ ```shell
+ sudo apt update
+ ```
+
+2. Install the necessary packages to allow apt to use repositories over HTTPS:
+
+ ```shell
+ sudo apt install apt-transport-https ca-certificates curl software-properties-common
+ ```
+
+3. Add the official Docker GPG key to your system by running the following command:
+
+ ```shell
+ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
+ ```
+
+4. Add the Docker repository to the APT sources list:
+
+ ```shell
+ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
+ ```
+
+5. Update the package index again:
+
+ ```shell
+ sudo apt update
+ ```
+
+6. Install Docker by running the following command:
+
+ ```shell
+ sudo apt install docker-ce docker-ce-cli containerd.io
+ ```
+
+7. After the installation is complete, verify that Docker is installed correctly by running the following command:
+
+ ```shell
+ docker --version
+ ```
+
+ This command should display the version information of Docker without any errors.
+
+Once Docker is installed and verified, you should be able to start the Docker daemon and run the `pnpm run docker` command without encountering any issues.
+
+## Windows
+
+1. Download the Docker Desktop installer from the Docker website: [Docker Desktop for Windows](https://www.docker.com/products/docker-desktop)
+
+2. Run the installer and follow the instructions to install Docker Desktop.
+
+3. After installation, Docker Desktop should be running automatically.
+
+## macOS
+
+1. Download the Docker Desktop installer from the Docker website: [Docker Desktop for Mac](https://www.docker.com/products/docker-desktop)
+
+2. Run the installer and follow the instructions to install Docker Desktop.
+
+3. After installation, Docker Desktop should be running automatically.
+
+Please note that the instructions provided above are for the most common scenarios. For specific versions or different distributions, it's always a good idea to consult the official Docker documentation for the respective operating systems.