# Устанавливаю Traefik на турецский сервер ```sh ssh igor@156.244.31.209 -p 2200 ``` # Установка Traefik на Linux Mint / Ubuntu ## 📥 Шаг 1. Установка зависимостей Убедитесь, что установлены `wget` и `systemd`: ```sh sudo apt update && sudo apt install wget ``` --- ## 📥 Шаг 2. Скачать последнюю версию Traefik Проверь актуальную версию на: [Traefik Releases](https://github.com/traefik/traefik/releases) Пример для версии `v3.0.0`:sudo mc ```sh cd ~ && wget https://github.com/traefik/traefik/releases/download/v3.3.4/traefik_v3.3.4_linux_amd64.tar.gz ``` --- ## 📥 Шаг 3. Распаковка и установка ```sh cd ~ && tar -xvzf traefik_v3.3.4_linux_amd64.tar.gz && sudo mv traefik /usr/local/bin/ ``` Проверь версию: ```sh traefik version ``` ```conf Version: 3.3.4 Codename: saintnectaire Go version: go1.23.6 Built: 2025-02-25T10:11:01Z OS/Arch: linux/amd64 ``` --- ## 📁 Шаг 4. Создание директории и базового конфига ```sh sudo mkdir -p /etc/traefik && cd /etc/traefik ``` ### Пример `traefik.yml` ```sh cd /etc/traefik && sudo tee /etc/traefik/traefik.yml > /dev/null <<'EOF' entryPoints: web: address: ":80" http: redirections: entryPoint: to: websecure scheme: https permanent: true websecure: address: ":443" traefik: address: ":8080" api: dashboard: true insecure: true providers: file: filename: "/etc/traefik/dynamic.yml" # Настройка сертификатов (пример с Let's Encrypt) certificatesResolvers: myresolver: acme: email: "irigm@mail.ru" storage: "/etc/traefik/acme.json" httpChallenge: entryPoint: web log: level: DEBUG EOF ``` ### Пример `dynamic.yml` ```sh cd /etc/traefik && sudo tee /etc/traefik/dynamic.yml > /dev/null <<'EOF' http: routers: dashboard: entryPoints: - traefik rule: "Host(`localhost`)" service: api@internal geovizor-api-zones: rule: "Host(`geovizor.top`) && PathPrefix(`/api/v1/servers/localhost/zones/`)" service: top_geovizor_api_zones_v01 entryPoints: - websecure tls: certresolver: myresolver geovizor-default: rule: "Host(`geovizor.top`)" service: top_geovizor_default entryPoints: - websecure tls: certresolver: myresolver services: top_geovizor_api_zones_v01: loadBalancer: servers: - url: "http://156.244.31.209:8081" healthCheck: path: "/" interval: "5s" # Бэкенд по умолчанию top_geovizor top_geovizor_default: loadBalancer: servers: - url: "http://127.0.0.1:8082" healthCheck: path: "/" interval: "5s" # Определяем транспорт для отключения проверки SSL serversTransports: insecureTransport: insecureSkipVerify: true # Добавляем сертификаты tls: certificates: EOF ``` Для хранения сертификатов файл: ```sh sudo touch /etc/traefik/acme.json && sudo chmod 600 /etc/traefik/acme.json ``` --- ## ⚙️ Шаг 5. Настройка systemd для автозапуска Создайте файл сервиса: ```sh cd /etc/systemd/system && sudo tee /etc/systemd/system/traefik.service > /dev/null <<'EOF' [Unit] Description=Traefik After=network.target [Service] ExecStart=/usr/local/bin/traefik --configFile=/etc/traefik/traefik.yml Restart=always [Install] WantedBy=multi-user.target EOF ``` Примените: ```sh sudo systemctl daemon-reload && sudo systemctl enable traefik && sudo systemctl start traefik && sudo systemctl status traefik ``` ```sh sudo systemctl restart traefik ``` --- ## 🔎 Шаг 6. Проверка работы Откройте в браузере: ```sh open http://localhost:8080/dashboard/ ``` > ⚠️ Доступ к дашборду открыт только с localhost. Для удалённого доступа настройте правила. --- ## ✅ Готово! Traefik установлен, запущен как сервис и готов к работе. Проверяем какие порты слушает: ```sh sudo lsof -i -P -n | grep traefik ``` ```sh sudo journalctl -u traefik -f ``` --- ## 🐳 Как вариант можно установить через Docker Если Docker не установлен, установим его: ```sh sudo apt update && sudo apt upgrade -y sudo apt install -y docker.io docker-compose sudo systemctl enable --now docker ``` Проверим версию: ```sh docker --version docker-compose --version ``` ```sh sudo mkdir -p /opt/traefik cd /opt/traefik ``` ```sh cd /opt/traefik && sudo tee docker-compose.yml > /dev/null <<'EOF' services: traefik: image: traefik:latest container_name: traefik restart: unless-stopped ports: - "80:80" # HTTP - "443:443" # HTTPS - "8080:8080" # Dashboard volumes: - /etc/traefik:/etc/traefik - /var/run/docker.sock:/var/run/docker.sock:ro command: - "--configFile=/etc/traefik/traefik.yml" networks: - traefik-net networks: traefik-net: driver: bridge EOF ``` ## Запуск контейнера ```sh cd /opt/traefik && sudo docker-compose up -d ``` ```sh cd /opt/traefik && sudo docker-compose down ``` Откройте в браузере: ```sh open http://192.168.200.85:8080/dashboard/ ``` ```sh sudo docker logs traefik ```