{% extends "cms/base.html" %} {% block title %}Connect {{ obj.name }}{% endblock %} {% block extra_head %} {% endblock %} {% block cms_content %}

Fleet / {{ obj.name }} / Connection

Back Tenant
1. Add these to that server's .env

On {{ app_dir }}/.env. Replace any existing lines with the same names rather than adding a second copy, since the last one wins and two of anything is how an install ends up pointing at the wrong panel.

{{ env_block }}
2. Schedule the check-in

Without this the link exists and never runs. Every fifteen minutes the site reports its version and health, and takes back its plan, modules and colours.

{{ cron_line }}
3. Prove it works

Run once by hand first. A cron that fails silently is worse than none.

cd {{ app_dir }} && venv/bin/python manage.py ft_checkin --dry-run --settings=config.settings.production

It should print the directives coming back: plan, modules, target version and colours. Then restart the site so the new .env is read, and this tenant appears in Fleet within fifteen minutes.

Site
Name{{ obj.name }}
Slug{{ obj.slug }}
Domain{{ obj.primary_domain|default:"Not set" }}
Its panel{{ obj.cms_subdomain|default:"Not set" }}
Plan{{ obj.get_plan_display }}
Last check-in {% if obj.last_checkin_at %}{{ obj.last_checkin_at|date:"d M Y, H:i" }}{% else %}Never{% endif %}
Where is it hosted
{% if same_server %}

Set for a site on this server: the check-in stays on the machine and never leaves through Cloudflare.

It is on another server {% else %}

Set for a site on another server: it reaches this panel over HTTPS at {{ panel_host }}.

It is on this server {% endif %}
Handle With Care
This key lets that site identify itself to this panel. Anyone holding it can check in as that tenant. Put it in the .env and nowhere else: not in a message, not in a shared document. Rotating it from Fleet stops the old one at once.
{% endblock %} {% block extra_js %} {% endblock %}