# Fedora 部署

Fedora 39+ 默认装的是 podman,要跑云瞰需要明示装 docker-ce。**SELinux 默认 enforce + firewalld 默认开**,卷标签和端口放行不能少。

## 1. 装 docker-ce(不是 podman)

Fedora 默认 podman,但云瞰镜像和 docker-compose 文件按 docker 兼容性测试。podman 兼容大部分但 host network 模式行为略有差异,推荐换 docker-ce:

```bash
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
```

## 2. 处理 SELinux(关键)

> **⚠️ 卷挂载必须加 :Z 或 :z 标签**
>
> Fedora SELinux **强制启用 enforce 模式**,容器写入数据卷会被拒绝,除非给卷打 `:Z`(私有,推荐)或 `:z`(共享)标签。详见 compose 示例。

## 3. 放行 firewalld 端口

```bash
sudo firewall-cmd --permanent --add-port=23406/tcp
sudo firewall-cmd --permanent --add-port=23880/tcp
sudo firewall-cmd --permanent --add-port=24214/tcp
sudo firewall-cmd --permanent --add-port=24215/tcp
sudo firewall-cmd --permanent --add-port=23515/udp
sudo firewall-cmd --reload
```

## 4. 启动云瞰

我们为 Fedora 单独维护了一份 compose 模板(`:Z` SELinux 标签全部预置好),不用手动改:

[浏览器下载 compose.yml](/compose/fedora.yml)

Fedora 专用 · openvino 变体 · :Z 标签已预置 · 含 OTA sidecar

或 SSH 用 wget:

```bash
mkdir -p ~/yunkan && cd ~/yunkan
wget https://yun-kan.com/compose/fedora.yml -O compose.yml
docker compose up -d
```

> **💡 其它变体如何切**
>
> 本模板默认 yunkan-openvino(Intel iGPU)。纯 CPU 改 `image:` 为 `yunkan-cpu`;NVIDIA GPU 改为 `yunkan-cuda` 或 `yunkan-trt` 并取消 `deploy:` 注释。无论哪个变体,`:Z` 卷标签都必须保留(SELinux 强制)。

```yaml
name: yunkan

services:
  yunkan:
    image: registry.cn-hangzhou.aliyuncs.com/yunkan/yunkan-openvino:latest
    container_name: yunkan
    restart: always
    network_mode: host
    devices:
      - /dev/dri:/dev/dri
    volumes:
      - ./data:/app/data:Z
      - ./recordings:/app/data/recordings:Z
      - /etc/machine-id:/etc/machine-id:ro
      - /sys/class/dmi/id/product_uuid:/sys/class/dmi/id/product_uuid:ro
      - /var/run/docker.sock:/var/run/docker.sock:z
    environment:
      - TZ=Asia/Shanghai
      - SKYVIEW_SELF_CONTAINER_NAME=yunkan
  updater:
    image: registry.cn-hangzhou.aliyuncs.com/yunkan/yunkan-updater:latest
    container_name: yunkan-updater
    restart: always
    network_mode: none
    volumes:
      - ./data:/app/data:Z
      - ./compose.yml:/app/compose.yml:ro
      - /var/run/docker.sock:/var/run/docker.sock:z
    environment:
      - TZ=Asia/Shanghai
      - COMPOSE_PROJECT_NAME=yunkan
      - STATE_FILE=/app/data/.upgrade-state
      - SKYVIEW_COMPOSE_FILE=/app/compose.yml
      - SKYVIEW_COMPOSE_SERVICE=yunkan
```

*compose.yml Fedora 版(关键行加 :Z)*

启动后浏览器 `http://<服务器IP>:23406/` 进入 [Setup 向导](/docs/quickstart)。

## 5. 常见问题

> **⚠️ 容器启动后写录像 Permission denied**
>
> 几乎肯定是 SELinux 卷标签问题。`docker compose down`,在 compose volumes 行末加 `:Z`,`docker compose up -d` 重启即可。`/etc/machine-id` 和 `/sys/class/dmi/id/product_uuid` 是只读不需要标签(也可加 `:ro,Z` 防止误拒)。

> **ℹ️ NVIDIA GPU 在 Fedora**
>
> nvidia-container-toolkit 有 Fedora 包,装好后 `runtime: nvidia` 即可。详见 [NVIDIA 官方文档](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#installing-with-yum-or-dnf)。

**升级**:全功能可用——网页后台一键升级,或手动 `docker compose pull && docker compose up -d`。

---

来源:https://yun-kan.com/ja/docs/install-fedora
