mirror of
https://github.com/nextcloud/all-in-one.git
synced 2026-07-22 06:02:54 +00:00
fd4e0ddcb2
Previously it was three boolean options, which were supposed to be mutually exclusive, which had to be taken care of manually. Also previously there was only indirect indication of the choice "none", which is brittle, too. Signed-off-by: Pablo Zmdl <pablo@nextcloud.com>
315 lines
15 KiB
Twig
315 lines
15 KiB
Twig
<h2>Optional containers</h2>
|
|
<p>In this section you can enable or disable optional containers.</p>
|
|
{% if isAnyRunning == true %}
|
|
<p><strong>Please note:</strong> You can enable or disable the options below only when your containers are stopped.</p>
|
|
{% else %}
|
|
<p><strong>Please note:</strong> Make sure to save your changes by clicking <strong>Save changes</strong> below the list of optional containers. The changes will not be auto-saved.</p>
|
|
{% endif %}
|
|
<form id="options-form" method="POST" action="api/configuration" class="xhr">
|
|
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
|
|
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
|
|
<input type="hidden" name="options-form" value="options-form">
|
|
<h3>Office Suite</h3>
|
|
{% if isAnyRunning == false %}
|
|
<p>Choose your preferred office suite. Only one can be enabled at a time.</p>
|
|
{% endif %}
|
|
<div class="office-suite-cards">
|
|
<input
|
|
type="radio"
|
|
id="office-eurooffice"
|
|
name="office_suite_choice"
|
|
value="eurooffice"
|
|
class="office-radio"
|
|
{% if office_suite == 'eurooffice' %}
|
|
checked="checked"
|
|
{% endif %}
|
|
>
|
|
<label class="office-card{{ isAnyRunning ? ' office-card-disabled' : '' }}" for="office-eurooffice">
|
|
<div class="office-card-header">
|
|
<div>
|
|
<h4>Nextcloud Office</h4>
|
|
<p class="office-powered-by">powered by Euro-Office</p>
|
|
</div>
|
|
<svg class="office-checkmark" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
<circle cx="12" cy="12" r="10" fill="var(--color-nextcloud-blue)"/>
|
|
<path d="M7 12L10.5 15.5L17 9" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
</svg>
|
|
</div>
|
|
<ul class="office-features">
|
|
<li>Good Nextcloud integration</li>
|
|
<li>Open source</li>
|
|
<li>Best performance</li>
|
|
<li>Limited ODF compatibility</li>
|
|
<li>Best Microsoft compatibility</li>
|
|
<li>Good security</li>
|
|
</ul>
|
|
{% if isAnyRunning == false %}
|
|
<a href="https://github.com/Euro-Office" target="_blank" class="office-learn-more" data-stop-event-propagation="true">
|
|
Learn more
|
|
</a>
|
|
{% endif %}
|
|
</label>
|
|
<input
|
|
type="radio"
|
|
id="office-collabora"
|
|
name="office_suite_choice"
|
|
value="collabora"
|
|
class="office-radio"
|
|
{% if office_suite == 'collabora' %}
|
|
checked="checked"
|
|
{% endif %}
|
|
>
|
|
<label class="office-card{{ isAnyRunning ? ' office-card-disabled' : '' }}" for="office-collabora">
|
|
<div class="office-card-header">
|
|
<div>
|
|
<h4>Nextcloud Office</h4>
|
|
<p class="office-powered-by">powered by Collabora Online</p>
|
|
</div>
|
|
<svg class="office-checkmark" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
<circle cx="12" cy="12" r="10" fill="var(--color-nextcloud-blue)"/>
|
|
<path d="M7 12L10.5 15.5L17 9" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
</svg>
|
|
</div>
|
|
<ul class="office-features">
|
|
<li>Best Nextcloud integration</li>
|
|
<li>Open source</li>
|
|
<li>Good performance</li>
|
|
<li>Best ODF compatibility</li>
|
|
<li>Best support for legacy files</li>
|
|
<li>Best security: documents never leave your server</li>
|
|
</ul>
|
|
{% if isAnyRunning == false %}
|
|
<a href="https://www.collaboraoffice.com/code/" target="_blank" class="office-learn-more" data-stop-event-propagation="true">
|
|
Learn more
|
|
<img src="img/collabora.svg" alt="Collabora Logo" />
|
|
</a>
|
|
{% endif %}
|
|
</label>
|
|
<input
|
|
type="radio"
|
|
id="office-onlyoffice"
|
|
name="office_suite_choice"
|
|
value="onlyoffice"
|
|
class="office-radio"
|
|
{% if office_suite == 'onlyoffice' %}
|
|
checked="checked"
|
|
{% endif %}
|
|
>
|
|
<label class="office-card{{ isAnyRunning ? ' office-card-disabled' : '' }}" for="office-onlyoffice">
|
|
<div class="office-card-header">
|
|
<div>
|
|
<h4>ONLYOFFICE (deprecated)</h4>
|
|
<p class="office-powered-by">by Ascensio System SIA</p>
|
|
</div>
|
|
<svg class="office-checkmark" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
<circle cx="12" cy="12" r="10" fill="var(--color-nextcloud-blue)"/>
|
|
<path d="M7 12L10.5 15.5L17 9" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
</svg>
|
|
</div>
|
|
<ul class="office-features">
|
|
<li>OK Nextcloud integration</li>
|
|
<li>Open Core</li>
|
|
<li>Best performance</li>
|
|
<li>Limited ODF compatibility</li>
|
|
<li>Best Microsoft compatibility</li>
|
|
<li>Good security</li>
|
|
</ul>
|
|
{% if isAnyRunning == false %}
|
|
<a href="https://www.onlyoffice.com/" target="_blank" class="office-learn-more" data-stop-event-propagation="true">
|
|
Learn more
|
|
<img src="img/onlyoffice.svg" alt="Onlyoffice Logo" />
|
|
</a>
|
|
{% endif %}
|
|
</label>
|
|
</div>
|
|
{% if isAnyRunning == false %}
|
|
<div class="office-none-card">
|
|
<input
|
|
type="radio"
|
|
id="office-none"
|
|
name="office_suite_choice"
|
|
value=""
|
|
class="office-radio"
|
|
{% if office_suite == '' %}
|
|
checked="checked"
|
|
{% endif %}
|
|
>
|
|
<label class="office-none-label" for="office-none">
|
|
<img src="img/office-none.svg" alt="Disable Office icon" />
|
|
Disable office suite
|
|
</label>
|
|
</div>
|
|
{% endif %}
|
|
<input type="hidden" id="initial-office-suite" value="{{ office_suite }}">
|
|
<input class="options-form-submit" type="submit" value="Save changes" />
|
|
<h3>Additional Optional Containers</h3>
|
|
<p>
|
|
<input
|
|
type="checkbox"
|
|
id="clamav"
|
|
name="clamav"
|
|
{% if is_clamav_enabled == true %}
|
|
checked="checked"
|
|
data-initial-state="true"
|
|
{% else %}
|
|
data-initial-state="false"
|
|
{% endif %}
|
|
>
|
|
<label for="clamav">ClamAV (Antivirus backend for Nextcloud, needs ~1GB additional RAM)</label>
|
|
</p>
|
|
<p>
|
|
<input
|
|
type="checkbox"
|
|
id="fulltextsearch"
|
|
name="fulltextsearch"
|
|
{% if is_fulltextsearch_enabled == true %}
|
|
checked="checked"
|
|
data-initial-state="true"
|
|
{% else %}
|
|
data-initial-state="false"
|
|
{% endif %}
|
|
>
|
|
<label for="fulltextsearch">
|
|
Fulltextsearch (needs ~1GB additional RAM, <a target="_blank" href="https://github.com/nextcloud/all-in-one/discussions/5768">does not work on Kernels without Seccomp</a>)
|
|
{% if is_fulltextsearch_enabled == false %}
|
|
. <strong>Please note:</strong> the initial indexing can take a long time during which Nextcloud will be unavailable
|
|
{% endif %}
|
|
</label>
|
|
</p>
|
|
<p>
|
|
<input
|
|
type="checkbox"
|
|
id="imaginary"
|
|
name="imaginary"
|
|
{% if is_imaginary_enabled == true %}
|
|
checked="checked"
|
|
data-initial-state="true"
|
|
{% else %}
|
|
data-initial-state="false"
|
|
{% endif %}
|
|
>
|
|
<label for="imaginary">Imaginary (for previews of heic, heif, illustrator, pdf, svg, tiff and webp. Imaginary is currently <a target="_blank" href="https://github.com/nextcloud/server/issues/34262">incompatible with server-side-encryption</a>)</label>
|
|
</p>
|
|
<p>
|
|
<input
|
|
type="checkbox"
|
|
id="talk"
|
|
name="talk"
|
|
{% if is_talk_enabled == true %}
|
|
checked="checked"
|
|
data-initial-state="true"
|
|
{% else %}
|
|
data-initial-state="false"
|
|
{% endif %}
|
|
>
|
|
<label for="talk">Nextcloud Talk (needs ports {{ talk_port }}/TCP and {{ talk_port }}/UDP open/forwarded in your firewall/router)</label>
|
|
</p>
|
|
<p>
|
|
<input
|
|
type="checkbox"
|
|
id="talk-recording"
|
|
name="talk-recording"
|
|
{% if is_talk_recording_enabled == true %}
|
|
checked="checked"
|
|
data-initial-state="true"
|
|
{% else %}
|
|
data-initial-state="false"
|
|
{% endif %}
|
|
>
|
|
<label for="talk-recording">Nextcloud Talk Recording-server (needs Nextcloud Talk being enabled and ~1GB additional RAM and ~2 additional vCPUs)</label>
|
|
</p>
|
|
|
|
<p>
|
|
<input
|
|
type="checkbox"
|
|
id="docker-socket-proxy"
|
|
name="docker-socket-proxy"
|
|
{% if is_docker_socket_proxy_enabled == true %}
|
|
checked="checked"
|
|
data-initial-state="true"
|
|
{% else %}
|
|
data-initial-state="false"
|
|
{% endif %}
|
|
>
|
|
<label for="docker-socket-proxy">Docker Socket Proxy (needed for <a target="_blank" href="https://github.com/cloud-py-api/app_api#nextcloud-appapi">Nextcloud App API</a>) ⚠️ The docker socket proxy container is deprecated. Please use the HaRP (High-availability Reverse Proxy for Nextcloud ExApps) instead!</label>
|
|
</p>
|
|
<p>
|
|
<input
|
|
type="checkbox"
|
|
id="harp"
|
|
name="harp"
|
|
{% if is_harp_enabled == true %}
|
|
checked="checked"
|
|
data-initial-state="true"
|
|
{% else %}
|
|
data-initial-state="false"
|
|
{% endif %}
|
|
>
|
|
<label for="harp">HaRP (<a target="_blank" href="https://github.com/nextcloud/HaRP">High-availability Reverse Proxy</a> for Nextcloud ExApps)</label>
|
|
</p>
|
|
<p>
|
|
<input
|
|
type="checkbox"
|
|
id="whiteboard"
|
|
name="whiteboard"
|
|
{% if is_whiteboard_enabled == true %}
|
|
checked="checked"
|
|
data-initial-state="true"
|
|
{% else %}
|
|
data-initial-state="false"
|
|
{% endif %}
|
|
>
|
|
<label for="whiteboard">Whiteboard</label>
|
|
</p>
|
|
<input class="options-form-submit" type="submit" value="Save changes" />
|
|
</form>
|
|
<p><strong>Minimal system requirements:</strong> When any optional container is enabled, at least 2GB RAM, a dual-core CPU and 40GB system storage are required. When enabling ClamAV, Nextcloud Talk Recording-server or Fulltextsearch, at least 3GB RAM are required. For Talk Recording-server additional 2 vCPUs are required. When enabling everything, at least 5GB RAM and a quad-core CPU are required. Recommended are at least 1GB more RAM than the minimal requirement. For further advice and recommendations see <strong><a target="_blank" href="https://github.com/nextcloud/all-in-one/discussions/1335">this documentation</a></strong></p>
|
|
{% if isAnyRunning == true %}
|
|
<script type="text/javascript" src="disable-containers.js?v1"></script>
|
|
{% endif %}
|
|
|
|
{% if office_suite == 'collabora' and isAnyRunning == false and was_start_button_clicked == true %}
|
|
<h3>Nextcloud Office dictionaries</h3>
|
|
|
|
{% if collabora_dictionaries == "" %}
|
|
<p>In order to get the correct dictionaries in Nextcloud Office, you may configure the dictionaries below:</p>
|
|
<form method="POST" action="api/configuration" class="xhr">
|
|
<input type="text" name="collabora_dictionaries" placeholder="de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru" />
|
|
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
|
|
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
|
|
<input type="submit" value="Submit Nextcloud Office dictionaries" />
|
|
</form>
|
|
<p>You need to make sure that the dictionaries that you enter are valid. An example is <strong>de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru</strong>.</p>
|
|
{% else %}
|
|
<p>The dictionaries for Nextcloud Office are currently set to <strong>{{ collabora_dictionaries }}</strong>. You can reset them again by clicking on the button below.</p>
|
|
<form method="POST" action="api/configuration" class="xhr">
|
|
<input type="hidden" name="delete_collabora_dictionaries" value="yes"/>
|
|
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
|
|
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
|
|
<input type="submit" value="Reset Nextcloud Office dictionaries" />
|
|
</form>
|
|
{% endif %}
|
|
|
|
<h3>Additional Nextcloud Office options</h3>
|
|
|
|
{% if collabora_additional_options == "" %}
|
|
<p>You can configure additional options for Nextcloud Office below.</p>
|
|
<p>(This can be used for configuring the net.content_security_policy and more. Make sure to submit the value!)</p>
|
|
<form method="POST" action="api/configuration" class="xhr">
|
|
<input type="text" name="collabora_additional_options" />
|
|
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
|
|
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
|
|
<input type="submit" value="Submit additional Nextcloud Office options" />
|
|
</form>
|
|
<p>You need to make sure that the options that you enter are valid. An example is <strong>--o:net.content_security_policy=frame-ancestors *.example.com:*;</strong>.</p>
|
|
{% else %}
|
|
<p>The additioinal options for Nextcloud Office are currently set to <strong>{{ collabora_additional_options }}</strong>. You can reset them again by clicking on the button below.</p>
|
|
<form method="POST" action="api/configuration" class="xhr">
|
|
<input type="hidden" name="delete_collabora_additional_options" value="yes"/>
|
|
<input type="hidden" name="{{csrf.keys.name}}" value="{{csrf.name}}">
|
|
<input type="hidden" name="{{csrf.keys.value}}" value="{{csrf.value}}">
|
|
<input type="submit" value="Reset additional Nextcloud Office options" />
|
|
</form>
|
|
{% endif %}
|
|
{% endif %}
|