root@c3-data:/var/app# cat docker-compose.yml
version: '3'
services:
db:
image: postgres:16.3-alpine
restart: unless-stopped
volumes:
- db:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- TZ=${TZ}
networks:
- nextcloud
command:
- "postgres"
- "-c"
- "max_connections=1000"
- "-c"
- "shared_buffers=3GB"
redis:
image: redis:alpine
restart: unless-stopped
volumes:
- redis:/data
environment:
- TZ=${TZ}
networks:
- nextcloud
nextcloud:
container_name: nextcloud
image: $CI_REGISTRY_IMAGE/nextcloud-fpm:latest
restart: unless-stopped
stdin_open: true
tty: true
links:
- db
- redis
expose:
- '80'
- '9000'
volumes:
- app_data:/var/www/html
environment:
- TZ=${TZ}
networks:
- nextcloud
nginx-server:
container_name: nginx-server
image: $CI_REGISTRY_IMAGE/nc_red_nginx:latest
environment:
- CRON_RESTARTNGINX=0 3 * * * service nginx reload
- TZ=${TZ}
links:
- nextcloud
restart: unless-stopped
ports:
- "0.0.0.0:443:443"
volumes:
- ssl_certs:/etc/ssl-nginx
- app_data:/var/www/html
networks:
- nextcloud
car:
image: gitlab.intra.name.ch:4567/name/infrastructure/car:latest
restart: unless-stopped
environment:
- DNSIMPLE_API_TOKEN=${DNSIMPLE_API_TOKEN}
- DOMAINS=c3-data.intra.name.ch
- DHPARAM=2048
- TZ=${TZ}
volumes:
- ssl_certs:/usr/app/data/certs
datadog:
image: datadog/agent:latest
privileged: true
restart: unless-stopped
environment:
- DD_LOGS_ENABLED=true
- DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL=true
- DD_API_KEY=${DATADOG_API_KEY}
- DD_CONTAINER_EXCLUDE="name:nextcloud_datadog_1 name:nginx-server name:nextcloud name:nextcloud_db_1 name:nextcloud_elasticsearch_1 name:nextcloud_redis_1 name:onlyoffice-document-server image:onlyoffice/documentserver"
- DD_CONTAINER_INCLUDE="name:nextcloud_db_dump_1 name:db_dump name:nextcloud_crypto-layer_1 name:crypto-layer name:nextcloud_restic_backup_1 name:restic name:nextcloud_car_1 name:car"
- DD_PROCESS_AGENT_ENABLED=true
- TZ=${TZ}
volumes:
- /opt/datadog-agent/run:/opt/datadog-agent/run:rw
- /var/run/docker.sock:/var/run/docker.sock:ro
- /proc/:/host/proc/:ro
- /sys/fs/cgroup/:/host/sys/fs/cgroup:ro
networks:
- nextcloud
db_dump:
image: $CI_REGISTRY_IMAGE/nc_db_dump:latest
environment:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- TZ=${TZ}
volumes:
- db_dump:/var/opt
networks:
- nextcloud
restic_backup:
image: gitlab.intra.name.ch:4567/name/infrastructure/red-restic
restart: unless-stopped
environment:
- BACKUP_CRON=30 2,9,12,15,18 * * *
- RESTIC_FORGET_ARGS=--prune --keep-last 10 --keep-hourly 24 --keep-daily 7 --keep-weekly 52 --keep-monthly 120 --keep-yearly 100
- AWS_ACCESS_KEY_ID=${API_KEY}
- AWS_SECRET_ACCESS_KEY=${SECRET_KEY}
- RESTIC_REPOSITORY=${RESTIC_BACKUP_REPOSITORY}
- RESTIC_PASSWORD=${RESTIC_BACKUP_PASSWORD}
- TZ=${TZ}
- GOMAXPROCS=1
volumes:
- app_data:/data/nextcloud/app_data
- db_dump:/data/db
# to be removed once red-restic is migrated to alpine
- /etc/localtime:/etc/localtime:ro
s3-s3-restic:
image: gitlab.intra.name.ch:4567/name/infrastructure/c3-data/s3-s3-red-restic
cap_add:
- SYS_ADMIN
devices:
- /dev/fuse:/dev/fuse
restart: unless-stopped
environment:
- BACKUP_CRON=30 18 * * *
- RESTIC_FORGET_ARGS=--prune --keep-last 10 --keep-hourly 24 --keep-daily 7 --keep-weekly 52 --keep-monthly 120 --keep-yearly 100
- AWS_ACCESS_KEY_ID=${BACKUP_API_KEY}
- AWS_SECRET_ACCESS_KEY=${BACKUP_SECRET_KEY}
- RESTIC_REPOSITORY=${BACKUP_REPOSITORY}
- RESTIC_PASSWORD=${BACKUP_PASSWORD}
- TZ=${TZ}
- S3_BUCKET=${S3_BUCKET}
- S3_BUCKET_ENDPOINT=${S3_BUCKET_ENDPOINT}
- S3_ACCESS_KEY=${S3_ACCESS_KEY}
- S3_SECRET_ACCESS_KEY=${S3_SECRET_ACCESS_KEY}
- GOMAXPROCS=1
volumes:
app_data:
db:
ssl_certs:
redis:
db_dump:
networks:
nextcloud:
driver: 'bridge'
root@c3-data:/var/app#
<?php
$CONFIG = array (
'memcache.local' => '\\OC\\Memcache\\APCu',
'apps_paths' =>
array (
0 =>
array (
'path' => '/var/www/html/apps',
'url' => '/apps',
'writable' => false,
),
1 =>
array (
'path' => '/var/www/html/custom_apps',
'url' => '/custom_apps',
'writable' => true,
),
),
'instanceid' => 'id',
'passwordsalt' => 'salt',
'secret' => 'Jsecret',
'trusted_domains' =>
array (
0 => 'c3-data.intra.name.ch',
1 => 'nginx-server',
),
'datadirectory' => '/var/www/html/data',
'dbtype' => 'pgsql',
'version' => '29.0.4.1',
'overwrite.cli.url' => 'http://c3-data.intra.name.ch',
'dbname' => 'nextcloud',
'dbhost' => 'db:5432',
'dbport' => '',
'dbtableprefix' => 'oc_',
'dbuser' => 'oc_root',
'dbpassword' => 'password',
'installed' => true,
'overwriteprotocol' => 'https',
'redis' =>
array (
'host' => 'redis',
'port' => '6379',
'timeout' => '0.0',
),
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'skeletondirectory' => '/var/skeleton',
'trashbin_retention_obligation' => '30, 31',
'maintenance' => false,
'mail_smtpmode' => 'smtp',
'mail_sendmailmode' => 'smtp',
'mail_from_address' => 'c3-data',
'mail_domain' => 'name.ch',
'mail_smtphost' => 'smtp.eu.mailgun.org',
'mail_smtpauth' => 1,
'mail_smtpname' => 'c3-data@mail.name.ch',
'mail_smtppassword' => 'password',
'mail_smtpport' => '587',
'twofactor_enforced' => 'true',
'twofactor_enforced_groups' =>
array (
),
'twofactor_enforced_excluded_groups' =>
array (
),
'loglevel' => 0,
);
root@4cf7bf2b0bad:/var/www/html/config#