---
title: 🔧 Manual installation
description: Manual installation guide with system requirements, dependencies, and step-by-step instructions to install the project from source.
---

import {FileTree, LinkCard, Steps} from '@astrojs/starlight/components';

To deploy a Domain Watchdog instance, please refer to the Symfony documentation
on [How to deploy a Symfony application](https://symfony.com/doc/current/deployment.html).

## Prerequisites

- PHP 8.4 or higher
- PostgreSQL 16 or higher

In order to retrieve information about domain names, Domain Watchdog will query the RDAP server responsible for the TLD.
It is crucial that the Domain Watchdog instance is placed in a clean environment from which these servers can be
queried.
In particular, the DNS servers and root certificates of the system must be trusted.

## Steps

Clone the repository:

```shell
git clone https://github.com/maelgangloff/domain-watchdog.git
```

### Backend

<Steps>
1. Install dependencies
    ```shell
    composer install
    ```
2. Set up your environment variables
    ```shell
    cp .env .env.local
    ```
    <LinkCard title="Configuration" description="List of environment variables" href="/en/install-config/configuration/"/>

3. Generate the cryptographic key pair for the JWT signature
    ```shell
    php bin/console lexik:jwt:generate-keypair
    ```
4. Run database migrations
    ```shell
    php bin/console doctrine:migrations:migrate
    ```
5. Start the Symfony server
    ```shell
    symfony server:start
    ```
6. Build assets
    ```shell
    php bin/console assets:install
    ```
7. Don't forget to set up workers to process the [message queue](https://symfony.com/doc/current/messenger.html)
</Steps>

### Frontend

<Steps>
1. Install dependencies
    ```shell
    yarn install
    ```
2. Generate language files
    ```shell
    yarn run ttag:po2json
    ```
3. Make the final build
    ```shell
    yarn build
    ```
4. Add and modify the following files as you wish
    <FileTree>
        - public
            - content
                - home.md
                - privacy.md
                - tos.md
                - faq.md
                - icons-512.png
                - banner.png
                - favicon.ico
    </FileTree>
</Steps>
