> For the complete documentation index, see [llms.txt](https://docs.codebattles.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.codebattles.ru/en/installation/nastroika-yazykov-programmirovaniya.md).

# Programming language setup

### Setting up programming languages

### Adding a programming language checker to the database

1. Start the system
2. Connect to the ***cb*** database (port 25565)
3. Select the ***public*** schema
4. Select the ***servers*** table
5. Enter data (Add a new checker)

<figure><img src="https://3530347106-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNmxNebGSoyvcFD4st7Ia%2Fuploads%2Fgit-blob-6c999e1d7a757e06113ad2c2d8c1478590f8a5bb%2Fimage%20(13).png?alt=media" alt=""><figcaption></figcaption></figure>

6. Save and close.

{% hint style="info" %}
For these actions, I used the program [*pgAdmin 4*](https://www.pgadmin.org/)
{% endhint %}

### Adding other programming languages to the system

You can find the list of prepared images for programming languages [here](/en/installation/obrazy-chekerov.md).

* Download *<mark style="color:purple;">**NAME**</mark>*.Dockerfile (Where *<mark style="color:purple;">**NAME**</mark>* is the file name)
* In `docker-compose.yml`, write a new service. Example of a new `docker-compose.yml`

<...> - abbreviated code

{% code title="docker-compose.yml" lineNumbers="true" %}

```yaml
version: "3.9"
services:
  frontend:
    build: FRONTEND/.
    ports:
      - "80:80"
    restart: unless-stopped
  <...>
  checker-goland:
    build:
      dockerfile: ./NAME.Dockerfile
    restart: unless-stopped

```

{% endcode %}

More detailed description of the file:

\&#xNAN;*Line 3* - system service, where <mark style="color:red;">frontend</mark> is its name. Do not change it

\&#xNAN;*Line 9* - our new checker for the programming language. We can give it any name, but I will give it <mark style="color:red;">checker-goland</mark>

\&#xNAN;*Line 10*: relative path to the checker image (You can only place the file in the root, the path is <mark style="color:red;">./</mark><mark style="color:purple;">NAME</mark><mark style="color:red;">.Dockerfile</mark>

{% hint style="danger" %}
Attention! Indentation plays a significant role in yml files, so copy without forgetting the indentation
{% endhint %}
