---
icon: material/application-brackets-outline
tags: ["iptvc", "разработка"]
---

# :material-application-brackets-outline: Среда разработки

## Быстрый старт

Для локальной разработки `iptvc` достаточно установить [Go 1.23.6+][1] и клонировать репозиторий:

```bash
git clone https://git.axenov.dev/IPTV/iptvc.git
cd iptvc
go run . serve -i playlists.ini -p 8800 --check
```

Веб-интерфейс будет доступен по адресу <http://localhost:8800>.

## Требования

| ПО          | Версия                | Назначение                            |
| ----------- | --------------------- | ------------------------------------- |
| [Go][1]     | 1.23.6+               | Компиляция и запуск                   |
| [Make][2]   | любая                 | Сборка через `Makefile` (опционально) |
| [Docker][3] | с `docker compose` v2 | Полное окружение (опционально)        |

[1]: https://go.dev/dl/
[2]: https://www.gnu.org/software/make
[3]: https://docs.docker.com/engine/install


## Команды для разработки

```bash
# Запуск веб-сервера с фоновой проверкой
go run . serve -i playlists.ini -p 8800 --check

# Запуск проверки без веб-сервера
go run . check -i playlists.ini --repeat 1

# Сборка бинарника
go build -o iptvc .

# Проверка кода
go vet ./...

# Сборка под все платформы
make release
```

## Файлы конфигурации

Для работы `iptvc` нужны два файла рядом с бинарником:

- `playlists.ini` — список плейлистов. Формат описан в [справочнике форматов](../../ref/formats/playlists.md).
- `channels.json` — правила тегов каналов. Формат описан в [справочнике форматов](../../ref/formats/channels.md).
- `config.yml` — конфигурация программы. Описание — в [разделе config.yml](../../ref/config.md).

## Полное Docker-окружение

Полная инфраструктура проекта (nginx, KeyDB, checker, docs) развёртывается через Docker.

Подробнее — в разделе [Развёртывание](../site/deploy.md).

## Дополнительные материалы

- [Компиляция из исходного кода](compile.md)
- [Построение Docker-образа](docker.md)
- [Архитектура iptvc](arch.md)
- [Развёртывание и доставка обновлений](../site/deploy.md)
