Compare commits
	
		
			26 Commits
		
	
	
		
			add-themin
			...
			kc_stable
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| e46a9411ef | |||
| b9a7b9730e | |||
| 00264a9c44 | |||
| d7d33b099f | |||
| 01fe498831 | |||
| 9859907d4b | |||
| 6c0fa9c12d | |||
| a3c99a72bf | |||
| c94ffed09d | |||
| 7a863573c9 | |||
| c930bbcf56 | |||
| a13e7a509c | |||
| 0f9aba3e9e | |||
| eb3e2486ce | |||
| 2b4e63ef31 | |||
| c056687849 | |||
| 180c269337 | |||
| 7eea2e0785 | |||
| be915272b4 | |||
| 9be859db25 | |||
| 97e1d72604 | |||
| 8a1fae2bac | |||
| ce817e3928 | |||
| 7a64d3c6a7 | |||
| bb781e654b | |||
| cb5cd5f7b2 | 
@ -1,6 +1,7 @@
 | 
			
		||||
TYPE=nextcloud
 | 
			
		||||
TIMEOUT=900
 | 
			
		||||
ENABLE_AUTO_UPDATE=true
 | 
			
		||||
ENABLE_BACKUPS=true
 | 
			
		||||
 | 
			
		||||
DOMAIN=nextcloud.example.com
 | 
			
		||||
## Domain aliases
 | 
			
		||||
@ -47,9 +48,9 @@ DEFAULT_QUOTA="10 GB"
 | 
			
		||||
## Customization
 | 
			
		||||
# THEMING_COLOR=
 | 
			
		||||
# THEMING_SLOGAN=
 | 
			
		||||
# COPY_ASSETS="flow_background.jpg|app:/var/www/html/themes/background.jpg"
 | 
			
		||||
# COPY_ASSETS="$COPY_ASSETS icon_left_brand.svg|app:/var/www/html/themes/logo.svg"
 | 
			
		||||
# COPY_ASSETS="$COPY_ASSETS icon.png|app:/web/dist/assets/icons/icon.png"
 | 
			
		||||
# COPY_ASSETS="flow_background.jpg|app:/var/www/html/themes/"
 | 
			
		||||
# COPY_ASSETS="$COPY_ASSETS icon_left_brand.svg|app:/var/www/html/themes/"
 | 
			
		||||
# COPY_ASSETS="$COPY_ASSETS icon.png|app:/var/www/html/themes/"
 | 
			
		||||
 | 
			
		||||
# APPS="calendar"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										9
									
								
								abra.sh
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								abra.sh
									
									
									
									
									
								
							@ -1,10 +1,11 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
export FPM_TUNE_VERSION=v5
 | 
			
		||||
export NGINX_CONF_VERSION=v6
 | 
			
		||||
export NGINX_CONF_VERSION=v7
 | 
			
		||||
export MY_CNF_VERSION=v5
 | 
			
		||||
export ENTRYPOINT_VERSION=v3
 | 
			
		||||
export CRONTAB_VERSION=v1
 | 
			
		||||
export PG_BACKUP_VERSION=v1
 | 
			
		||||
 | 
			
		||||
run_occ() {
 | 
			
		||||
    su -p www-data -s /bin/sh -c "/var/www/html/occ $@"
 | 
			
		||||
@ -121,7 +122,7 @@ set_authentik() {
 | 
			
		||||
        \"tokenUrl\": \"https://$AUTHENTIK_DOMAIN/application/o/token/\",
 | 
			
		||||
        \"displayNameClaim\":\"preferred_username\",
 | 
			
		||||
        \"userInfoUrl\": \"https://$AUTHENTIK_DOMAIN/application/o/userinfo/\",
 | 
			
		||||
        \"logoutUrl\": \"https://$AUTHENTIK_DOMAIN/if/session-end/nextcloud/\",
 | 
			
		||||
        \"logoutUrl\": \"https://$AUTHENTIK_DOMAIN/application/o/nextcloud/end-session/\",
 | 
			
		||||
        \"clientId\":\"$AUTHENTIK_ID\",
 | 
			
		||||
        \"clientSecret\":\"$AUTHENTIK_SECRET\",
 | 
			
		||||
        \"scope\":\"openid profile email nextcloud\",
 | 
			
		||||
@ -143,3 +144,7 @@ set_authentik() {
 | 
			
		||||
    run_occ 'config:system:set allow_user_to_change_display_name --value=false'
 | 
			
		||||
    run_occ 'config:system:set lost_password_link --value=disabled'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
disable_skeletondirectory() {
 | 
			
		||||
    run_occ "config:system:set skeletondirectory --value ''"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										24
									
								
								alaconnect.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								alaconnect.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,24 @@
 | 
			
		||||
authentik:
 | 
			
		||||
    uncomment:
 | 
			
		||||
        - compose.authentik.yml
 | 
			
		||||
        - AUTHENTIK_USER_PREFIX
 | 
			
		||||
        - AUTHENTIK_DOMAIN
 | 
			
		||||
        - SECRET_AUTHENTIK_SECRET_VERSION
 | 
			
		||||
        - SECRET_AUTHENTIK_ID_VERSION
 | 
			
		||||
    initial-hooks:
 | 
			
		||||
        - app set_authentik
 | 
			
		||||
    shared_secrets:
 | 
			
		||||
        nextcloud_secret: authentik_secret
 | 
			
		||||
        nextcloud_id: authentik_id
 | 
			
		||||
onlyoffice:
 | 
			
		||||
    uncomment:
 | 
			
		||||
        - compose.onlyoffice.yml
 | 
			
		||||
        - ONLYOFFICE_URL
 | 
			
		||||
        - SECRET_ONLYOFFICE_JWT_VERSION
 | 
			
		||||
    initial-hooks:
 | 
			
		||||
        - app install_onlyoffice
 | 
			
		||||
collabora:
 | 
			
		||||
    uncomment:
 | 
			
		||||
        - COLLABORA_URL
 | 
			
		||||
    initial-hooks:
 | 
			
		||||
        - app install_collabora
 | 
			
		||||
@ -2,7 +2,7 @@ version: "3.8"
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  elasticsearch:
 | 
			
		||||
    image: "docker.elastic.co/elasticsearch/elasticsearch:8.11.3"
 | 
			
		||||
    image: "docker.elastic.co/elasticsearch/elasticsearch:8.15.0"
 | 
			
		||||
    environment:
 | 
			
		||||
      - cluster.name=docker-cluster
 | 
			
		||||
      - bootstrap.memory_lock=true
 | 
			
		||||
@ -29,7 +29,7 @@ services:
 | 
			
		||||
        mode: 0600
 | 
			
		||||
 | 
			
		||||
  searchindexer:
 | 
			
		||||
    image: nextcloud:28.0.5-fpm
 | 
			
		||||
    image: nextcloud:28.0.10-fpm
 | 
			
		||||
    volumes:
 | 
			
		||||
      - nextcloud:/var/www/html/
 | 
			
		||||
      - nextapps:/var/www/html/custom_apps:cached
 | 
			
		||||
 | 
			
		||||
@ -28,10 +28,9 @@ services:
 | 
			
		||||
      - internal
 | 
			
		||||
    deploy:
 | 
			
		||||
      labels:
 | 
			
		||||
          backupbot.backup: "true"
 | 
			
		||||
          backupbot.backup.pre-hook: 'mysqldump --single-transaction -u root -p"$$(cat /run/secrets/db_root_password)" nextcloud > /var/lib/mysql/backup.sql'
 | 
			
		||||
          backupbot.backup.post-hook: "rm -rf /var/lib/mysql/backup.sql"
 | 
			
		||||
          backupbot.backup.path: "/var/lib/mysql/backup.sql"
 | 
			
		||||
        backupbot.backup.pre-hook: 'mysqldump --single-transaction -u root -p"$$(cat /run/secrets/db_root_password)" nextcloud > /var/lib/mysql/backup.sql'
 | 
			
		||||
        backupbot.backup.volumes.mariadb.path: "backup.sql"
 | 
			
		||||
        backupbot.restore.post-hook: 'mysql -u root -p"$$(cat /run/secrets/db_root_password)" nextcloud < /var/lib/mysql/backup.sql'
 | 
			
		||||
    healthcheck:
 | 
			
		||||
      test: ["CMD-SHELL", 'mysqladmin -p"$$(cat /run/secrets/db_root_password)"  ping']
 | 
			
		||||
      interval: 30s
 | 
			
		||||
 | 
			
		||||
@ -10,7 +10,7 @@ services:
 | 
			
		||||
      - NEXTCLOUD_UPDATE=1
 | 
			
		||||
 | 
			
		||||
  db:
 | 
			
		||||
    image: "postgres:12"
 | 
			
		||||
    image: "postgres:13"
 | 
			
		||||
    command: -c "max_connections=${MAX_DB_CONNECTIONS:-100}"
 | 
			
		||||
    volumes:
 | 
			
		||||
      - "postgres:/var/lib/postgresql/data"
 | 
			
		||||
@ -29,10 +29,18 @@ services:
 | 
			
		||||
      retries: 5
 | 
			
		||||
    deploy:
 | 
			
		||||
      labels:
 | 
			
		||||
            backupbot.backup: "true"
 | 
			
		||||
            backupbot.backup.pre-hook: "PGPASSWORD=$$(cat $${POSTGRES_PASSWORD_FILE}) pg_dump -U $${POSTGRES_USER} $${POSTGRES_DB} > /var/lib/postgresql/data/backup.sql"
 | 
			
		||||
            backupbot.backup.post-hook: "rm -rf /var/lib/postgresql/data/backup.sql"
 | 
			
		||||
            backupbot.backup.path: "/var/lib/postgresql/data/"
 | 
			
		||||
        backupbot.backup.pre-hook: "/pg_backup.sh backup"
 | 
			
		||||
        backupbot.backup.volumes.postgres.path: "backup.sql"
 | 
			
		||||
        backupbot.restore.post-hook: '/pg_backup.sh restore'
 | 
			
		||||
    configs:
 | 
			
		||||
        - source: pg_backup
 | 
			
		||||
          target: /pg_backup.sh
 | 
			
		||||
          mode: 0555
 | 
			
		||||
 | 
			
		||||
volumes:
 | 
			
		||||
  postgres:
 | 
			
		||||
 | 
			
		||||
configs:
 | 
			
		||||
  pg_backup:
 | 
			
		||||
    name: ${STACK_NAME}_pg_backup_${PG_BACKUP_VERSION}
 | 
			
		||||
    file: pg_backup.sh
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										16
									
								
								compose.yml
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								compose.yml
									
									
									
									
									
								
							@ -1,7 +1,7 @@
 | 
			
		||||
version: "3.8"
 | 
			
		||||
services:
 | 
			
		||||
  web:
 | 
			
		||||
    image: nginx:1.27.0
 | 
			
		||||
    image: nginx:1.27.1
 | 
			
		||||
    depends_on:
 | 
			
		||||
      - app
 | 
			
		||||
    configs:
 | 
			
		||||
@ -46,7 +46,7 @@ services:
 | 
			
		||||
      start_period: 5m
 | 
			
		||||
 | 
			
		||||
  app:
 | 
			
		||||
    image: nextcloud:28.0.5-fpm
 | 
			
		||||
    image: nextcloud:28.0.10-fpm
 | 
			
		||||
    depends_on:
 | 
			
		||||
      - db
 | 
			
		||||
    configs:
 | 
			
		||||
@ -91,10 +91,12 @@ services:
 | 
			
		||||
        failure_action: rollback
 | 
			
		||||
        order: start-first
 | 
			
		||||
      labels:
 | 
			
		||||
        - "coop-cloud.${STACK_NAME}.version=6.0.7+28.0.5-fpm"
 | 
			
		||||
        - "coop-cloud.${STACK_NAME}.version=6.0.11+28.0.10-fpm"
 | 
			
		||||
        - "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}"
 | 
			
		||||
        - "backupbot.backup=true"
 | 
			
		||||
        - "backupbot.backup.path=/var/www/html/config/,/var/www/html/data/,/var/www/html/custom_apps/"
 | 
			
		||||
        - "backupbot.backup=${ENABLE_BACKUPS:-true}"
 | 
			
		||||
        - "backupbot.backup.volumes.redis=false"
 | 
			
		||||
       #- "backupbot.backup.volumes.nextcloud=false"
 | 
			
		||||
 | 
			
		||||
    healthcheck:
 | 
			
		||||
      test: ["CMD-SHELL", 'SCRIPT_NAME=status SCRIPT_FILENAME=/var/www/html/status.php REQUEST_METHOD=GET cgi-fcgi -bind -connect 127.0.0.1:9000 | grep "installed\":true"']
 | 
			
		||||
      interval: 30s
 | 
			
		||||
@ -103,7 +105,7 @@ services:
 | 
			
		||||
      start_period: 15m
 | 
			
		||||
 | 
			
		||||
  cron:
 | 
			
		||||
    image: nextcloud:28.0.5-fpm
 | 
			
		||||
    image: nextcloud:28.0.10-fpm
 | 
			
		||||
    volumes:
 | 
			
		||||
      - nextcloud:/var/www/html/
 | 
			
		||||
      - nextapps:/var/www/html/custom_apps:cached
 | 
			
		||||
@ -119,7 +121,7 @@ services:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  cache:
 | 
			
		||||
    image: redis:7.2.4-alpine
 | 
			
		||||
    image: redis:7.4.0-alpine
 | 
			
		||||
    networks:
 | 
			
		||||
      - internal
 | 
			
		||||
    volumes:
 | 
			
		||||
 | 
			
		||||
@ -136,6 +136,9 @@ http {
 | 
			
		||||
        # then Nginx will encounter an infinite rewriting loop when it prepends `/index.php`
 | 
			
		||||
        # to the URI, resulting in a HTTP 500 error response.
 | 
			
		||||
        location ~ \.php(?:$|/) {
 | 
			
		||||
            # Required for legacy support
 | 
			
		||||
            rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|ocs-provider\/.+|.+\/richdocumentscode(_arm64)?\/proxy) /index.php$request_uri;
 | 
			
		||||
 | 
			
		||||
            fastcgi_split_path_info ^(.+?\.php)(/.*)$;
 | 
			
		||||
            set $path_info $fastcgi_path_info;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										27
									
								
								pg_backup.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								pg_backup.sh
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
BACKUP_FILE='/var/lib/postgresql/data/backup.sql'
 | 
			
		||||
 | 
			
		||||
function backup {
 | 
			
		||||
  export PGPASSWORD=$(cat /run/secrets/db_password)
 | 
			
		||||
  pg_dump -U ${POSTGRES_USER} ${POSTGRES_DB} > $BACKUP_FILE
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function restore {
 | 
			
		||||
    cd /var/lib/postgresql/data/
 | 
			
		||||
    # Don't allow any other connections than local
 | 
			
		||||
    cp pg_hba.conf pg_hba.conf.bak
 | 
			
		||||
    echo "local all all trust" > pg_hba.conf
 | 
			
		||||
    su postgres -c 'pg_ctl reload'
 | 
			
		||||
    # Recreate Database
 | 
			
		||||
    psql -U ${POSTGRES_USER} -d postgres -c "DROP DATABASE ${POSTGRES_DB} WITH (FORCE);" 
 | 
			
		||||
    createdb -U ${POSTGRES_USER} ${POSTGRES_DB}
 | 
			
		||||
    psql -U ${POSTGRES_USER} -d ${POSTGRES_DB} -1 -f $BACKUP_FILE
 | 
			
		||||
    # Restore allowed connections
 | 
			
		||||
    cat pg_hba.conf.bak > pg_hba.conf
 | 
			
		||||
    su postgres -c 'pg_ctl reload'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
$@
 | 
			
		||||
@ -1 +0,0 @@
 | 
			
		||||
BREAKING CHANGE: compose.apps.yml was split to compose.bbb.yml and compose.onlyoffice.yml, configuration update is required!
 | 
			
		||||
							
								
								
									
										1
									
								
								release/8.0.0+29.0.1-fpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								release/8.0.0+29.0.1-fpm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
BREAKING CHANGE: compose.apps.yml is now split for bbb and onlyoffice, configs must be updated
 | 
			
		||||
							
								
								
									
										1
									
								
								release/9.1.0+29.0.5-fpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								release/9.1.0+29.0.5-fpm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
Added automated customization options. Config needs to be updated to be able to use it.
 | 
			
		||||
		Reference in New Issue
	
	Block a user