Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a3e7cb8f98 |
@@ -15,13 +15,11 @@ jobs:
|
||||
push_to_registry:
|
||||
name: Build image
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'juliusknorr/nextcloud-docker-dev'
|
||||
if: github.repository == 'juliushaertl/nextcloud-docker-dev'
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
container:
|
||||
- php85
|
||||
- php84
|
||||
- php83
|
||||
- php82
|
||||
- php81
|
||||
@@ -34,7 +32,6 @@ jobs:
|
||||
- saml
|
||||
- nginx
|
||||
- elasticsearch
|
||||
- keycloak
|
||||
- mailhog
|
||||
- ldap
|
||||
- lookupserver
|
||||
@@ -42,19 +39,18 @@ jobs:
|
||||
- codedev
|
||||
- code
|
||||
- talk-janus
|
||||
- noop
|
||||
permissions:
|
||||
packages: write
|
||||
contents: read
|
||||
steps:
|
||||
- name: Check out the repo
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@v4
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
- name: Cache Docker layers
|
||||
uses: actions/cache@v5
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: /tmp/.buildx-cache
|
||||
key: ${{ matrix.container }}-buildx-${{ github.sha }}
|
||||
@@ -82,31 +78,16 @@ jobs:
|
||||
platforms: linux/amd64,linux/arm64
|
||||
file: ${{ steps.dockerfile.outputs.DOCKERFILE }}
|
||||
tags: |
|
||||
ghcr.io/juliusknorr/nextcloud-dev-${{ matrix.container }}:${{ github.sha }}
|
||||
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@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 }}
|
||||
ghcr.io/juliushaertl/nextcloud-dev-${{ matrix.container }}:${{ github.sha }}
|
||||
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 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 if php version is not numeric or below 80
|
||||
if ! [[ $PHP_VERSION =~ ^[0-9]+$ ]] || [[ $PHP_VERSION -lt 80 ]]; then
|
||||
exit 0
|
||||
fi
|
||||
docker compose up -d nextcloud
|
||||
@@ -119,28 +100,41 @@ jobs:
|
||||
sleep 1
|
||||
done
|
||||
curl http://nextcloud.local/status.php
|
||||
- uses: actions/setup-node@v6
|
||||
if: matrix.container == 'php82' || matrix.container == 'php83' || matrix.container == 'php84'
|
||||
- uses: actions/setup-node@v4
|
||||
if: matrix.container == 'php81' || matrix.container == 'php82' || matrix.container == 'php83'
|
||||
with:
|
||||
node-version: latest
|
||||
node-version: 18
|
||||
- name: Install dependencies
|
||||
if: matrix.container == 'php82' || matrix.container == 'php83' || matrix.container == 'php84'
|
||||
if: matrix.container == 'php81' || matrix.container == 'php82' || matrix.container == 'php83'
|
||||
working-directory: tests
|
||||
run: npm ci
|
||||
- name: Install Playwright Browsers
|
||||
if: matrix.container == 'php82' || matrix.container == 'php83' || matrix.container == 'php84'
|
||||
if: matrix.container == 'php81' || matrix.container == 'php82' || matrix.container == 'php83'
|
||||
working-directory: tests
|
||||
run: npx playwright install --with-deps
|
||||
- name: Run Playwright tests
|
||||
if: matrix.container == 'php82' || matrix.container == 'php83' || matrix.container == 'php84'
|
||||
if: matrix.container == 'php81' || matrix.container == 'php82' || matrix.container == 'php83'
|
||||
working-directory: tests
|
||||
run: npx playwright test
|
||||
- uses: actions/upload-artifact@v7
|
||||
if: matrix.container == 'php82' || matrix.container == 'php83' || matrix.container == 'php84'
|
||||
- uses: actions/upload-artifact@v3
|
||||
if: matrix.container == 'php81' || matrix.container == 'php82' || matrix.container == 'php83'
|
||||
with:
|
||||
name: playwright-report-${{ matrix.container }}
|
||||
name: playwright-report
|
||||
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/juliushaertl/nextcloud-dev-${{ matrix.container }}:${{ github.event_name == 'release' && 'release' || 'latest' }}
|
||||
ghcr.io/juliushaertl/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@v6
|
||||
uses: actions/checkout@v4
|
||||
- name: Setup Pages
|
||||
uses: actions/configure-pages@v5
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v6
|
||||
uses: actions/setup-python@v5
|
||||
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@v4
|
||||
uses: actions/upload-pages-artifact@v3
|
||||
with:
|
||||
# Upload entire repository
|
||||
path: './site'
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
name: Shellcheck
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- uses: actions/checkout@v4
|
||||
- name: Run ShellCheck
|
||||
uses: ludeeus/action-shellcheck@master
|
||||
env:
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
/.vscode
|
||||
/data/nginx/vhost.d/
|
||||
/data/ssl/
|
||||
/data/shared/
|
||||
/workspace/
|
||||
@@ -14,5 +13,3 @@ node_modules/
|
||||
/tests/playwright-report/
|
||||
/tests/blob-report/
|
||||
/tests/playwright/.cache/
|
||||
/.idea/
|
||||
.DS_Store
|
||||
|
||||
@@ -9,29 +9,29 @@ images: docker/*/Dockerfile docker/Dockerfile.*
|
||||
pull-all:
|
||||
for file in $$(find docker/ -maxdepth 1 -type f -iname 'Dockerfile.*'); do \
|
||||
NAME=$$(echo $$file | sed 's/^.*\.//'); \
|
||||
echo "=> Pulling image $$NAME"; docker pull "ghcr.io/juliusknorr/nextcloud-dev-$${NAME}"; \
|
||||
echo "=> Pulling image $$NAME"; docker pull "ghcr.io/juliushaertl/nextcloud-dev-$${NAME}"; \
|
||||
done
|
||||
for file in $$(find docker -maxdepth 2 -type f -iname 'Dockerfile'); do \
|
||||
NAME=$$(basename $$(dirname $$file)); \
|
||||
echo "=> Pulling image $$NAME"; docker pull "ghcr.io/juliusknorr/nextcloud-dev-$${NAME}"; \
|
||||
echo "=> Pulling image $$NAME"; docker pull "ghcr.io/juliushaertl/nextcloud-dev-$${NAME}"; \
|
||||
done
|
||||
|
||||
pull-installed:
|
||||
docker image ls | grep juliusknorr/nextcloud-dev | cut -f 1 -d " "
|
||||
docker image ls | grep juliusknorr/nextcloud-dev | cut -f 1 -d " " | xargs -L 1 docker pull
|
||||
docker image ls | grep juliushaertl/nextcloud-dev | cut -f 1 -d " "
|
||||
docker image ls | grep juliushaertl/nextcloud-dev | cut -f 1 -d " " | xargs -L 1 docker pull
|
||||
|
||||
# Empty target to always build
|
||||
docker-build:
|
||||
|
||||
docker/%/Dockerfile: docker-build
|
||||
NAME=$$(basename $$(dirname $@)); \
|
||||
echo "=> Building dockerfile" $@ as ghcr.io/juliusknorr/nextcloud-dev-$$NAME:latest; \
|
||||
(cd docker && docker build -t ghcr.io/juliusknorr/nextcloud-dev-$$NAME:latest -f $$NAME/Dockerfile .)
|
||||
echo "=> Building dockerfile" $@ as ghcr.io/juliushaertl/nextcloud-dev-$$NAME:latest; \
|
||||
(cd docker && docker build -t ghcr.io/juliushaertl/nextcloud-dev-$$NAME:latest -f $$NAME/Dockerfile .)
|
||||
|
||||
docker/Dockerfile.%: docker-build
|
||||
NAME=$$(echo $$(basename $@) | sed 's/^.*\.//'); \
|
||||
echo "=> Building dockerfile" $@ as ghcr.io/juliusknorr/nextcloud-dev-$$NAME:latest; \
|
||||
(cd docker && docker build -t ghcr.io/juliusknorr/nextcloud-dev-$$NAME:latest -f Dockerfile.$$NAME .)
|
||||
echo "=> Building dockerfile" $@ as ghcr.io/juliushaertl/nextcloud-dev-$$NAME:latest; \
|
||||
(cd docker && docker build -t ghcr.io/juliushaertl/nextcloud-dev-$$NAME:latest -f Dockerfile.$$NAME .)
|
||||
|
||||
check: dockerfilelint shellcheck
|
||||
|
||||
@@ -55,8 +55,6 @@ template-apply:
|
||||
cat docker/Dockerfile.php.template | sed 's/php:8.2/php:8.1/' > docker/Dockerfile.php81
|
||||
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,6 +1,6 @@
|
||||
# Nextcloud development environment on Docker Compose
|
||||
|
||||
[Documentation](https://juliusknorr.github.io/nextcloud-docker-dev/) | [Nextcloud Developer Portal](https://nextcloud.com/developer/)
|
||||
[Documentation](https://juliushaertl.github.io/nextcloud-docker-dev/) | [Nextcloud Developer Portal](https://nextcloud.com/developer/)
|
||||
|
||||
Nextcloud's development environment using Docker Compose providing a large variety of services for Nextcloud server and app development and testing.
|
||||
|
||||
@@ -20,7 +20,7 @@ Nextcloud's development environment using Docker Compose providing a large varie
|
||||
|
||||
You can find a step-by-step tutorial on how to use this setup in the [Nextcloud Developer Portal](https://nextcloud.com/developer/). It will guide you through the setup and show you how to use it for app development: https://cloud.nextcloud.com/s/iyNGp8ryWxc7Efa?path=%2F1%20Setting%20up%20a%20development%20environment
|
||||
|
||||
In detail explanation of the setup and its features and configuration options can be found in the [nextcloud-docker-dev documentation](https://juliusknorr.github.io/nextcloud-docker-dev/).
|
||||
In detail explanation of the setup and its features and configuration options can be found in the [nextcloud-docker-dev documentation](https://juliushaertl.github.io/nextcloud-docker-dev/).
|
||||
|
||||
## Quickstart
|
||||
|
||||
@@ -31,7 +31,7 @@ In detail explanation of the setup and its features and configuration options ca
|
||||
|
||||
To start the setup run the following commands to clone the repository and bootstrap the setup. This will prepare your setup and clone the Nextcloud server repository and required apps into the `workspace` folder.
|
||||
```bash
|
||||
git clone https://github.com/juliusknorr/nextcloud-docker-dev
|
||||
git clone https://github.com/juliushaertl/nextcloud-docker-dev
|
||||
cd nextcloud-docker-dev
|
||||
./bootstrap.sh
|
||||
```
|
||||
@@ -47,7 +47,7 @@ docker compose up nextcloud
|
||||
|
||||
You can also start it in the background using `docker compose up -d nextcloud`.
|
||||
|
||||
You can then access your Nextcloud instance at [http://nextcloud.local](http://nextcloud.local). The default username is `admin` and the password is `admin`. [Other users can be found in the documentation](https://juliusknorr.github.io/nextcloud-docker-dev/basics/overview/#default-users).
|
||||
You can then access your Nextcloud instance at [http://nextcloud.local](http://nextcloud.local). The default username is `admin` and the password is `admin`. [Other users can be found in the documentation](https://juliushaertl.github.io/nextcloud-docker-dev/basics/overview/#default-users).
|
||||
|
||||
> [!WARN]
|
||||
> Note that for performance reasons the server repository might have been cloned with `--depth=1` by default. To get the full history it is highly recommended to run:
|
||||
@@ -74,29 +74,29 @@ Running the containers does not need this repository to be cloned.
|
||||
Example for running a Nextcloud server from the master branch of server:
|
||||
|
||||
```bash
|
||||
docker run --rm -p 8080:80 ghcr.io/juliusknorr/nextcloud-dev-php81:latest
|
||||
docker run --rm -p 8080:80 ghcr.io/juliushaertl/nextcloud-dev-php80:latest
|
||||
```
|
||||
|
||||
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-php81:latest
|
||||
docker run --rm -p 8080:80 -v ~/path/to/appid:/var/www/html/apps-extra/appid ghcr.io/juliushaertl/nextcloud-dev-php80: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-php81:latest
|
||||
docker run --rm -p 8080:80 -e SERVER_BRANCH=v24.0.1 ghcr.io/juliushaertl/nextcloud-dev-php80: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-php81:latest
|
||||
docker run --rm -p 8080:80 -e SERVER_BRANCH=v24.0.1 -v /tmp/server:/var/www/html ghcr.io/juliushaertl/nextcloud-dev-php80:latest
|
||||
```
|
||||
## More features
|
||||
|
||||
You can find documentation for more advanced features in [nextcloud-docker-dev documentation](https://juliusknorr.github.io/nextcloud-docker-dev/) for example:
|
||||
You can find documentation for more advanced features in [nextcloud-docker-dev documentation](https://juliushaertl.github.io/nextcloud-docker-dev/) for example:
|
||||
|
||||
- Running stable Nextcloud versions in parallel
|
||||
- Using different database backends
|
||||
|
||||
+8
-8
@@ -11,7 +11,7 @@ APPS_CLONE_FILTER=
|
||||
|
||||
print_help() {
|
||||
cat << EOF
|
||||
bootstrap.sh [--full-clone|--clone-no-blobs] [--clone-all-apps-filtered] [--] APPS
|
||||
boottrap.sh [--full-clone|--clone-no-blobs] [--clone-all-apps-filtered] [--] APPS
|
||||
|
||||
This command will initialize the debug environment for app developers.
|
||||
|
||||
@@ -25,7 +25,7 @@ The following options can be provided:
|
||||
--clone-all-apps-filtered
|
||||
Do not only reduce the history of the server repository but also
|
||||
the cloned apps.
|
||||
|
||||
|
||||
APPS The apps to add to the development setup on top of the default apps
|
||||
|
||||
The default apps to be installed: ${APPS_TO_INSTALL[@]}
|
||||
@@ -82,7 +82,7 @@ if [ -f ".env" ]; then
|
||||
echo "❌ Repository path does not exist"
|
||||
fi
|
||||
|
||||
for i in stable29 stable30 stable31 stable32 stable33
|
||||
for i in stable26 stable27 stable28
|
||||
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)
|
||||
@@ -102,7 +102,7 @@ case $SERVER_CLONE in
|
||||
squashed)
|
||||
CLONE_PARAMS=(--depth 1)
|
||||
;;
|
||||
filter-blobs)
|
||||
clone-no-blobs)
|
||||
CLONE_PARAMS=(--filter blob:none)
|
||||
;;
|
||||
full)
|
||||
@@ -141,7 +141,7 @@ function install_server() {
|
||||
(
|
||||
(
|
||||
echo "🌏 Fetching server (this might take a while to finish)" &&
|
||||
git clone ${CLONE_PARAMS[@]+"${CLONE_PARAMS[@]}"} https://github.com/nextcloud/server.git workspace/server --progress 2>&1 &&
|
||||
git clone ${CLONE_PARAMS[@]+"${CLONE_PARAMS[@]}"} https://github.com/nextcloud/server.git --depth 1 workspace/server --progress 2>&1 &&
|
||||
cd workspace/server && git submodule update --init --progress 2>&1
|
||||
) || echo "❌ Failed to clone Nextcloud server code"
|
||||
) | indent
|
||||
@@ -201,8 +201,8 @@ cat <<EOT >.env
|
||||
COMPOSE_PROJECT_NAME=master
|
||||
PROTOCOL=http
|
||||
DOMAIN_SUFFIX=.local
|
||||
REPO_PATH_SERVER="$PWD/workspace/server"
|
||||
STABLE_ROOT_PATH="$PWD/workspace"
|
||||
REPO_PATH_SERVER=$PWD/workspace/server
|
||||
STABLE_ROOT_PATH=$PWD/workspace
|
||||
NEXTCLOUD_AUTOINSTALL_APPS="${NEXTCLOUD_AUTOINSTALL_APPS[@]}"
|
||||
DOCKER_SUBNET=192.168.21.0/24
|
||||
PORTBASE=821
|
||||
@@ -295,5 +295,5 @@ cat <<EOF
|
||||
|
||||
For more details about the individual setup options see
|
||||
the README.md file or checkout the repo at
|
||||
https://github.com/juliusknorr/nextcloud-docker-dev
|
||||
https://github.com/juliushaertl/nextcloud-docker-dev
|
||||
EOF
|
||||
|
||||
+73
-324
@@ -1,16 +1,17 @@
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
# Proxy for ssl termination and easier hostname access
|
||||
# SSL certificates with the virtual host name need to be added to ./data/ssl
|
||||
proxy:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-nginx:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-nginx:latest
|
||||
ports:
|
||||
- "${IP_BIND:-127.0.0.1}:${PROXY_PORT_HTTP:-80}:80"
|
||||
- "${IP_BIND:-127.0.0.1}:${PROXY_PORT_HTTPS:-443}:443"
|
||||
- "${PROXY_PORT_HTTP:-80}:80"
|
||||
- "${PROXY_PORT_HTTPS:-443}:443"
|
||||
volumes:
|
||||
- ${DOCKER_SOCKET-/var/run/docker.sock}:/tmp/docker.sock:ro
|
||||
- /var/run/docker.sock:/tmp/docker.sock:ro
|
||||
- ./data/ssl/:/etc/nginx/certs
|
||||
- ./data/nginx/vhost.d/:/etc/nginx/vhost.d
|
||||
environment:
|
||||
DHPARAM_BITS: 2048
|
||||
DHPARAM_GENERATION: "false"
|
||||
@@ -38,15 +39,7 @@ services:
|
||||
- stable27${DOMAIN_SUFFIX}
|
||||
- stable28${DOMAIN_SUFFIX}
|
||||
- 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}
|
||||
- onlyoffice${DOMAIN_SUFFIX}
|
||||
@@ -64,9 +57,6 @@ services:
|
||||
- phpmyadmin${DOMAIN_SUFFIX}
|
||||
- talk-signaling${DOMAIN_SUFFIX}
|
||||
- talk-recording${DOMAIN_SUFFIX}
|
||||
- authentik${DOMAIN_SUFFIX}
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
haproxy:
|
||||
image: haproxy
|
||||
@@ -77,8 +67,16 @@ services:
|
||||
volumes:
|
||||
- ./docker/configs/haproxy.conf:/usr/local/etc/haproxy/haproxy.cfg:ro
|
||||
|
||||
dockersocketproxy:
|
||||
image: ghcr.io/cloud-py-api/nextcloud-appapi-dsp:release
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
privileged: true
|
||||
environment:
|
||||
NC_HAPROXY_PASSWORD: secret
|
||||
|
||||
nextcloud:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: ${NEXTCLOUD_AUTOINSTALL:-YES}
|
||||
@@ -110,9 +108,9 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
nextcloud2:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
SQL: 'mysql'
|
||||
VIRTUAL_HOST: "nextcloud2${DOMAIN_SUFFIX}"
|
||||
PHP_XDEBUG_MODE: ${PHP_XDEBUG_MODE:-develop}
|
||||
volumes:
|
||||
@@ -126,7 +124,7 @@ services:
|
||||
- ./data/additional.config.php:/var/www/html/config/additional.config.php:ro
|
||||
- ./data/shared:/shared
|
||||
ports:
|
||||
- "${IP_BIND:-127.0.0.1}:${PORTBASE:-800}1:80"
|
||||
- "${PORTBASE:-800}1:80"
|
||||
depends_on:
|
||||
- database-${SQL:-mysql}
|
||||
- redis
|
||||
@@ -136,7 +134,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
nextcloud3:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
VIRTUAL_HOST: "nextcloud3${DOMAIN_SUFFIX}"
|
||||
@@ -160,7 +158,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable16:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-73}:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-73}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
@@ -189,7 +187,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable17:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-73}:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-73}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
@@ -218,7 +216,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable18:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-74}:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-74}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
@@ -247,7 +245,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable19:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-74}:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-74}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
@@ -276,7 +274,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable20:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-74}:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-74}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
@@ -305,7 +303,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable21:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-80}:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-80}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
@@ -335,7 +333,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable22:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-80}:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-80}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
@@ -365,7 +363,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable23:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-80}:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-80}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
@@ -395,7 +393,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable24:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-80}:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-80}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
@@ -425,7 +423,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable25:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
@@ -455,7 +453,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable26:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
@@ -485,7 +483,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable27:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
@@ -515,7 +513,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable28:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
@@ -545,7 +543,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable29:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
environment:
|
||||
SQL: ${SQL:-mysql}
|
||||
NEXTCLOUD_AUTOINSTALL: "YES"
|
||||
@@ -574,128 +572,8 @@ services:
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
stable30:
|
||||
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: stable30${DOMAIN_SUFFIX}
|
||||
ADDITIONAL_APPS_PATH:
|
||||
NEXTCLOUD_TRUSTED_DOMAINS:
|
||||
PRIMARY: ${PRIMARY:-local}
|
||||
PHP_XDEBUG_MODE: ${PHP_XDEBUG_MODE:-develop}
|
||||
volumes:
|
||||
- '${STABLE_ROOT_PATH}/stable30:/var/www/html'
|
||||
- '${STABLE_ROOT_PATH}/stable30/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
|
||||
|
||||
stable31:
|
||||
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: stable31${DOMAIN_SUFFIX}
|
||||
ADDITIONAL_APPS_PATH:
|
||||
NEXTCLOUD_TRUSTED_DOMAINS:
|
||||
PRIMARY: ${PRIMARY:-local}
|
||||
PHP_XDEBUG_MODE: ${PHP_XDEBUG_MODE:-develop}
|
||||
volumes:
|
||||
- '${STABLE_ROOT_PATH}/stable31:/var/www/html'
|
||||
- '${STABLE_ROOT_PATH}/stable31/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
|
||||
|
||||
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: ghcr.io/juliusknorr/nextcloud-dev-noop:latest
|
||||
image: rwgrim/docker-noop
|
||||
|
||||
database-mysql:
|
||||
image: mariadb:10.6
|
||||
@@ -708,14 +586,14 @@ services:
|
||||
'--wait_timeout=28800',
|
||||
]
|
||||
ports:
|
||||
- "${IP_BIND:-127.0.0.1}:${PORTBASE:-800}2:3306"
|
||||
- "${PORTBASE:-800}2:3306"
|
||||
volumes:
|
||||
- mysql:/var/lib/mysql
|
||||
|
||||
database-mariadb-primary:
|
||||
image: docker.io/bitnami/mariadb:10.6
|
||||
ports:
|
||||
- "${IP_BIND:-127.0.0.1}:3306:3306"
|
||||
- '3306'
|
||||
volumes:
|
||||
- 'mariadb_primary_data:/bitnami/mariadb'
|
||||
environment:
|
||||
@@ -730,7 +608,7 @@ services:
|
||||
database-mariadb-replica:
|
||||
image: docker.io/bitnami/mariadb:10.6
|
||||
ports:
|
||||
- "${IP_BIND:-127.0.0.1}:3306:3306"
|
||||
- '3306'
|
||||
depends_on:
|
||||
- database-mariadb-primary
|
||||
environment:
|
||||
@@ -751,7 +629,7 @@ services:
|
||||
volumes:
|
||||
- './docker/maxscale/my-maxscale.cnf:/etc/maxscale.cnf.d/my-maxscale.cnf'
|
||||
ports:
|
||||
- "${IP_BIND:-127.0.0.1}:3306:3306"
|
||||
- '3306'
|
||||
|
||||
database-pgsql:
|
||||
image: postgres:latest
|
||||
@@ -759,18 +637,19 @@ services:
|
||||
POSTGRES_DB: nextcloud
|
||||
POSTGRES_PASSWORD: postgres
|
||||
ports:
|
||||
- "${IP_BIND:-127.0.0.1}:${PORTBASE:-800}2:5432"
|
||||
- "${PORTBASE:-800}2:5432"
|
||||
volumes:
|
||||
- postgres:/var/lib/postgresql
|
||||
|
||||
database-oci:
|
||||
image: gvenzl/oracle-free:23
|
||||
image: ghcr.io/gvenzl/oracle-xe:21
|
||||
environment:
|
||||
ORACLE_PASSWORD: oracle
|
||||
ORACLE_PASSWORD: nextcloud
|
||||
APP_USER: nextcloud
|
||||
APP_USER_PASSWORD: nextcloud
|
||||
ORACLE_DATABASE: nextcloud
|
||||
ports:
|
||||
- "${IP_BIND:-127.0.0.1}:1521:1521"
|
||||
volumes:
|
||||
- oracle:/opt/oracle/oradata
|
||||
- 1521:1521/tcp
|
||||
|
||||
pgadmin:
|
||||
container_name: pgadmin_container
|
||||
@@ -788,7 +667,7 @@ services:
|
||||
- ${PROXY_SERVICE:-proxy}
|
||||
|
||||
redis:
|
||||
image: redis:8
|
||||
image: redis:7
|
||||
volumes:
|
||||
- redis:/data
|
||||
|
||||
@@ -799,7 +678,7 @@ services:
|
||||
- 389
|
||||
- 636
|
||||
ports:
|
||||
- "${IP_BIND:-127.0.0.1}:3389:389"
|
||||
- 3389:389
|
||||
environment:
|
||||
LDAP_DOMAIN: planetexpress.com
|
||||
LDAP_BASE_DN: dc=planetexpress,dc=com
|
||||
@@ -814,7 +693,6 @@ services:
|
||||
PMA_HOST: database-mysql
|
||||
PMA_USER: root
|
||||
PMA_PASSWORD: nextcloud
|
||||
UPLOAD_LIMIT: 512M
|
||||
|
||||
ldapadmin:
|
||||
image: osixia/phpldapadmin
|
||||
@@ -822,10 +700,10 @@ services:
|
||||
PHPLDAPADMIN_LDAP_HOSTS: ldap
|
||||
PHPLDAPADMIN_HTTPS: 'false'
|
||||
ports:
|
||||
- "${IP_BIND:-127.0.0.1}:${PORTBASE:-800}8:80"
|
||||
- "${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
|
||||
@@ -836,23 +714,16 @@ services:
|
||||
- 80
|
||||
|
||||
mail:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-mailhog:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-mailhog:latest
|
||||
environment:
|
||||
VIRTUAL_HOST: "mail${DOMAIN_SUFFIX}"
|
||||
VIRTUAL_PORT: 8025
|
||||
|
||||
imap:
|
||||
image: ghcr.io/christophwurst/docker-imap-devel:latest
|
||||
environment:
|
||||
MAILNAME: example.net
|
||||
MAIL_ADDRESS: admin@example.net
|
||||
MAIL_PASS: admin
|
||||
|
||||
smb:
|
||||
image: dperson/samba
|
||||
ports:
|
||||
- "${IP_BIND:-127.0.0.1}:139:139"
|
||||
- "${IP_BIND:-127.0.0.1}:445:445"
|
||||
- 139
|
||||
- 445
|
||||
environment:
|
||||
# -u "<username;password>[;ID;group;GID]"
|
||||
USER: "admin;admin"
|
||||
@@ -869,7 +740,7 @@ services:
|
||||
blackfire:
|
||||
image: blackfire/blackfire:2
|
||||
ports:
|
||||
- "${IP_BIND:-127.0.0.1}:8307:8307"
|
||||
- 8307:8307
|
||||
environment:
|
||||
- BLACKFIRE_SERVER_ID
|
||||
- BLACKFIRE_SERVER_TOKEN
|
||||
@@ -893,11 +764,6 @@ services:
|
||||
aliasgroup7: http://stable26${DOMAIN_SUFFIX}
|
||||
aliasgroup8: http://stable27${DOMAIN_SUFFIX}
|
||||
aliasgroup9: http://stable28${DOMAIN_SUFFIX}
|
||||
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
|
||||
@@ -935,27 +801,14 @@ services:
|
||||
image: minio/minio
|
||||
environment:
|
||||
VIRTUAL_HOST: minio${DOMAIN_SUFFIX}
|
||||
VIRTUAL_PORT: 9000
|
||||
VIRTUAL_PORT: 9001
|
||||
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
|
||||
@@ -983,7 +836,7 @@ services:
|
||||
elasticsearch-ui:
|
||||
image: appbaseio/dejavu
|
||||
ports:
|
||||
- "${IP_BIND:-127.0.0.1}:1358:1358"
|
||||
- 1358:1358
|
||||
expose:
|
||||
- 1358
|
||||
environment:
|
||||
@@ -993,7 +846,7 @@ services:
|
||||
|
||||
|
||||
push:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-push:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-push:latest
|
||||
environment:
|
||||
RUST_LOG: debug
|
||||
VIRTUAL_HOST: push${DOMAIN_SUFFIX}
|
||||
@@ -1003,21 +856,18 @@ services:
|
||||
NEXTCLOUD_URL: http://nextcloud
|
||||
|
||||
keycloak:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-keycloak:latest
|
||||
image: quay.io/keycloak/keycloak:25.0
|
||||
expose:
|
||||
- 8080
|
||||
# volumes:
|
||||
# - ./docker/configs/keycloak:/opt/keycloak/data/import
|
||||
command: start-dev --import-realm --http-enabled=true --proxy-headers xforwarded
|
||||
volumes:
|
||||
- ./docker/configs/keycloak:/opt/keycloak/data/import
|
||||
command: start-dev --import-realm
|
||||
environment:
|
||||
PROTOCOL: "${PROTOCOL:-http}"
|
||||
DOMAIN_SUFFIX: "${DOMAIN_SUFFIX:-.local}"
|
||||
VIRTUAL_HOST: "keycloak${DOMAIN_SUFFIX}"
|
||||
VIRTUAL_PORT: 8080
|
||||
KC_BOOTSTRAP_ADMIN_USERNAME: admin
|
||||
KC_BOOTSTRAP_ADMIN_PASSWORD: admin
|
||||
KEYCLOAK_PROXY_ADDRESS_FORWARDING: "true"
|
||||
KEYCLOAK_FRONTEND_URL: "${PROTOCOL:-http}://keycloak${DOMAIN_SUFFIX}"
|
||||
KEYCLOAK_ADMIN: admin
|
||||
KEYCLOAK_ADMIN_PASSWORD: admin
|
||||
PROXY_ADDRESS_FORWARDING: "true"
|
||||
KC_PROXY: edge
|
||||
|
||||
av:
|
||||
@@ -1028,7 +878,7 @@ services:
|
||||
- clam:/var/lib/clamav
|
||||
|
||||
portal:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
environment:
|
||||
VIRTUAL_HOST: portal${DOMAIN_SUFFIX}
|
||||
SQL: 'mysql'
|
||||
@@ -1050,7 +900,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
gs1:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
environment:
|
||||
VIRTUAL_HOST: gs1${DOMAIN_SUFFIX}
|
||||
SQL: 'mysql'
|
||||
@@ -1073,7 +923,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
gs2:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
|
||||
environment:
|
||||
VIRTUAL_HOST: gs2${DOMAIN_SUFFIX}
|
||||
SQL: 'mysql'
|
||||
@@ -1096,7 +946,7 @@ services:
|
||||
- host.docker.internal:host-gateway
|
||||
|
||||
lookup:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-lookupserver:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-lookupserver:latest
|
||||
environment:
|
||||
VIRTUAL_HOST: "lookup${DOMAIN_SUFFIX}"
|
||||
# volumes:
|
||||
@@ -1108,7 +958,7 @@ services:
|
||||
cap_drop:
|
||||
- ALL
|
||||
ports:
|
||||
- "${IP_BIND:-127.0.0.1}:8888:8888"
|
||||
- 8888:8888
|
||||
environment:
|
||||
MAX_CLIENTS: 100
|
||||
ALLOWED_NETWORKS: 0.0.0.0/0
|
||||
@@ -1129,9 +979,9 @@ services:
|
||||
|
||||
|
||||
previews_hpb:
|
||||
image: ghcr.io/nextcloud-releases/aio-imaginary:latest
|
||||
image: nextcloud/aio-imaginary:latest
|
||||
ports:
|
||||
- "${IP_BIND:-127.0.0.1}:8088:8088"
|
||||
- "8088:8088"
|
||||
environment:
|
||||
- PORT=8088
|
||||
|
||||
@@ -1150,10 +1000,10 @@ services:
|
||||
INTERNAL_SHARED_SECRET_KEY: "4567"
|
||||
|
||||
talk-janus:
|
||||
image: ghcr.io/juliusknorr/nextcloud-dev-talk-janus:latest
|
||||
image: ghcr.io/juliushaertl/nextcloud-dev-talk-janus:latest
|
||||
|
||||
talk-recording:
|
||||
image: ghcr.io/nextcloud-releases/aio-talk-recording:latest
|
||||
image: nextcloud/aio-talk-recording:latest
|
||||
environment:
|
||||
NC_DOMAIN: "nextcloud${DOMAIN_SUFFIX}"
|
||||
ALLOW_ALL: "true"
|
||||
@@ -1166,111 +1016,13 @@ services:
|
||||
VIRTUAL_HOST: "talk-recording${DOMAIN_SUFFIX}"
|
||||
VIRTUAL_PORT: 1234
|
||||
shm_size: 2147483648
|
||||
|
||||
appapi-dsp:
|
||||
image: ghcr.io/nextcloud/nextcloud-appapi-dsp:release
|
||||
container_name: nextcloud-appapi-dsp-http
|
||||
network_mode: ${NETWORK_MODE:-master_default}
|
||||
volumes:
|
||||
- ${DOCKER_SOCKET-/var/run/docker.sock}:/var/run/docker.sock
|
||||
environment:
|
||||
- NC_HAPROXY_PASSWORD=${NC_HAPROXY_PASSWORD:-some_secure_password}
|
||||
- BIND_ADDRESS=${BIND_ADDRESS:-}
|
||||
- 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}
|
||||
|
||||
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:
|
||||
config:
|
||||
apps-writable:
|
||||
mysql:
|
||||
postgres:
|
||||
oracle:
|
||||
redis:
|
||||
data2:
|
||||
config2:
|
||||
@@ -1281,14 +1033,11 @@ volumes:
|
||||
document_data:
|
||||
document_log:
|
||||
objectstorage_minio:
|
||||
objectstorage_rustfs:
|
||||
smb:
|
||||
smbhomes:
|
||||
elasticsearch_data:
|
||||
clam:
|
||||
mariadb_primary_data:
|
||||
authentik-database:
|
||||
driver: local
|
||||
|
||||
networks:
|
||||
default:
|
||||
|
||||
@@ -11,6 +11,7 @@ RUN install-php-extensions \
|
||||
exif \
|
||||
gd \
|
||||
gmp \
|
||||
imagick \
|
||||
intl \
|
||||
ldap \
|
||||
memcached \
|
||||
@@ -29,37 +30,22 @@ 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-tiny \
|
||||
nano \
|
||||
sudo \
|
||||
cron \
|
||||
smbclient \
|
||||
iproute2 \
|
||||
lnav \
|
||||
wget \
|
||||
iputils-ping \
|
||||
gnupg2 \
|
||||
jq \
|
||||
ripgrep \
|
||||
rsync \
|
||||
git curl vim sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
|
||||
&& 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
|
||||
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
|
||||
|
||||
# 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
|
||||
&& nvm install 14 && nvm install 16 && nvm install 20 \
|
||||
&& nvm alias default 20
|
||||
|
||||
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
|
||||
|
||||
@@ -78,7 +64,14 @@ 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 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 echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
|
||||
@@ -93,16 +86,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/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/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
|
||||
|
||||
+22
-29
@@ -11,6 +11,7 @@ RUN install-php-extensions \
|
||||
exif \
|
||||
gd \
|
||||
gmp \
|
||||
imagick \
|
||||
intl \
|
||||
ldap \
|
||||
memcached \
|
||||
@@ -29,37 +30,22 @@ 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-tiny \
|
||||
nano \
|
||||
sudo \
|
||||
cron \
|
||||
smbclient \
|
||||
iproute2 \
|
||||
lnav \
|
||||
wget \
|
||||
iputils-ping \
|
||||
gnupg2 \
|
||||
jq \
|
||||
ripgrep \
|
||||
rsync \
|
||||
git curl vim sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
|
||||
&& 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
|
||||
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
|
||||
|
||||
# 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
|
||||
&& nvm install 14 && nvm install 16 && nvm install 20 \
|
||||
&& nvm alias default 20
|
||||
|
||||
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
|
||||
|
||||
@@ -78,7 +64,14 @@ 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 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 echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
|
||||
@@ -93,16 +86,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/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/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
|
||||
|
||||
+22
-29
@@ -11,6 +11,7 @@ RUN install-php-extensions \
|
||||
exif \
|
||||
gd \
|
||||
gmp \
|
||||
imagick \
|
||||
intl \
|
||||
ldap \
|
||||
memcached \
|
||||
@@ -29,37 +30,22 @@ 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-tiny \
|
||||
nano \
|
||||
sudo \
|
||||
cron \
|
||||
smbclient \
|
||||
iproute2 \
|
||||
lnav \
|
||||
wget \
|
||||
iputils-ping \
|
||||
gnupg2 \
|
||||
jq \
|
||||
ripgrep \
|
||||
rsync \
|
||||
git curl vim sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
|
||||
&& 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
|
||||
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
|
||||
|
||||
# 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
|
||||
&& nvm install 14 && nvm install 16 && nvm install 20 \
|
||||
&& nvm alias default 20
|
||||
|
||||
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
|
||||
|
||||
@@ -78,7 +64,14 @@ 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 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 echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
|
||||
@@ -93,16 +86,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/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/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
|
||||
|
||||
+22
-29
@@ -11,6 +11,7 @@ RUN install-php-extensions \
|
||||
exif \
|
||||
gd \
|
||||
gmp \
|
||||
imagick \
|
||||
intl \
|
||||
ldap \
|
||||
memcached \
|
||||
@@ -29,37 +30,22 @@ 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-tiny \
|
||||
nano \
|
||||
sudo \
|
||||
cron \
|
||||
smbclient \
|
||||
iproute2 \
|
||||
lnav \
|
||||
wget \
|
||||
iputils-ping \
|
||||
gnupg2 \
|
||||
jq \
|
||||
ripgrep \
|
||||
rsync \
|
||||
git curl vim sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
|
||||
&& 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
|
||||
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
|
||||
|
||||
# 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
|
||||
&& nvm install 14 && nvm install 16 && nvm install 20 \
|
||||
&& nvm alias default 20
|
||||
|
||||
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
|
||||
|
||||
@@ -78,7 +64,14 @@ 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 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 echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
|
||||
@@ -93,16 +86,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/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/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
|
||||
|
||||
+22
-29
@@ -11,6 +11,7 @@ RUN install-php-extensions \
|
||||
exif \
|
||||
gd \
|
||||
gmp \
|
||||
imagick \
|
||||
intl \
|
||||
ldap \
|
||||
memcached \
|
||||
@@ -29,37 +30,22 @@ 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-tiny \
|
||||
nano \
|
||||
sudo \
|
||||
cron \
|
||||
smbclient \
|
||||
iproute2 \
|
||||
lnav \
|
||||
wget \
|
||||
iputils-ping \
|
||||
gnupg2 \
|
||||
jq \
|
||||
ripgrep \
|
||||
rsync \
|
||||
git curl vim sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
|
||||
&& 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
|
||||
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
|
||||
|
||||
# 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
|
||||
&& nvm install 14 && nvm install 16 && nvm install 20 \
|
||||
&& nvm alias default 20
|
||||
|
||||
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
|
||||
|
||||
@@ -78,7 +64,14 @@ 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 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 echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
|
||||
@@ -93,16 +86,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/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/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
|
||||
|
||||
+22
-29
@@ -11,6 +11,7 @@ RUN install-php-extensions \
|
||||
exif \
|
||||
gd \
|
||||
gmp \
|
||||
imagick \
|
||||
intl \
|
||||
ldap \
|
||||
memcached \
|
||||
@@ -29,37 +30,22 @@ 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-tiny \
|
||||
nano \
|
||||
sudo \
|
||||
cron \
|
||||
smbclient \
|
||||
iproute2 \
|
||||
lnav \
|
||||
wget \
|
||||
iputils-ping \
|
||||
gnupg2 \
|
||||
jq \
|
||||
ripgrep \
|
||||
rsync \
|
||||
git curl vim sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
|
||||
&& 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
|
||||
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
|
||||
|
||||
# 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
|
||||
&& nvm install 14 && nvm install 16 && nvm install 20 \
|
||||
&& nvm alias default 20
|
||||
|
||||
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
|
||||
|
||||
@@ -78,7 +64,14 @@ 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 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 echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
|
||||
@@ -93,16 +86,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/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/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
|
||||
|
||||
+22
-29
@@ -11,6 +11,7 @@ RUN install-php-extensions \
|
||||
exif \
|
||||
gd \
|
||||
gmp \
|
||||
imagick \
|
||||
intl \
|
||||
ldap \
|
||||
memcached \
|
||||
@@ -29,37 +30,22 @@ 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-tiny \
|
||||
nano \
|
||||
sudo \
|
||||
cron \
|
||||
smbclient \
|
||||
iproute2 \
|
||||
lnav \
|
||||
wget \
|
||||
iputils-ping \
|
||||
gnupg2 \
|
||||
jq \
|
||||
ripgrep \
|
||||
rsync \
|
||||
git curl vim sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
|
||||
&& 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
|
||||
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
|
||||
|
||||
# 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
|
||||
&& nvm install 14 && nvm install 16 && nvm install 20 \
|
||||
&& nvm alias default 20
|
||||
|
||||
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
|
||||
|
||||
@@ -78,7 +64,14 @@ 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 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 echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
|
||||
@@ -93,16 +86,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/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/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
|
||||
|
||||
+6
-22
@@ -41,11 +41,6 @@ OCC() {
|
||||
sudo -E -u www-data php "$WEBROOT/occ" $@ | indent
|
||||
}
|
||||
|
||||
is_installed() {
|
||||
STATUS=$(OCC status)
|
||||
[[ "$STATUS" = *"installed: true"* ]]
|
||||
}
|
||||
|
||||
update_permission() {
|
||||
chown -R www-data:www-data "$WEBROOT"/apps-writable
|
||||
chown -R www-data:www-data "$WEBROOT"/data
|
||||
@@ -105,7 +100,7 @@ wait_for_other_containers() {
|
||||
"oci")
|
||||
output " - Oracle"
|
||||
retry_with_timeout "(echo > /dev/tcp/database-$SQL/1521) 2>/dev/null" 30 "⚠ Unable to connect to the Oracle server"
|
||||
sleep 45
|
||||
sleep 2
|
||||
;;
|
||||
"sqlite")
|
||||
output " - SQLite"
|
||||
@@ -227,11 +222,7 @@ configure_add_user() {
|
||||
|
||||
|
||||
install() {
|
||||
if [ -n "$VIRTUAL_HOST" ]; then
|
||||
DBNAME=$(echo "$VIRTUAL_HOST" | cut -d '.' -f1)
|
||||
else
|
||||
DBNAME="nextcloud"
|
||||
fi
|
||||
DBNAME=$(echo "$VIRTUAL_HOST" | cut -d '.' -f1)
|
||||
SQLHOST="database-$SQL"
|
||||
echo "database name will be $DBNAME"
|
||||
|
||||
@@ -242,7 +233,7 @@ install() {
|
||||
|
||||
output "🔧 Starting auto installation"
|
||||
if [ "$SQL" = "oci" ]; then
|
||||
OCC maintenance:install --admin-user=$USER --admin-pass=$PASSWORD --database="$SQL" --database-name=FREE --database-host="$SQLHOST" --database-port=1521 --database-user=system --database-pass=oracle
|
||||
OCC maintenance:install --admin-user=$USER --admin-pass=$PASSWORD --database="$SQL" --database-name=nextcloud --database-host="$SQLHOST" --database-port=1521 --database-user=nextcloud --database-pass=nextcloud
|
||||
elif [ "$SQL" = "pgsql" ]; then
|
||||
OCC maintenance:install --admin-user=$USER --admin-pass=$PASSWORD --database="$SQL" --database-name="$DBNAME" --database-host="$SQLHOST" --database-user=postgres --database-pass=postgres
|
||||
elif [ "$SQL" = "mysql" ]; then
|
||||
@@ -259,14 +250,7 @@ install() {
|
||||
OCC maintenance:install --admin-user=$USER --admin-pass=$PASSWORD --database="$SQL"
|
||||
fi;
|
||||
|
||||
if is_installed
|
||||
then
|
||||
output "🔧 Server installed"
|
||||
else
|
||||
output "Last nextcloud.log entry:"
|
||||
output "$(tail -n 1 "$WEBROOT"/data/nextcloud.log | jq)"
|
||||
fatal "🚨 Server installation failed."
|
||||
fi
|
||||
output "🔧 Server installed"
|
||||
|
||||
output "🔧 Provisioning apps"
|
||||
OCC app:disable password_policy
|
||||
@@ -372,8 +356,8 @@ add_hosts() {
|
||||
setup() {
|
||||
update_permission
|
||||
configure_xdebug_mode
|
||||
|
||||
if is_installed || [[ ! -f $WEBROOT/config/config.php ]]
|
||||
STATUS=$(OCC status)
|
||||
if [[ "$STATUS" = *"installed: true"* ]] || [[ ! -f $WEBROOT/config/config.php ]]
|
||||
then
|
||||
output "🚀 Nextcloud already installed ... skipping setup"
|
||||
|
||||
|
||||
@@ -109,49 +109,3 @@ 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,
|
||||
),
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -511,7 +511,7 @@
|
||||
"containerId" : "6b350bb7-8ea6-438b-be38-fb58f6523f45",
|
||||
"attributes" : { }
|
||||
} ],
|
||||
"http://nextcloud.local/index.php/apps/user_saml/saml/metadata" : [ ]
|
||||
"http://nextcloud.dev.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.local/index.php/apps/user_saml/saml/metadata",
|
||||
"adminUrl" : "http://keycloak.local/auth/realms/Example",
|
||||
"clientId" : "http://nextcloud.dev.local/index.php/apps/user_saml/saml/metadata",
|
||||
"adminUrl" : "http://keycloak.dev.local/auth/realms/Example",
|
||||
"surrogateAuthRequired" : false,
|
||||
"enabled" : true,
|
||||
"alwaysDisplayInConsole" : false,
|
||||
"clientAuthenticatorType" : "client-secret",
|
||||
"secret" : "FipRMpAHMklMkZtbQfAKkUhxe7gkRZzR",
|
||||
"redirectUris" : [ "http://nextcloud.local/index.php/apps/user_saml/saml/acs" ],
|
||||
"webOrigins" : [ "http://nextcloud.local" ],
|
||||
"redirectUris" : [ "http://nextcloud.dev.local/index.php/apps/user_saml/saml/acs" ],
|
||||
"webOrigins" : [ "http://nextcloud.dev.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.local/index.php/apps/user_saml/saml/acs",
|
||||
"saml_assertion_consumer_url_post" : "http://nextcloud.dev.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.local/index.php/apps/user_saml/saml/sls",
|
||||
"saml_single_logout_service_url_redirect" : "http://nextcloud.dev.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" : "http://nextcloud.local",
|
||||
"adminUrl" : "http://nextcloud.local",
|
||||
"rootUrl" : "https://nextcloud.dev.local",
|
||||
"adminUrl" : "https://nextcloud.dev.local",
|
||||
"surrogateAuthRequired" : false,
|
||||
"enabled" : true,
|
||||
"alwaysDisplayInConsole" : false,
|
||||
"clientAuthenticatorType" : "client-secret",
|
||||
"secret" : "09e3c268-d8bc-42f1-b7c6-74d307ef5fde",
|
||||
"redirectUris" : [ "http://nextcloud.local/*" ],
|
||||
"webOrigins" : [ "http://nextcloud.local" ],
|
||||
"redirectUris" : [ "https://nextcloud.dev.local/*" ],
|
||||
"webOrigins" : [ "https://nextcloud.dev.local" ],
|
||||
"notBefore" : 0,
|
||||
"bearerOnly" : false,
|
||||
"consentRequired" : false,
|
||||
@@ -0,0 +1,52 @@
|
||||
<?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/simplesaml/',
|
||||
'baseurlpath' => 'https://sso.local.dev.bitgrid.net/simplesaml/',
|
||||
'certdir' => 'cert/',
|
||||
'loggingdir' => 'log/',
|
||||
'datadir' => 'data/',
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
$metadata['https://nextcloud.local/index.php/apps/user_saml/saml/metadata'] = array (
|
||||
'entityid' => 'https://nextcloud.local/index.php/apps/user_saml/saml/metadata',
|
||||
$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',
|
||||
'contacts' =>
|
||||
array (
|
||||
),
|
||||
@@ -11,7 +11,7 @@ $metadata['https://nextcloud.local/index.php/apps/user_saml/saml/metadata'] = ar
|
||||
0 =>
|
||||
array (
|
||||
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
|
||||
'Location' => 'https://nextcloud.local/index.php/apps/user_saml/saml/acs',
|
||||
'Location' => 'https://nextcloud.local.dev.bitgrid.net/index.php/apps/user_saml/saml/acs',
|
||||
'index' => 1,
|
||||
),
|
||||
),
|
||||
@@ -20,7 +20,7 @@ $metadata['https://nextcloud.local/index.php/apps/user_saml/saml/metadata'] = ar
|
||||
0 =>
|
||||
array (
|
||||
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
|
||||
'Location' => 'https://nextcloud.local/index.php/apps/user_saml/saml/sls',
|
||||
'Location' => 'https://nextcloud.local.dev.bitgrid.net/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/index.php/apps/user_saml/saml/metadata'] = ar
|
||||
),
|
||||
'validate.authnrequest' => false,
|
||||
'saml20.sign.assertion' => false,
|
||||
);
|
||||
);
|
||||
+72
-103
@@ -1,106 +1,75 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="refresh" content="1" />
|
||||
<meta charset="utf-8">
|
||||
<style>
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
margin: auto;
|
||||
max-width: 700px;
|
||||
}
|
||||
|
||||
<head>
|
||||
<meta http-equiv="refresh" content="1" />
|
||||
<meta charset="utf-8">
|
||||
<style>
|
||||
:root {
|
||||
--font-color: #333;
|
||||
--background-color: #fff;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--font-color: #eee;
|
||||
--background-color: #1a1a1a;
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
margin: auto;
|
||||
max-width: 800px;
|
||||
color: var(--font-color);
|
||||
background-color: var(--background-color);
|
||||
}
|
||||
|
||||
.lds-ellipsis {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
}
|
||||
|
||||
.lds-ellipsis div {
|
||||
position: absolute;
|
||||
top: 33px;
|
||||
width: 13px;
|
||||
height: 13px;
|
||||
border-radius: 50%;
|
||||
background: var(--font-color);
|
||||
animation-timing-function: cubic-bezier(0, 1, 1, 0);
|
||||
}
|
||||
|
||||
.lds-ellipsis div:nth-child(1) {
|
||||
left: 8px;
|
||||
animation: lds-ellipsis1 0.6s infinite;
|
||||
}
|
||||
|
||||
.lds-ellipsis div:nth-child(2) {
|
||||
left: 8px;
|
||||
animation: lds-ellipsis2 0.6s infinite;
|
||||
}
|
||||
|
||||
.lds-ellipsis div:nth-child(3) {
|
||||
left: 32px;
|
||||
animation: lds-ellipsis2 0.6s infinite;
|
||||
}
|
||||
|
||||
.lds-ellipsis div:nth-child(4) {
|
||||
left: 56px;
|
||||
animation: lds-ellipsis3 0.6s infinite;
|
||||
}
|
||||
@keyframes lds-ellipsis1 {
|
||||
0% {
|
||||
transform: scale(0);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes lds-ellipsis3 {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes lds-ellipsis2 {
|
||||
0% {
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translate(24px, 0);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Installing container</h1>
|
||||
<p>Please wait until the server is ready. This page will redirect you to the login once done.</p>
|
||||
<h2>Log:</h2>
|
||||
<div class="lds-ellipsis">
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
</div>
|
||||
<pre>
|
||||
.lds-ellipsis {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
}
|
||||
.lds-ellipsis div {
|
||||
position: absolute;
|
||||
top: 33px;
|
||||
width: 13px;
|
||||
height: 13px;
|
||||
border-radius: 50%;
|
||||
background: #000;
|
||||
animation-timing-function: cubic-bezier(0, 1, 1, 0);
|
||||
}
|
||||
.lds-ellipsis div:nth-child(1) {
|
||||
left: 8px;
|
||||
animation: lds-ellipsis1 0.6s infinite;
|
||||
}
|
||||
.lds-ellipsis div:nth-child(2) {
|
||||
left: 8px;
|
||||
animation: lds-ellipsis2 0.6s infinite;
|
||||
}
|
||||
.lds-ellipsis div:nth-child(3) {
|
||||
left: 32px;
|
||||
animation: lds-ellipsis2 0.6s infinite;
|
||||
}
|
||||
.lds-ellipsis div:nth-child(4) {
|
||||
left: 56px;
|
||||
animation: lds-ellipsis3 0.6s infinite;
|
||||
}
|
||||
@keyframes lds-ellipsis1 {
|
||||
0% {
|
||||
transform: scale(0);
|
||||
}
|
||||
100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
@keyframes lds-ellipsis3 {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
}
|
||||
100% {
|
||||
transform: scale(0);
|
||||
}
|
||||
}
|
||||
@keyframes lds-ellipsis2 {
|
||||
0% {
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
100% {
|
||||
transform: translate(24px, 0);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Installing container</h1>
|
||||
<p>Please wait until the server is ready. This page will redirect you to the login once done.</p>
|
||||
<h2>Log:</h2>
|
||||
<div class="lds-ellipsis"><div></div><div></div><div></div><div></div></div>
|
||||
<pre>
|
||||
@@ -1,3 +1,3 @@
|
||||
FROM elasticsearch:7.17.25
|
||||
FROM elasticsearch:7.17.22
|
||||
|
||||
RUN bin/elasticsearch-plugin install --batch ingest-attachment
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
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"]
|
||||
@@ -1,26 +0,0 @@
|
||||
#!/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,11 +5,4 @@ proxy_read_timeout 3600;
|
||||
proxy_send_timeout 3600;
|
||||
proxy_connect_timeout 3600;
|
||||
|
||||
#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;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
# 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"]
|
||||
@@ -1,5 +0,0 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
int main() {
|
||||
exit(0);
|
||||
}
|
||||
+22
-29
@@ -11,6 +11,7 @@ RUN install-php-extensions \
|
||||
exif \
|
||||
gd \
|
||||
gmp \
|
||||
imagick \
|
||||
intl \
|
||||
ldap \
|
||||
memcached \
|
||||
@@ -29,37 +30,22 @@ 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-tiny \
|
||||
nano \
|
||||
sudo \
|
||||
cron \
|
||||
smbclient \
|
||||
iproute2 \
|
||||
lnav \
|
||||
wget \
|
||||
iputils-ping \
|
||||
gnupg2 \
|
||||
jq \
|
||||
ripgrep \
|
||||
rsync \
|
||||
git curl vim sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
|
||||
&& 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
|
||||
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
|
||||
|
||||
# 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
|
||||
&& nvm install 14 && nvm install 16 && nvm install 20 \
|
||||
&& nvm alias default 20
|
||||
|
||||
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
|
||||
|
||||
@@ -78,7 +64,14 @@ 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 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 echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
|
||||
@@ -93,16 +86,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/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/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
|
||||
|
||||
+23
-29
@@ -11,6 +11,8 @@ RUN install-php-extensions \
|
||||
exif \
|
||||
gd \
|
||||
gmp \
|
||||
# waiting for https://github.com/mlocati/docker-php-extension-installer/pull/811
|
||||
# imagick \
|
||||
intl \
|
||||
ldap \
|
||||
memcached \
|
||||
@@ -29,37 +31,22 @@ 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-tiny \
|
||||
nano \
|
||||
sudo \
|
||||
cron \
|
||||
smbclient \
|
||||
iproute2 \
|
||||
lnav \
|
||||
wget \
|
||||
iputils-ping \
|
||||
gnupg2 \
|
||||
jq \
|
||||
ripgrep \
|
||||
rsync \
|
||||
git curl vim sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
|
||||
&& 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
|
||||
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
|
||||
|
||||
# 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
|
||||
&& nvm install 14 && nvm install 16 && nvm install 20 \
|
||||
&& nvm alias default 20
|
||||
|
||||
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
|
||||
|
||||
@@ -78,7 +65,14 @@ 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 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 echo "ServerName localhost" >> /etc/apache2/apache2.conf
|
||||
|
||||
@@ -93,16 +87,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/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/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
|
||||
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
|
||||
|
||||
@@ -1,108 +0,0 @@
|
||||
FROM php:8.4-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,108 +0,0 @@
|
||||
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,10 +1,6 @@
|
||||
FROM alpine
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
EXPOSE 7867
|
||||
|
||||
|
||||
@@ -13,14 +13,11 @@ There are two ways of using this setup. **A persistent setup is the most common
|
||||
|
||||
To start the setup run the following commands to clone the repository and bootstrap the setup. This will prepare your setup and clone the Nextcloud server repository and required apps into the `workspace` folder.
|
||||
```bash
|
||||
git clone https://github.com/juliusknorr/nextcloud-docker-dev
|
||||
git clone https://github.com/juliushaertl/nextcloud-docker-dev
|
||||
cd nextcloud-docker-dev
|
||||
./bootstrap.sh
|
||||
```
|
||||
|
||||
There are some options to simplify the later development by cloning not only the minimal data set but a bigger one that helps with later switching of branches etc.
|
||||
See also the [detailed page](nc-history.md) for an overview of the options.
|
||||
|
||||
This may take some time depending on your internet connection speed.
|
||||
|
||||
Depending on your docker version you will need to use `docker-compose` instead of `docker compose` in the following commands.
|
||||
@@ -32,7 +29,7 @@ docker compose up nextcloud
|
||||
|
||||
You can also start it in the background using `docker compose up -d nextcloud`.
|
||||
|
||||
You can then access your Nextcloud instance at [http://nextcloud.local](http://nextcloud.local). The default username is `admin` and the password is `admin`. [Other users can be found in the documentation](https://juliusknorr.github.io/nextcloud-docker-dev/basics/overview/#default-users).
|
||||
You can then access your Nextcloud instance at [http://nextcloud.local](http://nextcloud.local). The default username is `admin` and the password is `admin`. [Other users can be found in the documentation](https://juliushaertl.github.io/nextcloud-docker-dev/basics/overview/#default-users).
|
||||
|
||||
!!! warning
|
||||
Note that for performance reasons the server repository might have been cloned with `--depth=1` by default. To get the full history it is highly recommended to run:
|
||||
@@ -59,23 +56,23 @@ Running the containers does not need this repository to be cloned.
|
||||
Example for running a Nextcloud server from the master branch of server:
|
||||
|
||||
```bash
|
||||
docker run --rm -p 8080:80 ghcr.io/juliusknorr/nextcloud-dev-php80:latest
|
||||
docker run --rm -p 8080:80 ghcr.io/juliushaertl/nextcloud-dev-php80:latest
|
||||
```
|
||||
|
||||
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
|
||||
docker run --rm -p 8080:80 -v ~/path/to/appid:/var/www/html/apps-extra/appid ghcr.io/juliushaertl/nextcloud-dev-php80: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=v24.0.1 ghcr.io/juliushaertl/nextcloud-dev-php80: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=v24.0.1 -v /tmp/server:/var/www/html ghcr.io/juliushaertl/nextcloud-dev-php80:latest
|
||||
```
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
# Nextcloud server with history
|
||||
|
||||
The script `bootstrap.sh` will download a clone of the server code repository.
|
||||
Depending on your use case, you might be interested in having the complete or a partial history of the Nextcloud server at your fingertips.
|
||||
|
||||
## TL;DR
|
||||
|
||||
If you want to have a quick and dirty solution to just bootstrap the dev environment, just use `./bootstrap.sh`.
|
||||
If you want to intensively work on the server, use `./bootstrap.sh --full-clone`.
|
||||
If you want to switch from time to time between server versions and save bandwidth/storage, use `./bootstrap.sh --clone-no-blobs`.
|
||||
|
||||
## Clone with depth one by default
|
||||
|
||||
If you do not provide any additional information to the bootstrap script, it will truncate the history of the server repository.
|
||||
This truncation is done after exactly one commit.
|
||||
That means the clone you will get will contain exactly this single commit.
|
||||
|
||||
!!! info
|
||||
This will create a clone with `--depth 1`.
|
||||
See the man page of git clone for more details on the implications.
|
||||
|
||||
As this is mainly the same data as the tarball, the download in this mode is the fastest of all options.
|
||||
|
||||
If you want to play around with the different server versions, you need to download these and unshallow the repository using `git fetch --unshallow`.
|
||||
This will take quite some time and will download the complete server history.
|
||||
|
||||
## Clone with complete history
|
||||
|
||||
If you know that you will need the complete history of the server repository, you might want to avoid first creating a shallow copy and then unshallow it directly.
|
||||
To cope with this, you can append `--full-clone` to the `./bootstrap.sh` command line:
|
||||
|
||||
```
|
||||
./bootstrap.sh --full-clone
|
||||
```
|
||||
|
||||
The benefit is that the complete repository is present and you can browse the history as you like.
|
||||
The obvious drawback is that you have to download the complete history which might take a significant amount of time.
|
||||
|
||||
## Clone with the blobs filtered out
|
||||
|
||||
There is also one more option to the script, namely `--clone-no-blobs`.
|
||||
This works only with a sufficiently recent version of git.
|
||||
Instead of a shallow clone (where the history is truncated), a partial clone created by this parameter has the complete history attached.
|
||||
In that sense, you can navigate the complete history as you like.
|
||||
You would do the following to create such a partial clone:
|
||||
```
|
||||
./bootstrap.sh --clone-no-blobs
|
||||
```
|
||||
|
||||
The main difference to a shallow clone is that the cloned repository will not download all files (git calls them _blobs_) stored in the past.
|
||||
Instead, once you checkout a certain commit, git checks for all files if the corresponding file has been downloaded in the past.
|
||||
If it was, it uses this copy.
|
||||
If the file was not yet downloaded, a new connection to the upstream repository has to be made and the missing blobs are downloaded.
|
||||
Just after the clone of such a partially cloned repo, git will download all blobs needed to view the (current) branch content.
|
||||
This is very similar to the shallow clone where only the content of the last commit is downloaded.
|
||||
|
||||
As the complete history is generally known, you can use the normal git commands to handle such a repository.
|
||||
You can just pull/fetch as you are used.
|
||||
Switching a branch might download the required files on the fly.
|
||||
Any later update (using `git fetch` or `git pull`) will respect the setting and also download no blobs directly.
|
||||
|
||||
!!! Info
|
||||
This will clone the repository with `--filter blob:none`.
|
||||
Again see the man page of `git clone` for more details.
|
||||
|
||||
The benefit of this approach is obviously that you can have a complete history that you can work with (as long as you do not need the file contents).
|
||||
The initial clone takes a bit longer than the shallow one as additionally the history commits (without the contents) need to be transmitted.
|
||||
|
||||
The obvious drawback is that once you need to checkout a file that was never checked out in the clone, it has to be downloaded and a live internet connection is needed.
|
||||
@@ -9,8 +9,6 @@ In order to run a stable version you need to have the corresponding git checkout
|
||||
Assuming you have already cloned the repository into `~/nextcloud-docker-dev/workspace/server` you can run the following commands to create a new worktree for the stable28 branch:
|
||||
|
||||
```bash
|
||||
# make sure the stable version is fetched
|
||||
git fetch origin stable28:stable28
|
||||
# create a new worktree for the stable28 branch
|
||||
cd ~/nextcloud-docker-dev/workspace/server
|
||||
git worktree add ../stable28 stable28
|
||||
|
||||
@@ -9,7 +9,7 @@ Running the containers does not need this repository to be cloned.
|
||||
Example for running a Nextcloud server from the master branch of server:
|
||||
|
||||
```bash
|
||||
docker run --rm -p 8080:80 ghcr.io/juliusknorr/nextcloud-dev-php80:latest
|
||||
docker run --rm -p 8080:80 ghcr.io/juliushaertl/nextcloud-dev-php80:latest
|
||||
```
|
||||
|
||||
For app development you can mount your app directly into the container:
|
||||
@@ -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-php81:latest
|
||||
ghcr.io/juliushaertl/nextcloud-dev-php80: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=v32.0.1 ghcr.io/juliusknorr/nextcloud-dev-php81:latest
|
||||
docker run --rm -p 8080:80 -e SERVER_BRANCH=v24.0.1 ghcr.io/juliushaertl/nextcloud-dev-php80: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=v32.0.1 -v /tmp/server:/var/www/html ghcr.io/juliusknorr/nextcloud-dev-php81:latest
|
||||
docker run --rm -p 8080:80 -e SERVER_BRANCH=v24.0.1 -v /tmp/server:/var/www/html ghcr.io/juliushaertl/nextcloud-dev-php80:latest
|
||||
```
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
# Customize nginx config
|
||||
|
||||
## Add custom config for a virtualhost config
|
||||
|
||||
Add a config snippet to `data/nginx/vhost.d/<vhost-name>`, it will be included in the respective vhost config automatically.
|
||||
|
||||
For example to redirect all requests to `/apps.*/text` to a `vite serve` process on the docker host, add the following to `data/nginx/vhost.d/nextcloud.local`:
|
||||
|
||||
```
|
||||
location ~* ^/apps.*/text/ {
|
||||
rewrite ^/apps.*/text/(.*) /$1 break;
|
||||
proxy_pass http://host.docker.internal:5173;
|
||||
# fallback to nextcloud server if vite serve doesn't answer
|
||||
error_page 502 = @fallback;
|
||||
}
|
||||
location @fallback {
|
||||
proxy_pass http://nextcloud.local;
|
||||
}
|
||||
```
|
||||
+1
-1
@@ -14,4 +14,4 @@ Various settings in this setup are considered insecure and default passwords and
|
||||
- 🚀 Blackfire, Xdebug for profiling and debugging
|
||||
- 📄 Lots of integrating service containers: Collabora Online, Onlyoffice, Elasticsearch, ...
|
||||
|
||||
Follow the [getting started guide](https://juliusknorr.github.io/nextcloud-docker-dev/basics/getting-started/) or the [Nextcloud developer tutorial](https://nextcloud.com/developer/) to get started.
|
||||
Follow the [getting started guide](https://juliushaertl.github.io/nextcloud-docker-dev/basics/getting-started/) or the [Nextcloud developer tutorial](https://nextcloud.com/developer/) to get started.
|
||||
@@ -1,87 +0,0 @@
|
||||
# AppAPI
|
||||
|
||||
For [AppAPI](https://github.com/nextcloud/app_api) the [Docker Socket Proxy](https://github.com/nextcloud/docker-socket-proxy) (DSP) is required to work.
|
||||
|
||||
## HTTP AppAPI DSP
|
||||
|
||||
### 1. Start the HTTP DSP container
|
||||
|
||||
```bash
|
||||
docker compose up -d appapi-dsp
|
||||
```
|
||||
|
||||
### 2. Configure Deploy daemon
|
||||
|
||||
After the DSP container is running, configure the Deploy daemon in AppAPI admin settings with the following parameters:
|
||||
|
||||
- **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`)
|
||||
- **HaProxy password**: `some_secure_password`
|
||||
|
||||
or via OCC CLI:
|
||||
|
||||
```bash
|
||||
./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
|
||||
|
||||
For HTTPS DSP setup, please refer to the [HTTPS (remote)](https://github.com/nextcloud/docker-socket-proxy?tab=readme-ov-file#httpsremote) section.
|
||||
|
||||
### 1. Generate self-signed certificates
|
||||
|
||||
Following the instruction from the DSP repository, generate and place the self-signed certificate in the `nextcloud-docker-dev/data/ssl/app_api/app_api.pem` directory.
|
||||
|
||||
> **Note**: Additionally, you can copy the `app_api.pem` file to the `nextcloud-docker-dev/data/shared` directory
|
||||
> to be able to access it for import in each nextcloud dev container (e.g. `occ security:certificates:import /shared/app_api.pem`).
|
||||
|
||||
### 2. Start the HTTPS DSP container
|
||||
|
||||
```bash
|
||||
docker compose up -d appapi-dsp-https
|
||||
```
|
||||
|
||||
### 3. Configure Deploy daemon
|
||||
|
||||
After the DSP container is running and the certificate is imported in Nextcloud, configure the Deploy daemon in AppAPI admin settings with the following parameters:
|
||||
|
||||
- **Host**: `https://<nextcloud-appapi-dsp-https or BIND_ADDRESS IP>:2375` (use host depending on your setup)
|
||||
- **Nextcloud URL**: `http://nextcloud.local` (locally always use http)
|
||||
- **Enable https**: `true`
|
||||
- **Network**: `host` (with https enabled, the network is forced to `host`)
|
||||
- **HaProxy password**: `some_secure_password`
|
||||
|
||||
or via OCC CLI:
|
||||
|
||||
```bash
|
||||
./scripts/occ.sh nextcloud -- app_api:daemon:register dsp_https "DSP HTTPS" docker-install https "nextcloud-appapi-dsp-https" "http://nextcloud.local" --net=host --set-default
|
||||
```
|
||||
|
||||
|
||||
## Environment variables
|
||||
|
||||
The list of available environment variables for the AppAPI DSP is listed in its repository,
|
||||
and in the `example.env` file.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Image of AppAPI DSP is not accessible
|
||||
|
||||
In case the AppAPI DSP image is not accessible, you can build it locally by cloning the [Docker Socket Proxy](https://github.com/nextcloud/docker-socket-proxy) repository and running the following commands:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/nextcloud/docker-socket-proxy.git
|
||||
```
|
||||
|
||||
```bash
|
||||
cd docker-socket-proxy
|
||||
```
|
||||
|
||||
```bash
|
||||
docker build -f ./Dockerfile -t nextcloud-appapi-dsp:latest ./
|
||||
```
|
||||
|
||||
After that change the image name in the `docker-compose.yml` file
|
||||
for `appapi-dsp` or `appapi-dsp-https` service to `nextcloud-appapi-dsp:latest` and try again.
|
||||
@@ -9,11 +9,10 @@ By default, MySQL will be used as database backend. You can change this by setti
|
||||
- `sqlite`
|
||||
- `mariadb-replica`
|
||||
- `maxscale`
|
||||
- `oci`
|
||||
|
||||
Changing the database env value will require to recreate your setup. You can do this by running `docker compose down -v` and then `docker compose up -d nextcloud`.
|
||||
|
||||
All databases use the following credentials by default (except oracle):
|
||||
All databases use the following credentials by default:
|
||||
|
||||
- Root password: `nextcloud`
|
||||
- Username: `nextcloud`
|
||||
@@ -73,11 +72,3 @@ docker compose exec database-mariadb-replica mysql -u root -pnextcloud
|
||||
This mode runs a mariadb primary and read replica setup with maxscale as load balancer. The primary is used for writes and the replica for reads where MaxScale is used to perform a read-write-split.
|
||||
|
||||
The logs of MaxScale can be accessed with `docker compose exec maxscale cat /var/log/maxscale/maxscale.log`.
|
||||
|
||||
### Oracle
|
||||
|
||||
You can access the database with the following command:
|
||||
|
||||
```bash
|
||||
docker compose exec -ti database-oci sqlplus system/oracle
|
||||
```
|
||||
@@ -1,6 +1,6 @@
|
||||
# LDAP
|
||||
|
||||
The LDAP sample data is based on <https://github.com/rroemhild/docker-test-openldap> and extended with randomly generated users/groups. For details see [data/ldap-generator/](https://github.com/juliusknorr/nextcloud-docker-dev/tree/master/data/ldap-generator). LDAP will be configured automatically if the ldap container is available during installation.
|
||||
The LDAP sample data is based on <https://github.com/rroemhild/docker-test-openldap> and extended with randomly generated users/groups. For details see [data/ldap-generator/](https://github.com/juliushaertl/nextcloud-docker-dev/tree/master/data/ldap-generator). LDAP will be configured automatically if the ldap container is available during installation.
|
||||
|
||||
Example users are: `leela fry bender zoidberg hermes professor`. The password is the same as the uid.
|
||||
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
# 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.
|
||||
|
||||
+3
-81
@@ -1,93 +1,15 @@
|
||||
# S3 / Object storage
|
||||
|
||||
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. This is an example configuration for the `nc-external` bucket, buckets will be autocreated so you can name any bucket you like:
|
||||
|
||||
- Bucket: `nc-external`
|
||||
- Authentication: `Access Key`
|
||||
- Hostname: `rustfs`
|
||||
- Port: `9000`
|
||||
- Enable SSL: `No`
|
||||
- Enable Path Style: `Yes`
|
||||
- Legacy (v2) Authentication: `No`
|
||||
- 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:
|
||||
|
||||
```bash
|
||||
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
|
||||
PRIMARY=minio docker compose up nextcloud minio
|
||||
docker compose up nextcloud minio
|
||||
```
|
||||
|
||||
### 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:
|
||||
|
||||
- Bucket: `nc-external`
|
||||
- Authentication: `Access Key`
|
||||
- Hostname: `minio`
|
||||
- Port: `9000`
|
||||
- Enable SSL: `No`
|
||||
- Enable Path Style: `Yes`
|
||||
- Legacy (v2) Authentication: `No`
|
||||
- Access Key: `nextcloud`
|
||||
- Secret Key: `nextcloud`
|
||||
|
||||
### 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:
|
||||
|
||||
|
||||
+5
-14
@@ -4,20 +4,11 @@
|
||||
## [Keycloak](https://www.keycloak.org/)
|
||||
|
||||
- Keycloak is using LDAP as a user backend (make sure the LDAP container is also running)
|
||||
- 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>
|
||||
- `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>
|
||||
- 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
|
||||
|
||||
```
|
||||
@@ -25,9 +16,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/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`
|
||||
- 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`
|
||||
- use certificate from `docker/configs/var-simplesamlphp/cert/example.org.crt`
|
||||
|
||||
```
|
||||
|
||||
@@ -14,4 +14,4 @@
|
||||
- Make sure to have the recording hostname setup in your `/etc/hosts` file: `127.0.0.1 talk-recording.local`
|
||||
- Make sure the Talk HPB is running and configured
|
||||
- Start the talk recording server in addition to your other containers `docker-compose up -d talk-recording`
|
||||
- Go to the admin settings of talk and add the recording server (`http://talk-recording.local` with shared secret `6789`)
|
||||
- Go to the admin settings of talk and add the signaling server (`http://talk-recording.local` with shared secret `6789`)
|
||||
@@ -8,7 +8,7 @@ Xdebug is shipped but disabled by default. It can be turned on by running:
|
||||
|
||||
You can also enable other modes, e.g. trace:
|
||||
|
||||
```
|
||||
````
|
||||
./scripts/php-mod-config nextcloud xdebug.mode debug,trace
|
||||
```
|
||||
|
||||
|
||||
-21
@@ -24,9 +24,6 @@ PROTOCOL=http
|
||||
# BLACKFIRE_SERVER_ID=
|
||||
# BLACKFIRE_SERVER_TOKEN=
|
||||
|
||||
# By default the published ports are only accessible at 127.0.0.1 (your localhost).
|
||||
# Set this to '0.0.0.0' to make them accessible from your whole local network.
|
||||
# IP_BIND=127.0.0.1
|
||||
|
||||
# can be used to run separate setups besides each other
|
||||
# DOCKER_SUBNET=192.168.15.0/24
|
||||
@@ -52,21 +49,3 @@ SQL=mysql
|
||||
# The mode of the xdebuger extention. This can be a comma separated list of
|
||||
# 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
|
||||
# BIND_ADDRESS=172.17.0.1
|
||||
# CERT_PATH=./data/ssl/app_api/app_api.pem
|
||||
# NETWORK_MODE=host
|
||||
# HAPROXY_PORT=2375
|
||||
# TIMEOUT_CONNECT=10s
|
||||
# TIMEOUT_CLIENT=30s
|
||||
# TIMEOUT_SERVER=30s
|
||||
# EX_APPS_NET=ipv4@localhost
|
||||
# EX_APPS_COUNT=50
|
||||
# ------------------------------------
|
||||
|
||||
@@ -24,10 +24,8 @@ occ app:enable onlyoffice --force
|
||||
occ config:app:set onlyoffice DocumentServerUrl --value="$PROTOCOL://onlyoffice$DOMAIN_SUFFIX"
|
||||
occ config:app:set onlyoffice jwt_secret --value="secret"
|
||||
occ config:app:set onlyoffice DocumentServerInternalUrl --value="http://onlyoffice/"
|
||||
occ config:app:set onlyoffice StorageUrl --value="http://${CONTAINER}${DOMAIN_SUFFIX}/"
|
||||
occ config:app:set onlyoffice StorageUrl --value="http://nextcloud/"
|
||||
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
|
||||
docker_compose exec onlyoffice /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 'services.CoAuthoring.secret.session.string'
|
||||
+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', exact: true }).click();
|
||||
await page.getByRole('button', { name: 'Log in' }).click();
|
||||
await page.goto('http://nextcloud.local/index.php/apps/files');
|
||||
});
|
||||
});
|
||||
Generated
+24
-30
@@ -9,34 +9,32 @@
|
||||
"version": "1.0.0",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"@playwright/test": "^1.52.0",
|
||||
"@types/node": "^22.15.30"
|
||||
"@playwright/test": "^1.40.1",
|
||||
"@types/node": "^20.10.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@playwright/test": {
|
||||
"version": "1.56.1",
|
||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.56.1.tgz",
|
||||
"integrity": "sha512-vSMYtL/zOcFpvJCW71Q/OEGQb7KYBPAdKh35WNSkaZA75JlAO8ED8UN6GUNTm3drWomcbcqRPFqQbLae8yBTdg==",
|
||||
"version": "1.40.1",
|
||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.40.1.tgz",
|
||||
"integrity": "sha512-EaaawMTOeEItCRvfmkI9v6rBkF1svM8wjl/YPRrg2N2Wmp+4qJYkWtJsbew1szfKKDm6fPLy4YAanBhIlf9dWw==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"playwright": "1.56.1"
|
||||
"playwright": "1.40.1"
|
||||
},
|
||||
"bin": {
|
||||
"playwright": "cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
"node": ">=16"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "22.15.30",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.30.tgz",
|
||||
"integrity": "sha512-6Q7lr06bEHdlfplU6YRbgG1SFBdlsfNC4/lX+SkhiTs0cpJkOElmWls8PxDFv4yY/xKb8Y6SO0OmSX4wgqTZbA==",
|
||||
"version": "20.10.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.2.tgz",
|
||||
"integrity": "sha512-37MXfxkb0vuIlRKHNxwCkb60PNBpR94u4efQuN4JgIAm66zfCDXGSAFCef9XUWFovX2R1ok6Z7MHhtdVXXkkIw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"undici-types": "~6.21.0"
|
||||
"undici-types": "~5.26.4"
|
||||
}
|
||||
},
|
||||
"node_modules/fsevents": {
|
||||
@@ -45,7 +43,6 @@
|
||||
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
@@ -55,43 +52,40 @@
|
||||
}
|
||||
},
|
||||
"node_modules/playwright": {
|
||||
"version": "1.56.1",
|
||||
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.56.1.tgz",
|
||||
"integrity": "sha512-aFi5B0WovBHTEvpM3DzXTUaeN6eN0qWnTkKx4NQaH4Wvcmc153PdaY2UBdSYKaGYw+UyWXSVyxDUg5DoPEttjw==",
|
||||
"version": "1.40.1",
|
||||
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.40.1.tgz",
|
||||
"integrity": "sha512-2eHI7IioIpQ0bS1Ovg/HszsN/XKNwEG1kbzSDDmADpclKc7CyqkHw7Mg2JCz/bbCxg25QUPcjksoMW7JcIFQmw==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"playwright-core": "1.56.1"
|
||||
"playwright-core": "1.40.1"
|
||||
},
|
||||
"bin": {
|
||||
"playwright": "cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
"node": ">=16"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"fsevents": "2.3.2"
|
||||
}
|
||||
},
|
||||
"node_modules/playwright-core": {
|
||||
"version": "1.56.1",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.1.tgz",
|
||||
"integrity": "sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==",
|
||||
"version": "1.40.1",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.40.1.tgz",
|
||||
"integrity": "sha512-+hkOycxPiV534c4HhpfX6yrlawqVUzITRKwHAmYfmsVreltEl6fAZJ3DPfLMOODw0H3s1Itd6MDCWmP1fl/QvQ==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"bin": {
|
||||
"playwright-core": "cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
"node": ">=16"
|
||||
}
|
||||
},
|
||||
"node_modules/undici-types": {
|
||||
"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"
|
||||
"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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -8,7 +8,7 @@
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"@playwright/test": "^1.52.0",
|
||||
"@types/node": "^22.15.30"
|
||||
"@playwright/test": "^1.40.1",
|
||||
"@types/node": "^20.10.2"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user