Outline установка на Ubuntu: Пошаговый гайд для DevOps | AdminWiki

Outline установка на Ubuntu: Полное руководство для развертывания wiki-платформы

17 декабря 2025 8 мин. чтения #devops #docker #notion #outline #self-hosted #ubuntu #wiki #развертывание

Что такое Outline и зачем он нужен?

Представь, что тебе нужна внутренняя wiki-платформа для команды, которая сочетает мощь Notion с полным контролем над данными. Outline — это именно такой инструмент. Это open-source альтернатива Notion, которую можно развернуть на собственном сервере. Давай разберем, как выполняется установка Outline на Ubuntu с нуля.

Ключевые преимущества: Полный контроль данных, интеграция с Slack/GitHub, markdown-редактор, совместное редактирование в реальном времени, расширенный поиск.

Подготовка сервера Ubuntu

Перед тем как начать установку Outline Ubuntu, убедись, что у тебя есть:

  • Сервер Ubuntu 20.04 LTS или 22.04 LTS (рекомендуется)
  • Минимум 2 GB RAM и 20 GB дискового пространства
  • Доступ по SSH с правами sudo
  • Зарегистрированное доменное имя (например, wiki.yourcompany.com)

Обновление системы и установка зависимостей

Первым делом обновим пакеты и установим необходимые инструменты:

bash
# Обновление списка пакетов
sudo apt update && sudo apt upgrade -y

# Установка необходимых утилит
sudo apt install -y curl wget gnupg apt-transport-https ca-certificates software-properties-common

Установка Docker и Docker Compose

Outline работает в контейнерах Docker, поэтому нам нужно установить Docker Engine и Docker Compose.

Установка Docker

bash
# Добавление официального GPG ключа Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# Добавление репозитория Docker
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Установка Docker Engine
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# Добавление текущего пользователя в группу docker
sudo usermod -aG docker $USER
newgrp docker

# Проверка установки
docker --version

Установка Docker Compose (отдельно)

bash
# Скачивание последней версии Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# Даем права на выполнение
sudo chmod +x /usr/local/bin/docker-compose

# Проверяем установку
docker-compose --version

Настройка базы данных PostgreSQL

Outline требует базу данных PostgreSQL. Мы можем использовать готовый контейнер или внешнюю БД.

bash
# Создаем docker-compose.yml для PostgreSQL
mkdir -p ~/outline-setup
cd ~/outline-setup

cat > docker-compose-postgres.yml << 'EOF'
version: '3.8'
services:
  postgres:
    image: postgres:15-alpine
    container_name: outline-postgres
    restart: unless-stopped
    environment:
      POSTGRES_DB: outline
      POSTGRES_USER: outline_user
      POSTGRES_PASSWORD: YourStrongPassword123!
    volumes:
      - postgres_data:/var/lib/postgresql/data
    ports:
      - "5432:5432"

volumes:
  postgres_data:
EOF

# Запускаем PostgreSQL
docker-compose -f docker-compose-postgres.yml up -d

# Проверяем, что контейнер работает
docker ps | grep postgres
Важно! Замени "YourStrongPassword123!" на сложный пароль. Запомни его — он понадобится при настройке Outline.

Установка Redis для кэширования

Redis используется для сессий и кэширования. Создадим отдельный конфиг:

bash
cat > docker-compose-redis.yml << 'EOF'
version: '3.8'
services:
  redis:
    image: redis:7-alpine
    container_name: outline-redis
    restart: unless-stopped
    command: redis-server --requirepass YourRedisPassword123!
    volumes:
      - redis_data:/data
    ports:
      - "6379:6379"

volumes:
  redis_data:
EOF

# Запускаем Redis
docker-compose -f docker-compose-redis.yml up -d

Основная установка Outline

Теперь перейдем к основной части — развертыванию Outline на Ubuntu.

Создание конфигурационного файла .env

bash
# Создаем директорию для Outline
mkdir -p ~/outline
cd ~/outline

# Создаем файл конфигурации
cat > .env << 'EOF'
# Базовые настройки
NODE_ENV=production
SECRET_KEY=your-secret-key-change-this-with-random-string
UTILS_SECRET=another-secret-key-change-this-too

# Настройки базы данных
DATABASE_URL=postgres://outline_user:YourStrongPassword123!@localhost:5432/outline
DATABASE_CONNECTION_POOL_MIN=2
DATABASE_CONNECTION_POOL_MAX=10

# Настройки Redis
REDIS_URL=redis://:YourRedisPassword123!@localhost:6379

# URL приложения
URL=https://wiki.yourdomain.com
PORT=3000

# Настройки электронной почты (для уведомлений)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USERNAME=your-email@gmail.com
SMTP_PASSWORD=your-app-password
SMTP_FROM_EMAIL=noreply@yourdomain.com
SMTP_TLS_CIPHERS=SSLv3

# Загрузка файлов (используем локальное хранилище)
FILE_STORAGE=local
FILE_STORAGE_LOCAL_ROOT_DIR=/var/lib/outline/data
EOF
Примечание: Для SMTP используй App Password если это Gmail. Для других почтовых сервисов настройки будут отличаться.

Создание docker-compose.yml для Outline

yaml
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
  outline:
    image: getoutline/outline:latest
    container_name: outline-app
    restart: unless-stopped
    depends_on:
      - postgres
      - redis
    env_file:
      - .env
    environment:
      - NODE_ENV=production
    volumes:
      - outline_data:/var/lib/outline/data
      - ./data:/var/lib/outline/data
      - ./storage:/var/lib/outline/data
    ports:
      - "3000:3000"
    networks:
      - outline-network

  postgres:
    image: postgres:15-alpine
    container_name: outline-postgres
    restart: unless-stopped
    environment:
      POSTGRES_DB: outline
      POSTGRES_USER: outline_user
      POSTGRES_PASSWORD: YourStrongPassword123!
    volumes:
      - postgres_data:/var/lib/postgresql/data
    networks:
      - outline-network

  redis:
    image: redis:7-alpine
    container_name: outline-redis
    restart: unless-stopped
    command: redis-server --requirepass YourRedisPassword123!
    volumes:
      - redis_data:/data
    networks:
      - outline-network

volumes:
  outline_data:
  postgres_data:
  redis_data:

networks:
  outline-network:
    driver: bridge
EOF

Запуск Outline

bash
# Запускаем все сервисы
docker-compose up -d

# Проверяем логи (первые запуски могут занять время)
docker-compose logs -f outline

Настройка Nginx и SSL (HTTPS)

Для production-окружения нам нужен HTTPS. Используем Nginx как reverse proxy и Certbot для SSL-сертификатов.

Установка Nginx

bash
sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx

Настройка Nginx для Outline

bash
# Создаем конфиг для Outline
sudo nano /etc/nginx/sites-available/outline

# Вставляем конфигурацию:
server {
    listen 80;
    server_name wiki.yourdomain.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_cache_bypass $http_upgrade;
    }

    # Максимальный размер загружаемых файлов (100MB)
    client_max_body_size 100M;
}

# Активируем конфиг
sudo ln -s /etc/nginx/sites-available/outline /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Установка SSL с помощью Certbot

bash
# Установка Certbot
sudo apt install -y certbot python3-certbot-nginx

# Получение SSL-сертификата
sudo certbot --nginx -d wiki.yourdomain.com

# Настройка автоматического обновления
sudo certbot renew --dry-run

Первоначальная настройка Outline

После успешной установки Outline на Ubuntu открой браузер и перейди по адресу https://wiki.yourdomain.com. Тебе нужно:

  1. Создать первую учетную запись администратора
  2. Настроить название рабочего пространства
  3. Пригласить первых пользователей
  4. Настроить интеграции (Slack, GitHub и др.)

Управление и обслуживание

Полезные команды Docker

Команда Описание
docker-compose ps Показать статус контейнеров
docker-compose logs -f Показать логи в реальном времени
docker-compose restart outline Перезапустить Outline
docker-compose down Остановить все контейнеры
docker-compose pull Обновить образы

Резервное копирование данных

bash
#!/bin/bash
# Скрипт для резервного копирования Outline
BACKUP_DIR="/backup/outline"
DATE=$(date +%Y%m%d_%H%M%S)

# Создаем директорию для бэкапов
mkdir -p $BACKUP_DIR

# Бэкап базы данных
docker exec outline-postgres pg_dump -U outline_user outline > $BACKUP_DIR/outline_db_$DATE.sql

# Бэкап загруженных файлов
tar -czf $BACKUP_DIR/outline_data_$DATE.tar.gz ~/outline/data/

# Удаляем старые бэкапы (старше 30 дней)
find $BACKUP_DIR -name "*.sql" -mtime +30 -delete
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete

echo "Backup completed: $BACKUP_DIR/outline_db_$DATE.sql"
echo "Backup completed: $BACKUP_DIR/outline_data_$DATE.tar.gz"

Частые проблемы и решения

Проблема Решение
Outline не запускается Проверь логи: docker-compose logs outline. Частая причина — ошибки в .env файле.
Нет подключения к БД Убедись, что PostgreSQL запущен: docker ps | grep postgres
Ошибки с SSL Проверь настройки Nginx и срок действия сертификата: sudo certbot certificates
Медленная работа Увеличь ресурсы сервера, проверь использование RAM/CPU, оптимизируй запросы к БД.

FAQ: Ответы на частые вопросы

Можно ли установить Outline без Docker?

Технически да, но это сложнее. Официальная документация рекомендует Docker-установку как наиболее стабильную. Ручная установка требует настройки Node.js, PostgreSQL, Redis и всех зависимостей отдельно.

Как обновить Outline до новой версии?

1. Сделай бэкап данных. 2. Останови контейнеры: docker-compose down. 3. Обнови образ: docker-compose pull. 4. Запусти заново: docker-compose up -d. Проверь changelog на GitHub перед обновлением.

Какие есть альтернативы локальному хранилищу файлов?

Outline поддерживает AWS S3, Google Cloud Storage, Azure Blob Storage. Для этого измени FILE_STORAGE в .env файле и добавь соответствующие ключи доступа.

Как настроить аутентификацию через OAuth (Google, GitHub)?

В настройках администратора Outline есть раздел "Authentication". Там можно добавить OAuth-провайдеров. Для каждого нужны Client ID и Client Secret из соответствующего сервиса.

Заключение

Поздравляю! Ты успешно выполнил установку Outline на Ubuntu. Теперь у тебя есть мощная, self-hosted wiki-платформа с полным контролем над данными. Помни про регулярные бэкапы и обновления безопасности.

Следующие шаги: Настрой интеграции, пригласи команду, создай структуру документов, изучи расширенные возможности редактора и настрой автоматические уведомления.

Если возникнут вопросы — официальная документация Outline и сообщество на GitHub всегда помогут. Удачи в создании твоей идеальной базы знаний!

Поделиться:
Сохранить гайд? В закладки браузера