<divclass="head"><h1>Backups <small>{% if kind == "org" %}<ahref="/orgs/{{ owner }}/settings">{{ owner }}</a>'s repositories{% else %}your repositories{% endif %}, copied to a place you control</small></h1></div>
10
{% if let Some(n) = notice %}<pclass="note">{{ n }}</p>{% endif %}
11
{% if let Some(e) = error %}<pclass="error">{{ e }}</p>{% endif %}
12
<pclass="small mute backup-what">Each run copies every repository {% if kind == "org" %}the organisation{% else %}you{% endif %} own, with its wiki, byte for byte (signatures and all), its issues, proposals, releases and settings (never a secret value){% if kind == "org" %}, and the organisation's members and teams{% endif %}. Only what changed since the last run travels, and any kept run can be restored with <code>oxygenhub admin restore</code>.</p>
13
14
<formclass="card wide backup-form"method="post"action="{{ base }}">
{% for (v, label) in every() %}<labelclass="choice"><inputtype="radio"name="every"value="{{ v }}"{% ifsetting.every== *v %} checked{% endif %}> {{ label }}</label>{% endfor %}
20
</fieldset>
21
<fieldsetclass="choices">
22
<legendclass="small mute">Where</legend>
23
{% if !dirs.is_empty() %}<labelclass="choice"><inputtype="radio"name="destination"value="dir"{% ifsetting.destination== "dir" %} checked{% endif %}> A directory on this hub's host</label>{% endif %}
<labelclass="choice"><inputtype="radio"name="destination"value="gcs"{% ifsetting.destination== "gcs" || (dirs.is_empty() && setting.destination != "s3") %} checked{% endif %}> A Google Cloud Storage bucket, with no key</label>
25
<labelclass="choice"><inputtype="radio"name="destination"value="s3"{% ifsetting.destination== "s3" %} checked{% endif %}> An Amazon S3 bucket, with no key</label>
<selectid="dir"name="dir">{% for d in dirs %}<optionvalue="{{ d }}"{% ifsetting.destination== "dir" && setting.target== *d %} selected{% endif %}>{{ d }}/{{ owner }}</option>{% endfor %}</select>
<pclass="small mute">The hub signs in as <code>backup:{{ owner }}</code> with a token it issues itself; Google exchanges it for a few minutes' access to this bucket. No key file exists. One-time setup: <ahref="/help#backups">Help › Backups</a> (docs/backups.md §6).</p>
<pclass="small mute">The hub signs in to AWS as <code>backup:{{ owner }}</code> with a token it issues itself (audience <code>sts.amazonaws.com</code>); AWS gives it an hour's credentials of this role. No access key exists. One-time setup: docs/backups.md §6.</p>
<selectid="keep_days"name="keep_days">{% for k in keeps() %}<optionvalue="{{ k }}"{% ifsetting.keep_days== *k %} selected{% endif %}>{{ k }} days</option>{% endfor %}</select>
<formclass="inline more"method="post"action="{{ base }}/test"><inputtype="hidden"name="_csrf"value="{{ shell.csrf }}"><buttontype="submit"class="small"{% ifsetting.updated_ms==0 %} disabledtitle="Save where backups go first"{% endif %} title="Write, read and remove a probe at the destination">TEST</button></form>
53
<formclass="inline"method="post"action="{{ base }}/run"><inputtype="hidden"name="_csrf"value="{{ shell.csrf }}"><buttontype="submit"class="small primary-btn"{% ifsetting.updated_ms==0 %} disabledtitle="Save where backups go first"{% endif %}>Back up now</button></form>