diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index e0836d7ab0875..b21fb6951c048 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -57,6 +57,7 @@ RUN apt-get -y install \ apt-transport-https \ ca-certificates \ curl \ + jq \ gnupg-agent \ software-properties-common && \ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \ diff --git a/.devcontainer/apps.config.php b/.devcontainer/apps.config.php new file mode 100644 index 0000000000000..986c3a4d66d6f --- /dev/null +++ b/.devcontainer/apps.config.php @@ -0,0 +1,15 @@ + array ( + 0 => array ( + 'path' => OC::$SERVERROOT.'/customapps', + 'url' => '/customapps', + 'writable' => true, + ), + 1 => array ( + 'path' => OC::$SERVERROOT.'/apps', + 'url' => '/apps', + 'writable' => true, + ), + ), +); diff --git a/.devcontainer/codespace.config.php b/.devcontainer/codespace.config.php index 3c5257635400b..f1c7c2aaa3bef 100644 --- a/.devcontainer/codespace.config.php +++ b/.devcontainer/codespace.config.php @@ -8,7 +8,7 @@ 'mail_smtpmode' => 'smtp', 'mail_sendmailmode' => 'smtp', 'mail_domain' => 'example.com', - 'mail_smtphost' => 'localhost', + 'mail_smtphost' => 'mailhog', 'mail_smtpport' => '1025', 'memcache.local' => '\OC\Memcache\APCu', ]; diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index a30bba74a6653..436e323b850a2 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -6,11 +6,15 @@ services: - .:/workspace:cached - /var/run/docker.sock:/var/run/docker-host.sock - ..:/var/www/html + - ../../customapps:/var/www/html/customapps + - ../../data:/var/www/html/data + - ../../config:/var/www/html/config command: /var/www/html/.devcontainer/entrypoint.sh ports: - 80:80 - - 8080:8080 - - 8025:8025 + depends_on: + - db + - mailhog db: image: postgres @@ -19,18 +23,22 @@ services: POSTGRES_PASSWORD: postgres PGDATA: /data/postgres volumes: - - db:/data/postgres - network_mode: service:nextclouddev + - ../../data/db:/data/postgres + expose: + - "5432" adminer: image: adminer restart: always - network_mode: service:nextclouddev + ports: + - 8080:8080 + depends_on: + - db mailhog: image: mailhog/mailhog restart: always - network_mode: service:nextclouddev + ports: + - 8025:8025 + -volumes: - db: diff --git a/.devcontainer/nmc.config.php b/.devcontainer/nmc.config.php new file mode 100644 index 0000000000000..a229873231e62 --- /dev/null +++ b/.devcontainer/nmc.config.php @@ -0,0 +1,12 @@ + '/', + 'default_language' => 'de_DE', + 'integrity.check.disabled' => true, // not recommended for prod, but for customisation + // 'config_is_read_only' => true, + 'auth.authtoken.v1.disabled' => true, + 'sharing.force_share_accept' => true, + 'status-email-message-provider' => '\\OCA\\EmailTemplateExample\\MessageProvider', + 'mail_template_class' => 'OCA\\EmailTemplateExample\\EMailTemplate', + // "logfile_office_report" => "/var/log/nextcloud/office.log", +); \ No newline at end of file diff --git a/.devcontainer/nmcsetup.sh b/.devcontainer/nmcsetup.sh new file mode 100755 index 0000000000000..ba7ee23250d0b --- /dev/null +++ b/.devcontainer/nmcsetup.sh @@ -0,0 +1,37 @@ +#!/bin/bash +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../" >/dev/null 2>&1 && pwd )" + +cd $DIR/ + +# after installation, do some MagentaCLOUD specific setups to start closer to production + +# customapps directory split +cp .devcontainer/apps.config.php config/apps.config.php +cp .devcontainer/nmc.config.php config/nmc.config.php + +# disable user themeing +sudo -u ${APACHE_RUN_USER} php occ theming:config disable-user-theming yes + +# fixed themeing for MagentaCLOUD +cp .devcontainer/theme.config.php config/theme.config.php + +# refresh .htaccess for short URL notation +sudo -u ${APACHE_RUN_USER} php occ maintenance:update:htaccess + +# "Organisational" setting +sudo -u ${APACHE_RUN_USER} php occ theming:config color "#e20074" # don't use uppercase letters! +sudo -u ${APACHE_RUN_USER} php occ theming:config name MagentaCLOUD +sudo -u ${APACHE_RUN_USER} php occ theming:config slogan "Alle Dateien sicher an einem Ort" +sudo -u ${APACHE_RUN_USER} php occ theming:config imprintUrl "http://www.telekom.de/impressum" +sudo -u ${APACHE_RUN_USER} php occ theming:config privacyUrl "https://static.magentacloud.de/Datenschutz" + +# app settings +sudo -u ${APACHE_RUN_USER} php occ config:app:set theming AndroidClientUrl --value \ + "https://play.google.com/store/apps/details?=com.t_systems.android.webdav" +sudo -u ${APACHE_RUN_USER} php occ config:app:set theming iTunesAppId --value "312838242" +sudo -u ${APACHE_RUN_USER} php occ config:app:set theming iOSClientUrl --value \ + "https://apps.apple.com/us/app/magentacloud-cloud-speicher/id312838242" + +# enable/disable apps +sudo -u ${APACHE_RUN_USER} php occ app:enable nmctheme +sudo -u ${APACHE_RUN_USER} php occ app:disable dashboard # may remove as soon as dashboard CR is implemented \ No newline at end of file diff --git a/.devcontainer/setup.sh b/.devcontainer/setup.sh index 3485d4f7257c6..620bc41e67d69 100755 --- a/.devcontainer/setup.sh +++ b/.devcontainer/setup.sh @@ -2,27 +2,24 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../" >/dev/null 2>&1 && pwd )" cd $DIR/ - -# Set git safe.directory -git config --global --add safe.directory /var/www/html -git config --global --add safe.directory /var/www/html/3rdparty - git submodule update --init -# Codespace config -cp .devcontainer/codespace.config.php config/codespace.config.php - # VSCode debugger profile mkdir -p .vscode && cp .devcontainer/launch.json .vscode/launch.json # Onetime installation setup if [[ ! $(sudo -u ${APACHE_RUN_USER} php occ status) =~ installed:[[:space:]]*true ]]; then echo "Running NC installation" + + # we could be faced with an externalized, empty config dir + touch config/CAN_INSTALL + + # this produces the plain config file without any overwriting sudo -u ${APACHE_RUN_USER} php occ maintenance:install \ --verbose \ --database=pgsql \ --database-name=postgres \ - --database-host=127.0.0.1 \ + --database-host=db \ --database-port=5432 \ --database-user=postgres \ --database-pass=postgres \ @@ -30,4 +27,12 @@ if [[ ! $(sudo -u ${APACHE_RUN_USER} php occ status) =~ installed:[[:space:]]*tr --admin-pass admin fi +# Codespace config; do it late to avoid duplication into config.php +# (which removed the conditional code!) +# may consider setting 'config_is_read_only' => true, +cp .devcontainer/codespace.config.php config/codespace.config.php + +# add MagentaCLOUD convenience setup +source .devcontainer/nmcsetup.sh + sudo service apache2 restart diff --git a/.devcontainer/theme.config.php b/.devcontainer/theme.config.php new file mode 100644 index 0000000000000..208ab66f85637 --- /dev/null +++ b/.devcontainer/theme.config.php @@ -0,0 +1,5 @@ + 'default', // or any other theme contained in the app + 'theme' => '', // disable old themeing +); \ No newline at end of file