mirror of
https://github.com/mail-in-a-box/mailinabox.git
synced 2024-11-22 02:17:26 +00:00
owncloud: automatically set it up with an administrator account that even the box owner doesn't have access to, because we do not want to have the user hit ownCloud's setup page on first visit
This commit is contained in:
parent
ca45c88a32
commit
398b538e2b
@ -25,20 +25,13 @@ fi
|
|||||||
# Create a configuration file.
|
# Create a configuration file.
|
||||||
TIMEZONE=`cat /etc/timezone`
|
TIMEZONE=`cat /etc/timezone`
|
||||||
instanceid=oc$(echo $PRIMARY_HOSTNAME | sha1sum | fold -w 10 | head -n 1)
|
instanceid=oc$(echo $PRIMARY_HOSTNAME | sha1sum | fold -w 10 | head -n 1)
|
||||||
passwordsalt=$(dd if=/dev/random bs=40 count=1 2>/dev/null | sha1sum | fold -w 30 | head -n 1)
|
|
||||||
cat - > /usr/local/lib/owncloud/config/config.php <<EOF;
|
cat - > /usr/local/lib/owncloud/config/config.php <<EOF;
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
\$CONFIG = array (
|
\$CONFIG = array (
|
||||||
'___installed' => true,
|
|
||||||
|
|
||||||
'version' => '7.0.1.1',
|
|
||||||
|
|
||||||
'datadirectory' => '$STORAGE_ROOT/owncloud',
|
'datadirectory' => '$STORAGE_ROOT/owncloud',
|
||||||
'dbtype' => 'sqlite3',
|
|
||||||
|
|
||||||
'instanceid' => '$instanceid',
|
'instanceid' => '$instanceid',
|
||||||
'passwordsalt' => '$passwordsalt',
|
|
||||||
'trusted_domains' =>
|
'trusted_domains' =>
|
||||||
array (
|
array (
|
||||||
0 => '$PRIMARY_HOSTNAME',
|
0 => '$PRIMARY_HOSTNAME',
|
||||||
@ -70,10 +63,37 @@ cat - > /usr/local/lib/owncloud/config/config.php <<EOF;
|
|||||||
?>
|
?>
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
# Create an auto-configuration file to fill in database settings.
|
||||||
|
adminpassword=$(dd if=/dev/random bs=40 count=1 2>/dev/null | sha1sum | fold -w 30 | head -n 1)
|
||||||
|
cat - > /usr/local/lib/owncloud/config/autoconfig.php <<EOF;
|
||||||
|
<?php
|
||||||
|
\$AUTOCONFIG = array (
|
||||||
|
# storage/database
|
||||||
|
'directory' => '$STORAGE_ROOT/owncloud',
|
||||||
|
'dbtype' => 'sqlite3',
|
||||||
|
|
||||||
|
# create an administrator account with a random password so that
|
||||||
|
# the user does not have to enter anything on first load of ownCloud
|
||||||
|
'adminlogin' => 'root',
|
||||||
|
'adminpass' => '$adminpassword',
|
||||||
|
);
|
||||||
|
?>
|
||||||
|
EOF
|
||||||
|
|
||||||
# Set permissions
|
# Set permissions
|
||||||
mkdir -p $STORAGE_ROOT/owncloud
|
mkdir -p $STORAGE_ROOT/owncloud
|
||||||
chown -R www-data.www-data $STORAGE_ROOT/owncloud /usr/local/lib/owncloud
|
chown -R www-data.www-data $STORAGE_ROOT/owncloud /usr/local/lib/owncloud
|
||||||
|
|
||||||
|
# Execute ownCloud's setup step, which creates the ownCloud sqlite database.
|
||||||
|
# It also wipes it if it exists. And it deletes the autoconfig.php file.
|
||||||
|
(cd /usr/local/lib/owncloud; sudo -u www-data php /usr/local/lib/owncloud/index.php;)
|
||||||
|
|
||||||
|
# Enable/disable apps. Note that this must be done after the ownCloud setup.
|
||||||
|
# The firstrunwizard gave Josh all sorts of problems, so disabling that.
|
||||||
|
# user_external is what allows ownCloud to use IMAP for login.
|
||||||
|
hide_output php /usr/local/lib/owncloud/console.php app:disable firstrunwizard
|
||||||
|
hide_output php /usr/local/lib/owncloud/console.php app:enable user_external
|
||||||
|
|
||||||
# Set PHP FPM values to support large file uploads
|
# Set PHP FPM values to support large file uploads
|
||||||
# (semicolon is the comment character in this file, hashes produce deprecation warnings)
|
# (semicolon is the comment character in this file, hashes produce deprecation warnings)
|
||||||
tools/editconf.py /etc/php5/fpm/php.ini -c ';' \
|
tools/editconf.py /etc/php5/fpm/php.ini -c ';' \
|
||||||
@ -84,6 +104,8 @@ tools/editconf.py /etc/php5/fpm/php.ini -c ';' \
|
|||||||
max_execution_time=600 \
|
max_execution_time=600 \
|
||||||
short_open_tag=On
|
short_open_tag=On
|
||||||
|
|
||||||
|
# MAIL
|
||||||
|
|
||||||
# Download and install the mail app
|
# Download and install the mail app
|
||||||
# TODO: enable mail app in ownCloud config, not exposed afaik?
|
# TODO: enable mail app in ownCloud config, not exposed afaik?
|
||||||
if [ ! -d /usr/local/lib/owncloud/apps/mail ]; then
|
if [ ! -d /usr/local/lib/owncloud/apps/mail ]; then
|
||||||
@ -104,12 +126,9 @@ chown -R www-data.www-data /usr/local/lib/owncloud/apps/mail/
|
|||||||
# TODO: somehow change the cron option in ownClouds config, not exposed afaik?
|
# TODO: somehow change the cron option in ownClouds config, not exposed afaik?
|
||||||
(crontab -u www-data -l; echo "*/15 * * * * php -f /usr/local/lib/owncloud/cron.php" ) | crontab -u www-data -
|
(crontab -u www-data -l; echo "*/15 * * * * php -f /usr/local/lib/owncloud/cron.php" ) | crontab -u www-data -
|
||||||
|
|
||||||
# This seems to need to be disabled or things just don't work right. Josh gets an empty modal box and can't use the site.
|
# Enable mail app.
|
||||||
hide_output php /usr/local/lib/owncloud/console.php app:disable firstrunwizard
|
|
||||||
|
|
||||||
# Enable apps. These don't seem to work until after the administrator account is created, which we haven't done here.
|
|
||||||
hide_output php /usr/local/lib/owncloud/console.php app:enable user_external
|
|
||||||
hide_output php /usr/local/lib/owncloud/console.php app:enable mail
|
hide_output php /usr/local/lib/owncloud/console.php app:enable mail
|
||||||
|
|
||||||
|
# Finished.
|
||||||
php5enmod imap
|
php5enmod imap
|
||||||
restart_service php5-fpm
|
restart_service php5-fpm
|
||||||
|
Loading…
Reference in New Issue
Block a user