feat(install): wakka.config.php template
Some checks are pending
/ test (push) Waiting to run

This commit is contained in:
Florian Schmitt 2025-01-24 13:31:05 +03:00
parent a36d67306b
commit bfc6a8e4fd
2 changed files with 82 additions and 8 deletions

View file

@ -0,0 +1,68 @@
<?php
$wakkaConfig = array(
'wakka_version' => '0.1.1',
'wikini_version' => '0.5.0',
'yeswiki_version' => 'doryphore',
'yeswiki_release' => '<?=$this->e($yeswikiVersion)?>',
'charset' => 'UTF-8',
'debug' => 'no',
'mysql_host' => 'localhost',
'mysql_database' => '<?=$this->e($database)?>',
'mysql_user' => '<?=$this->e($databaseUser)?>',
'mysql_password' => '<?=$this->e($databasePassword)?>',
'table_prefix' => 'yeswiki_',
'base_url' => 'https://<?=$this->e($domain)?>/?',
'rewrite_mode' => false,
'meta_keywords' => '',
'meta_description' => '<?=$this->e($domain)?>',
'header_action' => 'header',
'footer_action' => 'footer',
'navigation_links' => 'DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur',
'referrers_purge_time' => 24,
'pages_purge_time' => 365,
'default_write_acl' => '*',
'default_read_acl' => '*',
'default_comment_acl' => 'comments-closed',
'comments_activated' => true,
'comments_handler' => 'yeswiki',
'preview_before_save' => false,
'allow_raw_html' => true,
'disable_wiki_links' => true,
'allowed_methods_in_iframe' =>
array(
0 => 'iframe',
1 => 'editiframe',
2 => 'bazariframe',
3 => 'render',
),
'revisionscount' => 60,
'timezone' => 'Europe/Paris',
'root_page' => 'PagePrincipale',
'wakka_name' => '<?=$this->e($domain)?>',
'htmlPurifierActivated' => false,
'favorites_activated' => true,
'archive' =>
array(
'hideConfigValues' =>
array(
'mysql_host' => '',
'mysql_database' => '',
'mysql_user' => '',
'mysql_password' => '',
'contact_smtp_host' => '',
'contact_smtp_user' => '',
'contact_smtp_pass' => '',
'api_allowed_keys' =>
array(
),
),
'authorize_bypass_preupdate_backup' => false,
'preupdate_backup_activated' => false,
'call_archive_async' => true,
'privatePath' => 'private/backups',
'max_nb_files' => 10,
),
'default_language' => 'fr',
'db_charset' => 'utf8mb4',
);

View file

@ -367,17 +367,23 @@ function copyYesWikiFiles($domain, $user, $dbUser, $herseUser = null, $hersePass
exec($sudo . 'mv ' . $destDir . '/doryphore/* ' . $destDir . '/');
exec($sudo . 'rm -rf ' . $destDir . '/doryphore');
unlink($tmpFile);
$herse = '';
if (!empty($herseUser) && !empty($hersePass)) {
$herse = $herseUser . ':' . $hersePass . '@';
}
$curl = 'curl -X POST --insecure --data-urlencode \'config[default_language]=fr\' --data-urlencode \'config[wakka_name]=' . $domain . '\' --data-urlencode \'config[root_page]=PagePrincipale\' --data-urlencode \'config[mysql_host]=localhost\' --data-urlencode \'config[mysql_database]=' . $dbUser['database'] . '\' --data-urlencode \'config[mysql_user]=' . $dbUser['user'] . '\' --data-urlencode \'config[mysql_password]=' . $dbUser['password'] . '\' --data-urlencode \'config[table_prefix]=yeswiki_\' --data-urlencode \'admin_name=' . $_SERVER['admin_id'] . '\' --data-urlencode \'admin_password=' . $_SERVER['admin_password'] . '\' --data-urlencode \'admin_password_conf=' . $_SERVER['admin_password'] . '\' --data-urlencode \'admin_email=' . $_SERVER['admin_email'] . '\' --data-urlencode \'config[rewrite_mode]=0\' --data-urlencode \'config[allow_raw_html]=1\' --data-urlencode \'config[allow_robots]=1\' --data-urlencode \'submit=Continue\' \'http' . ($nossl ? '' : 's') . '://' . $herse . $domain . '/?PagePrincipale&installAction=install\' 2>&1';
$output = [];
exec($curl, $output);
echo implode("\n", $output);
createWakkaConfig($domain, $user, $dbUser);
return;
}
function createWakkaConfig($domain, $user, $dbUser)
{
$destDir = '/home' . '/' . $user . '/' . $domain;
$templates = new League\Plates\Engine(dirname(__FILE__) . '/templates');
file_put_contents($destDir.'/wakka.config.php', $templates->render('wakka.config', [
'domain' => $domain,
'database' => $dbUser['database'],
'databaseUser' => $dbUser['user'],
'databasePassword' => $dbUser['password'],
'yeswikiVersion' => preg_replace('/.*-(.*)\.zip/m', "$1", $_SERVER['source_archive_url']),
]));
}
function checkHerse($herseUser, $hersePass)
{
if (empty($herseUser) && empty($hersePass)) {