Compare commits
98 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a972fb3ec0 | |||
| 5dbdeb8500 | |||
| b27435102d | |||
| 797e55ecba | |||
| bf71c459b4 | |||
| bfeb093df7 | |||
| e8f9260556 | |||
| 576a0daba1 | |||
| 32994d4c7d | |||
| 1fb6efacfd | |||
| c0213f02c7 | |||
| 2c395031c3 | |||
| c1505566e1 | |||
| a569a8d63a | |||
| afbce62311 | |||
| f1d9156ca3 | |||
| ffeba34ed6 | |||
| a3345508ed | |||
| 798f74eed4 | |||
| 563864a58c | |||
| a0e60da927 | |||
| 622db86820 | |||
| 2cab524bd4 | |||
| 5fdf12f3de | |||
| c00c97b74a | |||
| ee0f0631a2 | |||
| 9d9ce551e1 | |||
| 61a1c0a5c3 | |||
| eeb9c09a1c | |||
| d2396eedd2 | |||
| 25b8f25826 | |||
| 6d1785b879 | |||
| ff8936271d | |||
| a0c52e9f25 | |||
| a0a49901c4 | |||
| 06d90c7731 | |||
| e5ae68fe43 | |||
| fe55ed130c | |||
| 6f993fc4a8 | |||
| 2c3960d9b3 | |||
| 824fd6a24f | |||
| a7288350a2 | |||
| 99158abfab | |||
| 04937ac764 | |||
| fade46fd51 | |||
| d7c061f5cc | |||
| 2fa13478d6 | |||
| e9c2bd1948 | |||
| 8c27898475 | |||
| 475b5552eb | |||
| 7b9d9bc00b | |||
| 482cdb5e22 | |||
| 305e9ab561 | |||
| c9680f5adb | |||
| a0f2f34f2d | |||
| 8f9831a509 | |||
| 4ece329af0 | |||
| a9be636c25 | |||
| 39b76cf03d | |||
| 1491f30733 | |||
| e05570affc | |||
| a7990a9923 | |||
| 7f5d921f5d | |||
| 33634df89e | |||
| f3c9905a9f | |||
| 0251f2e6f5 | |||
| 2ed579dc08 | |||
| 9432725543 | |||
| fefcf25a23 | |||
| d43cd4069e | |||
| bbe61685bf | |||
| b143523d74 | |||
| 902d927e65 | |||
| e140b45a1e | |||
| 6291dd37c5 | |||
| f247560ae1 | |||
| 8db3d3fcd2 | |||
| 73e8adf99a | |||
| 829e75d072 | |||
| 4f5e6be41b | |||
| 3e94c39659 | |||
| a06077f755 | |||
| 0e2d2b286e | |||
| 00405f53e8 | |||
| d354a41cca | |||
| 8ad77cf1ee | |||
| 821d4dfdf5 | |||
| 165e7e39ce | |||
| 225b224b1d | |||
| 5f4827e3bb | |||
| 3b0ecdd42a | |||
| 6657a112d0 | |||
| 94dd17a50b | |||
| a237d561f3 | |||
| 6860d7cd2c | |||
| 2929aaeb86 | |||
| b22d1dfbfe | |||
| eb06339398 |
@@ -14,14 +14,13 @@ on:
|
||||
jobs:
|
||||
push_to_registry:
|
||||
name: Build image
|
||||
# FIXME: currently there are playwright issues with ubuntu-latest
|
||||
# https://github.com/microsoft/playwright/issues/30368 closed but still an issue
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'juliusknorr/nextcloud-docker-dev'
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
container:
|
||||
- php85
|
||||
- php84
|
||||
- php83
|
||||
- php82
|
||||
@@ -35,6 +34,7 @@ jobs:
|
||||
- saml
|
||||
- nginx
|
||||
- elasticsearch
|
||||
- keycloak
|
||||
- mailhog
|
||||
- ldap
|
||||
- lookupserver
|
||||
@@ -42,29 +42,26 @@ jobs:
|
||||
- codedev
|
||||
- code
|
||||
- talk-janus
|
||||
- noop
|
||||
permissions:
|
||||
packages: write
|
||||
contents: read
|
||||
steps:
|
||||
- name: Check out the repo
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v6
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
# TODO: remove this when https://github.com/actions/runner-images/issues/11471
|
||||
with:
|
||||
platforms: linux/arm64
|
||||
image: tonistiigi/binfmt:qemu-v7.0.0-28
|
||||
uses: docker/setup-qemu-action@v4
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
uses: docker/setup-buildx-action@v4
|
||||
- name: Cache Docker layers
|
||||
uses: actions/cache@v4
|
||||
uses: actions/cache@v5
|
||||
with:
|
||||
path: /tmp/.buildx-cache
|
||||
key: ${{ matrix.container }}-buildx-${{ github.sha }}
|
||||
restore-keys: |
|
||||
${{ matrix.container }}-buildx-
|
||||
- name: Log in to GitHub Container Registry
|
||||
uses: docker/login-action@v3
|
||||
uses: docker/login-action@v4
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
@@ -78,7 +75,7 @@ jobs:
|
||||
DOCKERFILE=$([[ -f "docker/$NAME/Dockerfile" ]] && echo "docker/$NAME/Dockerfile" || echo "docker/Dockerfile.$NAME")
|
||||
echo "DOCKERFILE=$DOCKERFILE" >> $GITHUB_OUTPUT
|
||||
- name: Build container image
|
||||
uses: docker/build-push-action@v6
|
||||
uses: docker/build-push-action@v7
|
||||
with:
|
||||
push: false
|
||||
context: docker/
|
||||
@@ -89,13 +86,27 @@ jobs:
|
||||
ghcr.io/juliusknorr/nextcloud-dev-${{ matrix.container }}:latest
|
||||
cache-from: type=local,src=/tmp/.buildx-cache
|
||||
cache-to: type=local,dest=/tmp/.buildx-cache-new
|
||||
- name: Push container image
|
||||
uses: docker/build-push-action@v7
|
||||
if: github.ref == 'refs/heads/master' || github.event_name == 'release'
|
||||
with:
|
||||
push: true
|
||||
context: docker/
|
||||
platforms: linux/amd64,linux/arm64
|
||||
file: ${{ steps.dockerfile.outputs.DOCKERFILE }}
|
||||
tags: |
|
||||
ghcr.io/juliusknorr/nextcloud-dev-${{ matrix.container }}:${{ github.event_name == 'release' && 'release' || 'latest' }}
|
||||
ghcr.io/juliusknorr/nextcloud-dev-${{ matrix.container }}:${{ github.ref_name }}
|
||||
cache-from: type=local,src=/tmp/.buildx-cache
|
||||
cache-to: type=local,dest=/tmp/.buildx-cache-new
|
||||
- name: Start containers with docker compose
|
||||
if: matrix.container == 'php82' || matrix.container == 'php83' || matrix.container == 'php84'
|
||||
run: |
|
||||
./bootstrap.sh
|
||||
PHP_VERSION=$(echo ${{ matrix.container }} | sed -e 's/^php//')
|
||||
echo "PHP_VERSION=${PHP_VERSION}" >> .env
|
||||
# exit if php version is not numeric or below 80
|
||||
if ! [[ $PHP_VERSION =~ ^[0-9]+$ ]] || [[ $PHP_VERSION -lt 80 ]] || [[ $PHP_VERSION -gt 83 ]]; then
|
||||
# exit if php version is not numeric or below 80 or above 84 to only test against supported ones in server master
|
||||
if ! [[ $PHP_VERSION =~ ^[0-9]+$ ]] || [[ $PHP_VERSION -lt 80 ]] || [[ $PHP_VERSION -gt 84 ]]; then
|
||||
exit 0
|
||||
fi
|
||||
docker compose up -d nextcloud
|
||||
@@ -108,41 +119,28 @@ jobs:
|
||||
sleep 1
|
||||
done
|
||||
curl http://nextcloud.local/status.php
|
||||
- uses: actions/setup-node@v4
|
||||
if: matrix.container == 'php81' || matrix.container == 'php82' || matrix.container == 'php83'
|
||||
- uses: actions/setup-node@v6
|
||||
if: matrix.container == 'php82' || matrix.container == 'php83' || matrix.container == 'php84'
|
||||
with:
|
||||
node-version: latest
|
||||
- name: Install dependencies
|
||||
if: matrix.container == 'php81' || matrix.container == 'php82' || matrix.container == 'php83'
|
||||
if: matrix.container == 'php82' || matrix.container == 'php83' || matrix.container == 'php84'
|
||||
working-directory: tests
|
||||
run: npm ci
|
||||
- name: Install Playwright Browsers
|
||||
if: matrix.container == 'php81' || matrix.container == 'php82' || matrix.container == 'php83'
|
||||
if: matrix.container == 'php82' || matrix.container == 'php83' || matrix.container == 'php84'
|
||||
working-directory: tests
|
||||
run: npx playwright install --with-deps
|
||||
- name: Run Playwright tests
|
||||
if: matrix.container == 'php81' || matrix.container == 'php82' || matrix.container == 'php83'
|
||||
if: matrix.container == 'php82' || matrix.container == 'php83' || matrix.container == 'php84'
|
||||
working-directory: tests
|
||||
run: npx playwright test
|
||||
- uses: actions/upload-artifact@v4
|
||||
if: matrix.container == 'php81' || matrix.container == 'php82' || matrix.container == 'php83'
|
||||
- uses: actions/upload-artifact@v6
|
||||
if: matrix.container == 'php82' || matrix.container == 'php83' || matrix.container == 'php84'
|
||||
with:
|
||||
name: playwright-report-${{ matrix.container }}
|
||||
path: tests/playwright-report/
|
||||
retention-days: 30
|
||||
- name: Push container image
|
||||
uses: docker/build-push-action@v6
|
||||
if: github.ref == 'refs/heads/master' || github.event_name == 'release'
|
||||
with:
|
||||
push: true
|
||||
context: docker/
|
||||
platforms: linux/amd64,linux/arm64
|
||||
file: ${{ steps.dockerfile.outputs.DOCKERFILE }}
|
||||
tags: |
|
||||
ghcr.io/juliusknorr/nextcloud-dev-${{ matrix.container }}:${{ github.event_name == 'release' && 'release' || 'latest' }}
|
||||
ghcr.io/juliusknorr/nextcloud-dev-${{ matrix.container }}:${{ github.ref_name }}
|
||||
cache-from: type=local,src=/tmp/.buildx-cache
|
||||
cache-to: type=local,dest=/tmp/.buildx-cache-new
|
||||
- name: Move cache
|
||||
run: |
|
||||
rm -rf /tmp/.buildx-cache
|
||||
|
||||
@@ -28,11 +28,11 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v6
|
||||
- name: Setup Pages
|
||||
uses: actions/configure-pages@v5
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: 3.x
|
||||
- name: Install dependencies
|
||||
@@ -42,7 +42,7 @@ jobs:
|
||||
- name: Build MkDocs
|
||||
run: mkdocs build
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-pages-artifact@v3
|
||||
uses: actions/upload-pages-artifact@v4
|
||||
with:
|
||||
# Upload entire repository
|
||||
path: './site'
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
name: Shellcheck
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
- name: Run ShellCheck
|
||||
uses: ludeeus/action-shellcheck@master
|
||||
env:
|
||||
|
||||
@@ -56,6 +56,7 @@ template-apply:
|
||||
cat docker/Dockerfile.php.template | sed 's/php:8.2/php:8.2/' > docker/php82/Dockerfile
|
||||
cat docker/Dockerfile.php.template | sed 's/php:8.2/php:8.3/' > docker/php83/Dockerfile
|
||||
cat docker/Dockerfile.php.template | sed 's/php:8.2/php:8.4/' > docker/php84/Dockerfile
|
||||
cat docker/Dockerfile.php.template | sed 's/php:8.2/php:8.5/' > docker/php85/Dockerfile
|
||||
|
||||
docs:
|
||||
pip3 install mkdocs
|
||||
|
||||
+1
-1
@@ -82,7 +82,7 @@ if [ -f ".env" ]; then
|
||||
echo "❌ Repository path does not exist"
|
||||
fi
|
||||
|
||||
for i in stable27 stable28 stable29 stable30 stable31
|
||||
for i in stable29 stable30 stable31 stable32 stable33
|
||||
do
|
||||
echo "Stable $i repository path: ${STABLE_ROOT_PATH}/${i}"
|
||||
STABLE_VERSION=$(grep "OC_VersionString" "${STABLE_ROOT_PATH}/${i}/version.php" | cut -d "'" -f 2)
|
||||
|
||||
+200
-33
@@ -1,5 +1,3 @@
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
# Proxy for ssl termination and easier hostname access
|
||||
@@ -10,7 +8,7 @@ services:
|
||||
- "${IP_BIND:-127.0.0.1}:${PROXY_PORT_HTTP:-80}:80"
|
||||
- "${IP_BIND:-127.0.0.1}:${PROXY_PORT_HTTPS:-443}:443"
|
||||
volumes:
|
||||
- /var/run/docker.sock:/tmp/docker.sock:ro
|
||||
- ${DOCKER_SOCKET-/var/run/docker.sock}:/tmp/docker.sock:ro
|
||||
- ./data/ssl/:/etc/nginx/certs
|
||||
- ./data/nginx/vhost.d/:/etc/nginx/vhost.d
|
||||
environment:
|
||||
@@ -42,7 +40,12 @@ services:
|
||||
- stable29${DOMAIN_SUFFIX}
|
||||
- stable30${DOMAIN_SUFFIX}
|
||||
- stable31${DOMAIN_SUFFIX}
|
||||
- stable32${DOMAIN_SUFFIX}
|
||||
- stable33${DOMAIN_SUFFIX}
|
||||
- mail${DOMAIN_SUFFIX}
|
||||
- sso${DOMAIN_SUFFIX}
|
||||
- minio${DOMAIN_SUFFIX}
|
||||
- rustfs${DOMAIN_SUFFIX}
|
||||
- imap${DOMAIN_SUFFIX}
|
||||
- collabora${DOMAIN_SUFFIX}
|
||||
- codedev${DOMAIN_SUFFIX}
|
||||
@@ -61,6 +64,7 @@ services:
|
||||
- phpmyadmin${DOMAIN_SUFFIX}
|
||||
- talk-signaling${DOMAIN_SUFFIX}
|
||||
- talk-recording${DOMAIN_SUFFIX}
|
||||
- authentik${DOMAIN_SUFFIX}
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
@@ -74,7 +78,7 @@ services:
|
||||
- ./docker/configs/haproxy.conf:/usr/local/etc/haproxy/haproxy.cfg:ro
|
||||
|
||||
nextcloud:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: ${NEXTCLOUD_AUTOINSTALL:-YES}
|
||||
@@ -106,9 +110,9 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
nextcloud2:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
environment:
|
||||
SQL: 'mysql'
|
||||
SQL: ${SQL:-mysql}
|
||||
VIRTUAL_HOST: "nextcloud2${DOMAIN_SUFFIX}"
|
||||
PHP_XDEBUG_MODE: ${PHP_XDEBUG_MODE:-develop}
|
||||
volumes:
|
||||
@@ -132,7 +136,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
nextcloud3:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
VIRTUAL_HOST: "nextcloud3${DOMAIN_SUFFIX}"
|
||||
@@ -421,7 +425,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable25:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
@@ -451,7 +455,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable26:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
@@ -481,7 +485,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable27:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
@@ -511,7 +515,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable28:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
@@ -541,7 +545,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable29:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
@@ -571,7 +575,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable30:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
@@ -601,7 +605,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable31:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
@@ -630,8 +634,68 @@ services:
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable32:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
NEXTCLOUD_AUTOINSTALL_APPS:
|
||||
WITH_REDIS: "YES"
|
||||
VIRTUAL_HOST: stable32${DOMAIN_SUFFIX}
|
||||
ADDITIONAL_APPS_PATH:
|
||||
NEXTCLOUD_TRUSTED_DOMAINS:
|
||||
PRIMARY: ${PRIMARY:-local}
|
||||
PHP_XDEBUG_MODE: ${PHP_XDEBUG_MODE:-develop}
|
||||
volumes:
|
||||
- '${STABLE_ROOT_PATH}/stable32:/var/www/html'
|
||||
- '${STABLE_ROOT_PATH}/stable32/apps-extra:/var/www/html/apps-extra'
|
||||
- '${ADDITIONAL_APPS_PATH:-./data/apps-extra}:/var/www/html/apps-shared'
|
||||
- /var/www/html/data
|
||||
- /var/www/html/config
|
||||
- /var/www/html/apps-writable
|
||||
- ./data/skeleton/:/skeleton
|
||||
- ./data/additional.config.php:/var/www/html/config/additional.config.php:ro
|
||||
- ./data/shared:/shared
|
||||
depends_on:
|
||||
- database-${SQL:-mysql}
|
||||
- redis
|
||||
- mail
|
||||
- ${PROXY_SERVICE:-proxy}
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable33:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-83}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
NEXTCLOUD_AUTOINSTALL_APPS:
|
||||
WITH_REDIS: "YES"
|
||||
VIRTUAL_HOST: stable33${DOMAIN_SUFFIX}
|
||||
ADDITIONAL_APPS_PATH:
|
||||
NEXTCLOUD_TRUSTED_DOMAINS:
|
||||
PRIMARY: ${PRIMARY:-local}
|
||||
PHP_XDEBUG_MODE: ${PHP_XDEBUG_MODE:-develop}
|
||||
volumes:
|
||||
- '${STABLE_ROOT_PATH}/stable33:/var/www/html'
|
||||
- '${STABLE_ROOT_PATH}/stable33/apps-extra:/var/www/html/apps-extra'
|
||||
- '${ADDITIONAL_APPS_PATH:-./data/apps-extra}:/var/www/html/apps-shared'
|
||||
- /var/www/html/data
|
||||
- /var/www/html/config
|
||||
- /var/www/html/apps-writable
|
||||
- ./data/skeleton/:/skeleton
|
||||
- ./data/additional.config.php:/var/www/html/config/additional.config.php:ro
|
||||
- ./data/shared:/shared
|
||||
depends_on:
|
||||
- database-${SQL:-mysql}
|
||||
- redis
|
||||
- mail
|
||||
- ${PROXY_SERVICE:-proxy}
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
database-sqlite:
|
||||
image: rwgrim/docker-noop
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-noop:latest
|
||||
|
||||
database-mysql:
|
||||
image: mariadb:10.6
|
||||
@@ -724,7 +788,7 @@ services:
|
||||
- ${PROXY_SERVICE:-proxy}
|
||||
|
||||
redis:
|
||||
image: redis:7
|
||||
image: redis:8
|
||||
volumes:
|
||||
- redis:/data
|
||||
|
||||
@@ -750,6 +814,7 @@ services:
|
||||
PMA_HOST: database-mysql
|
||||
PMA_USER: root
|
||||
PMA_PASSWORD: nextcloud
|
||||
UPLOAD_LIMIT: 512M
|
||||
|
||||
ldapadmin:
|
||||
image: osixia/phpldapadmin
|
||||
@@ -760,7 +825,7 @@ services:
|
||||
- "${IP_BIND:-127.0.0.1}:${PORTBASE:-800}8:80"
|
||||
|
||||
saml:
|
||||
image: unicon/simplesamlphp
|
||||
image: unicon/simplesamlphp
|
||||
volumes:
|
||||
- ./docker/configs/var-simplesamlphp/config:/var/simplesamlphp/config
|
||||
- ./docker/configs/var-simplesamlphp/cert:/var/simplesamlphp/cert
|
||||
@@ -831,6 +896,8 @@ services:
|
||||
aliasgroup10: http://stable29${DOMAIN_SUFFIX}
|
||||
aliasgroup11: http://stable30${DOMAIN_SUFFIX}
|
||||
aliasgroup12: http://stable31${DOMAIN_SUFFIX}
|
||||
aliasgroup13: http://stable32${DOMAIN_SUFFIX}
|
||||
aliasgroup14: http://stable33${DOMAIN_SUFFIX}
|
||||
dictionaries: de_DE en_US en_GB
|
||||
username: admin
|
||||
password: admin
|
||||
@@ -853,7 +920,7 @@ services:
|
||||
tail -f /dev/null
|
||||
|
||||
onlyoffice:
|
||||
image: onlyoffice/documentserver:8.2
|
||||
image: onlyoffice/documentserver:latest
|
||||
environment:
|
||||
VIRTUAL_HOST: onlyoffice${DOMAIN_SUFFIX}
|
||||
USE_UNAUTHORIZED_STORAGE: "true"
|
||||
@@ -868,14 +935,27 @@ services:
|
||||
image: minio/minio
|
||||
environment:
|
||||
VIRTUAL_HOST: minio${DOMAIN_SUFFIX}
|
||||
VIRTUAL_PORT: 9001
|
||||
VIRTUAL_PORT: 9000
|
||||
MINIO_ROOT_USER: nextcloud
|
||||
MINIO_ROOT_PASSWORD: nextcloud
|
||||
MINIO_BROWSER_REDIRECT_URL: ${PROTOCOL}://minio${DOMAIN_SUFFIX}
|
||||
ports:
|
||||
- "9001:9001"
|
||||
volumes:
|
||||
- objectstorage_minio:/data
|
||||
command: server /data --console-address :9001
|
||||
|
||||
rustfs:
|
||||
image: rustfs/rustfs:latest
|
||||
environment:
|
||||
VIRTUAL_HOST: rustfs${DOMAIN_SUFFIX}
|
||||
VIRTUAL_PORT: 9001
|
||||
RUSTFS_ACCESS_KEY: nextcloud
|
||||
RUSTFS_SECRET_KEY: nextcloud
|
||||
RUSTFS_CONSOLE_ENABLE: "true"
|
||||
volumes:
|
||||
- objectstorage_rustfs:/data
|
||||
|
||||
elasticsearch:
|
||||
build:
|
||||
context: ./docker
|
||||
@@ -923,29 +1003,32 @@ services:
|
||||
NEXTCLOUD_URL: http://nextcloud
|
||||
|
||||
keycloak:
|
||||
image: quay.io/keycloak/keycloak:26.1
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-keycloak:latest
|
||||
expose:
|
||||
- 8080
|
||||
volumes:
|
||||
- ./docker/configs/keycloak:/opt/keycloak/data/import
|
||||
command: start-dev --import-realm
|
||||
# volumes:
|
||||
# - ./docker/configs/keycloak:/opt/keycloak/data/import
|
||||
command: start-dev --import-realm --http-enabled=true --proxy-headers xforwarded
|
||||
environment:
|
||||
PROTOCOL: "${PROTOCOL:-http}"
|
||||
DOMAIN_SUFFIX: "${DOMAIN_SUFFIX:-.local}"
|
||||
VIRTUAL_HOST: "keycloak${DOMAIN_SUFFIX}"
|
||||
VIRTUAL_PORT: 8080
|
||||
KEYCLOAK_ADMIN: admin
|
||||
KEYCLOAK_ADMIN_PASSWORD: admin
|
||||
PROXY_ADDRESS_FORWARDING: "true"
|
||||
KC_BOOTSTRAP_ADMIN_USERNAME: admin
|
||||
KC_BOOTSTRAP_ADMIN_PASSWORD: admin
|
||||
KEYCLOAK_PROXY_ADDRESS_FORWARDING: "true"
|
||||
KEYCLOAK_FRONTEND_URL: "${PROTOCOL:-http}://keycloak${DOMAIN_SUFFIX}"
|
||||
KC_PROXY: edge
|
||||
|
||||
av:
|
||||
image: mkodockx/docker-clamav:alpine
|
||||
image: clamav/clamav:stable
|
||||
container_name: nextav
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- clam:/var/lib/clamav
|
||||
|
||||
portal:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
environment:
|
||||
VIRTUAL_HOST: portal${DOMAIN_SUFFIX}
|
||||
SQL: 'mysql'
|
||||
@@ -967,7 +1050,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
gs1:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
environment:
|
||||
VIRTUAL_HOST: gs1${DOMAIN_SUFFIX}
|
||||
SQL: 'mysql'
|
||||
@@ -990,7 +1073,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
gs2:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
environment:
|
||||
VIRTUAL_HOST: gs2${DOMAIN_SUFFIX}
|
||||
SQL: 'mysql'
|
||||
@@ -1046,7 +1129,7 @@ services:
|
||||
|
||||
|
||||
previews_hpb:
|
||||
image: nextcloud/aio-imaginary:latest
|
||||
image: ghcr.io/nextcloud-releases/aio-imaginary:latest
|
||||
ports:
|
||||
- "${IP_BIND:-127.0.0.1}:8088:8088"
|
||||
environment:
|
||||
@@ -1070,7 +1153,7 @@ services:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-talk-janus:latest
|
||||
|
||||
talk-recording:
|
||||
image: nextcloud/aio-talk-recording:latest
|
||||
image: ghcr.io/nextcloud-releases/aio-talk-recording:latest
|
||||
environment:
|
||||
NC_DOMAIN: "nextcloud${DOMAIN_SUFFIX}"
|
||||
ALLOW_ALL: "true"
|
||||
@@ -1087,8 +1170,9 @@ services:
|
||||
appapi-dsp:
|
||||
image: ghcr.io/nextcloud/nextcloud-appapi-dsp:release
|
||||
container_name: nextcloud-appapi-dsp-http
|
||||
network_mode: ${NETWORK_MODE:-master_default}
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- ${DOCKER_SOCKET-/var/run/docker.sock}:/var/run/docker.sock
|
||||
environment:
|
||||
- NC_HAPROXY_PASSWORD=${NC_HAPROXY_PASSWORD:-some_secure_password}
|
||||
- BIND_ADDRESS=${BIND_ADDRESS:-}
|
||||
@@ -1099,6 +1183,86 @@ services:
|
||||
- EX_APPS_NET=${EX_APPS_NET:-ipv4@localhost}
|
||||
- EX_APPS_COUNT=${EX_APPS_COUNT:-50}
|
||||
|
||||
appapi-dsp-https:
|
||||
image: ghcr.io/nextcloud/nextcloud-appapi-dsp:release
|
||||
container_name: nextcloud-appapi-dsp-https
|
||||
network_mode: ${NETWORK_MODE:-host}
|
||||
volumes:
|
||||
- ${DOCKER_SOCKET-/var/run/docker.sock}:/var/run/docker.sock
|
||||
- ${CERT_PATH:-./data/ssl/app_api/app_api.pem}:/certs/cert.pem
|
||||
environment:
|
||||
- NC_HAPROXY_PASSWORD=${NC_HAPROXY_PASSWORD:-some_secure_password}
|
||||
- BIND_ADDRESS=${BIND_ADDRESS:-172.17.0.1}
|
||||
- HAPROXY_PORT=${HAPROXY_PORT:-2375}
|
||||
- TIMEOUT_CONNECT=${TIMEOUT_CONNECT:-10s}
|
||||
- TIMEOUT_CLIENT=${TIMEOUT_CLIENT:-30s}
|
||||
- TIMEOUT_SERVER=${TIMEOUT_SERVER:-30s}
|
||||
- EX_APPS_NET=${EX_APPS_NET:-ipv4@localhost}
|
||||
- EX_APPS_COUNT=${EX_APPS_COUNT:-50}
|
||||
|
||||
authentik-postgresql:
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
POSTGRES_DB: ${PG_DB:-authentik}
|
||||
POSTGRES_PASSWORD: authentik-database
|
||||
POSTGRES_USER: ${PG_USER:-authentik}
|
||||
healthcheck:
|
||||
interval: 30s
|
||||
retries: 5
|
||||
start_period: 20s
|
||||
test:
|
||||
- CMD-SHELL
|
||||
- pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}
|
||||
timeout: 5s
|
||||
image: docker.io/library/postgres:16-alpine
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- authentik-database:/var/lib/postgresql/data
|
||||
authentik-worker:
|
||||
command: worker
|
||||
depends_on:
|
||||
authentik-postgresql:
|
||||
condition: service_healthy
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
AUTHENTIK_POSTGRESQL__HOST: authentik-postgresql
|
||||
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
|
||||
AUTHENTIK_POSTGRESQL__PASSWORD: authentik-database
|
||||
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
|
||||
AUTHENTIK_SECRET_KEY: authentik-secret
|
||||
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2025.10.2}
|
||||
restart: unless-stopped
|
||||
user: root
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- ./authentik-media:/media
|
||||
- ./authentik-certs:/certs
|
||||
- ./authentik-custom-templates:/templates
|
||||
|
||||
authentik:
|
||||
command: server
|
||||
depends_on:
|
||||
authentik-postgresql:
|
||||
condition: service_healthy
|
||||
authentik-worker:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
AUTHENTIK_POSTGRESQL__HOST: authentik-postgresql
|
||||
AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik}
|
||||
AUTHENTIK_POSTGRESQL__PASSWORD: authentik-database
|
||||
AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik}
|
||||
AUTHENTIK_SECRET_KEY: authentik-secret
|
||||
VIRTUAL_HOST: "authentik${DOMAIN_SUFFIX}"
|
||||
VIRTUAL_PORT: 9000
|
||||
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2025.10.2}
|
||||
ports:
|
||||
- ${COMPOSE_PORT_HTTP:-9000}:9000
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./authentik-media:/media
|
||||
- ./authentik-custom-templates:/templates
|
||||
|
||||
volumes:
|
||||
data:
|
||||
@@ -1117,11 +1281,14 @@ volumes:
|
||||
document_data:
|
||||
document_log:
|
||||
objectstorage_minio:
|
||||
objectstorage_rustfs:
|
||||
smb:
|
||||
smbhomes:
|
||||
elasticsearch_data:
|
||||
clam:
|
||||
mariadb_primary_data:
|
||||
authentik-database:
|
||||
driver: local
|
||||
|
||||
networks:
|
||||
default:
|
||||
|
||||
@@ -29,22 +29,37 @@ RUN install-php-extensions \
|
||||
|
||||
# dev tools separate install so we quickly change without rebuilding all php extensions
|
||||
RUN apt update && apt-get install -y --no-install-recommends \
|
||||
git curl vim nano sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
|
||||
git \
|
||||
curl \
|
||||
vim-tiny \
|
||||
nano \
|
||||
sudo \
|
||||
cron \
|
||||
smbclient \
|
||||
iproute2 \
|
||||
lnav \
|
||||
wget \
|
||||
iputils-ping \
|
||||
gnupg2 \
|
||||
jq \
|
||||
ripgrep \
|
||||
rsync \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install PHPUnit
|
||||
RUN wget -O /usr/local/bin/phpunit8 https://phar.phpunit.de/phpunit-8.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit8 \
|
||||
&& wget -O /usr/local/bin/phpunit9 https://phar.phpunit.de/phpunit-9.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit9 \
|
||||
&& ln -s /usr/local/bin/phpunit9 /usr/local/bin/phpunit
|
||||
RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit11 \
|
||||
&& wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit12 \
|
||||
&& ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit
|
||||
|
||||
# Install NVM
|
||||
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
|
||||
&& export NVM_DIR="/root/.nvm" \
|
||||
&& . "$NVM_DIR/nvm.sh" \
|
||||
&& nvm install 20 \
|
||||
&& nvm alias default 20
|
||||
&& nvm install node \
|
||||
&& nvm alias default node \
|
||||
&& nvm cache clear
|
||||
|
||||
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
|
||||
|
||||
@@ -63,14 +78,7 @@ ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini
|
||||
ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
# Setup blackfire probe
|
||||
RUN wget -q -O - https://packages.blackfire.io/gpg.key | sudo apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list \
|
||||
&& apt-get update \
|
||||
&& (apt-get install -y --no-install-recommends blackfire \
|
||||
&& mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled \
|
||||
&& printf "\n\nblackfire.agent_socket=tcp://blackfire:8307\n" >> $PHP_INI_DIR/conf.d/zz-blackfire.ini) \
|
||||
|| echo "Skipped blackfire as the installation failed" \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled
|
||||
|
||||
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
|
||||
@@ -85,16 +93,16 @@ VOLUME /var/www/html/apps-writable
|
||||
VOLUME /var/www/html/config
|
||||
VOLUME /var/www/html/data
|
||||
|
||||
ENV SQL sqlite
|
||||
ENV NEXTCLOUD_AUTOINSTALL YES
|
||||
ENV WITH_REDIS NO
|
||||
ENV SQL=sqlite
|
||||
ENV NEXTCLOUD_AUTOINSTALL=YES
|
||||
ENV WITH_REDIS=NO
|
||||
|
||||
ENV WEBROOT /var/www/html
|
||||
ENV WEBROOT=/var/www/html
|
||||
WORKDIR /var/www/html
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/bootstrap.sh"]
|
||||
CMD ["apache2-foreground"]
|
||||
|
||||
ADD data/installing.html /root/installing.html
|
||||
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
|
||||
|
||||
+29
-21
@@ -29,22 +29,37 @@ RUN install-php-extensions \
|
||||
|
||||
# dev tools separate install so we quickly change without rebuilding all php extensions
|
||||
RUN apt update && apt-get install -y --no-install-recommends \
|
||||
git curl vim nano sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
|
||||
git \
|
||||
curl \
|
||||
vim-tiny \
|
||||
nano \
|
||||
sudo \
|
||||
cron \
|
||||
smbclient \
|
||||
iproute2 \
|
||||
lnav \
|
||||
wget \
|
||||
iputils-ping \
|
||||
gnupg2 \
|
||||
jq \
|
||||
ripgrep \
|
||||
rsync \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install PHPUnit
|
||||
RUN wget -O /usr/local/bin/phpunit8 https://phar.phpunit.de/phpunit-8.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit8 \
|
||||
&& wget -O /usr/local/bin/phpunit9 https://phar.phpunit.de/phpunit-9.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit9 \
|
||||
&& ln -s /usr/local/bin/phpunit9 /usr/local/bin/phpunit
|
||||
RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit11 \
|
||||
&& wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit12 \
|
||||
&& ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit
|
||||
|
||||
# Install NVM
|
||||
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
|
||||
&& export NVM_DIR="/root/.nvm" \
|
||||
&& . "$NVM_DIR/nvm.sh" \
|
||||
&& nvm install 20 \
|
||||
&& nvm alias default 20
|
||||
&& nvm install node \
|
||||
&& nvm alias default node \
|
||||
&& nvm cache clear
|
||||
|
||||
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
|
||||
|
||||
@@ -63,14 +78,7 @@ ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini
|
||||
ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
# Setup blackfire probe
|
||||
RUN wget -q -O - https://packages.blackfire.io/gpg.key | sudo apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list \
|
||||
&& apt-get update \
|
||||
&& (apt-get install -y --no-install-recommends blackfire \
|
||||
&& mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled \
|
||||
&& printf "\n\nblackfire.agent_socket=tcp://blackfire:8307\n" >> $PHP_INI_DIR/conf.d/zz-blackfire.ini) \
|
||||
|| echo "Skipped blackfire as the installation failed" \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled
|
||||
|
||||
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
|
||||
@@ -85,16 +93,16 @@ VOLUME /var/www/html/apps-writable
|
||||
VOLUME /var/www/html/config
|
||||
VOLUME /var/www/html/data
|
||||
|
||||
ENV SQL sqlite
|
||||
ENV NEXTCLOUD_AUTOINSTALL YES
|
||||
ENV WITH_REDIS NO
|
||||
ENV SQL=sqlite
|
||||
ENV NEXTCLOUD_AUTOINSTALL=YES
|
||||
ENV WITH_REDIS=NO
|
||||
|
||||
ENV WEBROOT /var/www/html
|
||||
ENV WEBROOT=/var/www/html
|
||||
WORKDIR /var/www/html
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/bootstrap.sh"]
|
||||
CMD ["apache2-foreground"]
|
||||
|
||||
ADD data/installing.html /root/installing.html
|
||||
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
|
||||
|
||||
+29
-21
@@ -29,22 +29,37 @@ RUN install-php-extensions \
|
||||
|
||||
# dev tools separate install so we quickly change without rebuilding all php extensions
|
||||
RUN apt update && apt-get install -y --no-install-recommends \
|
||||
git curl vim nano sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
|
||||
git \
|
||||
curl \
|
||||
vim-tiny \
|
||||
nano \
|
||||
sudo \
|
||||
cron \
|
||||
smbclient \
|
||||
iproute2 \
|
||||
lnav \
|
||||
wget \
|
||||
iputils-ping \
|
||||
gnupg2 \
|
||||
jq \
|
||||
ripgrep \
|
||||
rsync \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install PHPUnit
|
||||
RUN wget -O /usr/local/bin/phpunit8 https://phar.phpunit.de/phpunit-8.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit8 \
|
||||
&& wget -O /usr/local/bin/phpunit9 https://phar.phpunit.de/phpunit-9.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit9 \
|
||||
&& ln -s /usr/local/bin/phpunit9 /usr/local/bin/phpunit
|
||||
RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit11 \
|
||||
&& wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit12 \
|
||||
&& ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit
|
||||
|
||||
# Install NVM
|
||||
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
|
||||
&& export NVM_DIR="/root/.nvm" \
|
||||
&& . "$NVM_DIR/nvm.sh" \
|
||||
&& nvm install 20 \
|
||||
&& nvm alias default 20
|
||||
&& nvm install node \
|
||||
&& nvm alias default node \
|
||||
&& nvm cache clear
|
||||
|
||||
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
|
||||
|
||||
@@ -63,14 +78,7 @@ ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini
|
||||
ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
# Setup blackfire probe
|
||||
RUN wget -q -O - https://packages.blackfire.io/gpg.key | sudo apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list \
|
||||
&& apt-get update \
|
||||
&& (apt-get install -y --no-install-recommends blackfire \
|
||||
&& mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled \
|
||||
&& printf "\n\nblackfire.agent_socket=tcp://blackfire:8307\n" >> $PHP_INI_DIR/conf.d/zz-blackfire.ini) \
|
||||
|| echo "Skipped blackfire as the installation failed" \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled
|
||||
|
||||
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
|
||||
@@ -85,16 +93,16 @@ VOLUME /var/www/html/apps-writable
|
||||
VOLUME /var/www/html/config
|
||||
VOLUME /var/www/html/data
|
||||
|
||||
ENV SQL sqlite
|
||||
ENV NEXTCLOUD_AUTOINSTALL YES
|
||||
ENV WITH_REDIS NO
|
||||
ENV SQL=sqlite
|
||||
ENV NEXTCLOUD_AUTOINSTALL=YES
|
||||
ENV WITH_REDIS=NO
|
||||
|
||||
ENV WEBROOT /var/www/html
|
||||
ENV WEBROOT=/var/www/html
|
||||
WORKDIR /var/www/html
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/bootstrap.sh"]
|
||||
CMD ["apache2-foreground"]
|
||||
|
||||
ADD data/installing.html /root/installing.html
|
||||
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
|
||||
|
||||
+29
-21
@@ -29,22 +29,37 @@ RUN install-php-extensions \
|
||||
|
||||
# dev tools separate install so we quickly change without rebuilding all php extensions
|
||||
RUN apt update && apt-get install -y --no-install-recommends \
|
||||
git curl vim nano sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
|
||||
git \
|
||||
curl \
|
||||
vim-tiny \
|
||||
nano \
|
||||
sudo \
|
||||
cron \
|
||||
smbclient \
|
||||
iproute2 \
|
||||
lnav \
|
||||
wget \
|
||||
iputils-ping \
|
||||
gnupg2 \
|
||||
jq \
|
||||
ripgrep \
|
||||
rsync \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install PHPUnit
|
||||
RUN wget -O /usr/local/bin/phpunit8 https://phar.phpunit.de/phpunit-8.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit8 \
|
||||
&& wget -O /usr/local/bin/phpunit9 https://phar.phpunit.de/phpunit-9.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit9 \
|
||||
&& ln -s /usr/local/bin/phpunit9 /usr/local/bin/phpunit
|
||||
RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit11 \
|
||||
&& wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit12 \
|
||||
&& ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit
|
||||
|
||||
# Install NVM
|
||||
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
|
||||
&& export NVM_DIR="/root/.nvm" \
|
||||
&& . "$NVM_DIR/nvm.sh" \
|
||||
&& nvm install 20 \
|
||||
&& nvm alias default 20
|
||||
&& nvm install node \
|
||||
&& nvm alias default node \
|
||||
&& nvm cache clear
|
||||
|
||||
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
|
||||
|
||||
@@ -63,14 +78,7 @@ ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini
|
||||
ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
# Setup blackfire probe
|
||||
RUN wget -q -O - https://packages.blackfire.io/gpg.key | sudo apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list \
|
||||
&& apt-get update \
|
||||
&& (apt-get install -y --no-install-recommends blackfire \
|
||||
&& mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled \
|
||||
&& printf "\n\nblackfire.agent_socket=tcp://blackfire:8307\n" >> $PHP_INI_DIR/conf.d/zz-blackfire.ini) \
|
||||
|| echo "Skipped blackfire as the installation failed" \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled
|
||||
|
||||
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
|
||||
@@ -85,16 +93,16 @@ VOLUME /var/www/html/apps-writable
|
||||
VOLUME /var/www/html/config
|
||||
VOLUME /var/www/html/data
|
||||
|
||||
ENV SQL sqlite
|
||||
ENV NEXTCLOUD_AUTOINSTALL YES
|
||||
ENV WITH_REDIS NO
|
||||
ENV SQL=sqlite
|
||||
ENV NEXTCLOUD_AUTOINSTALL=YES
|
||||
ENV WITH_REDIS=NO
|
||||
|
||||
ENV WEBROOT /var/www/html
|
||||
ENV WEBROOT=/var/www/html
|
||||
WORKDIR /var/www/html
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/bootstrap.sh"]
|
||||
CMD ["apache2-foreground"]
|
||||
|
||||
ADD data/installing.html /root/installing.html
|
||||
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
|
||||
|
||||
+29
-21
@@ -29,22 +29,37 @@ RUN install-php-extensions \
|
||||
|
||||
# dev tools separate install so we quickly change without rebuilding all php extensions
|
||||
RUN apt update && apt-get install -y --no-install-recommends \
|
||||
git curl vim nano sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
|
||||
git \
|
||||
curl \
|
||||
vim-tiny \
|
||||
nano \
|
||||
sudo \
|
||||
cron \
|
||||
smbclient \
|
||||
iproute2 \
|
||||
lnav \
|
||||
wget \
|
||||
iputils-ping \
|
||||
gnupg2 \
|
||||
jq \
|
||||
ripgrep \
|
||||
rsync \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install PHPUnit
|
||||
RUN wget -O /usr/local/bin/phpunit8 https://phar.phpunit.de/phpunit-8.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit8 \
|
||||
&& wget -O /usr/local/bin/phpunit9 https://phar.phpunit.de/phpunit-9.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit9 \
|
||||
&& ln -s /usr/local/bin/phpunit9 /usr/local/bin/phpunit
|
||||
RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit11 \
|
||||
&& wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit12 \
|
||||
&& ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit
|
||||
|
||||
# Install NVM
|
||||
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
|
||||
&& export NVM_DIR="/root/.nvm" \
|
||||
&& . "$NVM_DIR/nvm.sh" \
|
||||
&& nvm install 20 \
|
||||
&& nvm alias default 20
|
||||
&& nvm install node \
|
||||
&& nvm alias default node \
|
||||
&& nvm cache clear
|
||||
|
||||
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
|
||||
|
||||
@@ -63,14 +78,7 @@ ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini
|
||||
ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
# Setup blackfire probe
|
||||
RUN wget -q -O - https://packages.blackfire.io/gpg.key | sudo apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list \
|
||||
&& apt-get update \
|
||||
&& (apt-get install -y --no-install-recommends blackfire \
|
||||
&& mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled \
|
||||
&& printf "\n\nblackfire.agent_socket=tcp://blackfire:8307\n" >> $PHP_INI_DIR/conf.d/zz-blackfire.ini) \
|
||||
|| echo "Skipped blackfire as the installation failed" \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled
|
||||
|
||||
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
|
||||
@@ -85,16 +93,16 @@ VOLUME /var/www/html/apps-writable
|
||||
VOLUME /var/www/html/config
|
||||
VOLUME /var/www/html/data
|
||||
|
||||
ENV SQL sqlite
|
||||
ENV NEXTCLOUD_AUTOINSTALL YES
|
||||
ENV WITH_REDIS NO
|
||||
ENV SQL=sqlite
|
||||
ENV NEXTCLOUD_AUTOINSTALL=YES
|
||||
ENV WITH_REDIS=NO
|
||||
|
||||
ENV WEBROOT /var/www/html
|
||||
ENV WEBROOT=/var/www/html
|
||||
WORKDIR /var/www/html
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/bootstrap.sh"]
|
||||
CMD ["apache2-foreground"]
|
||||
|
||||
ADD data/installing.html /root/installing.html
|
||||
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
|
||||
|
||||
+29
-21
@@ -29,22 +29,37 @@ RUN install-php-extensions \
|
||||
|
||||
# dev tools separate install so we quickly change without rebuilding all php extensions
|
||||
RUN apt update && apt-get install -y --no-install-recommends \
|
||||
git curl vim nano sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
|
||||
git \
|
||||
curl \
|
||||
vim-tiny \
|
||||
nano \
|
||||
sudo \
|
||||
cron \
|
||||
smbclient \
|
||||
iproute2 \
|
||||
lnav \
|
||||
wget \
|
||||
iputils-ping \
|
||||
gnupg2 \
|
||||
jq \
|
||||
ripgrep \
|
||||
rsync \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install PHPUnit
|
||||
RUN wget -O /usr/local/bin/phpunit8 https://phar.phpunit.de/phpunit-8.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit8 \
|
||||
&& wget -O /usr/local/bin/phpunit9 https://phar.phpunit.de/phpunit-9.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit9 \
|
||||
&& ln -s /usr/local/bin/phpunit9 /usr/local/bin/phpunit
|
||||
RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit11 \
|
||||
&& wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit12 \
|
||||
&& ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit
|
||||
|
||||
# Install NVM
|
||||
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
|
||||
&& export NVM_DIR="/root/.nvm" \
|
||||
&& . "$NVM_DIR/nvm.sh" \
|
||||
&& nvm install 20 \
|
||||
&& nvm alias default 20
|
||||
&& nvm install node \
|
||||
&& nvm alias default node \
|
||||
&& nvm cache clear
|
||||
|
||||
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
|
||||
|
||||
@@ -63,14 +78,7 @@ ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini
|
||||
ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
# Setup blackfire probe
|
||||
RUN wget -q -O - https://packages.blackfire.io/gpg.key | sudo apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list \
|
||||
&& apt-get update \
|
||||
&& (apt-get install -y --no-install-recommends blackfire \
|
||||
&& mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled \
|
||||
&& printf "\n\nblackfire.agent_socket=tcp://blackfire:8307\n" >> $PHP_INI_DIR/conf.d/zz-blackfire.ini) \
|
||||
|| echo "Skipped blackfire as the installation failed" \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled
|
||||
|
||||
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
|
||||
@@ -85,16 +93,16 @@ VOLUME /var/www/html/apps-writable
|
||||
VOLUME /var/www/html/config
|
||||
VOLUME /var/www/html/data
|
||||
|
||||
ENV SQL sqlite
|
||||
ENV NEXTCLOUD_AUTOINSTALL YES
|
||||
ENV WITH_REDIS NO
|
||||
ENV SQL=sqlite
|
||||
ENV NEXTCLOUD_AUTOINSTALL=YES
|
||||
ENV WITH_REDIS=NO
|
||||
|
||||
ENV WEBROOT /var/www/html
|
||||
ENV WEBROOT=/var/www/html
|
||||
WORKDIR /var/www/html
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/bootstrap.sh"]
|
||||
CMD ["apache2-foreground"]
|
||||
|
||||
ADD data/installing.html /root/installing.html
|
||||
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
|
||||
|
||||
+29
-21
@@ -29,22 +29,37 @@ RUN install-php-extensions \
|
||||
|
||||
# dev tools separate install so we quickly change without rebuilding all php extensions
|
||||
RUN apt update && apt-get install -y --no-install-recommends \
|
||||
git curl vim nano sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
|
||||
git \
|
||||
curl \
|
||||
vim-tiny \
|
||||
nano \
|
||||
sudo \
|
||||
cron \
|
||||
smbclient \
|
||||
iproute2 \
|
||||
lnav \
|
||||
wget \
|
||||
iputils-ping \
|
||||
gnupg2 \
|
||||
jq \
|
||||
ripgrep \
|
||||
rsync \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install PHPUnit
|
||||
RUN wget -O /usr/local/bin/phpunit8 https://phar.phpunit.de/phpunit-8.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit8 \
|
||||
&& wget -O /usr/local/bin/phpunit9 https://phar.phpunit.de/phpunit-9.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit9 \
|
||||
&& ln -s /usr/local/bin/phpunit9 /usr/local/bin/phpunit
|
||||
RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit11 \
|
||||
&& wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit12 \
|
||||
&& ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit
|
||||
|
||||
# Install NVM
|
||||
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
|
||||
&& export NVM_DIR="/root/.nvm" \
|
||||
&& . "$NVM_DIR/nvm.sh" \
|
||||
&& nvm install 20 \
|
||||
&& nvm alias default 20
|
||||
&& nvm install node \
|
||||
&& nvm alias default node \
|
||||
&& nvm cache clear
|
||||
|
||||
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
|
||||
|
||||
@@ -63,14 +78,7 @@ ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini
|
||||
ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
# Setup blackfire probe
|
||||
RUN wget -q -O - https://packages.blackfire.io/gpg.key | sudo apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list \
|
||||
&& apt-get update \
|
||||
&& (apt-get install -y --no-install-recommends blackfire \
|
||||
&& mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled \
|
||||
&& printf "\n\nblackfire.agent_socket=tcp://blackfire:8307\n" >> $PHP_INI_DIR/conf.d/zz-blackfire.ini) \
|
||||
|| echo "Skipped blackfire as the installation failed" \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled
|
||||
|
||||
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
|
||||
@@ -85,16 +93,16 @@ VOLUME /var/www/html/apps-writable
|
||||
VOLUME /var/www/html/config
|
||||
VOLUME /var/www/html/data
|
||||
|
||||
ENV SQL sqlite
|
||||
ENV NEXTCLOUD_AUTOINSTALL YES
|
||||
ENV WITH_REDIS NO
|
||||
ENV SQL=sqlite
|
||||
ENV NEXTCLOUD_AUTOINSTALL=YES
|
||||
ENV WITH_REDIS=NO
|
||||
|
||||
ENV WEBROOT /var/www/html
|
||||
ENV WEBROOT=/var/www/html
|
||||
WORKDIR /var/www/html
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/bootstrap.sh"]
|
||||
CMD ["apache2-foreground"]
|
||||
|
||||
ADD data/installing.html /root/installing.html
|
||||
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
|
||||
|
||||
@@ -227,7 +227,11 @@ configure_add_user() {
|
||||
|
||||
|
||||
install() {
|
||||
DBNAME=$(echo "$VIRTUAL_HOST" | cut -d '.' -f1)
|
||||
if [ -n "$VIRTUAL_HOST" ]; then
|
||||
DBNAME=$(echo "$VIRTUAL_HOST" | cut -d '.' -f1)
|
||||
else
|
||||
DBNAME="nextcloud"
|
||||
fi
|
||||
SQLHOST="database-$SQL"
|
||||
echo "database name will be $DBNAME"
|
||||
|
||||
|
||||
@@ -109,3 +109,49 @@ if ($primary === 'minio-multibucket') {
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
if ($primary === 'rustfs') {
|
||||
$CONFIG += [
|
||||
'objectstore' =>
|
||||
array (
|
||||
'class' => 'OC\\Files\\ObjectStore\\S3',
|
||||
'arguments' =>
|
||||
array (
|
||||
'bucket' => 'nc-' . $hostname,
|
||||
'key' => 'nextcloud',
|
||||
'secret' => 'nextcloud',
|
||||
'hostname' => 'rustfs.local',
|
||||
'port' => '80',
|
||||
'proxy' => 'rustfs:9000',
|
||||
'use_ssl' => false,
|
||||
'use_path_style' => true,
|
||||
'use_presigned_url' => true,
|
||||
'autocreate' => true,
|
||||
'verify_bucket_exists' => true,
|
||||
),
|
||||
)
|
||||
];
|
||||
}
|
||||
|
||||
if ($primary === 'rustfs-multibucket') {
|
||||
$CONFIG += [
|
||||
'objectstore_multibucket' => array(
|
||||
'class' => 'OC\\Files\\ObjectStore\\S3',
|
||||
'arguments' => array(
|
||||
// optional, defaults to 64
|
||||
'num_buckets' => 64,
|
||||
// n integer in the range from 0 to (num_buckets-1) will be appended
|
||||
'bucket' => 'nc-' . $hostname,
|
||||
'key' => 'nextcloud',
|
||||
'secret' => 'nextcloud',
|
||||
'hostname' => 'rustfs.local',
|
||||
'port' => '80',
|
||||
'proxy' => 'rustfs:9000',
|
||||
'use_presigned_url' => true,
|
||||
'use_ssl' => false,
|
||||
'use_path_style' => true,
|
||||
),
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
<?php
|
||||
// FIXME: Move everything except the last part to the containers
|
||||
// set the hostname to the VIRTUAL_HOST set for the docker container, otherwise fallback to the docker hostname
|
||||
$hostname = gethostname();
|
||||
$primary = isset($_ENV['PRIMARY']) ? $_ENV['PRIMARY'] : '';
|
||||
$virtualHost = isset($_ENV['VIRTUAL_HOST']) ? $_ENV['VIRTUAL_HOST'] : '';
|
||||
$virtualHost = explode(".", $virtualHost);
|
||||
if (count($virtualHost) > 0) {
|
||||
$hostname = array_shift($virtualHost);
|
||||
}
|
||||
|
||||
$CONFIG = [];
|
||||
if ($primary === 'minio') {
|
||||
$CONFIG += [
|
||||
'objectstore' =>
|
||||
array (
|
||||
'class' => 'OC\\Files\\ObjectStore\\S3',
|
||||
'arguments' =>
|
||||
array (
|
||||
'bucket' => 'nc-' . $hostname,
|
||||
'key' => 'nextcloud',
|
||||
'secret' => 'nextcloud',
|
||||
'hostname' => 'minio',
|
||||
'port' => '9000',
|
||||
'use_ssl' => false,
|
||||
'use_path_style' => true,
|
||||
'autocreate' => true,
|
||||
'verify_bucket_exists' => true,
|
||||
),
|
||||
)
|
||||
];
|
||||
}
|
||||
|
||||
if ($primary === 'minio-multibucket') {
|
||||
$CONFIG += [
|
||||
'objectstore_multibucket' => array(
|
||||
'class' => 'OC\\Files\\ObjectStore\\S3',
|
||||
'arguments' => array(
|
||||
// optional, defaults to 64
|
||||
'num_buckets' => 64,
|
||||
// n integer in the range from 0 to (num_buckets-1) will be appended
|
||||
'bucket' => 'nc-' . $hostname,
|
||||
'key' => 'nextcloud',
|
||||
'secret' => 'nextcloud',
|
||||
'hostname' => 'minio',
|
||||
'port' => '9000',
|
||||
'use_ssl' => false,
|
||||
'use_path_style' => true,
|
||||
),
|
||||
),
|
||||
];
|
||||
}
|
||||
@@ -21,7 +21,7 @@ $config = array(
|
||||
* external url, no matter where you come from (direct access or via the
|
||||
* reverse proxy).
|
||||
*/
|
||||
'baseurlpath' => 'https://sso.local.dev.bitgrid.net/simplesaml/',
|
||||
'baseurlpath' => 'https://sso.local/simplesaml/',
|
||||
'certdir' => 'cert/',
|
||||
'loggingdir' => 'log/',
|
||||
'datadir' => 'data/',
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
$metadata['https://nextcloud.local.dev.bitgrid.net/index.php/apps/user_saml/saml/metadata'] = array (
|
||||
'entityid' => 'https://nextcloud.local.dev.bitgrid.net/index.php/apps/user_saml/saml/metadata',
|
||||
$metadata['https://nextcloud.local/index.php/apps/user_saml/saml/metadata'] = array (
|
||||
'entityid' => 'https://nextcloud.local/index.php/apps/user_saml/saml/metadata',
|
||||
'contacts' =>
|
||||
array (
|
||||
),
|
||||
@@ -11,7 +11,7 @@ $metadata['https://nextcloud.local.dev.bitgrid.net/index.php/apps/user_saml/saml
|
||||
0 =>
|
||||
array (
|
||||
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
|
||||
'Location' => 'https://nextcloud.local.dev.bitgrid.net/index.php/apps/user_saml/saml/acs',
|
||||
'Location' => 'https://nextcloud.local/index.php/apps/user_saml/saml/acs',
|
||||
'index' => 1,
|
||||
),
|
||||
),
|
||||
@@ -20,7 +20,7 @@ $metadata['https://nextcloud.local.dev.bitgrid.net/index.php/apps/user_saml/saml
|
||||
0 =>
|
||||
array (
|
||||
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
|
||||
'Location' => 'https://nextcloud.local.dev.bitgrid.net/index.php/apps/user_saml/saml/sls',
|
||||
'Location' => 'https://nextcloud.local/index.php/apps/user_saml/saml/sls',
|
||||
),
|
||||
),
|
||||
'NameIDFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified',
|
||||
@@ -36,4 +36,4 @@ $metadata['https://nextcloud.local.dev.bitgrid.net/index.php/apps/user_saml/saml
|
||||
),
|
||||
'validate.authnrequest' => false,
|
||||
'saml20.sign.assertion' => false,
|
||||
);
|
||||
);
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
FROM quay.io/keycloak/keycloak:26.4
|
||||
|
||||
RUN mkdir -p /opt/keycloak/data/import
|
||||
|
||||
ADD keycloak/Example-realm.json /opt/keycloak/data/import/Example-realm.json
|
||||
|
||||
ADD keycloak/prepare.sh /opt/keycloak/bin/custom-kc.sh
|
||||
|
||||
ENTRYPOINT ["/opt/keycloak/bin/custom-kc.sh"]
|
||||
@@ -511,7 +511,7 @@
|
||||
"containerId" : "6b350bb7-8ea6-438b-be38-fb58f6523f45",
|
||||
"attributes" : { }
|
||||
} ],
|
||||
"http://nextcloud.dev.local/index.php/apps/user_saml/saml/metadata" : [ ]
|
||||
"http://nextcloud.local/index.php/apps/user_saml/saml/metadata" : [ ]
|
||||
}
|
||||
},
|
||||
"groups" : [ ],
|
||||
@@ -689,15 +689,15 @@
|
||||
"optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ]
|
||||
}, {
|
||||
"id" : "555c2809-b153-4cf4-8bb1-a6306e5179c7",
|
||||
"clientId" : "http://nextcloud.dev.local/index.php/apps/user_saml/saml/metadata",
|
||||
"adminUrl" : "http://keycloak.dev.local/auth/realms/Example",
|
||||
"clientId" : "http://nextcloud.local/index.php/apps/user_saml/saml/metadata",
|
||||
"adminUrl" : "http://keycloak.local/auth/realms/Example",
|
||||
"surrogateAuthRequired" : false,
|
||||
"enabled" : true,
|
||||
"alwaysDisplayInConsole" : false,
|
||||
"clientAuthenticatorType" : "client-secret",
|
||||
"secret" : "FipRMpAHMklMkZtbQfAKkUhxe7gkRZzR",
|
||||
"redirectUris" : [ "http://nextcloud.dev.local/index.php/apps/user_saml/saml/acs" ],
|
||||
"webOrigins" : [ "http://nextcloud.dev.local" ],
|
||||
"redirectUris" : [ "http://nextcloud.local/index.php/apps/user_saml/saml/acs" ],
|
||||
"webOrigins" : [ "http://nextcloud.local" ],
|
||||
"notBefore" : 0,
|
||||
"bearerOnly" : false,
|
||||
"consentRequired" : false,
|
||||
@@ -713,12 +713,12 @@
|
||||
"client.secret.creation.time" : "1670752721",
|
||||
"saml.force.post.binding" : "true",
|
||||
"post.logout.redirect.uris" : "+",
|
||||
"saml_assertion_consumer_url_post" : "http://nextcloud.dev.local/index.php/apps/user_saml/saml/acs",
|
||||
"saml_assertion_consumer_url_post" : "http://nextcloud.local/index.php/apps/user_saml/saml/acs",
|
||||
"saml.server.signature" : "true",
|
||||
"saml.server.signature.keyinfo.ext" : "false",
|
||||
"saml.signing.certificate" : "MIICvjCCAaYCCQDS+w+GXVpJsDANBgkqhkiG9w0BAQsFADAhMQswCQYDVQQGEwJERTESMBAGA1UECgwJZGV2LmxvY2FsMB4XDTIyMTIxMDA1MjgxMloXDTIzMDEwOTA1MjgxMlowITELMAkGA1UEBhMCREUxEjAQBgNVBAoMCWRldi5sb2NhbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOXPQ1YfI0aNUJEVdqFprGGtVMCZ5WIQsk7elS2KqljCHFX6eqpFR8FrQoZgcDVsi4zjX85bAdCPAW2ikfk5hNOypeJx1WSr7mtg/60p0m/T5Lim4QBCyItSARYulV9KYEijIYadTiFQJRE0PJKijlyOZ69FRt3lG+3vqE5xgQc+ZA59Pex7fB/R9jWwORxRMrzZQDP7cvKkvOlq13mR5WbCQkLXG0n6Fd2/Av27TNEP8gkITUlkrv7DkKoHcBRpUGLBuod+C/GM9aZYXxtlIStyIkz27ulsU7+VdNympFkEL+vzRrptW/S0C0RT4xKBbFeA+pCwgoIMeJsnBaAP2OkCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAOJ3+a1d06LN83gh3iNEvwWNudKVPi7MvyltW2WVBzQBoN2wCYC0crl7PRxXqACvpw2nE2qZaJ0KrrbVWUVMf2lAwRKk4g2F3WcwBjqakWwWEgIDuocLt1WX5nHbI6hb9E2jAwa8wpYbAiRQF5HnZGxI+1ZXKROZvhOPIiAVTv4jTPGr5lgxJ1lKqnVRfKIHZlPWPFGTmuwSkuq+9lwqp/HdCOIiV54c5yi0XBMvEjLhqoE5cxSVNswLF7thD7B2E1NTpyH83Z7rHtK/HDHinUVfOTKhnt15JAf2I2zwh9HErW/Bz4zQlmmBL0uMpgOjTix9h55p2JMuM7/Bd7ng2Dg==",
|
||||
"saml.artifact.binding.identifier" : "0TDhGxUTNYmRM8Yd/PcR55vLtAs=",
|
||||
"saml_single_logout_service_url_redirect" : "http://nextcloud.dev.local/index.php/apps/user_saml/saml/sls",
|
||||
"saml_single_logout_service_url_redirect" : "http://nextcloud.local/index.php/apps/user_saml/saml/sls",
|
||||
"saml.signature.algorithm" : "RSA_SHA256",
|
||||
"saml_force_name_id_format" : "false",
|
||||
"saml.client.signature" : "true",
|
||||
@@ -775,15 +775,15 @@
|
||||
}, {
|
||||
"id" : "a7bab497-e991-491b-aae2-785f049cf361",
|
||||
"clientId" : "nextcloud",
|
||||
"rootUrl" : "https://nextcloud.dev.local",
|
||||
"adminUrl" : "https://nextcloud.dev.local",
|
||||
"rootUrl" : "http://nextcloud.local",
|
||||
"adminUrl" : "http://nextcloud.local",
|
||||
"surrogateAuthRequired" : false,
|
||||
"enabled" : true,
|
||||
"alwaysDisplayInConsole" : false,
|
||||
"clientAuthenticatorType" : "client-secret",
|
||||
"secret" : "09e3c268-d8bc-42f1-b7c6-74d307ef5fde",
|
||||
"redirectUris" : [ "https://nextcloud.dev.local/*" ],
|
||||
"webOrigins" : [ "https://nextcloud.dev.local" ],
|
||||
"redirectUris" : [ "http://nextcloud.local/*" ],
|
||||
"webOrigins" : [ "http://nextcloud.local" ],
|
||||
"notBefore" : 0,
|
||||
"bearerOnly" : false,
|
||||
"consentRequired" : false,
|
||||
Executable
+26
@@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
KEYCLOAK_REALM_CONFIG="/opt/keycloak/data/import/Example-realm.json"
|
||||
PROTOCOL="${PROTOCOL:-http}"
|
||||
NEXTCLOUD_URL=${PROTOCOL}://${NEXTCLOUD_URL:-nextcloud}${DOMAIN_SUFFIX}
|
||||
KEYCLOAK_URL=${PROTOCOL}://${KEYCLOAK_URL:-keycloak}${DOMAIN_SUFFIX}
|
||||
|
||||
if [ -f "$KEYCLOAK_REALM_CONFIG" ]; then
|
||||
echo "Preparing Keycloak realm configuration..."
|
||||
|
||||
echo "Using NEXTCLOUD_URL: ${NEXTCLOUD_URL}"
|
||||
echo "Using KEYCLOAK_URL: ${KEYCLOAK_URL}"
|
||||
|
||||
# Replace placeholder with actual NEXTCLOUD_URL
|
||||
sed -i.bak "s|http://nextcloud\\.local|${NEXTCLOUD_URL//./\\.}|g" "$KEYCLOAK_REALM_CONFIG"
|
||||
sed -i.bak "s|http://keycloak\\.local|${KEYCLOAK_URL//./\\.}|g" "$KEYCLOAK_REALM_CONFIG"
|
||||
rm -f "${KEYCLOAK_REALM_CONFIG}.bak"
|
||||
|
||||
cat "$KEYCLOAK_REALM_CONFIG"
|
||||
|
||||
echo "Realm configuration prepared."
|
||||
else
|
||||
echo "Realm configuration file not found: $KEYCLOAK_REALM_CONFIG"
|
||||
fi
|
||||
|
||||
exec /opt/keycloak/bin/kc.sh "$@"
|
||||
@@ -5,4 +5,11 @@ proxy_read_timeout 3600;
|
||||
proxy_send_timeout 3600;
|
||||
proxy_connect_timeout 3600;
|
||||
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
#proxy_http_version 1.1;
|
||||
#proxy_set_header Upgrade $http_upgrade;
|
||||
#proxy_set_header Connection "Upgrade";
|
||||
|
||||
proxy_set_header X-Forwarded-Proto https;
|
||||
# FIXME: remove this when onlyoffice is fixed https to http proxying
|
||||
# https://github.com/ONLYOFFICE/DocumentServer/issues/2186
|
||||
proxy_set_header CloudFront-Forwarded-Proto $scheme;
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# VERSION 0.1.0
|
||||
# Based on https://github.com/JanNash/docker_noop
|
||||
|
||||
FROM alpine:latest AS builder
|
||||
COPY noop/noop.c /
|
||||
RUN apk add --no-cache gcc musl-dev && gcc -static -o /noop /noop.c
|
||||
|
||||
FROM scratch
|
||||
|
||||
COPY --from=builder /noop /noop
|
||||
CMD ["/noop"]
|
||||
@@ -0,0 +1,5 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
int main() {
|
||||
exit(0);
|
||||
}
|
||||
+29
-21
@@ -29,22 +29,37 @@ RUN install-php-extensions \
|
||||
|
||||
# dev tools separate install so we quickly change without rebuilding all php extensions
|
||||
RUN apt update && apt-get install -y --no-install-recommends \
|
||||
git curl vim nano sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
|
||||
git \
|
||||
curl \
|
||||
vim-tiny \
|
||||
nano \
|
||||
sudo \
|
||||
cron \
|
||||
smbclient \
|
||||
iproute2 \
|
||||
lnav \
|
||||
wget \
|
||||
iputils-ping \
|
||||
gnupg2 \
|
||||
jq \
|
||||
ripgrep \
|
||||
rsync \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install PHPUnit
|
||||
RUN wget -O /usr/local/bin/phpunit8 https://phar.phpunit.de/phpunit-8.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit8 \
|
||||
&& wget -O /usr/local/bin/phpunit9 https://phar.phpunit.de/phpunit-9.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit9 \
|
||||
&& ln -s /usr/local/bin/phpunit9 /usr/local/bin/phpunit
|
||||
RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit11 \
|
||||
&& wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit12 \
|
||||
&& ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit
|
||||
|
||||
# Install NVM
|
||||
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
|
||||
&& export NVM_DIR="/root/.nvm" \
|
||||
&& . "$NVM_DIR/nvm.sh" \
|
||||
&& nvm install 20 \
|
||||
&& nvm alias default 20
|
||||
&& nvm install node \
|
||||
&& nvm alias default node \
|
||||
&& nvm cache clear
|
||||
|
||||
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
|
||||
|
||||
@@ -63,14 +78,7 @@ ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini
|
||||
ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
# Setup blackfire probe
|
||||
RUN wget -q -O - https://packages.blackfire.io/gpg.key | sudo apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list \
|
||||
&& apt-get update \
|
||||
&& (apt-get install -y --no-install-recommends blackfire \
|
||||
&& mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled \
|
||||
&& printf "\n\nblackfire.agent_socket=tcp://blackfire:8307\n" >> $PHP_INI_DIR/conf.d/zz-blackfire.ini) \
|
||||
|| echo "Skipped blackfire as the installation failed" \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled
|
||||
|
||||
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
|
||||
@@ -85,16 +93,16 @@ VOLUME /var/www/html/apps-writable
|
||||
VOLUME /var/www/html/config
|
||||
VOLUME /var/www/html/data
|
||||
|
||||
ENV SQL sqlite
|
||||
ENV NEXTCLOUD_AUTOINSTALL YES
|
||||
ENV WITH_REDIS NO
|
||||
ENV SQL=sqlite
|
||||
ENV NEXTCLOUD_AUTOINSTALL=YES
|
||||
ENV WITH_REDIS=NO
|
||||
|
||||
ENV WEBROOT /var/www/html
|
||||
ENV WEBROOT=/var/www/html
|
||||
WORKDIR /var/www/html
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/bootstrap.sh"]
|
||||
CMD ["apache2-foreground"]
|
||||
|
||||
ADD data/installing.html /root/installing.html
|
||||
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
|
||||
|
||||
+29
-21
@@ -29,22 +29,37 @@ RUN install-php-extensions \
|
||||
|
||||
# dev tools separate install so we quickly change without rebuilding all php extensions
|
||||
RUN apt update && apt-get install -y --no-install-recommends \
|
||||
git curl vim nano sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
|
||||
git \
|
||||
curl \
|
||||
vim-tiny \
|
||||
nano \
|
||||
sudo \
|
||||
cron \
|
||||
smbclient \
|
||||
iproute2 \
|
||||
lnav \
|
||||
wget \
|
||||
iputils-ping \
|
||||
gnupg2 \
|
||||
jq \
|
||||
ripgrep \
|
||||
rsync \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install PHPUnit
|
||||
RUN wget -O /usr/local/bin/phpunit8 https://phar.phpunit.de/phpunit-8.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit8 \
|
||||
&& wget -O /usr/local/bin/phpunit9 https://phar.phpunit.de/phpunit-9.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit9 \
|
||||
&& ln -s /usr/local/bin/phpunit9 /usr/local/bin/phpunit
|
||||
RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit11 \
|
||||
&& wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit12 \
|
||||
&& ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit
|
||||
|
||||
# Install NVM
|
||||
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
|
||||
&& export NVM_DIR="/root/.nvm" \
|
||||
&& . "$NVM_DIR/nvm.sh" \
|
||||
&& nvm install 20 \
|
||||
&& nvm alias default 20
|
||||
&& nvm install node \
|
||||
&& nvm alias default node \
|
||||
&& nvm cache clear
|
||||
|
||||
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
|
||||
|
||||
@@ -63,14 +78,7 @@ ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini
|
||||
ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
# Setup blackfire probe
|
||||
RUN wget -q -O - https://packages.blackfire.io/gpg.key | sudo apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list \
|
||||
&& apt-get update \
|
||||
&& (apt-get install -y --no-install-recommends blackfire \
|
||||
&& mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled \
|
||||
&& printf "\n\nblackfire.agent_socket=tcp://blackfire:8307\n" >> $PHP_INI_DIR/conf.d/zz-blackfire.ini) \
|
||||
|| echo "Skipped blackfire as the installation failed" \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled
|
||||
|
||||
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
|
||||
@@ -85,16 +93,16 @@ VOLUME /var/www/html/apps-writable
|
||||
VOLUME /var/www/html/config
|
||||
VOLUME /var/www/html/data
|
||||
|
||||
ENV SQL sqlite
|
||||
ENV NEXTCLOUD_AUTOINSTALL YES
|
||||
ENV WITH_REDIS NO
|
||||
ENV SQL=sqlite
|
||||
ENV NEXTCLOUD_AUTOINSTALL=YES
|
||||
ENV WITH_REDIS=NO
|
||||
|
||||
ENV WEBROOT /var/www/html
|
||||
ENV WEBROOT=/var/www/html
|
||||
WORKDIR /var/www/html
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/bootstrap.sh"]
|
||||
CMD ["apache2-foreground"]
|
||||
|
||||
ADD data/installing.html /root/installing.html
|
||||
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
|
||||
|
||||
+29
-21
@@ -29,22 +29,37 @@ RUN install-php-extensions \
|
||||
|
||||
# dev tools separate install so we quickly change without rebuilding all php extensions
|
||||
RUN apt update && apt-get install -y --no-install-recommends \
|
||||
git curl vim nano sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
|
||||
git \
|
||||
curl \
|
||||
vim-tiny \
|
||||
nano \
|
||||
sudo \
|
||||
cron \
|
||||
smbclient \
|
||||
iproute2 \
|
||||
lnav \
|
||||
wget \
|
||||
iputils-ping \
|
||||
gnupg2 \
|
||||
jq \
|
||||
ripgrep \
|
||||
rsync \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install PHPUnit
|
||||
RUN wget -O /usr/local/bin/phpunit8 https://phar.phpunit.de/phpunit-8.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit8 \
|
||||
&& wget -O /usr/local/bin/phpunit9 https://phar.phpunit.de/phpunit-9.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit9 \
|
||||
&& ln -s /usr/local/bin/phpunit9 /usr/local/bin/phpunit
|
||||
RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit11 \
|
||||
&& wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit12 \
|
||||
&& ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit
|
||||
|
||||
# Install NVM
|
||||
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
|
||||
&& export NVM_DIR="/root/.nvm" \
|
||||
&& . "$NVM_DIR/nvm.sh" \
|
||||
&& nvm install 20 \
|
||||
&& nvm alias default 20
|
||||
&& nvm install node \
|
||||
&& nvm alias default node \
|
||||
&& nvm cache clear
|
||||
|
||||
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
|
||||
|
||||
@@ -63,14 +78,7 @@ ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini
|
||||
ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
# Setup blackfire probe
|
||||
RUN wget -q -O - https://packages.blackfire.io/gpg.key | sudo apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list \
|
||||
&& apt-get update \
|
||||
&& (apt-get install -y --no-install-recommends blackfire \
|
||||
&& mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled \
|
||||
&& printf "\n\nblackfire.agent_socket=tcp://blackfire:8307\n" >> $PHP_INI_DIR/conf.d/zz-blackfire.ini) \
|
||||
|| echo "Skipped blackfire as the installation failed" \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled
|
||||
|
||||
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
|
||||
@@ -85,16 +93,16 @@ VOLUME /var/www/html/apps-writable
|
||||
VOLUME /var/www/html/config
|
||||
VOLUME /var/www/html/data
|
||||
|
||||
ENV SQL sqlite
|
||||
ENV NEXTCLOUD_AUTOINSTALL YES
|
||||
ENV WITH_REDIS NO
|
||||
ENV SQL=sqlite
|
||||
ENV NEXTCLOUD_AUTOINSTALL=YES
|
||||
ENV WITH_REDIS=NO
|
||||
|
||||
ENV WEBROOT /var/www/html
|
||||
ENV WEBROOT=/var/www/html
|
||||
WORKDIR /var/www/html
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/bootstrap.sh"]
|
||||
CMD ["apache2-foreground"]
|
||||
|
||||
ADD data/installing.html /root/installing.html
|
||||
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
FROM php:8.5-apache
|
||||
|
||||
ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
|
||||
|
||||
RUN chmod +x /usr/local/bin/install-php-extensions
|
||||
|
||||
RUN install-php-extensions \
|
||||
apcu \
|
||||
bcmath \
|
||||
excimer \
|
||||
exif \
|
||||
gd \
|
||||
gmp \
|
||||
intl \
|
||||
ldap \
|
||||
memcached \
|
||||
oci8 \
|
||||
opcache \
|
||||
pcntl \
|
||||
pdo_mysql \
|
||||
pdo_pgsql \
|
||||
redis \
|
||||
smbclient \
|
||||
sysvsem \
|
||||
xdebug \
|
||||
zip \
|
||||
blackfire \
|
||||
@composer
|
||||
|
||||
# dev tools separate install so we quickly change without rebuilding all php extensions
|
||||
RUN apt update && apt-get install -y --no-install-recommends \
|
||||
git \
|
||||
curl \
|
||||
vim-tiny \
|
||||
nano \
|
||||
sudo \
|
||||
cron \
|
||||
smbclient \
|
||||
iproute2 \
|
||||
lnav \
|
||||
wget \
|
||||
iputils-ping \
|
||||
gnupg2 \
|
||||
jq \
|
||||
ripgrep \
|
||||
rsync \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install PHPUnit
|
||||
RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit11 \
|
||||
&& wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \
|
||||
&& chmod +x /usr/local/bin/phpunit12 \
|
||||
&& ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit
|
||||
|
||||
# Install NVM
|
||||
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
|
||||
&& export NVM_DIR="/root/.nvm" \
|
||||
&& . "$NVM_DIR/nvm.sh" \
|
||||
&& nvm install node \
|
||||
&& nvm alias default node \
|
||||
&& nvm cache clear
|
||||
|
||||
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
|
||||
|
||||
RUN { \
|
||||
echo '[global]'; \
|
||||
echo 'client min protocol = SMB2'; \
|
||||
echo 'client max protocol = SMB3'; \
|
||||
echo 'hide dot files = no'; \
|
||||
} > /etc/samba/smb.conf
|
||||
|
||||
RUN mkdir --parent /var/log/cron
|
||||
ADD configs/cron.conf /etc/nc-cron.conf
|
||||
RUN crontab /etc/nc-cron.conf
|
||||
|
||||
ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini
|
||||
ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
# Setup blackfire probe
|
||||
RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled
|
||||
|
||||
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
|
||||
# mod_rewrite
|
||||
RUN a2enmod rewrite headers
|
||||
|
||||
# increase limit request body
|
||||
RUN echo "LimitRequestBody 0" > /etc/apache2/conf-available/limit-request-body.conf && a2enconf limit-request-body
|
||||
|
||||
VOLUME /var/www/html
|
||||
VOLUME /var/www/html/apps-writable
|
||||
VOLUME /var/www/html/config
|
||||
VOLUME /var/www/html/data
|
||||
|
||||
ENV SQL=sqlite
|
||||
ENV NEXTCLOUD_AUTOINSTALL=YES
|
||||
ENV WITH_REDIS=NO
|
||||
|
||||
ENV WEBROOT=/var/www/html
|
||||
WORKDIR /var/www/html
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/bootstrap.sh"]
|
||||
CMD ["apache2-foreground"]
|
||||
|
||||
ADD data/installing.html /root/installing.html
|
||||
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
|
||||
@@ -1,6 +1,10 @@
|
||||
FROM alpine
|
||||
|
||||
RUN wget https://github.com/nextcloud/notify_push/releases/download/v0.6.3/notify_push-`uname -m`-unknown-linux-musl -O /notify_push && chmod +x /notify_push && /notify_push --version
|
||||
RUN apk add curl jq \
|
||||
&& latest_tag=$(curl -Ls https://api.github.com/repos/nextcloud/notify_push/releases/latest | jq -r '.tag_name') \
|
||||
&& wget https://github.com/nextcloud/notify_push/releases/download/${latest_tag}/notify_push-`uname -m`-unknown-linux-musl -O /notify_push \
|
||||
&& chmod +x /notify_push \
|
||||
&& /notify_push --version
|
||||
|
||||
EXPOSE 7867
|
||||
|
||||
|
||||
@@ -17,17 +17,17 @@ For app development you can mount your app directly into the container:
|
||||
```bash
|
||||
docker run --rm -p 8080:80 \
|
||||
-v ~/path/to/appid:/var/www/html/apps-extra/appid \
|
||||
ghcr.io/juliusknorr/nextcloud-dev-php80:latest
|
||||
ghcr.io/juliusknorr/nextcloud-dev-php81:latest
|
||||
```
|
||||
|
||||
The `SERVER_BRANCH` environment variable can be used to run different versions of Nextcloud by specifying either a server branch or git tag.
|
||||
|
||||
```bash
|
||||
docker run --rm -p 8080:80 -e SERVER_BRANCH=v24.0.1 ghcr.io/juliusknorr/nextcloud-dev-php80:latest
|
||||
docker run --rm -p 8080:80 -e SERVER_BRANCH=v32.0.1 ghcr.io/juliusknorr/nextcloud-dev-php81:latest
|
||||
```
|
||||
|
||||
You can also mount your local server source code into the container to run a local version of Nextcloud:
|
||||
|
||||
```bash
|
||||
docker run --rm -p 8080:80 -e SERVER_BRANCH=v24.0.1 -v /tmp/server:/var/www/html ghcr.io/juliusknorr/nextcloud-dev-php80:latest
|
||||
docker run --rm -p 8080:80 -e SERVER_BRANCH=v32.0.1 -v /tmp/server:/var/www/html ghcr.io/juliusknorr/nextcloud-dev-php81:latest
|
||||
```
|
||||
|
||||
@@ -14,7 +14,7 @@ docker compose up -d appapi-dsp
|
||||
|
||||
After the DSP container is running, configure the Deploy daemon in AppAPI admin settings with the following parameters:
|
||||
|
||||
- **Host**: `http://appapi-dsp:2375`
|
||||
- **Host**: `http://nextcloud-appapi-dsp-http:2375`
|
||||
- **Nextcloud URL**: `http://nextcloud.local` (locally always use http)
|
||||
- **Enable https**: `false`
|
||||
- **Network**: `master_default` (the network of nextcloud-docker-dev docker-compose, by default it is `master_default`)
|
||||
@@ -23,7 +23,7 @@ After the DSP container is running, configure the Deploy daemon in AppAPI admin
|
||||
or via OCC CLI:
|
||||
|
||||
```bash
|
||||
./scripts/occ.sh nextcloud -- app_api:daemon:register dsp_http "DSP" docker-install http "appapi-dsp:2375" "https://nextcloud.local" --set-default --haproxy_password some_secure_password --net nextcloud_default
|
||||
./scripts/occ.sh nextcloud -- app_api:daemon:register dsp_http "DSP HTTP" docker-install http "nextcloud-appapi-dsp-http" "http://nextcloud.local" --net=master_default --set-default
|
||||
```
|
||||
|
||||
## HTTPS AppAPI DSP
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
# Notify Push service
|
||||
|
||||
Prepare your setup:
|
||||
* Setup your server with https.
|
||||
* Install `notify_push` app.
|
||||
* Start `push` alongside the other services:
|
||||
```
|
||||
docker compose up nextcloud proxy push
|
||||
```
|
||||
|
||||
Configure `notify_push` on the nextcloud instance:
|
||||
* Configure the `notify_push` url:
|
||||
```
|
||||
./occ notify_push:setup http://push:7867/push
|
||||
```
|
||||
Once `notify_push:setup` finishes you can test the setup:
|
||||
```bash
|
||||
./occ notify_push:self-test
|
||||
```
|
||||
|
||||
## Fixing problems:
|
||||
|
||||
If the version does not match:
|
||||
* Alter `docker/push/Dockerfile`.
|
||||
* Rebuild the image (`docker build .`).
|
||||
* Replace the push image in `docker-compose.yml`.
|
||||
* Tear down and restart the push service.
|
||||
|
||||
+61
-6
@@ -1,6 +1,61 @@
|
||||
# S3 / Object storage
|
||||
|
||||
S3 can be easily tested with the included container running Minio. This is a self-hosted S3-compatible object storage server.
|
||||
S3-compatible object storage can be easily tested with the included containers. Two options are available:
|
||||
|
||||
- **rustfs** (recommended) - A fast, lightweight S3-compatible object storage server written in Rust
|
||||
- **minio** - Abandoned S3-compatible object storage server (open-source version moved to maintenance-only mode with stripped-down UI)
|
||||
|
||||
## rustfs (Recommended)
|
||||
|
||||
rustfs is the preferred option for development and testing due to its performance and simplicity.
|
||||
|
||||
### Starting rustfs
|
||||
|
||||
Start the container using the following command:
|
||||
|
||||
```bash
|
||||
docker compose up -d rustfs
|
||||
```
|
||||
|
||||
### Primary object storage
|
||||
|
||||
Primary object storage can be enabled by setting the `PRIMARY=rustfs` environment variable either in your `.env` file or in `docker-compose.yml` for individual containers.
|
||||
|
||||
```bash
|
||||
PRIMARY=rustfs docker compose up nextcloud rustfs
|
||||
```
|
||||
|
||||
### External object storage
|
||||
|
||||
External storage can be configured in the Nextcloud admin settings (configuration labels may depend on app version).
|
||||
This is an example configuration for the `nc-external` bucket, buckets will be automatically created so you can name any bucket you like:
|
||||
|
||||
General:
|
||||
- External storage: `S3 Storage`
|
||||
- Authentication: `Static credentials` / `Access Key`
|
||||
Storage configuration:
|
||||
- Bucket: `nc-external`
|
||||
- Hostname: `rustfs`
|
||||
- Port: `9000`
|
||||
- Enable SSL: `No`
|
||||
- Enable Path Style: `Yes`
|
||||
- Use Legacy S3 signing (v2) / Legacy (v2) Authentication: `No`
|
||||
Authentication:
|
||||
- Access Key: `nextcloud`
|
||||
- Secret Key: `nextcloud`
|
||||
|
||||
### Accessing rustfs console
|
||||
|
||||
rustfs can be accessed via the browser at <http://rustfs.local> with the following credentials:
|
||||
|
||||
- Username: `nextcloud`
|
||||
- Password: `nextcloud`
|
||||
|
||||
## Minio (Alternative)
|
||||
|
||||
Minio is a more feature-rich alternative with additional management capabilities. However, critics often point to recent controversial changes, including shifting to a maintenance-only mode for the open-source version and stripping down the UI. For these reasons, rustfs is now the recommended choice for most development workflows.
|
||||
|
||||
### Starting Minio
|
||||
|
||||
Start the container using the following command:
|
||||
|
||||
@@ -8,15 +63,15 @@ Start the container using the following command:
|
||||
docker compose up -d minio
|
||||
```
|
||||
|
||||
## Primary object storage
|
||||
### Primary object storage
|
||||
|
||||
Primary object storage can be enabled by setting the `PRIMARY=minio` environment variable either in your `.env` file or in `docker-compose.yml` for individual containers.
|
||||
|
||||
```bash
|
||||
docker compose up nextcloud minio
|
||||
PRIMARY=minio docker compose up nextcloud minio
|
||||
```
|
||||
|
||||
## External object storage
|
||||
### External object storage
|
||||
|
||||
External storage can be configured in the Nextcloud admin settings. This is an example configuration for the `nc-external` bucket, buckets will be autocreated so you can name any bucket you like:
|
||||
|
||||
@@ -30,14 +85,14 @@ External storage can be configured in the Nextcloud admin settings. This is an e
|
||||
- Access Key: `nextcloud`
|
||||
- Secret Key: `nextcloud`
|
||||
|
||||
## Accessing Minio
|
||||
### Accessing Minio
|
||||
|
||||
Minio can be accessed via the browser at <http://minio.local> with the following credentials:
|
||||
|
||||
- Username: `nextcloud`
|
||||
- Password: `nextcloud`
|
||||
|
||||
## Using mc command line
|
||||
### Using mc command line
|
||||
|
||||
This can be useful for admin operations like setting a bucket quota on the `nc-external` bucket name:
|
||||
|
||||
|
||||
+14
-5
@@ -4,11 +4,20 @@
|
||||
## [Keycloak](https://www.keycloak.org/)
|
||||
|
||||
- Keycloak is using LDAP as a user backend (make sure the LDAP container is also running)
|
||||
- `occ user_oidc:provider Keycloak -c nextcloud -s 09e3c268-d8bc-42f1-b7c6-74d307ef5fde -d http://keycloak.dev.local/auth/realms/Example/.well-known/openid-configuration`
|
||||
- <http://keycloak.dev.local/auth/realms/Example/.well-known/openid-configuration>
|
||||
- If you have ssl enabled please modify the example realm config accordingly in `docker/configs/keycloak/Example-realm.json`
|
||||
- `occ user_oidc:provider Keycloak -c nextcloud -s 09e3c268-d8bc-42f1-b7c6-74d307ef5fde -d http://keycloak.local/auth/realms/Example/.well-known/openid-configuration`
|
||||
- <http://keycloak.local/auth/realms/Example/.well-known/openid-configuration>
|
||||
- nextcloud
|
||||
- 09e3c268-d8bc-42f1-b7c6-74d307ef5fde
|
||||
|
||||
## Authentik
|
||||
|
||||
```
|
||||
docker compose up -d proxy nextcloud authentik
|
||||
```
|
||||
|
||||
The server will be available on [http://authentik.local:9000](http://authentik.local:9000) and you can follow [authentik documentation](https://integrations.goauthentik.io/chat-communication-collaboration/nextcloud/) to understand how to configure Nextcloud with SAML (but also OIDC and LDAP).
|
||||
|
||||
## SAML
|
||||
|
||||
```
|
||||
@@ -16,9 +25,9 @@ docker compose up -d proxy nextcloud saml
|
||||
```
|
||||
|
||||
- uid mapping: `urn:oid:0.9.2342.19200300.100.1.1`
|
||||
- idp entity id: `https://sso.local.dev.bitgrid.net/simplesaml/saml2/idp/metadata.php`
|
||||
- Single Sign-On (SSO) service url: `https://sso.local.dev.bitgrid.net/simplesaml/saml2/idp/SSOService.php`
|
||||
- single log out service url: `https://sso.local.dev.bitgrid.net/simplesaml/saml2/idp/SingleLogoutService.php`
|
||||
- idp entity id: `https://sso.local/simplesaml/saml2/idp/metadata.php`
|
||||
- Single Sign-On (SSO) service url: `https://sso.local/simplesaml/saml2/idp/SSOService.php`
|
||||
- single log out service url: `https://sso.local/simplesaml/saml2/idp/SingleLogoutService.php`
|
||||
- use certificate from `docker/configs/var-simplesamlphp/cert/example.org.crt`
|
||||
|
||||
```
|
||||
|
||||
@@ -53,6 +53,10 @@ SQL=mysql
|
||||
# the entries none, develop, debug, trace, and profile.
|
||||
PHP_XDEBUG_MODE=develop
|
||||
|
||||
# Docker socket location, use it when you run rootless Docker
|
||||
# Replace "1000" with the uid used by your Docker engine (default $(id -u))
|
||||
# DOCKER_SOCKET=/run/user/1000/docker.sock
|
||||
|
||||
# Nextcloud AppAPI Docker Socket Proxy
|
||||
# ------------------------------------
|
||||
# NC_HAPROXY_PASSWORD=some_secure_password
|
||||
|
||||
@@ -29,3 +29,5 @@ occ onlyoffice:documentserver --check
|
||||
|
||||
|
||||
docker_compose exec onlyoffice /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 'services.CoAuthoring.secret.session.string'
|
||||
|
||||
docker_compose exec onlyoffice supervisorctl start ds:example
|
||||
|
||||
+2
-2
@@ -7,13 +7,13 @@ test.beforeEach(async ({ page }) => {
|
||||
|
||||
test.describe('New Todo', () => {
|
||||
test('see the nextcloud login page', async ({ page }) => {
|
||||
await expect(page).toHaveTitle('Login – Nextcloud');
|
||||
await expect(page).toHaveTitle('Login – Nextcloud');
|
||||
});
|
||||
|
||||
test('login to nextcloud as admin', async ({ page }) => {
|
||||
await page.fill('#user', 'admin');
|
||||
await page.fill('#password', 'admin');
|
||||
await page.getByRole('button', { name: 'Log in' }).click();
|
||||
await page.getByRole('button', { name: 'Log in', exact: true }).click();
|
||||
await page.goto('http://nextcloud.local/index.php/apps/files');
|
||||
});
|
||||
});
|
||||
Generated
+30
-24
@@ -9,32 +9,34 @@
|
||||
"version": "1.0.0",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"@playwright/test": "^1.40.1",
|
||||
"@types/node": "^20.10.2"
|
||||
"@playwright/test": "^1.52.0",
|
||||
"@types/node": "^22.15.30"
|
||||
}
|
||||
},
|
||||
"node_modules/@playwright/test": {
|
||||
"version": "1.40.1",
|
||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.40.1.tgz",
|
||||
"integrity": "sha512-EaaawMTOeEItCRvfmkI9v6rBkF1svM8wjl/YPRrg2N2Wmp+4qJYkWtJsbew1szfKKDm6fPLy4YAanBhIlf9dWw==",
|
||||
"version": "1.56.1",
|
||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.56.1.tgz",
|
||||
"integrity": "sha512-vSMYtL/zOcFpvJCW71Q/OEGQb7KYBPAdKh35WNSkaZA75JlAO8ED8UN6GUNTm3drWomcbcqRPFqQbLae8yBTdg==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"playwright": "1.40.1"
|
||||
"playwright": "1.56.1"
|
||||
},
|
||||
"bin": {
|
||||
"playwright": "cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16"
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "20.10.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.2.tgz",
|
||||
"integrity": "sha512-37MXfxkb0vuIlRKHNxwCkb60PNBpR94u4efQuN4JgIAm66zfCDXGSAFCef9XUWFovX2R1ok6Z7MHhtdVXXkkIw==",
|
||||
"version": "22.15.30",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.30.tgz",
|
||||
"integrity": "sha512-6Q7lr06bEHdlfplU6YRbgG1SFBdlsfNC4/lX+SkhiTs0cpJkOElmWls8PxDFv4yY/xKb8Y6SO0OmSX4wgqTZbA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"undici-types": "~5.26.4"
|
||||
"undici-types": "~6.21.0"
|
||||
}
|
||||
},
|
||||
"node_modules/fsevents": {
|
||||
@@ -43,6 +45,7 @@
|
||||
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
@@ -52,40 +55,43 @@
|
||||
}
|
||||
},
|
||||
"node_modules/playwright": {
|
||||
"version": "1.40.1",
|
||||
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.40.1.tgz",
|
||||
"integrity": "sha512-2eHI7IioIpQ0bS1Ovg/HszsN/XKNwEG1kbzSDDmADpclKc7CyqkHw7Mg2JCz/bbCxg25QUPcjksoMW7JcIFQmw==",
|
||||
"version": "1.56.1",
|
||||
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.56.1.tgz",
|
||||
"integrity": "sha512-aFi5B0WovBHTEvpM3DzXTUaeN6eN0qWnTkKx4NQaH4Wvcmc153PdaY2UBdSYKaGYw+UyWXSVyxDUg5DoPEttjw==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"playwright-core": "1.40.1"
|
||||
"playwright-core": "1.56.1"
|
||||
},
|
||||
"bin": {
|
||||
"playwright": "cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16"
|
||||
"node": ">=18"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"fsevents": "2.3.2"
|
||||
}
|
||||
},
|
||||
"node_modules/playwright-core": {
|
||||
"version": "1.40.1",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.40.1.tgz",
|
||||
"integrity": "sha512-+hkOycxPiV534c4HhpfX6yrlawqVUzITRKwHAmYfmsVreltEl6fAZJ3DPfLMOODw0H3s1Itd6MDCWmP1fl/QvQ==",
|
||||
"version": "1.56.1",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.1.tgz",
|
||||
"integrity": "sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"bin": {
|
||||
"playwright-core": "cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16"
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/undici-types": {
|
||||
"version": "5.26.5",
|
||||
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
|
||||
"integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
|
||||
"dev": true
|
||||
"version": "6.21.0",
|
||||
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
|
||||
"integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -8,7 +8,7 @@
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"@playwright/test": "^1.40.1",
|
||||
"@types/node": "^20.10.2"
|
||||
"@playwright/test": "^1.52.0",
|
||||
"@types/node": "^22.15.30"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user