# Установка

Самый простой способ запустить Crank - использовать готовые Docker-образы и `docker compose`.

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

- Docker;
- Docker Compose;
- PostgreSQL или локальный compose-профиль `local-db`;
- свободные порты `3000`, `3001`, `3002`.

## Быстрый запуск

```bash
mkdir -p crank
cd crank
curl -fsSLo docker-compose.yml https://git.itexp.me/bsodfather/crank/raw/branch/main/deploy/community/docker-compose.images.yml
curl -fsSLo .env.example https://git.itexp.me/bsodfather/crank/raw/branch/main/deploy/community/.env.images.example
cp .env.example .env
```

Откройте `.env` и замените значения:

- `POSTGRES_PASSWORD`;
- `CRANK_MASTER_KEY`;
- `CRANK_SESSION_SECRET`;
- `CRANK_PASSWORD_PEPPER`;
- `CRANK_BOOTSTRAP_ADMIN_EMAIL`;
- `CRANK_BOOTSTRAP_ADMIN_PASSWORD`;
- `CRANK_BASE_URL`.

Секреты можно сгенерировать командой:

```bash
openssl rand -hex 32
```

Запуск с локальным PostgreSQL из compose:

```bash
docker compose --profile local-db up -d
```

Если PostgreSQL уже есть отдельно, укажите его в `.env` и запустите без профиля:

```bash
docker compose up -d
```

## Проверка

```bash
docker compose ps
curl http://127.0.0.1:3001/health
curl http://127.0.0.1:3002/health
```

После запуска откройте веб-интерфейс:

```text
http://localhost:3000
```

## Обновление

```bash
docker compose --profile local-db pull
docker compose --profile local-db up -d
```

Если используете внешний PostgreSQL:

```bash
docker compose pull
docker compose up -d
```

## Следующий шаг

После установки пройдите [первый инструмент](./quickstart.md). Если что-то не запускается, используйте [troubleshooting](./troubleshooting.md).
