# CasaOS: веб-панель для домашней лаборатории

Индекс LLMS: [llms.txt](/llms.txt)

---

Если у тебя несколько Docker-контейнеров на домашнем сервере и ты заходишь в веб-морду через порт каждого, пора что-то менять. CasaOS — это минималистичная веб-панель, которая объединяет контейнеры в единый интерфейс, позволяет ставить приложения в пару кликов и не требует настройки Nginx или Portainer.

## Установка

CasaOS ставится на чистую систему одной командой. Поддерживает Debian 10+, Ubuntu 18.04+, Raspbian. Если Docker уже есть — сначала снеси его или ставь в отдельный контейнер.

```bash
curl -fsSL https://get.casaos.io | bash
```

После завершения скрипт выведет адрес панели. По умолчанию — `http://<IP-сервера>:80`. Веб-интерфейс откроется сразу, аккаунт root.

> [!NOTE]
> Установщик поднимает свой Docker-стек. Если у тебя уже работает dockerd, CasaOS перезапишет конфиги сети. Имей снапшоты или резервную копию.

После установки проверь статус сервиса:

```bash
systemctl status casaos
```

## Интерфейс и возможности

Главный экран — плитка из установленных приложений. Каждая карточка показывает статус (работает / остановлен), иконку и быстрые действия: запуск, остановка, перезагрузка, удаление.

Боковая панель слева: файловый менеджер, список контейнеров, магазин приложений и настройки. Из коробки CasaOS умеет:

- создавать тома для данных и монтировать USB-накопители;
- пробрасывать порты через веб-интерфейс;
- показывать использование CPU, RAM, диска и сети;
- редактировать compose-файлы прямо в браузере.

Для домашней лаборатории этого хватает в 80 % случаев. Оставшиеся 20 % — ручные compose-файлы.

## Установка приложений из каталога

Каталог CasaOS содержит несколько десятков подготовленных шаблонов. Найди нужное, нажми «Установить» — система сгенерирует compose-файл и запустит контейнер. В фоне работает AppStore, по сути обёртка над docker-compose.

Типичный процесс:

1. Открой **App Store** в боковой панели.
2. Выбери приложение, например **Plex** или **AdGuard Home**.
3. Укажи путь для данных и проброс портов, если нужно.
4. Нажми **Install**.

Для AdGuard Home это выглядит так:

```bash
# то же самое, что делает CasaOS под капотом:
docker run -d \
  --name adguardhome \
  --restart unless-stopped \
  -v /opt/adguardhome/work:/opt/adguardhome/work \
  -v /opt/adguardhome/conf:/opt/adguardhome/conf \
  -p 53:53/tcp \
  -p 53:53/udp \
  -p 3000:3000/tcp \
  --network host \
  adguard/adguardhome
```

Все параметры задаются через веб-форму, ручное редактирование не требуется.

## Ручной запуск контейнеров

Когда нужного приложения нет в каталоге, CasaOS позволяет загрузить свой compose-файл.

```bash
# пример: Cloudflare Tunnel для доступа к сервисам извне
docker run -d \
  --name cloudflared \
  --restart unless-stopped \
  -e TUNNEL_TOKEN=твой_токен \
  docker.io/cloudflare/cloudflared:latest \
  tunnel run
```

В CasaOS: **App Store → Upload** — загрузи YAML. Система распарсит, предложит изменить переменные и запустит. Контейнер появится на главном экране.

> [!TIP]
> Используй папку `/DATA/AppData/` для всех volume. Это упрощает бэкап — весь стейт лежит в одном каталоге.

## Структура хранения данных

CasaOS создаёт три ключевых директории:

| Путь | Назначение |
|---|---|
| `/DATA/AppData/` | Конфигурации приложений |
| `/DATA/Storage/` | Пользовательские файлы |
| `/var/lib/casaos/` | Системные данные панели |

При установке нового диска или USB-накопителя он появляется в **File Manager** и монтируется автоматически. Можно назначить любой каталог как storage по умолчанию для новых приложений: **Settings → Storage → Default Location**.

## Обновление и обслуживание

Обновление самой панели:

```bash
wget https://github.com/IceWhaleTech/CasaOS/releases/latest/download/casaos-update.sh
bash casaos-update.sh
```

Образы контейнеров обновляются через веб-интерфейс: карточка приложения → меню (⋮) → **Update**. CasaOS подтянет свежий образ и пересоздаст контейнер, данные не тронет.

Логи всех сервисов доступны через терминал:

```bash
journalctl -u casaos -f
docker logs casaos -f
```

Для очистки неиспользуемых образов и сетей:

```bash
docker system prune -af
```

## Когда стоит выбрать другое решение

CasaOS хороша для одного хоста. Если у тебя кластер из нескольких машин, она не умеет оркестрировать — это не замена Kubernetes или Docker Swarm.

Portainer даёт больше контроля над сетями, образами и стеками. Если ты привык к детальной настройке и пишешь compose-файлы руками, CasaOS покажется ограниченной.

Yacht — ещё более минималистичный вариант, без привязки к определённой файловой структуре. Подойдёт, если хочешь только веб-морду для контейнеров без файлового менеджера и каталога приложений.

> [!WARNING]
> CasaOS активно развивается. Минорные обновления ломают совместимость шаблонов чаще, чем хотелось бы. Фиксируй рабочие compose-файлы в Git-репозитории, чтобы не пересоздавать стек с нуля.

Для домашнего сервера, где крутятся Pi-hole, Home Assistant, Jellyfin и пара-тройка утилит — CasaOS закрывает задачу без оверхеда. Поставил, добавил приложения, забыл.
