forked from hestiacp/hestiacp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNextcloudSetup.php
More file actions
85 lines (74 loc) · 2.15 KB
/
NextcloudSetup.php
File metadata and controls
85 lines (74 loc) · 2.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
namespace Hestia\WebApp\Installers\Nextcloud;
use Hestia\WebApp\Installers\BaseSetup as BaseSetup;
class NextcloudSetup extends BaseSetup {
protected $appInfo = [
"name" => "Nextcloud",
"group" => "cloud",
"enabled" => true,
"version" => "latest",
"thumbnail" => "nextcloud-thumb.png",
];
protected $appname = "nextcloud";
protected $config = [
"form" => [
"username" => ["value" => "admin"],
"password" => "password",
],
"database" => true,
"resources" => [
"archive" => ["src" => "https://download.nextcloud.com/server/releases/latest.tar.bz2"],
],
"server" => [
"nginx" => [
"template" => "owncloud",
],
"php" => [
"supported" => ["8.0", "8.1", "8.2"],
],
],
];
public function install(array $options = null): bool {
parent::install($options);
parent::setup($options);
// install nextcloud
$php_version = $this->appcontext->getSupportedPHP(
$this->config["server"]["php"]["supported"],
);
$this->appcontext->runUser(
"v-run-cli-cmd",
[
"/usr/bin/php" . $options["php_version"],
$this->getDocRoot("occ"),
"maintenance:install",
"--database mysql",
"--database-name " . $this->appcontext->user() . "_" . $options["database_name"],
"--database-user " . $this->appcontext->user() . "_" . $options["database_user"],
"--database-pass " . $options["database_password"],
"--admin-user " . $options["username"],
"--admin-pass " . $options["password"],
],
$status,
);
$this->appcontext->runUser(
"v-run-cli-cmd",
[
"/usr/bin/php" . $options["php_version"],
$this->getDocRoot("occ"),
"config:system:set",
"trusted_domains 2 --value=" . $this->domain,
],
$status,
);
// Bump minimum memory limit to 512M
$result = null;
$file = $this->getDocRoot(".user.ini");
$this->appcontext->runUser("v-open-fs-file", [$file], $result);
array_push($result->raw, "memory_limit=512M");
$tmp = $this->saveTempFile(implode("\r\n", $result->raw));
if (!$this->appcontext->runUser("v-move-fs-file", [$tmp, $file], $result)) {
throw new \Exception("Error updating file in: " . $tmp . " " . $result->text);
}
return $status->code === 0;
}
}