{# il2ks-template: templates/il2ks/setup.html v1 - copy this line along when you override #} {% extends "il2ks/base.html" %}{% load i18n static il2ks %}{% comment %} The first-run setup form (doc 07 option B). Only reachable from this computer with the setup token (views/setup.py). Context: form (SetupForm), token, candidates [Candidate(path, reports, newest)], chosen_logs, logs_status, timezone_guessed, windows, config_exists, config_path. Works without JavaScript; setup.js only preselects the browser's time zone. {% endcomment %} {% block head %}{% endblock %} {% block nav %}{% endblock %} {% block content %}

{% translate "First-run setup" %}

{% translate "A few questions, then the site is ready. This page only opens on this computer and disappears when you are done." %}

{% if form.errors %} {% notice "warning" title=_("Not saved yet") %}{% translate "Please look at the marked answers below. Nothing was changed." %}{% endnotice %} {% endif %} {% for error in form.non_field_errors %} {% notice "warning" %}{{ error }}{% endnotice %} {% endfor %} {% if config_exists %} {% notice "info" %}{% blocktranslate with path=config_path %}A configuration file already exists ({{ path }}). Your answers are written into it; everything else in it stays, and a dated copy is kept.{% endblocktranslate %}{% endnotice %} {% endif %}
{% csrf_token %}

{% translate "1. The game server's log folder" %}

{% translate "il2ks reads the missionReport(…)[N].txt text logs that the game server writes. These are the folders that look like it:" %}

{% if candidates %}
{% for c in candidates %} {% endfor %}
{% else %}

{% translate "Nothing found. The server may not write text logs yet; the final check will say what to switch on in the game server." %}

{% endif %} {% for error in form.logs_custom.errors %}{{ error }}{% endfor %} {% if logs_status %} {% if not logs_status.exists %}

{% translate "That folder does not exist yet. il2ks will start watching once it appears." %}

{% elif logs_status.reports %}

{% blocktranslate count n=logs_status.reports %}Found {{ n }} mission report file there.{% plural %}Found {{ n }} mission report files there.{% endblocktranslate %}

{% else %}

{% translate "The folder exists, but no mission reports are in it yet. That is fine for a new server, as long as the game server is set to write text logs there." %}

{% endif %} {% endif %}

{% translate "Is the game server on another computer? Give the folder that its logs are copied or shared to." %}

{% translate "2. Time zone" %}

{% translate "The game server names its log files in its own computer's local time, so il2ks has to know that time zone." %}

{% for error in form.timezone.errors %}{{ error }}{% endfor %} {% if timezone_guessed and windows %} {% translate "Windows cannot tell us the name of its time zone. If your browser can, it was filled in for you; please check it." %} {% elif timezone_guessed %} {% blocktranslate with zone=detected_timezone %}Detected: {{ zone }}. Change it if the game server's computer uses another one.{% endblocktranslate %} {% endif %}

{% translate "3. Website address and HTTPS" %}

{% translate "The site is served over HTTPS only, so players need an address that points to this computer." %}

{% for error in form.domain.errors %}{{ error }}{% endfor %} {% translate "The name has to point at this computer (a DNS record at your domain provider), and ports 80 and 443 must be reachable from the internet. The certificate is then requested and renewed automatically." %}
{% translate "I have no domain name yet" %}
  • {% translate "Leave the box empty. The site starts with a self-signed test certificate: browsers warn that it is “not secure”. Good for trying things out, not for your players." %}
  • {% translate "Or type this computer's public IP address. Certificate authorities can issue short-lived certificates (about 6 days) for an IP address and il2ks renews them by itself. The address must be public, and port 80 must be reachable." %}
  • {% translate "Free dynamic-DNS names (DuckDNS and similar) work like any other domain name." %}
{{ form.https_mode.label }} {% for error in form.https_mode.errors %}{{ error }}{% endfor %}
{% for error in form.email.errors %}{{ error }}{% endfor %} {% translate "The certificate authority writes here before a certificate would expire. Only used with the bundled Caddy." %}

{% translate "4. Admin account" %}

{% translate "The admin account opens the admin pages (site name and look, hiding players, ingestion history)." %}

{% for error in form.admin_username.errors %}{{ error }}{% endfor %} {% for error in form.admin_password.errors %}{{ error }}{% endfor %} {% for error in form.admin_password2.errors %}{{ error }}{% endfor %} {% translate "At least 8 characters, not a common password, not only digits, not like the user name." %}
{% endblock %} {% block scripts %}{% endblock %}