Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b048d8b5 authored by Nicolas Gelot's avatar Nicolas Gelot
Browse files

Merge branch 'dev/add-docker-swarm-support' into 'slim'

Add docker swarm support

See merge request !277
parents ae28e144 0997ba78
Loading
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
# docker compose
COMPOSE_BAKE=true
COMPOSE_FILE=docker-compose.yml:docker-compose.local.yml

# Server
DOMAIN=localhost
SHARED_STORAGE_PATH=./nextcloud-shared-storage

# mail
SMTP_SECURE=tls
SMTP_PORT=587
SMTP_NAME=username
SMTP_PASSWORD=123456
SMTP_HOST=smtp.domain.com
@@ -22,10 +26,16 @@ REDIS_HOST=redis
REDIS_HOST_PASSWORD=12456

# nextcloud
NEXTCLOUD_DOCKERFILE=slim.Dockerfile 
NEXTCLOUD_DOCKER_IMG=registry.gitlab.e.foundation/e/infra/ecloud/nextcloud/slim
NEXTCLOUD_DOCKER_IMG=registry.gitlab.e.foundation/e/infra/ecloud/nextcloud/slim:latest
NEXTCLOUD_ADMIN_USER=admin
NEXTCLOUD_ADMIN_PASSWORD=@dm1n
NEXTCLOUD_TRUSTED_DOMAINS=nginx
SENTRY_DSN=
SENTRY_PUBLIC_DSN=

# nginx
NGINX_DOCKER_IMG=registry.gitlab.e.foundation/e/infra/ecloud/nextcloud/nginx:latest

# syslog
SYSLOG_HOST=syslog
+27 −3
Original line number Diff line number Diff line
@@ -31,23 +31,47 @@ build-workspace:
build-slim-workspace:
  extends: .build
  variables:
    DOCKER_BUILD_ARGS: "-f slim.Dockerfile"
    DOCKER_BUILD_ARGS: "-f slim.Dockerfile --target nextcloud"
    REGISTRY_SUBPATH: "/slim"

build-nginx-workspace:
  extends: .build
  variables:
    DOCKER_BUILD_ARGS: "-f slim.Dockerfile --target nginx"
    REGISTRY_SUBPATH: "/nginx"

publish-slim-latest:
  extends: .deploy
  variables:
     DOCKER_BUILD_ARGS: "-f slim.Dockerfile"
     DOCKER_BUILD_ARGS: "-f slim.Dockerfile --target nextcloud"
     REGISTRY_SUBPATH: "/slim"
     MW_DOCKER_VERSION: "latest"
  rules:
    - if: '$CI_COMMIT_REF_NAME == "slim"'

publish-nginx-latest:
  extends: .deploy
  variables:
     DOCKER_BUILD_ARGS: "-f slim.Dockerfile --target nginx"
     REGISTRY_SUBPATH: "/nginx"
     MW_DOCKER_VERSION: "latest"
  rules:
    - if: '$CI_COMMIT_REF_NAME == "slim"'

publish-slim-tag:
  extends: .deploy
  variables:
    DOCKER_BUILD_ARGS: "-f slim.Dockerfile"
    DOCKER_BUILD_ARGS: "-f slim.Dockerfile --target nextcloud"
    REGISTRY_SUBPATH: "/slim"
    MW_DOCKER_VERSION: "${CI_COMMIT_TAG/v/}"
  rules:
    - if: '$CI_COMMIT_TAG'

publish-nginx-tag:
  extends: .deploy
  variables:
    DOCKER_BUILD_ARGS: "-f slim.Dockerfile --target nginx"
    REGISTRY_SUBPATH: "/nginx"
    MW_DOCKER_VERSION: "${CI_COMMIT_TAG/v/}"
  rules:
    - if: '$CI_COMMIT_TAG'
+20 −0
Original line number Diff line number Diff line
@@ -6,13 +6,33 @@ This project builds a custom docker image from the official [Nextcloud](https://

## Getting started

### Local environment

You can configure default values from the `.env` file. See [.env.example](./.env.example).
By default, the `slim` Murena Workspace is configured.

`slim` Murena Workspace
```
cp .env.example .env
mkdir -p nextcloud-shared-storage/{config,data}
docker compose up --build -d
```

Go to http://localhost:8000 then use admin credentials provided into `.env` file.

### Swarm environment with managed storage and services


First create the context:

```
docker context create dev --description "Development environment" --docker "host=ssh://root@dev.domain.app"
docker --context dev service ls
```

Secondly, once the .env configuration file initiated create the deployments stack:

```
set -a && source .env && set +a
docker --context dev stack deploy -c docker-compose.yml instance1
```
+34 −0
Original line number Diff line number Diff line
<?php
$CONFIG = array(
  'integrity.check.disabled' => true,
  'profile.enabled' => false,
  'defaultapp' => 'murena-dashboard,files',
  'theme' => 'eCloud',
  'filelocking.enabled' => true,
  'log_type' => 'syslog',
  'loglevel' => 2,
  'syslog_tag' => 'nextcloud',
  'cron_log' => true,
  'enabledPreviewProviders' => array(
    'OC\\Preview\\PNG',
    'OC\\Preview\\JPEG',
    'OC\\Preview\\GIF',
    'OC\\Preview\\BMP',
    'OC\\Preview\\XBitmap',
    'OC\\Preview\\MP3',
    'OC\\Preview\\TXT',
    'OC\\Preview\\MarkDown',
    'OC\\Preview\\OpenDocument',
    'OC\\Preview\\Krita',
    'OC\\Preview\\Movie',
  ),
  'preview_max_x' => 1024,
  'preview_max_y' => 1024,
  'default_phone_region' => getenv('NEXTCLOUD_DEFAULT_PHONE_REGION_CODE') ?: 'FR',
  'maintenance_window_start' => 1,
);

if (getenv('SENTRY_DSN') && getenv('SENTRY_PUBLIC_DSN')) {
  $CONFIG['sentry.dsn'] = getenv('SENTRY_DSN');
  $CONFIG['sentry.public-dsn'] = getenv('SENTRY_PUBLIC_DSN');
}
+9 −0
Original line number Diff line number Diff line
<?php
if (getenv('POSTGRES_SSL_MODE')) {
  $CONFIG = array (
    'pgsql_ssl' => array(
      'mode' => getenv('POSTGRES_SSL_MODE'),  // see https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNECT-SSLMODE
      'rootcert' => getenv('POSTGRES_SSL_ROOTCERT') ?: null,
    ),
  );
}
Loading