Гайд по деплою · Django
Разверните Django за считанные минуты.
Подключите репозиторий, Railpack соберёт его, сервис получит домен с TLS. Базы данных из шаблонов, потребление списывается поминутно с предоплаченного баланса, всё на нодах в ЕС.
$ npm i -g skiffly && skiffly login
$ cd mysite && skiffly init
$ skiffly deploy --template postgres
$ skiffly variables set 'DATABASE_URL=${{Postgres.DATABASE_URL}}'
$ skiffly upЧто распознаёт Railpack
Railpack изучает репозиторий и подбирает сборку для Django; большинству проектов настройка не нужна. Dockerfile в репозитории всегда имеет приоритет.
- requirements.txt / pyproject.toml / Pipfile
- manage.py
- .python-version / runtime.txt
- Сборщик
- Railpack (по умолчанию)
- Команда запуска
- python manage.py migrate && python manage.py collectstatic --noinput && gunicorn mysite.wsgi --bind 0.0.0.0:$PORT
Определяется Railpack; переопределите её в Настройки → Деплой → Команда запуска.
Порт и $PORT
Skiffly прокидывает PORT в каждый сервис и направляет на него публичный домен. Укажите порт в настройках сервиса, если приложение слушает фиксированный; по умолчанию для Django это 8000, а если ничего не задано — 8080.
gunicorn mysite.wsgi --bind 0.0.0.0:$PORT- PORT
- 8000
- SKIFFLY_PUBLIC_DOMAIN
- <service>.skiffly.cloud
Из терминала
Установите CLI, привяжите директорию, разверните. skiffly up собирает запушенный HEAD текущей ветки и стримит логи сборки; skiffly domain выдаёт сервису адрес *.skiffly.cloud.
Или опишите один раз
.skiffly/skiffly.ts объявляет сервис, его базы данных и ссылки между ними. skiffly config plan показывает diff, skiffly config apply применяет его. API повторяет railway/iac.
// .skiffly/skiffly.ts
import { defineSkiffly, generate, github, postgres, project, service } from "@skiffly/config";
export default defineSkiffly(() => {
const db = postgres("db");
const web = service("web", {
source: github("acme/web"),
start: "python manage.py migrate && gunicorn mysite.wsgi --bind 0.0.0.0:$PORT",
port: 8000,
healthcheck: "/",
env: {
DATABASE_URL: db.env.DATABASE_URL,
SECRET_KEY: generate("hex64"),
},
});
return project("web", { resources: [web, db] });
});Работает с нужными вам шаблонами
Разверните базу данных рядом с сервисом Django и сошлитесь на её переменные: ${{Postgres.DATABASE_URL}} работает по приватной сети, без публичного порта.
Django на Skiffly: частые вопросы
Как задать переменные окружения для Django?
skiffly variables set KEY=value или в .skiffly/skiffly.ts. Ссылайтесь на другие сервисы через ${{Postgres.DATABASE_URL}}, а на общие значения окружения — через ${{shared.NAME}}. Секреты шифруются при хранении.Можно ли изменить команду сборки или запуска?
Как добавить Postgres или Redis?
skiffly connect postgres.Будут ли preview-окружения для каждого pull request?
Сколько стоит небольшое приложение на Django?
Может ли сервис Django засыпать при простое?
Разверните своё приложение на Django сегодня
Бесплатный тариф без карты. Hobby от $5, из них $5 потребления включено.