Railway — облачная платформа с бесплатным тиром. Деплой через GitHub за несколько минут.
Подготовка проекта
pip install gunicorn whitenoise dj-database-url
pip freeze > requirements.txt
# settings.py
import os
import dj_database_url
DEBUG = os.environ.get('DEBUG', 'False') == 'True'
SECRET_KEY = os.environ.get('SECRET_KEY')
ALLOWED_HOSTS = os.environ.get('ALLOWED_HOSTS', '').split(',')
# База данных из переменной окружения
DATABASES = {
'default': dj_database_url.config(
default=os.environ.get('DATABASE_URL'),
conn_max_age=600,
)
}
# Статика через whitenoise
MIDDLEWARE = [
'whitenoise.middleware.WhiteNoiseMiddleware',
...
]
STATIC_ROOT = BASE_DIR / 'staticfiles'
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
Procfile
Создай файл Procfile в корне проекта:
web: gunicorn mysite.wsgi --workers 2 --bind 0.0.0.0:$PORT
release: python manage.py migrate
.gitignore
.env
*.pyc
__pycache__/
db.sqlite3
staticfiles/
media/
Деплой на Railway
- Залей проект на GitHub
- Зайди на railway.app → New Project → Deploy from GitHub
- Выбери репозиторий
- Добавь PostgreSQL: New → Database → PostgreSQL
- В настройках сервиса добавь переменные:
-SECRET_KEY— сгенерируй:python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"
-DEBUG=False
-ALLOWED_HOSTS=your-app.railway.app
-DATABASE_URL— подтянется автоматически из PostgreSQL сервиса
Команды после деплоя
# В Railway → Service → Shell (или через CLI)
python manage.py migrate
python manage.py collectstatic --no-input
python manage.py createsuperuser
💬 Комментарии (0)
Комментариев пока нет
Станьте первым, кто поделится мнением об этой статье!