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.