Files
Ubuntu_docs/Traefik_install_CCALM.md
2025-04-07 07:46:21 +05:00

5.7 KiB
Raw Blame History

Устанавливаю Traefik на туречский сервер

ssh igor@156.244.31.209 -p 2200

Установка Traefik на Linux Mint / Ubuntu

📥 Шаг 1. Установка зависимостей

Убедитесь, что установлены wget и systemd:

sudo apt update &&
sudo apt install wget

📥 Шаг 2. Скачать последнюю версию Traefik

Проверь актуальную версию на: Traefik Releases

Пример для версии v3.0.0:sudo mc

cd ~ &&
wget https://github.com/traefik/traefik/releases/download/v3.3.4/traefik_v3.3.4_linux_amd64.tar.gz

📥 Шаг 3. Распаковка и установка

  cd ~ &&
  tar -xvzf traefik_v3.3.4_linux_amd64.tar.gz &&
  sudo mv traefik /usr/local/bin/

Проверь версию:

  traefik version
Version:      3.3.4
Codename:     saintnectaire
Go version:   go1.23.6
Built:        2025-02-25T10:11:01Z
OS/Arch:      linux/amd64

📁 Шаг 4. Создание директории и базового конфига

  sudo mkdir -p /etc/traefik &&
  cd /etc/traefik

Пример traefik.yml

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

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

Для хранения сертификатов файл:

  sudo touch /etc/traefik/acme.json &&
  sudo chmod 600 /etc/traefik/acme.json

⚙️ Шаг 5. Настройка systemd для автозапуска

Создайте файл сервиса:

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

Примените:

  sudo systemctl daemon-reload &&
  sudo systemctl enable traefik &&
  sudo systemctl start traefik &&
  sudo systemctl status traefik
  sudo systemctl restart traefik

🔎 Шаг 6. Проверка работы

Откройте в браузере:

open http://localhost:8080/dashboard/

⚠️ Доступ к дашборду открыт только с localhost. Для удалённого доступа настройте правила.


Готово!

Traefik установлен, запущен как сервис и готов к работе.

Проверяем какие порты слушает:

    sudo lsof -i -P -n | grep traefik
sudo journalctl -u traefik -f

🐳 Как вариант можно установить через Docker

Если Docker не установлен, установим его:

    sudo apt update && sudo apt upgrade -y
    sudo apt install -y docker.io docker-compose
    sudo systemctl enable --now docker

Проверим версию:

  docker --version
  docker-compose --version
  sudo mkdir -p /opt/traefik
  cd /opt/traefik
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

Запуск контейнера

  cd /opt/traefik &&
  sudo docker-compose up -d
  cd /opt/traefik &&
  sudo docker-compose down

Откройте в браузере:

open http://192.168.200.85:8080/dashboard/
  sudo docker logs traefik