Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CanFly Railway Deployment

Проект для развертывания инфраструктуры CanFly на платформе Railway.app с поддержкой поддоменов через Cloudflare DNS.

Особенности проекта

  • 🚂 Развертывание на платформе Railway.app
  • 🔄 Перенаправление поддоменов в пути /i/[service]
  • 🛡️ Интеграция с Cloudflare DNS
  • 📊 Подробное логирование всех операций
  • 🧩 Простое добавление новых сервисов

Начало работы

Предварительные требования

  1. Установленный Railway CLI
  2. Домен, настроенный на Cloudflare
  3. Python 3 и pip
  4. curl, jq (для работы скрипта)

Установка

  1. Клонируйте репозиторий:
git clone https://github.com/yourusername/canfly-railway.git
cd canfly-railway
  1. Получите API токен Cloudflare (см. cloudflare-api-setup.md)

  2. Запустите скрипт развертывания:

chmod +x railway-deploy.sh
./railway-deploy.sh
  1. Следуйте инструкциям в консоли

Структура проекта

/
├── railway-deploy.sh        # Основной скрипт развертывания
├── cloudflare-api-setup.md  # Инструкция по настройке Cloudflare API
└── README.md                # Эта документация

После запуска скрипта создается временная директория с проектом, которая отправляется на Railway:

/tmp/temp-dir/
├── app/                      # Статические файлы для Nginx
│   └── index.html            # Демонстрационная страница
├── nginx/                    # Конфигурация Nginx
│   └── conf.d/
│       └── default.conf      # Основная конфигурация с обработкой поддоменов
├── Dockerfile                # Dockerfile для сборки образа
├── railway.json              # Конфигурация для Railway
└── ... (другие служебные файлы)

Как это работает

  1. Скрипт создает проект на Railway с Nginx сервером
  2. Настраивает DNS записи в Cloudflare для основного домена и wildcard поддомена
  3. Nginx обрабатывает запросы и перенаправляет поддомены в пути /i/[service]

Пример переадресации

  • Запрос к https://mail.canfly.org будет автоматически перенаправлен на https://canfly.org/i/mail
  • Аналогично работает для любых других поддоменов

Настройка существующего проекта

Если вы уже запускали скрипт и хотите внести изменения:

# Войдите в Railway CLI
railway login

# Найдите директорию с временными файлами в логах
grep "Создана временная директория" ~/.railway-canfly-logs/deploy-*.log | tail -1

# Перейдите в эту директорию и внесите изменения
cd /tmp/temp-dir-example
# Внесите изменения...

# Разверните обновления
railway up

Логи и отладка

  • Логи сохраняются в директории ~/.railway-canfly-logs/
  • Конфигурация хранится в ~/.railway-canfly-config/

Лицензия

MIT

Доступ к логам

В проекте настроен защищенный доступ к логам Nginx через Basic Authentication.

Настройка через переменные окружения

Для корректной работы необходимо установить следующие переменные окружения:

  • LOGS_USER: имя пользователя для доступа к логам (по умолчанию admin)
  • LOGS_PASSWORD: пароль для доступа к логам (по умолчанию admin, рекомендуется сменить)

Локальная настройка

Для локальной разработки создайте файл .env в корне проекта:

LOGS_USER=admin
LOGS_PASSWORD=secure_password

Настройка в Railway

Для продакшн-среды установите переменные окружения через Railway Dashboard:

  1. Перейдите в Railway Dashboard
  2. Выберите проект
  3. Перейдите в раздел "Variables"
  4. Добавьте переменные LOGS_USER и LOGS_PASSWORD

Доступ к логам

Доступ к логам осуществляется по URL /logs/ с использованием Basic Authentication.

Пример доступа через curl:

curl -u $LOGS_USER:$LOGS_PASSWORD https://canfly.org/logs/access.log

Пример скачивания файла логов:

wget --user=$LOGS_USER --password=$LOGS_PASSWORD https://canfly.org/logs/access.log

About

nginx configuration for Diaspora

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages