mirror of
https://github.com/nextcloud/all-in-one.git
synced 2026-05-23 03:40:19 +00:00
Compare commits
14 Commits
helm-chart
...
enh/noid/o
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0f69143531 | ||
|
|
0be33a9973 | ||
|
|
460791c516 | ||
|
|
a740c10edd | ||
|
|
8e5612977e | ||
|
|
26f76e95b1 | ||
|
|
7c0caaef82 | ||
|
|
6756330ec7 | ||
|
|
0544abbced | ||
|
|
6ddf0fb077 | ||
|
|
4351034143 | ||
|
|
c46b6b13a7 | ||
|
|
24357e34b2 | ||
|
|
f2e71532e7 |
@@ -18,8 +18,7 @@ This container bundles Local AI and auto-configures it for you.
|
||||
- url: github:go-skynet/model-gallery/gpt4all-j.yaml
|
||||
name: gpt4all-j
|
||||
```
|
||||
- You need to add gpt4all-j under Text Generation (Default completion model to use) in Connected Accounts in the Administration Settings in Nextcloud, the default does not work.
|
||||
- Additionally after doing so, you might want to enable or disable specific features for your models in the integration_openai settings: `https://your-nc-domain.com/settings/admin/connected-accounts`
|
||||
- To make it work, you first need to browse `https://your-nc-domain.com/settings/admin/ai` and enable or disable specific features for your models in the openAI settings. Afterwards using the Nextcloud Assistant should work.
|
||||
- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack
|
||||
|
||||
### Repository
|
||||
|
||||
@@ -29,6 +29,7 @@ services:
|
||||
# NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS: imagick # This allows to add additional php extensions to the Nextcloud container permanently. Default is imagick but can be overwritten by modifying this value. See https://github.com/nextcloud/all-in-one#how-to-add-php-extensions-permanently-to-the-nextcloud-container
|
||||
# NEXTCLOUD_ENABLE_DRI_DEVICE: true # This allows to enable the /dev/dri device in the Nextcloud container. ⚠️⚠️⚠️ Warning: this only works if the '/dev/dri' device is present on the host! If it should not exist on your host, don't set this to true as otherwise the Nextcloud container will fail to start! See https://github.com/nextcloud/all-in-one#how-to-enable-hardware-transcoding-for-nextcloud
|
||||
# NEXTCLOUD_KEEP_DISABLED_APPS: false # Setting this to true will keep Nextcloud apps that are disabled in the AIO interface and not uninstall them if they should be installed. See https://github.com/nextcloud/all-in-one#how-to-keep-disabled-apps
|
||||
# DISABLE_OVERWRITE_URL: true # Setting this to true will disable the ability to overwrite the URL in the AIO interface. See https://github.com/nextcloud/all-in-one#can-i-use-aio-with-multiple-domains
|
||||
# TALK_PORT: 3478 # This allows to adjust the port that the talk container is using. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-talk-port
|
||||
# WATCHTOWER_DOCKER_SOCKET_PATH: /var/run/docker.sock # Needs to be specified if the docker socket on the host is not located in the default '/var/run/docker.sock'. Otherwise mastercontainer updates will fail. For macos it needs to be '/var/run/docker.sock'
|
||||
# security_opt: ["label:disable"] # Is needed when using SELinux
|
||||
|
||||
50
php/composer.lock
generated
50
php/composer.lock
generated
@@ -391,16 +391,16 @@
|
||||
},
|
||||
{
|
||||
"name": "laravel/serializable-closure",
|
||||
"version": "v1.3.4",
|
||||
"version": "v1.3.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laravel/serializable-closure.git",
|
||||
"reference": "61b87392d986dc49ad5ef64e75b1ff5fee24ef81"
|
||||
"reference": "1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/61b87392d986dc49ad5ef64e75b1ff5fee24ef81",
|
||||
"reference": "61b87392d986dc49ad5ef64e75b1ff5fee24ef81",
|
||||
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c",
|
||||
"reference": "1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -448,7 +448,7 @@
|
||||
"issues": "https://github.com/laravel/serializable-closure/issues",
|
||||
"source": "https://github.com/laravel/serializable-closure"
|
||||
},
|
||||
"time": "2024-08-02T07:48:17+00:00"
|
||||
"time": "2024-09-23T13:33:08+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nikic/fast-route",
|
||||
@@ -1265,16 +1265,16 @@
|
||||
},
|
||||
{
|
||||
"name": "slim/twig-view",
|
||||
"version": "3.4.0",
|
||||
"version": "3.4.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/slimphp/Twig-View.git",
|
||||
"reference": "1b351536b9a07ed90a3563ee9d71a987c5d74610"
|
||||
"reference": "b4268d87d0e327feba5f88d32031e9123655b909"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/slimphp/Twig-View/zipball/1b351536b9a07ed90a3563ee9d71a987c5d74610",
|
||||
"reference": "1b351536b9a07ed90a3563ee9d71a987c5d74610",
|
||||
"url": "https://api.github.com/repos/slimphp/Twig-View/zipball/b4268d87d0e327feba5f88d32031e9123655b909",
|
||||
"reference": "b4268d87d0e327feba5f88d32031e9123655b909",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1282,12 +1282,12 @@
|
||||
"psr/http-message": "^1.1 || ^2.0",
|
||||
"slim/slim": "^4.12",
|
||||
"symfony/polyfill-php81": "^1.29",
|
||||
"twig/twig": "^3.8"
|
||||
"twig/twig": "^3.11"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpspec/prophecy-phpunit": "^2.0",
|
||||
"phpstan/phpstan": "^1.10.59",
|
||||
"phpunit/phpunit": "^9.6",
|
||||
"phpunit/phpunit": "^9.6 || ^10",
|
||||
"psr/http-factory": "^1.0",
|
||||
"squizlabs/php_codesniffer": "^3.9"
|
||||
},
|
||||
@@ -1324,9 +1324,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/slimphp/Twig-View/issues",
|
||||
"source": "https://github.com/slimphp/Twig-View/tree/3.4.0"
|
||||
"source": "https://github.com/slimphp/Twig-View/tree/3.4.1"
|
||||
},
|
||||
"time": "2024-04-28T20:36:39+00:00"
|
||||
"time": "2024-09-26T05:42:02+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/deprecation-contracts",
|
||||
@@ -2301,16 +2301,16 @@
|
||||
},
|
||||
{
|
||||
"name": "felixfbecker/language-server-protocol",
|
||||
"version": "v1.5.2",
|
||||
"version": "v1.5.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/felixfbecker/php-language-server-protocol.git",
|
||||
"reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842"
|
||||
"reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/6e82196ffd7c62f7794d778ca52b69feec9f2842",
|
||||
"reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842",
|
||||
"url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/a9e113dbc7d849e35b8776da39edaf4313b7b6c9",
|
||||
"reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2351,9 +2351,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/felixfbecker/php-language-server-protocol/issues",
|
||||
"source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.2"
|
||||
"source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.3"
|
||||
},
|
||||
"time": "2022-03-02T22:36:06+00:00"
|
||||
"time": "2024-04-30T00:40:11+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fidry/cpu-core-counter",
|
||||
@@ -2700,16 +2700,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpstan/phpdoc-parser",
|
||||
"version": "1.31.0",
|
||||
"version": "1.32.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpstan/phpdoc-parser.git",
|
||||
"reference": "249f15fb843bf240cf058372dad29e100cee6c17"
|
||||
"reference": "6ca22b154efdd9e3c68c56f5d94670920a1c19a4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/249f15fb843bf240cf058372dad29e100cee6c17",
|
||||
"reference": "249f15fb843bf240cf058372dad29e100cee6c17",
|
||||
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/6ca22b154efdd9e3c68c56f5d94670920a1c19a4",
|
||||
"reference": "6ca22b154efdd9e3c68c56f5d94670920a1c19a4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2741,9 +2741,9 @@
|
||||
"description": "PHPDoc parser with support for nullable, intersection and generic types",
|
||||
"support": {
|
||||
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
|
||||
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.31.0"
|
||||
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.32.0"
|
||||
},
|
||||
"time": "2024-09-22T11:32:18+00:00"
|
||||
"time": "2024-09-26T07:23:32+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/diff",
|
||||
|
||||
@@ -188,15 +188,15 @@
|
||||
"ADMIN_USER=admin",
|
||||
"ADMIN_PASSWORD=%NEXTCLOUD_PASSWORD%",
|
||||
"NEXTCLOUD_DATA_DIR=/mnt/ncdata",
|
||||
"OVERWRITEHOST=%NC_DOMAIN%",
|
||||
"OVERWRITEPROTOCOL=https",
|
||||
"OVERWRITEHOST=%OVERWRITEHOST%",
|
||||
"OVERWRITEPROTOCOL=%OVERWRITEPROTOCOL%",
|
||||
"TURN_SECRET=%TURN_SECRET%",
|
||||
"SIGNALING_SECRET=%SIGNALING_SECRET%",
|
||||
"ONLYOFFICE_SECRET=%ONLYOFFICE_SECRET%",
|
||||
"AIO_URL=%AIO_URL%",
|
||||
"NEXTCLOUD_MOUNT=%NEXTCLOUD_MOUNT%",
|
||||
"CLAMAV_ENABLED=%CLAMAV_ENABLED%",
|
||||
"CLAMAV_HOST=nextcloud-aio-clamav",
|
||||
"CLAMAV_HOST=nextcloud-aio-clamav.nextcloud-aio",
|
||||
"ONLYOFFICE_ENABLED=%ONLYOFFICE_ENABLED%",
|
||||
"COLLABORA_ENABLED=%COLLABORA_ENABLED%",
|
||||
"COLLABORA_HOST=nextcloud-aio-collabora",
|
||||
@@ -206,12 +206,12 @@
|
||||
"TZ=%TIMEZONE%",
|
||||
"TALK_PORT=%TALK_PORT%",
|
||||
"IMAGINARY_ENABLED=%IMAGINARY_ENABLED%",
|
||||
"IMAGINARY_HOST=nextcloud-aio-imaginary",
|
||||
"IMAGINARY_HOST=nextcloud-aio-imaginary.nextcloud-aio",
|
||||
"CLAMAV_MAX_SIZE=%APACHE_MAX_SIZE%",
|
||||
"PHP_UPLOAD_LIMIT=%NEXTCLOUD_UPLOAD_LIMIT%",
|
||||
"PHP_MEMORY_LIMIT=%NEXTCLOUD_MEMORY_LIMIT%",
|
||||
"FULLTEXTSEARCH_ENABLED=%FULLTEXTSEARCH_ENABLED%",
|
||||
"FULLTEXTSEARCH_HOST=nextcloud-aio-fulltextsearch",
|
||||
"FULLTEXTSEARCH_HOST=nextcloud-aio-fulltextsearch.nextcloud-aio",
|
||||
"PHP_MAX_TIME=%NEXTCLOUD_MAX_TIME%",
|
||||
"TRUSTED_CACERTS_DIR=%NEXTCLOUD_TRUSTED_CACERTS_DIR%",
|
||||
"STARTUP_APPS=%NEXTCLOUD_STARTUP_APPS%",
|
||||
@@ -220,7 +220,7 @@
|
||||
"INSTALL_LATEST_MAJOR=%INSTALL_LATEST_MAJOR%",
|
||||
"TALK_RECORDING_ENABLED=%TALK_RECORDING_ENABLED%",
|
||||
"RECORDING_SECRET=%RECORDING_SECRET%",
|
||||
"TALK_RECORDING_HOST=nextcloud-aio-talk-recording",
|
||||
"TALK_RECORDING_HOST=nextcloud-aio-talk-recording.nextcloud-aio",
|
||||
"FULLTEXTSEARCH_PASSWORD=%FULLTEXTSEARCH_PASSWORD%",
|
||||
"DOCKER_SOCKET_PROXY_ENABLED=%DOCKER_SOCKET_PROXY_ENABLED%",
|
||||
"REMOVE_DISABLED_APPS=%REMOVE_DISABLED_APPS%",
|
||||
|
||||
@@ -71,7 +71,7 @@ class ConfigurationManager
|
||||
if (!file_exists(DataConst::GetBackupArchivesList())) {
|
||||
return '';
|
||||
}
|
||||
|
||||
|
||||
$content = file_get_contents(DataConst::GetBackupArchivesList());
|
||||
if ($content === '') {
|
||||
return '';
|
||||
@@ -91,7 +91,7 @@ class ConfigurationManager
|
||||
if ($lastBackupTime === "") {
|
||||
return '';
|
||||
}
|
||||
|
||||
|
||||
return $lastBackupTime;
|
||||
}
|
||||
|
||||
@@ -99,7 +99,7 @@ class ConfigurationManager
|
||||
if (!file_exists(DataConst::GetBackupArchivesList())) {
|
||||
return [];
|
||||
}
|
||||
|
||||
|
||||
$content = file_get_contents(DataConst::GetBackupArchivesList());
|
||||
if ($content === '') {
|
||||
return [];
|
||||
@@ -110,7 +110,7 @@ class ConfigurationManager
|
||||
foreach($backupLines as $lines) {
|
||||
if ($lines !== "") {
|
||||
$backupTimesTemp = explode(',', $lines);
|
||||
$backupTimes[] = $backupTimesTemp[1];
|
||||
$backupTimes[] = $backupTimesTemp[1];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -140,7 +140,7 @@ class ConfigurationManager
|
||||
if (!$this->isx64Platform()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$config = $this->GetConfig();
|
||||
if (isset($config['isClamavEnabled']) && $config['isClamavEnabled'] === 1) {
|
||||
return true;
|
||||
@@ -364,7 +364,7 @@ class ConfigurationManager
|
||||
$testUrl = $protocol . $domain . ':443';
|
||||
curl_setopt($ch, CURLOPT_URL, $testUrl);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
|
||||
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
|
||||
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
|
||||
$response = (string)curl_exec($ch);
|
||||
# Get rid of trailing \n
|
||||
@@ -470,7 +470,7 @@ class ConfigurationManager
|
||||
if ($location === '') {
|
||||
throw new InvalidSettingConfigurationException("Please enter a path!");
|
||||
}
|
||||
|
||||
|
||||
$isValidPath = false;
|
||||
if (str_starts_with($location, '/') && !str_ends_with($location, '/')) {
|
||||
$isValidPath = true;
|
||||
@@ -535,6 +535,10 @@ class ConfigurationManager
|
||||
return $this->GetEnvironmentalVariableOrConfig($envVariableName, $configName, $defaultValue);
|
||||
}
|
||||
|
||||
public function IsOverwriteEnable() : bool {
|
||||
return getenv('DISABLE_OVERWRITE_URL') !== 'yes';
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws InvalidSettingConfigurationException
|
||||
*/
|
||||
@@ -713,7 +717,7 @@ class ConfigurationManager
|
||||
if (!preg_match("#^[0-1][0-9]:[0-5][0-9]$#", $time) && !preg_match("#^2[0-3]:[0-5][0-9]$#", $time)) {
|
||||
throw new InvalidSettingConfigurationException("You did not enter a correct time! One correct example is '04:00'!");
|
||||
}
|
||||
|
||||
|
||||
if ($enableAutomaticUpdates === false) {
|
||||
$time .= PHP_EOL . 'automaticUpdatesAreNotEnabled';
|
||||
} else {
|
||||
|
||||
@@ -297,6 +297,18 @@ class DockerActionManager
|
||||
$replacements[1] = $this->configurationManager->GetApachePort();
|
||||
} elseif ($out[1] === 'TALK_PORT') {
|
||||
$replacements[1] = $this->configurationManager->GetTalkPort();
|
||||
} elseif($out[1] === 'OVERWRITEHOST') {
|
||||
if ($this->configurationManager->IsOverwriteEnable()) {
|
||||
$replacements[1] = $this->configurationManager->GetDomain();
|
||||
} else {
|
||||
$replacements[1] = '';
|
||||
}
|
||||
} elseif($out[1] === 'OVERWRITEPROTOCOL') {
|
||||
if ($this->configurationManager->IsOverwriteEnable()) {
|
||||
$replacements[1] = 'https';
|
||||
} else {
|
||||
$replacements[1] = '';
|
||||
}
|
||||
} elseif ($out[1] === 'NEXTCLOUD_MOUNT') {
|
||||
$replacements[1] = $this->configurationManager->GetNextcloudMount();
|
||||
} elseif ($out[1] === 'BACKUP_RESTORE_PASSWORD') {
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<h1>All-in-One setup</h1>
|
||||
<p>The official Nextcloud installation method. Nextcloud All-in-One provides easy deployment and maintenance with most features included in this one Nextcloud instance.</p>
|
||||
<p>⚠️ <strong>Please note down the passphrase to access the AIO interface and don't lose it!</strong></p>
|
||||
<strong>Passphrase</strong><br/> <span class="monospace">{{ password }}</span><br>
|
||||
<strong>Passphrase</strong><br/><span class="monospace">{{ password }}</span><br>
|
||||
<a href="/" class="button" target="_blank" rel="noopener">Open Nextcloud AIO login ↗</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -259,7 +259,7 @@ No and they will not be. If you want to run it locally, without opening Nextclou
|
||||
No and it will not be added. If you only want to run it locally, you may have a look at the following documentation: [local-instance.md](./local-instance.md)
|
||||
|
||||
### Can I use AIO with multiple domains?
|
||||
No and it will not be added. However you can use [this feature](https://github.com/nextcloud/all-in-one/blob/main/multiple-instances.md) in order to create multiple AIO instances, one for each domain.
|
||||
No and it will not be added. However you can use [this feature](https://github.com/nextcloud/all-in-one/blob/main/multiple-instances.md) in order to create multiple AIO instances, one for each domain. Also you can set the environment variable `DISABLE_OVERWRITE_URL` to `true`, however we cannot fix bugs that may be caused by network issues. At your own risk.
|
||||
|
||||
### Are other ports than the default 443 for Nextcloud supported?
|
||||
No and they will not be. Please use a dedicated domain for Nextcloud and set it up correctly by following the [reverse proxy documentation](./reverse-proxy.md). If port 443 and/or 80 is blocked for you, you may use the a Cloudflare Tunnel if you want to publish it online. You could also use the ACME DNS-challenge to get a valid certificate. However in all cases the Nextcloud interface will redirect you to port 443.
|
||||
|
||||
Reference in New Issue
Block a user