mirror of
https://github.com/nextcloud/all-in-one.git
synced 2026-02-04 04:56:52 +00:00
Some checks failed
Codespell / Check spelling (push) Waiting to run
Docker Lint / docker-lint (push) Waiting to run
Lint php / php-lint (push) Waiting to run
Lint php / php-lint-summary (push) Blocked by required conditions
PHP Deprecation Detector / PHP Deprecation Detector (push) Waiting to run
Playwright Tests on push / test (push) Waiting to run
Static analysis / static-psalm-analysis (push) Waiting to run
Twig Lint / twig-lint (push) Has been cancelled
Signed-off-by: Julius Knorr <jus@bitgrid.net> Signed-off-by: Simon L. <szaimen@e.mail.de> Signed-off-by: Andrew Backhouse <andrew.backhouse@nextcloud.com> Co-authored-by: Simon L. <szaimen@e.mail.de> Co-authored-by: Andrew Backhouse <andrew.backhouse@nextcloud.com>
273 lines
14 KiB
Twig
273 lines
14 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-collabora"
|
|
name="office_suite_choice"
|
|
value="collabora"
|
|
class="office-radio"
|
|
{% if is_collabora_enabled == true %}
|
|
checked="checked"
|
|
{% endif %}
|
|
>
|
|
<label class="office-card{{ isAnyRunning ? ' office-card-disabled' : '' }}" for="office-collabora">
|
|
<div class="office-card-header">
|
|
<h4>Nextcloud Office</h4>
|
|
<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 security: documents never leave your server</li>
|
|
<li>Best ODF compatibility</li>
|
|
<li>Best support for legacy files</li>
|
|
</ul>
|
|
{% if isAnyRunning == false %}
|
|
<a href="https://www.collaboraoffice.com/code/" target="_blank" class="office-learn-more" onclick="event.stopPropagation();">
|
|
Learn more
|
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" style="vertical-align: middle; margin-left: 4px;">
|
|
<path d="M6 12L10 8L6 4" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
</svg>
|
|
</a>
|
|
{% endif %}
|
|
</label>
|
|
<input type="hidden" id="collabora" name="collabora" value="" data-initial-state="{% if is_collabora_enabled == true %}true{% else %}false{% endif %}">
|
|
<input
|
|
type="radio"
|
|
id="office-onlyoffice"
|
|
name="office_suite_choice"
|
|
value="onlyoffice"
|
|
class="office-radio"
|
|
{% if is_onlyoffice_enabled == true %}
|
|
checked="checked"
|
|
{% endif %}
|
|
>
|
|
<label class="office-card{{ isAnyRunning ? ' office-card-disabled' : '' }}" for="office-onlyoffice">
|
|
<div class="office-card-header">
|
|
<h4>OnlyOffice</h4>
|
|
<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 core</li>
|
|
<li>Best performance</li>
|
|
<li>Limited ODF compatibility</li>
|
|
<li>Best Microsoft compatibility</li>
|
|
</ul>
|
|
{% if isAnyRunning == false %}
|
|
<a href="https://www.onlyoffice.com/" target="_blank" class="office-learn-more" onclick="event.stopPropagation();">
|
|
Learn more
|
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" style="vertical-align: middle; margin-left: 4px;">
|
|
<path d="M6 12L10 8L6 4" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
</svg>
|
|
</a>
|
|
{% endif %}
|
|
</label>
|
|
<input type="hidden" id="onlyoffice" name="onlyoffice" value="" data-initial-state="{% if is_onlyoffice_enabled == true %}true{% else %}false{% endif %}">
|
|
</div>
|
|
{% if isAnyRunning == false %}
|
|
<div class="office-none-card">
|
|
<input
|
|
type="radio"
|
|
id="office-none"
|
|
name="office_suite_choice"
|
|
value=""
|
|
class="office-radio"
|
|
{% if is_collabora_enabled == false and is_onlyoffice_enabled == false %}
|
|
checked="checked"
|
|
{% endif %}
|
|
>
|
|
<label class="office-none-label" for="office-none">
|
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" style="vertical-align: middle; margin-right: 6px;">
|
|
<path d="M2 2L14 14M2 14L14 2" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
|
</svg>
|
|
Disable office suite
|
|
</label>
|
|
</div>
|
|
{% endif %}
|
|
<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>)</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-clamav.js"></script>
|
|
<script type="text/javascript" src="disable-docker-socket-proxy.js"></script>
|
|
<script type="text/javascript" src="disable-talk.js"></script>
|
|
<script type="text/javascript" src="disable-collabora.js?v2"></script>
|
|
<script type="text/javascript" src="disable-onlyoffice.js?v2"></script>
|
|
<script type="text/javascript" src="disable-imaginary.js"></script>
|
|
<script type="text/javascript" src="disable-fulltextsearch.js"></script>
|
|
<script type="text/javascript" src="disable-talk-recording.js"></script>
|
|
<script type="text/javascript" src="disable-whiteboard.js"></script>
|
|
{% endif %}
|
|
|
|
{% if is_collabora_enabled == true and isAnyRunning == false and was_start_button_clicked == true %}
|
|
<h3>Collabora dictionaries</h3>
|
|
|
|
{% if collabora_dictionaries == "" %}
|
|
<p>In order to get the correct dictionaries in Collabora, 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 collabora 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 Collabora 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 collabora dictionaries" />
|
|
</form>
|
|
{% endif %}
|
|
|
|
<h3>Additional Collabora options</h3>
|
|
|
|
{% if collabora_additional_options == "" %}
|
|
<p>You can configure additional options for collabora 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 collabora 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 Collabora 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 collabora options" />
|
|
</form>
|
|
{% endif %}
|
|
{% endif %}
|