Fransys

Deploy Django in production, Celery included

A Django application in production means a WSGI or ASGI server, a database, Redis, Celery workers and beat. All five go on the canvas as blocks and deploy from your Git repository, without YAML.

No credit card, no commitment.

Stack diagramDjango
01

Your Django repository

02
  1. Django application
  2. PostgreSQL
  3. Redis
  4. Celery workers
  5. Celery beat
  6. Object storage
03

Kubernetes, built and run by Fransys

04

The European cloud you chose Scaleway · OVHcloud · Hetzner · Outscale

What to build between runserver and production

On a developer's machine, Django fits in one command. In production, the Django checklist asks for a real WSGI or ASGI server, debug turned off, a secret key, allowed hosts, collected static files and media kept apart. Celery adds a broker, workers and a scheduler. The canvas describes this whole architecture, code included, and the platform operates it.

  • 5blocks for a complete Django app
  • 1deployment gesture: git push
  • 0lines of YAML to write

The typical Django architecture, block by block

  1. The application

    Your repository, built from its Dockerfile and served by a WSGI or ASGI server, Gunicorn or Uvicorn for example. Domains, TLS and environment variables are set in the block.

  2. The database

    Managed PostgreSQL, automatic backups. Connect the block: DB_HOST, DB_PASSWORD and the other credentials are injected into the application.

  3. Redis

    The Celery broker and the cache on a dedicated block, sized separately. The broker URL is composed from the injected variables.

  4. The Celery workers

    A second Docker block on the same repository, with its own Dockerfile, runs celery -A proj worker -l INFO on its own resources. On the TERM signal, it finishes running tasks before stopping.

  5. Celery beat

    A separate block, and a single instance: two schedulers would send duplicate tasks. The Celery documentation advises against embedding it in the worker in production.

  6. The files

    Static files go into the image with collectstatic, served by WhiteNoise for example. Media, uploaded by your users, go to S3-compatible object storage, never into the image.

From push to release

  1. git push

    The commit lands on the configured branch.

  2. build

    The image is built with your Python dependencies and your collected static files.

  3. migrate

    Migrations run before traffic is switched over.

  4. live

    The new version receives traffic. On failure, automatic rollback to the previous one.

With your agent, or by hand

With your agentexample

Deploy my Django app: PostgreSQL, Redis, a Celery worker and beat.

  1. The agent reads your repository and prepares the plan: the blocks, each with its price.
  2. Someone on the team approves the plan.
  3. The engine executes; migrations run before traffic is switched over.

The airlock, in detail

By hand

  1. Place the blocks on the canvas: application, database, Redis, worker, beat.
  2. Connect your Git repository and declare the migration in the deployment commands.
  3. Push to the configured branch: the release goes live.

A tour of the canvas

What people ask about Django

Does Fransys have a Django block?

Django goes through the Docker block, with your Dockerfile. Laravel, React, Angular and Vue have a native block; other frameworks use this one, which has the same connections, variables, metrics and logs.

How are migrations handled?

python manage.py migrate is declared in the block's deployment commands. It runs after the new image is deployed and before traffic is switched over. If it fails, the deployment stops and the live version is left untouched.

Why do my forms return a CSRF error over HTTPS?

The certificate sits at the cluster entrance, and the proxy can hide from Django that the original request was HTTPS. Set SECURE_PROXY_SSL_HEADER to the pair HTTP_X_FORWARDED_PROTO and https, add your domains to ALLOWED_HOSTS and their https origins to CSRF_TRUSTED_ORIGINS.

What should I check before going to production?

Run python manage.py check --deploy, as the Django checklist asks. DEBUG stays False, SECRET_KEY lives in the block's variables, outside the repository, and ALLOWED_HOSTS carries your domains: without it, Django does not work.

Which Django version should I choose?

As of 2 November 2026, 5.2 LTS, whose latest patch is 5.2.18, is in extended support until April 2028: security fixes and data loss bugs. The latest official release is 6.1.2. The Python version and the base image remain your choice, in your Dockerfile.

What about scheduled tasks without Celery?

A manage.py command can run as a recurring task of the application block, a cron with its logs. Celery beat becomes useful once you already have workers.

To go further: CI/CD on Kubernetes and Kubernetes autoscaling.

Your Django app on Fransys: where to start

See the console in demo, in your name. To cost your app, the infra plan does it line by line, machines included.

No credit card, no commitment.

Read on the blog

CostMarch 13, 20267 min

What does a DevOps engineer really cost in 2026? (and how to keep that spend down)

Salary, social contributions, recruitment, turnover: the real cost of a DevOps engineer in France exceeds €90,000/year. Full breakdown and alternatives for startups without DevOps.

CostMarch 20, 20266 min

Heroku and Vercel too expensive: where to migrate in 2026?

Heroku with no free tier, Vercel bills spiralling: a comparison of European alternatives for startups. Migrate to managed Kubernetes without DevOps.

CostFebruary 9, 202611 min

AWS vs Fransys: what does your cloud infrastructure really cost in 2026?

A detailed AWS vs Fransys comparison on European hosting. Prices line by line, and three costed startup scenarios.