Create a nextcloud app with docker-compose
This commit is contained in:
46
nextcloud/Dockerfile
Normal file
46
nextcloud/Dockerfile
Normal file
@@ -0,0 +1,46 @@
|
||||
FROM nextcloud:fpm-alpine
|
||||
|
||||
RUN set -ex; \
|
||||
\
|
||||
apk add --no-cache \
|
||||
ffmpeg \
|
||||
imagemagick \
|
||||
procps \
|
||||
supervisor \
|
||||
libreoffice \
|
||||
;
|
||||
|
||||
RUN set -ex; \
|
||||
\
|
||||
apk add --no-cache --virtual .build-deps \
|
||||
$PHPIZE_DEPS \
|
||||
krb5-dev \
|
||||
openssl-dev \
|
||||
bzip2-dev \
|
||||
; \
|
||||
\
|
||||
docker-php-ext-install \
|
||||
bz2 \
|
||||
; \
|
||||
\
|
||||
runDeps="$( \
|
||||
scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
|
||||
| tr ',' '\n' \
|
||||
| sort -u \
|
||||
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
|
||||
)"; \
|
||||
apk add --virtual .nextcloud-phpext-rundeps $runDeps; \
|
||||
apk del .build-deps
|
||||
|
||||
RUN mkdir -p \
|
||||
/var/log/supervisord \
|
||||
/var/run/supervisord \
|
||||
;
|
||||
|
||||
COPY --chown=www-data:root config /var/www/html/config
|
||||
|
||||
COPY supervisord.conf /
|
||||
|
||||
ENV NEXTCLOUD_UPDATE=1
|
||||
|
||||
CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]
|
||||
0
nextcloud/config/CAN_INSTALL
Executable file
0
nextcloud/config/CAN_INSTALL
Executable file
168
nextcloud/config/config.backup.php
Executable file
168
nextcloud/config/config.backup.php
Executable file
@@ -0,0 +1,168 @@
|
||||
<?php
|
||||
|
||||
$CONFIG = [
|
||||
|
||||
/**
|
||||
* Your list of trusted domains that users can log into. Specifying trusted
|
||||
* domains prevents host header poisoning. Do not remove this, as it performs
|
||||
* necessary security checks.
|
||||
* You can specify:
|
||||
*
|
||||
* - the exact hostname of your host or virtual host, e.g. demo.example.org.
|
||||
* - the exact hostname with permitted port, e.g. demo.example.org:443.
|
||||
* This disallows all other ports on this host
|
||||
* - use * as a wildcard, e.g. ubos-raspberry-pi*.local will allow
|
||||
* ubos-raspberry-pi.local and ubos-raspberry-pi-2.local
|
||||
* - the IP address with or without permitted port, e.g. [2001:db8::1]:8080
|
||||
* Using TLS certificates where commonName=<IP address> is deprecated
|
||||
*/
|
||||
'trusted_domains' =>
|
||||
[
|
||||
'tower.scarif.local',
|
||||
],
|
||||
|
||||
/**
|
||||
* Identifies the database used with this installation. See also config option
|
||||
* ``supportedDatabases``
|
||||
*
|
||||
* Available:
|
||||
* - sqlite3 (SQLite3)
|
||||
* - mysql (MySQL/MariaDB)
|
||||
* - pgsql (PostgreSQL)
|
||||
*
|
||||
* Defaults to ``sqlite3``
|
||||
*/
|
||||
'dbtype' => 'mysql',
|
||||
|
||||
/**
|
||||
* Your host server name, for example ``localhost``, ``hostname``,
|
||||
* ``hostname.example.com``, or the IP address. To specify a port use
|
||||
* ``hostname:####``; to specify a Unix socket use
|
||||
* ``localhost:/path/to/socket``.
|
||||
*/
|
||||
'dbhost' => getenv('MYSQL_HOST'),
|
||||
|
||||
/**
|
||||
* The name of the Nextcloud database, which is set during installation. You
|
||||
* should not need to change this.
|
||||
*/
|
||||
'dbname' => getenv('MYSQL_DATABASE'),
|
||||
|
||||
/**
|
||||
* The user that Nextcloud uses to write to the database. This must be unique
|
||||
* across Nextcloud instances using the same SQL database. This is set up during
|
||||
* installation, so you shouldn't need to change it.
|
||||
*/
|
||||
'dbuser' => getenv('MYSQL_USER'),
|
||||
|
||||
/**
|
||||
* The password for the database user. This is set up during installation, so
|
||||
* you shouldn't need to change it.
|
||||
*/
|
||||
'dbpassword' => getenv('MYSQL_PASSWORD'),
|
||||
|
||||
/**
|
||||
* Mail Parameters
|
||||
*
|
||||
* These configure the email settings for Nextcloud notifications and password
|
||||
* resets.
|
||||
*/
|
||||
|
||||
/**
|
||||
* The return address that you want to appear on emails sent by the Nextcloud
|
||||
* server, for example ``nc-admin@example.com``, substituting your own domain,
|
||||
* of course.
|
||||
*/
|
||||
'mail_domain' => getenv('MAIL_FROM'),
|
||||
|
||||
/**
|
||||
* This depends on ``mail_smtpmode``. Specify the IP address of your mail
|
||||
* server host. This may contain multiple hosts separated by a semi-colon. If
|
||||
* you need to specify the port number append it to the IP address separated by
|
||||
* a colon, like this: ``127.0.0.1:24``.
|
||||
*
|
||||
* Defaults to ``127.0.0.1``
|
||||
*/
|
||||
'mail_smtphost' => getenv('MAIL_HOST'),
|
||||
|
||||
/**
|
||||
* This depends on ``mail_smtpmode``. Specify the port for sending mail.
|
||||
*
|
||||
* Defaults to ``25``
|
||||
*/
|
||||
'mail_smtpport' => getenv('MAIL_PORT'),
|
||||
|
||||
/**
|
||||
* This depends on ``mail_smtpmode``. Specify when you are using ``ssl`` for SSL/TLS or
|
||||
* ``tls`` for STARTTLS, or leave empty for no encryption.
|
||||
*
|
||||
* Defaults to ``''`` (empty string)
|
||||
*/
|
||||
'mail_smtpsecure' => 'ssl',
|
||||
|
||||
/**
|
||||
* This depends on ``mail_smtpmode``. Change this to ``true`` if your mail
|
||||
* server requires authentication.
|
||||
*
|
||||
* Defaults to ``false``
|
||||
*/
|
||||
'mail_smtpauth' => true,
|
||||
|
||||
/**
|
||||
* This depends on ``mail_smtpmode``. If SMTP authentication is required, choose
|
||||
* the authentication type as ``LOGIN`` or ``PLAIN``.
|
||||
*
|
||||
* Defaults to ``LOGIN``
|
||||
*/
|
||||
'mail_smtpauthtype' => 'LOGIN',
|
||||
|
||||
/**
|
||||
* This depends on ``mail_smtpauth``. Specify the username for authenticating to
|
||||
* the SMTP server.
|
||||
*
|
||||
* Defaults to ``''`` (empty string)
|
||||
*/
|
||||
'mail_smtpname' => getenv('MAIL_USER'),
|
||||
|
||||
/**
|
||||
* This depends on ``mail_smtpauth``. Specify the password for authenticating to
|
||||
* the SMTP server.
|
||||
*
|
||||
* Default to ``''`` (empty string)
|
||||
*/
|
||||
'mail_smtppassword' => getenv('MAIL_PASSWORD'),
|
||||
|
||||
/**
|
||||
* Memory caching backend configuration
|
||||
*
|
||||
* Available cache backends:
|
||||
*
|
||||
* * ``\OC\Memcache\APCu`` APC user backend
|
||||
* * ``\OC\Memcache\ArrayCache`` In-memory array-based backend (not recommended)
|
||||
* * ``\OC\Memcache\Memcached`` Memcached backend
|
||||
* * ``\OC\Memcache\Redis`` Redis backend
|
||||
*
|
||||
* Advice on choosing between the various backends:
|
||||
*
|
||||
* * APCu should be easiest to install. Almost all distributions have packages.
|
||||
* Use this for single user environment for all caches.
|
||||
* * Use Redis or Memcached for distributed environments.
|
||||
* For the local cache (you can configure two) take APCu.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Connection details for redis to use for memory caching in a single server configuration.
|
||||
*
|
||||
* For enhanced security it is recommended to configure Redis
|
||||
* to require a password. See http://redis.io/topics/security
|
||||
* for more information.
|
||||
*/
|
||||
'redis' => [
|
||||
'host' => 'localhost', // can also be a unix domain socket: '/tmp/redis.sock'
|
||||
'port' => 6379,
|
||||
'timeout' => 0.0,
|
||||
'password' => '', // Optional, if not defined no password will be used.
|
||||
'dbindex' => 0, // Optional, if undefined SELECT will not run and will use Redis Server's default DB Index.
|
||||
],
|
||||
];
|
||||
|
||||
168
nextcloud/config/config.php
Executable file
168
nextcloud/config/config.php
Executable file
@@ -0,0 +1,168 @@
|
||||
<?php
|
||||
|
||||
$CONFIG = [
|
||||
|
||||
/**
|
||||
* Your list of trusted domains that users can log into. Specifying trusted
|
||||
* domains prevents host header poisoning. Do not remove this, as it performs
|
||||
* necessary security checks.
|
||||
* You can specify:
|
||||
*
|
||||
* - the exact hostname of your host or virtual host, e.g. demo.example.org.
|
||||
* - the exact hostname with permitted port, e.g. demo.example.org:443.
|
||||
* This disallows all other ports on this host
|
||||
* - use * as a wildcard, e.g. ubos-raspberry-pi*.local will allow
|
||||
* ubos-raspberry-pi.local and ubos-raspberry-pi-2.local
|
||||
* - the IP address with or without permitted port, e.g. [2001:db8::1]:8080
|
||||
* Using TLS certificates where commonName=<IP address> is deprecated
|
||||
*/
|
||||
'trusted_domains' =>
|
||||
[
|
||||
'tower.scarif.local',
|
||||
],
|
||||
|
||||
/**
|
||||
* Identifies the database used with this installation. See also config option
|
||||
* ``supportedDatabases``
|
||||
*
|
||||
* Available:
|
||||
* - sqlite3 (SQLite3)
|
||||
* - mysql (MySQL/MariaDB)
|
||||
* - pgsql (PostgreSQL)
|
||||
*
|
||||
* Defaults to ``sqlite3``
|
||||
*/
|
||||
'dbtype' => 'mysql',
|
||||
|
||||
/**
|
||||
* Your host server name, for example ``localhost``, ``hostname``,
|
||||
* ``hostname.example.com``, or the IP address. To specify a port use
|
||||
* ``hostname:####``; to specify a Unix socket use
|
||||
* ``localhost:/path/to/socket``.
|
||||
*/
|
||||
'dbhost' => getenv('MYSQL_HOST'),
|
||||
|
||||
/**
|
||||
* The name of the Nextcloud database, which is set during installation. You
|
||||
* should not need to change this.
|
||||
*/
|
||||
'dbname' => getenv('MYSQL_DATABASE'),
|
||||
|
||||
/**
|
||||
* The user that Nextcloud uses to write to the database. This must be unique
|
||||
* across Nextcloud instances using the same SQL database. This is set up during
|
||||
* installation, so you shouldn't need to change it.
|
||||
*/
|
||||
'dbuser' => getenv('MYSQL_USER'),
|
||||
|
||||
/**
|
||||
* The password for the database user. This is set up during installation, so
|
||||
* you shouldn't need to change it.
|
||||
*/
|
||||
'dbpassword' => getenv('MYSQL_PASSWORD'),
|
||||
|
||||
/**
|
||||
* Mail Parameters
|
||||
*
|
||||
* These configure the email settings for Nextcloud notifications and password
|
||||
* resets.
|
||||
*/
|
||||
|
||||
/**
|
||||
* The return address that you want to appear on emails sent by the Nextcloud
|
||||
* server, for example ``nc-admin@example.com``, substituting your own domain,
|
||||
* of course.
|
||||
*/
|
||||
'mail_domain' => getenv('MAIL_FROM'),
|
||||
|
||||
/**
|
||||
* This depends on ``mail_smtpmode``. Specify the IP address of your mail
|
||||
* server host. This may contain multiple hosts separated by a semi-colon. If
|
||||
* you need to specify the port number append it to the IP address separated by
|
||||
* a colon, like this: ``127.0.0.1:24``.
|
||||
*
|
||||
* Defaults to ``127.0.0.1``
|
||||
*/
|
||||
'mail_smtphost' => getenv('MAIL_HOST'),
|
||||
|
||||
/**
|
||||
* This depends on ``mail_smtpmode``. Specify the port for sending mail.
|
||||
*
|
||||
* Defaults to ``25``
|
||||
*/
|
||||
'mail_smtpport' => getenv('MAIL_PORT'),
|
||||
|
||||
/**
|
||||
* This depends on ``mail_smtpmode``. Specify when you are using ``ssl`` for SSL/TLS or
|
||||
* ``tls`` for STARTTLS, or leave empty for no encryption.
|
||||
*
|
||||
* Defaults to ``''`` (empty string)
|
||||
*/
|
||||
'mail_smtpsecure' => 'ssl',
|
||||
|
||||
/**
|
||||
* This depends on ``mail_smtpmode``. Change this to ``true`` if your mail
|
||||
* server requires authentication.
|
||||
*
|
||||
* Defaults to ``false``
|
||||
*/
|
||||
'mail_smtpauth' => true,
|
||||
|
||||
/**
|
||||
* This depends on ``mail_smtpmode``. If SMTP authentication is required, choose
|
||||
* the authentication type as ``LOGIN`` or ``PLAIN``.
|
||||
*
|
||||
* Defaults to ``LOGIN``
|
||||
*/
|
||||
'mail_smtpauthtype' => 'LOGIN',
|
||||
|
||||
/**
|
||||
* This depends on ``mail_smtpauth``. Specify the username for authenticating to
|
||||
* the SMTP server.
|
||||
*
|
||||
* Defaults to ``''`` (empty string)
|
||||
*/
|
||||
'mail_smtpname' => getenv('MAIL_USER'),
|
||||
|
||||
/**
|
||||
* This depends on ``mail_smtpauth``. Specify the password for authenticating to
|
||||
* the SMTP server.
|
||||
*
|
||||
* Default to ``''`` (empty string)
|
||||
*/
|
||||
'mail_smtppassword' => getenv('MAIL_PASSWORD'),
|
||||
|
||||
/**
|
||||
* Memory caching backend configuration
|
||||
*
|
||||
* Available cache backends:
|
||||
*
|
||||
* * ``\OC\Memcache\APCu`` APC user backend
|
||||
* * ``\OC\Memcache\ArrayCache`` In-memory array-based backend (not recommended)
|
||||
* * ``\OC\Memcache\Memcached`` Memcached backend
|
||||
* * ``\OC\Memcache\Redis`` Redis backend
|
||||
*
|
||||
* Advice on choosing between the various backends:
|
||||
*
|
||||
* * APCu should be easiest to install. Almost all distributions have packages.
|
||||
* Use this for single user environment for all caches.
|
||||
* * Use Redis or Memcached for distributed environments.
|
||||
* For the local cache (you can configure two) take APCu.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Connection details for redis to use for memory caching in a single server configuration.
|
||||
*
|
||||
* For enhanced security it is recommended to configure Redis
|
||||
* to require a password. See http://redis.io/topics/security
|
||||
* for more information.
|
||||
*/
|
||||
'redis' => [
|
||||
'host' => 'localhost', // can also be a unix domain socket: '/tmp/redis.sock'
|
||||
'port' => 6379,
|
||||
'timeout' => 0.0,
|
||||
'password' => '', // Optional, if not defined no password will be used.
|
||||
'dbindex' => 0, // Optional, if undefined SELECT will not run and will use Redis Server's default DB Index.
|
||||
],
|
||||
];
|
||||
|
||||
1851
nextcloud/config/config.sample.php
Executable file
1851
nextcloud/config/config.sample.php
Executable file
File diff suppressed because it is too large
Load Diff
3
nextcloud/db.env
Normal file
3
nextcloud/db.env
Normal file
@@ -0,0 +1,3 @@
|
||||
MYSQL_PASSWORD=secret
|
||||
MYSQL_DATABASE=nextcloud
|
||||
MYSQL_USER=chris
|
||||
22
nextcloud/supervisord.conf
Normal file
22
nextcloud/supervisord.conf
Normal file
@@ -0,0 +1,22 @@
|
||||
[supervisord]
|
||||
nodaemon=true
|
||||
logfile=/var/log/supervisord/supervisord.log
|
||||
pidfile=/var/run/supervisord/supervisord.pid
|
||||
childlogdir=/var/log/supervisord/
|
||||
logfile_maxbytes=50MB ; maximum size of logfile before rotation
|
||||
logfile_backups=10 ; number of backed up logfiles
|
||||
loglevel=error
|
||||
|
||||
[program:php-fpm]
|
||||
stdout_logfile=/dev/stdout
|
||||
stdout_logfile_maxbytes=0
|
||||
stderr_logfile=/dev/stderr
|
||||
stderr_logfile_maxbytes=0
|
||||
command=php-fpm
|
||||
|
||||
[program:cron]
|
||||
stdout_logfile=/dev/stdout
|
||||
stdout_logfile_maxbytes=0
|
||||
stderr_logfile=/dev/stderr
|
||||
stderr_logfile_maxbytes=0
|
||||
command=/cron.shv
|
||||
Reference in New Issue
Block a user