Compare commits

...

176 Commits

Author SHA1 Message Date
dependabot[bot] e08ce2f78c chore(deps): bump actions/deploy-pages from 4 to 5
Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 4 to 5.
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](https://github.com/actions/deploy-pages/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/deploy-pages
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-25 18:03:13 +00:00
Julius Knorr bf71c459b4 Merge pull request #456 from juliusknorr/dependabot/github_actions/docker/login-action-4 2026-03-08 13:48:06 +01:00
Julius Knorr bfeb093df7 Merge pull request #458 from juliusknorr/renovate/docker-setup-buildx-action-4.x 2026-03-08 13:47:15 +01:00
Julius Knorr e8f9260556 Merge pull request #457 from juliusknorr/dependabot/github_actions/docker/setup-qemu-action-4 2026-03-08 13:46:35 +01:00
Julius Knorr 576a0daba1 Merge pull request #460 from juliusknorr/dependabot/github_actions/docker/build-push-action-7 2026-03-08 13:42:10 +01:00
dependabot[bot] 32994d4c7d chore(deps): bump docker/build-push-action from 6 to 7
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6 to 7.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6...v7)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-06 18:03:14 +00:00
renovate[bot] 1fb6efacfd chore(deps): update docker/setup-buildx-action action to v4 2026-03-05 10:48:14 +00:00
dependabot[bot] c0213f02c7 chore(deps): bump docker/setup-qemu-action from 3 to 4
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3 to 4.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-04 18:03:28 +00:00
dependabot[bot] 2c395031c3 chore(deps): bump docker/login-action from 3 to 4
Bumps [docker/login-action](https://github.com/docker/login-action) from 3 to 4.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-04 18:03:21 +00:00
Julius Knorr c1505566e1 Merge pull request #448 from grnd-alt/fix/other-dbs-for-nextcloud2
fix: use SQL dialect variable for nextcloud2
2026-02-04 22:22:43 +01:00
Julius Knorr a569a8d63a Merge pull request #447 from saw-jan/fix/auto-install-ext-db
fix: add default database name
2026-02-04 22:13:58 +01:00
Julius Knorr afbce62311 Merge pull request #445 from Antreesy/master
chore: add stable33 support
2026-02-04 22:12:29 +01:00
grnd-alt f1d9156ca3 fix: use SQL dialect variable for nextcloud2
Signed-off-by: grnd-alt <git@belakkaf.net>
2026-02-04 10:37:51 +01:00
Saw-jan ffeba34ed6 fix: add default database name
Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>
2026-02-02 17:15:38 +05:45
Maksim Sukharev a3345508ed chore: add stable33 support
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
2026-01-23 11:34:05 +01:00
Julius Knorr 798f74eed4 docs: Update docs for rustfs instead of minio
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-12-31 10:46:42 +01:00
Julius Knorr 563864a58c fix: Properly auto configure rustfs
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-12-31 10:33:58 +01:00
Julius Knorr a0e60da927 feat: Add rustfs as alternative s3 storage
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-12-30 21:37:18 +01:00
Julius Knorr 622db86820 Merge pull request #435 from juliusknorr/feat/php85
feat/php85
2025-12-18 10:55:01 +01:00
Julius Knorr 2cab524bd4 feat: Add php8.5 container
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-12-18 08:55:02 +01:00
Julius Knorr 5fdf12f3de Merge pull request #440 from juliusknorr/renovate/major-github-artifact-actions
chore(deps): update actions/upload-artifact action to v6
2025-12-18 08:54:51 +01:00
Julius Knorr c00c97b74a Merge pull request #441 from juliusknorr/dependabot/github_actions/actions/upload-artifact-6
chore(deps): bump actions/upload-artifact from 5 to 6
2025-12-18 08:54:41 +01:00
Julius Knorr ee0f0631a2 Merge pull request #437 from CarlSchwan/carl/authentik
feat: Add authentik as a service
2025-12-18 08:54:29 +01:00
dependabot[bot] 9d9ce551e1 chore(deps): bump actions/upload-artifact from 5 to 6
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 18:08:40 +00:00
renovate[bot] 61a1c0a5c3 chore(deps): update actions/upload-artifact action to v6 2025-12-12 20:37:48 +00:00
Julius Knorr eeb9c09a1c Merge pull request #439 from juliusknorr/dependabot/github_actions/actions/cache-5
chore(deps): bump actions/cache from 4 to 5
2025-12-12 21:37:11 +01:00
dependabot[bot] d2396eedd2 chore(deps): bump actions/cache from 4 to 5
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-12 18:04:55 +00:00
Carl Schwan 25b8f25826 feat: Add authentik as a service
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-08 14:35:22 +01:00
Julius Knorr 6d1785b879 Merge pull request #436 from Bytepie/patch-1
Remove duplicate minio alias from docker-compose
2025-11-26 11:53:56 +01:00
Umer Tahir ff8936271d Remove duplicate minio alias from docker-compose
minio${DOMAIN_SUFFIX} is listed twice in network default aliases which give error when running 'docker-compose up -d nextcloud'
2025-11-26 11:46:07 +05:00
Julius Knorr a0c52e9f25 Merge pull request #434 from juliusknorr/feat/image-size
fix: One apt install
2025-11-23 21:52:47 +01:00
Julius Knorr a0a49901c4 fix: Remove mariadb-client and move to vim-tiny
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-11-23 21:44:36 +01:00
Julius Knorr 06d90c7731 fix: Increase phpmyadmin upload limit
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-11-23 21:13:32 +01:00
Julius Knorr e5ae68fe43 fix: One apt install
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-11-23 21:09:14 +01:00
Julius Knorr fe55ed130c Merge pull request #433 from juliusknorr/renovate/actions-checkout-6.x
chore(deps): update actions/checkout action to v6
2025-11-23 21:03:51 +01:00
renovate[bot] 6f993fc4a8 chore(deps): update actions/checkout action to v6 2025-11-20 18:05:19 +00:00
Julius Knorr 2c3960d9b3 Merge pull request #431 from CarlSchwan/carl/minio
Minio + pre-signed urls
2025-11-18 11:47:59 +01:00
Carl Schwan 824fd6a24f feat: change default minio config to support pre-signed urls
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-11-17 09:27:56 +01:00
Julius Knorr a7288350a2 Merge pull request #393 from juliusknorr/renovate/quay.io-keycloak-keycloak-26.x 2025-11-12 20:52:56 +01:00
Julius Knorr 99158abfab Merge pull request #426 from juliusknorr/renovate/major-github-artifact-actions 2025-11-12 20:49:48 +01:00
renovate[bot] 04937ac764 chore(deps): update actions/upload-artifact action to v5 2025-11-10 18:40:33 +00:00
Carl Schwan fade46fd51 feat(minio): Expose minio
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-11-10 15:36:29 +01:00
Julius Knorr d7c061f5cc Merge pull request #430 from juliusknorr/copilot/fix-docker-compose-pull-issue 2025-11-06 20:21:37 +01:00
Julius Knorr 2fa13478d6 fix: Add note about original dockerfile 2025-11-06 11:41:21 +01:00
copilot-swe-agent[bot] e9c2bd1948 Remove CodeQL artifact
Co-authored-by: juliusknorr <3404133+juliusknorr@users.noreply.github.com>
2025-11-06 11:41:21 +01:00
copilot-swe-agent[bot] 8c27898475 Final verification complete
Co-authored-by: juliusknorr <3404133+juliusknorr@users.noreply.github.com>
2025-11-06 11:41:21 +01:00
copilot-swe-agent[bot] 475b5552eb Add noop docker image to replace rwgrim/docker-noop
Co-authored-by: juliusknorr <3404133+juliusknorr@users.noreply.github.com>
2025-11-06 11:41:21 +01:00
Julius Knorr 7b9d9bc00b ci: Only start containers for testing
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-11-06 11:34:42 +01:00
Julius Knorr 482cdb5e22 fix: Fix missing closing bracket
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-11-06 09:34:34 +01:00
Julius Knorr 305e9ab561 fix: Do not force enable blackfire
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-11-06 09:27:32 +01:00
Julius Knorr c9680f5adb chore: Properly start container with 8.4 for playwright
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-10-30 13:19:24 +01:00
Julius Knorr a0f2f34f2d chore: Fix env syntax in dockerfiles
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-10-30 13:18:55 +01:00
Julius Knorr 8f9831a509 docs: Update oidc command
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-10-30 09:18:43 +01:00
renovate[bot] 4ece329af0 chore(deps): update quay.io/keycloak/keycloak docker tag to v26.4 2025-10-30 08:17:35 +00:00
Julius Knorr a9be636c25 feat: Build own keycloak container
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-10-30 09:16:36 +01:00
Julius Knorr 39b76cf03d docs: Update standalone commands
Updated Docker commands to use Nextcloud PHP 8.1 and version 32.0.1.
2025-10-28 14:38:33 +01:00
Julius Knorr 1491f30733 Merge pull request #424 from juliusknorr/dependabot/npm_and_yarn/tests/multi-a50d7f32cf
chore(deps): bump playwright and @playwright/test in /tests
2025-10-23 12:08:10 +02:00
dependabot[bot] e05570affc chore(deps): bump playwright and @playwright/test in /tests
Bumps [playwright](https://github.com/microsoft/playwright) to 1.56.1 and updates ancestor dependency [@playwright/test](https://github.com/microsoft/playwright). These dependencies need to be updated together.


Updates `playwright` from 1.52.0 to 1.56.1
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.52.0...v1.56.1)

Updates `@playwright/test` from 1.52.0 to 1.56.1
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.52.0...v1.56.1)

---
updated-dependencies:
- dependency-name: playwright
  dependency-version: 1.56.1
  dependency-type: indirect
- dependency-name: "@playwright/test"
  dependency-version: 1.56.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 19:06:30 +00:00
Julius Knorr a7990a9923 Merge pull request #422 from nilsding/feature/always-use-latest-notify-push 2025-10-14 08:13:22 +02:00
Julius Knorr 7f5d921f5d Merge pull request #423 from juliusknorr/renovate/actions-setup-node-6.x 2025-10-14 08:08:49 +02:00
renovate[bot] 33634df89e chore(deps): update actions/setup-node action to v6 2025-10-14 05:01:09 +00:00
Jyrki Gadinger f3c9905a9f feat(push): always use latest released version
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
2025-10-13 13:19:52 +02:00
Julius Knorr 0251f2e6f5 ci: Bump php requirements for playwright tests
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-10-06 14:20:15 +02:00
Julius Knorr 2ed579dc08 chore: Bump min php version
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-10-06 14:18:05 +02:00
Julius Knorr 9432725543 Merge pull request #413 from juliusknorr/dependabot/github_actions/actions/upload-pages-artifact-4
chore(deps): bump actions/upload-pages-artifact from 3 to 4
2025-10-06 10:43:03 +02:00
Julius Knorr fefcf25a23 Merge pull request #417 from juliusknorr/dependabot/github_actions/actions/setup-node-5
chore(deps): bump actions/setup-node from 4 to 5
2025-10-06 10:42:57 +02:00
Julius Knorr d43cd4069e Merge pull request #416 from juliusknorr/dependabot/github_actions/actions/setup-python-6
chore(deps): bump actions/setup-python from 5 to 6
2025-10-06 10:42:43 +02:00
Julius Knorr bbe61685bf Merge pull request #415 from Antreesy/chore/noid/stable32
chore: add stable32 support
2025-10-06 10:42:22 +02:00
dependabot[bot] b143523d74 chore(deps): bump actions/setup-node from 4 to 5
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 5.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-04 18:05:13 +00:00
dependabot[bot] 902d927e65 chore(deps): bump actions/setup-python from 5 to 6
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-04 18:05:08 +00:00
Maksim Sukharev e140b45a1e chore: add stable32 support 2025-09-04 12:18:16 +02:00
dependabot[bot] 6291dd37c5 chore(deps): bump actions/upload-pages-artifact from 3 to 4
Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-pages-artifact/releases)
- [Commits](https://github.com/actions/upload-pages-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-pages-artifact
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-22 18:21:57 +00:00
Julius Knorr f247560ae1 Merge pull request #405 from hamza221/fix/keycloak 2025-08-14 07:30:15 +02:00
Hamza 8db3d3fcd2 docs(keycloak): add a note for https
Signed-off-by: Hamza <hamzamahjoubi221@gmail.com>
2025-08-12 11:46:13 +02:00
Julius Knorr 73e8adf99a Merge pull request #403 from salmart-dev/feat/addRootlessDockerSupport 2025-08-12 07:05:31 +02:00
Julius Knorr 829e75d072 Merge pull request #406 from max-nextcloud/chore/update-notify-push 2025-08-12 07:04:29 +02:00
Julius Knorr 4f5e6be41b Merge pull request #407 from juliusknorr/renovate/actions-checkout-5.x 2025-08-12 07:01:53 +02:00
Julius Knorr 3e94c39659 Merge pull request #408 from CarlSchwan/fix-sso 2025-08-12 07:01:41 +02:00
Carl Schwan a06077f755 fix(saml): Make the SAML config works with the default config
Signed-off-by: Carl Schwan <carl.schwan@nextclound.com>
2025-08-11 17:58:22 +02:00
renovate[bot] 0e2d2b286e chore(deps): update actions/checkout action to v5 2025-08-11 13:49:57 +00:00
Max 00405f53e8 chore(update): bump notify push version
Signed-off-by: Max <max@nextcloud.com>
2025-07-30 15:36:52 +02:00
Max d354a41cca docs(notify_push): add basic instructions
Signed-off-by: Max <max@nextcloud.com>
2025-07-30 15:36:12 +02:00
Hamza 8ad77cf1ee fix(keyclock): change default nextcloud url to nextcloud.local
Signed-off-by: Hamza <hamzamahjoubi221@gmail.com>
2025-07-29 14:42:40 +02:00
Salvatore Martire 821d4dfdf5 fix: adds the possibility of using rootless Docker
Hardcoding the doker.sock path prevents people from using Docker in
rootless mode. Even when symlinking the user's docker.sock into
/var/run/docker.sock does not work, as Docker does not follow the
symlink and mounts a directory instead.

This patch allows to define an environment variable `DOCKER_SOCKET` to
override the default value.

Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-07-04 10:54:31 +02:00
Julius Knorr 165e7e39ce Merge pull request #396 from juliusknorr/renovate/redis-8.x
chore(deps): update redis docker tag to v8
2025-06-10 07:30:22 +02:00
renovate[bot] 225b224b1d chore(deps): update redis docker tag to v8 2025-06-07 20:44:11 +02:00
Julius Knorr 5f4827e3bb Merge pull request #401 from juliusknorr/fix/ci 2025-06-07 14:42:21 +02:00
Julius Knorr 3b0ecdd42a test: Fix playwright selector
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-06-07 12:03:47 +02:00
Julius Knorr 6657a112d0 fix: Install latest node
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-06-07 09:57:34 +02:00
Julius Knorr 94dd17a50b fix: Workaround for running latest onlyoffice
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-06-07 09:57:34 +02:00
Julius Knorr a237d561f3 fix: Run on newer ubuntu
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-06-07 09:57:34 +02:00
Julius Knorr 6860d7cd2c Merge pull request #400 from arnowelzel/master 2025-05-12 08:48:44 +02:00
Arno Welzel 2929aaeb86 Remove obsolete version attribute 2025-05-11 14:00:59 +02:00
Julius Knorr b22d1dfbfe Merge pull request #397 from szaimen/patch-1
The aio images moved to ghcr.io
2025-05-08 13:55:22 +02:00
Simon L. eb06339398 The aio images moved to ghcr.io
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-05-08 11:47:40 +02:00
Julius Knorr 34002a3723 Merge pull request #380 from SystemKeeper/feat/noid/check-installation-success
feat(install): Check if installation was successful
2025-02-25 07:22:22 +01:00
Marcel Müller e4fd1425d2 feat(install): Check if installation was successful
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2025-02-24 19:04:37 +01:00
Julius Knorr 5e9519ef37 Merge pull request #384 from pabzm/imap-server
Provide IMAP-Server
2025-02-24 19:03:38 +01:00
Julius Knorr b5de48fa1d Merge pull request #374 from juliusknorr/fix/build
fix/build
2025-02-24 19:02:55 +01:00
Julius Knorr d065043d98 ci: Try downgrading qemu
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-02-24 15:35:49 +01:00
Julius Knorr 2f84d4f14f Revert "tmp: only build amd64"
This reverts commit 5ce93cb561.

Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-02-24 15:25:26 +01:00
Julius Knorr 29fbf5a20f ci: run tests only on existing image tags
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-02-24 08:26:52 +01:00
paz 53286dc556 Provide IMAP-Server
To work with the Mail app, for example.
2025-02-19 15:18:29 +01:00
Julius Knorr 8e7322bca5 ci: Tag locally to run tests for new images
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-02-16 16:29:55 +01:00
Julius Knorr 2a93fea132 ci: Go back to ubuntu 22.04
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-02-16 16:20:10 +01:00
Julius Knorr acc19592c4 chore: Use latest node
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-02-16 15:58:21 +01:00
Julius Knorr 5ce93cb561 tmp: only build amd64
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-02-16 15:41:38 +01:00
Julius Knorr 81c0256662 remove imagick 2025-02-16 12:54:37 +00:00
Julius Knorr 815d52286e Remove imagick from the install-php-extensions command in various Dockerfiles
* `docker/Dockerfile.php.template`
* `docker/Dockerfile.php72`
* `docker/Dockerfile.php74`
* `docker/Dockerfile.php81`
* `docker/php82/Dockerfile`
* `docker/php83/Dockerfile`
* `docker/php84/Dockerfile`
2025-02-16 13:45:36 +01:00
Julius Knorr 24a33afc41 tmp: Ping onlyoffice server image to previous version
It seems the most recent release of ONLYOFFICE has some regression or
change when it comes to handling reverse proxy SSL where the browser
will request a plain HTTP url instead of HTTPS when trying to load
Editor.bin

https://github.com/ONLYOFFICE/DocumentServer/issues/2186 has this
reported upstream, is older but the most relevant one.

Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-02-14 14:13:18 +01:00
Julius Knorr 86ae68338e Merge pull request #376 from oleksandr-nc/patch-1
(fix): added missing parameter to app_api occ commands
2025-01-30 11:21:15 +01:00
Alexander Piskun faf764edad (fix): added missing parameter to app_api occ commands 2025-01-30 13:16:42 +03:00
Julius Knorr 40121656e7 Merge pull request #373 from jojo221119/patch-1 2025-01-27 22:28:33 +01:00
Julius Knorr aa873ad69b chore: Use imagick from master
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-01-27 10:35:57 +01:00
Julius Knorr 977e894be2 chore: Add more stable hosts to collabora
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-01-27 10:25:14 +01:00
Johannes Hartmann 56c9b43ebf Add git command to fetch stable version 2025-01-25 17:44:48 +01:00
Julius Knorr eafdff79e4 Merge pull request #372 from Antreesy/chore/add-stable31
chore: add stable31 support
2025-01-23 10:00:13 +01:00
Maksim Sukharev cfffb7de2e chore: add stable31 support
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
2025-01-23 09:32:36 +01:00
Julius Knorr efff3c474b Merge pull request #370 from juliusknorr/renovate/quay.io-keycloak-keycloak-26.x 2025-01-16 21:27:28 +01:00
renovate[bot] 3e79244edc chore(deps): update quay.io/keycloak/keycloak docker tag to v26.1 2025-01-15 13:35:49 +00:00
Julius Knorr 8fec8bfc80 Merge pull request #368 from joendres/patch-1 2025-01-02 21:54:33 +01:00
Johannes Endres 64bcfa9ed7 Update bootstrap.sh: $PWD might contain whitespace
If $PWD contains whitespace, bootstrap.sh fails. Just adding quotation marks solves this.
2025-01-02 15:23:24 +01:00
Julius Knorr 53f2f9962e docs(s3): Fix external storage config 2024-12-16 15:55:16 +01:00
Julius Knorr 7f814e2fec docs: Extend s3 docs
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2024-12-12 14:26:15 +01:00
Julius Knorr cf830af93d Merge pull request #367 from mejo-/feat/nginx_vhost_d
feat: Add support for nginx vhost config drop-ins
2024-12-12 08:15:58 +01:00
Jonas 8f96207830 feat: Add support for nginx vhost config drop-ins
Signed-off-by: Jonas <jonas@freesources.org>
2024-12-11 13:42:50 +01:00
Julius Knorr 4f89f93514 Merge pull request #361 from pabzm/bind-published-ports-to-localhost
Bind published ports to 127.0.0.1 by default
2024-12-06 11:26:09 +01:00
Julius Knorr f2b73af92c Merge pull request #359 from juliusknorr/feat/php84
feat: Add php8.4 container
2024-12-04 08:32:02 +01:00
Julius Knorr 6760ee0aac fix: skip blackfire for now
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2024-11-27 14:40:29 +01:00
paz 6ff8cf9a81 Bind published ports to 127.0.0.1 by default
This increases security as published ports aren't accessible from the
whole local network anymore (without tricks, see
<https://github.com/moby/moby/issues/45610>).
2024-11-26 09:08:02 +01:00
Julius Knorr 807ac403ee fix: Use xdebug beta until final for 8.4 is out
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2024-11-25 09:30:12 +01:00
Julius Knorr f0ad60dc84 Merge pull request #358 from SystemKeeper/add-nano
chore(tools): Add nano
2024-11-25 08:48:16 +01:00
Julius Knorr 533ed2d458 feat: Add php8.4 container
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2024-11-25 08:47:54 +01:00
Marcel Müller 733dc061d0 chore(tools): Add nano
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2024-11-24 23:24:42 +01:00
Julius Knorr 95735e4ae2 Merge pull request #304 from juliusknorr/renovate/major-github-artifact-actions
chore(deps): update actions/upload-artifact action to v4
2024-11-18 09:30:45 +01:00
Julius Knorr cea778542e ci: Make artifact names unique 2024-11-18 08:50:18 +01:00
Julius Knorr 3acbca2638 Merge pull request #348 from juliusknorr/renovate/quay.io-keycloak-keycloak-26.x
chore(deps): update quay.io/keycloak/keycloak docker tag to v26
2024-11-18 08:32:25 +01:00
renovate[bot] aa2ba09132 chore(deps): update actions/upload-artifact action to v4 2024-11-18 07:30:58 +00:00
Julius Knorr e2f430c768 Merge pull request #356 from kyteinsky/enh/dark-mode-installing-html 2024-11-15 18:07:51 +01:00
Anupam Kumar 40dc31e27f enh: auto dark mode in installing status page
and formatting

Signed-off-by: Anupam Kumar <kyteinsky@gmail.com>
2024-11-15 20:30:28 +05:30
Julius Knorr ca58146103 fix(onlyoffice): Fix auto provisioning script to have a proper storage url
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2024-11-13 12:50:03 +01:00
Julius Knorr cecb01c8da docs: Add small hint about oracle sqlplus
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2024-10-28 14:22:24 +01:00
Julius Knorr d29f8add9c Merge pull request #350 from Altahrim/feat/oracle-basics
feat: add basic support for Oracle DB
2024-10-25 17:37:30 +02:00
Julius Knorr 06e99a198c Merge pull request #353 from juliusknorr/renovate/elasticsearch-7.x
chore(deps): update elasticsearch docker tag to v7.17.25
2024-10-25 15:11:35 +02:00
renovate[bot] 62ae5c4967 chore(deps): update elasticsearch docker tag to v7.17.25 2024-10-22 21:57:29 +00:00
renovate[bot] d55dad8497 chore(deps): update quay.io/keycloak/keycloak docker tag to v26 2024-10-21 07:26:08 +00:00
Julius Knorr 4141a2c091 Merge pull request #351 from andrey18106/fix/broken-renamed-links
fix: update broken links
2024-10-21 09:25:46 +02:00
Andrey Borysenko 5759f8ade4 fix: update broken links 2024-10-18 16:34:16 +03:00
Benjamin Gaussorgues 855cfa4b2a feat: add basic support for Oracle DB
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2024-10-17 10:10:37 +02:00
Julius Knorr 51a61bc5a1 Merge pull request #349 from andrey18106/chore/app_api/update-image-name 2024-10-15 08:08:11 +02:00
Andrey Borysenko a7998b3157 chore: update dsp links after repo transfer
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
2024-10-14 15:38:48 +03:00
Julius Knorr 32000b2959 Merge pull request #345 from christianlupus-nextcloud/doc/filter-depth
Added some documentation about NC cloning methods
2024-10-07 09:58:54 +02:00
Christian Wolf 73747b3b51 Remove some typos 2024-09-18 10:39:15 +02:00
Christian Wolf 988061d42b Apply suggestions from code review
Co-authored-by: Julius Knorr <jus@bitgrid.net>
2024-09-18 10:36:11 +02:00
Julius Knorr d8e5d9e598 Merge pull request #346 from SystemKeeper/fix/noid/typo-bootstrap 2024-09-16 11:28:01 +02:00
Marcel Müller 6d7d879a09 fix(bootstrap): Typo boottrap -> bootstrap
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2024-09-16 10:05:19 +02:00
Julius Knorr f410d902f3 Merge pull request #344 from christianlupus-nextcloud/fix/no-depth 2024-09-15 14:42:04 +02:00
Christian Wolf 7ded1e9a96 Fix a MD typo
Signed-off-by: Christian Wolf <git@christianwolf.email>
2024-09-13 22:22:04 +02:00
Christian Wolf 9221e7e207 Added some documentation on the various NC cloning methods
Signed-off-by: Christian Wolf <git@christianwolf.email>
2024-09-13 22:21:55 +02:00
Christian Wolf 173c2235e6 Fix doubled depth filter
Signed-off-by: Christian Wolf <git@christianwolf.email>
2024-09-13 21:22:54 +02:00
Julius Knorr 1fdbdb3b75 Merge pull request #343 from juliushaertl/renovate/elasticsearch-7.x
chore(deps): update elasticsearch docker tag to v7.17.24
2024-09-11 08:09:56 +02:00
renovate[bot] 99191f1990 chore(deps): update elasticsearch docker tag to v7.17.24 2024-09-11 02:01:15 +00:00
Julius Härtl 358ba34cde Merge pull request #341 from SystemKeeper/fix-no-blobs 2024-09-09 09:46:34 +02:00
Julius Härtl 7e4e38ecca Merge pull request #342 from SystemKeeper/fix-recordingserver-typo 2024-09-09 08:14:59 +02:00
Marcel Müller 6db0062970 fix(docs): Fix typo for recording server
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2024-09-08 14:30:16 +02:00
Marcel Müller 2f453878f9 fix(bootstrap): Fix using --clone-no-blobs
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2024-09-08 14:18:22 +02:00
Julius Härtl 441147144c Merge pull request #338 from arnovr/patch-1 2024-08-23 17:14:53 +02:00
arno 35960f538c php80 is not accepted by latest nextcloud 2024-08-23 13:56:28 +02:00
Julius Härtl 19bbcd0bcd Merge pull request #337 from andrey18106/feat/add-appapi-dsp 2024-08-22 19:10:02 +02:00
Andrey Borysenko 26647d4fdc fix: add also occ cli alternative way to register
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
2024-08-22 15:39:44 +03:00
Andrey Borysenko c408686d17 feat: add appapi-dsp/appapi-dsp-https service
Signed-off-by: Andrey Borysenko <andrey18106x@gmail.com>
2024-08-22 13:09:02 +03:00
Julius Härtl f461b7b5d0 Merge pull request #336 from Antreesy/fix/stable30-support 2024-08-16 10:18:43 +02:00
Maksim Sukharev 9bf907e2e9 fix: add stable30 support 2024-08-15 09:41:14 +02:00
Julius Härtl c9f88bade2 chore: only install latest node lts
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2024-08-04 23:12:01 +02:00
Julius Härtl 90219221b8 Merge pull request #334 from juliushaertl/renovate/elasticsearch-7.x 2024-07-31 16:34:35 +02:00
renovate[bot] 35609a74b2 chore(deps): update elasticsearch docker tag to v7.17.23 2024-07-31 04:32:02 +00:00
53 changed files with 1513 additions and 529 deletions
+38 -32
View File
@@ -15,11 +15,13 @@ jobs:
push_to_registry:
name: Build image
runs-on: ubuntu-latest
if: github.repository == 'juliushaertl/nextcloud-docker-dev'
if: github.repository == 'juliusknorr/nextcloud-docker-dev'
strategy:
fail-fast: false
matrix:
container:
- php85
- php84
- php83
- php82
- php81
@@ -32,6 +34,7 @@ jobs:
- saml
- nginx
- elasticsearch
- keycloak
- mailhog
- ldap
- lookupserver
@@ -39,25 +42,26 @@ jobs:
- codedev
- code
- talk-janus
- noop
permissions:
packages: write
contents: read
steps:
- name: Check out the repo
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
uses: docker/setup-qemu-action@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4
- name: Cache Docker layers
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: /tmp/.buildx-cache
key: ${{ matrix.container }}-buildx-${{ github.sha }}
restore-keys: |
${{ matrix.container }}-buildx-
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
@@ -71,23 +75,38 @@ jobs:
DOCKERFILE=$([[ -f "docker/$NAME/Dockerfile" ]] && echo "docker/$NAME/Dockerfile" || echo "docker/Dockerfile.$NAME")
echo "DOCKERFILE=$DOCKERFILE" >> $GITHUB_OUTPUT
- name: Build container image
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
push: false
context: docker/
platforms: linux/amd64,linux/arm64
file: ${{ steps.dockerfile.outputs.DOCKERFILE }}
tags: |
ghcr.io/juliushaertl/nextcloud-dev-${{ matrix.container }}:${{ github.sha }}
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@v7
if: github.ref == 'refs/heads/master' || github.event_name == 'release'
with:
push: true
context: docker/
platforms: linux/amd64,linux/arm64
file: ${{ steps.dockerfile.outputs.DOCKERFILE }}
tags: |
ghcr.io/juliusknorr/nextcloud-dev-${{ matrix.container }}:${{ github.event_name == 'release' && 'release' || 'latest' }}
ghcr.io/juliusknorr/nextcloud-dev-${{ matrix.container }}:${{ github.ref_name }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
- name: Start containers with docker compose
if: matrix.container == 'php82' || matrix.container == 'php83' || matrix.container == 'php84'
run: |
./bootstrap.sh
PHP_VERSION=$(echo ${{ matrix.container }} | sed -e 's/^php//')
echo "PHP_VERSION=${PHP_VERSION}" >> .env
# exit if php version is not numeric or below 80
if ! [[ $PHP_VERSION =~ ^[0-9]+$ ]] || [[ $PHP_VERSION -lt 80 ]]; then
# exit if php version is not numeric or below 80 or above 84 to only test against supported ones in server master
if ! [[ $PHP_VERSION =~ ^[0-9]+$ ]] || [[ $PHP_VERSION -lt 80 ]] || [[ $PHP_VERSION -gt 84 ]]; then
exit 0
fi
docker compose up -d nextcloud
@@ -100,41 +119,28 @@ jobs:
sleep 1
done
curl http://nextcloud.local/status.php
- uses: actions/setup-node@v4
if: matrix.container == 'php81' || matrix.container == 'php82' || matrix.container == 'php83'
- uses: actions/setup-node@v6
if: matrix.container == 'php82' || matrix.container == 'php83' || matrix.container == 'php84'
with:
node-version: 18
node-version: latest
- name: Install dependencies
if: matrix.container == 'php81' || matrix.container == 'php82' || matrix.container == 'php83'
if: matrix.container == 'php82' || matrix.container == 'php83' || matrix.container == 'php84'
working-directory: tests
run: npm ci
- name: Install Playwright Browsers
if: matrix.container == 'php81' || matrix.container == 'php82' || matrix.container == 'php83'
if: matrix.container == 'php82' || matrix.container == 'php83' || matrix.container == 'php84'
working-directory: tests
run: npx playwright install --with-deps
- name: Run Playwright tests
if: matrix.container == 'php81' || matrix.container == 'php82' || matrix.container == 'php83'
if: matrix.container == 'php82' || matrix.container == 'php83' || matrix.container == 'php84'
working-directory: tests
run: npx playwright test
- uses: actions/upload-artifact@v3
if: matrix.container == 'php81' || matrix.container == 'php82' || matrix.container == 'php83'
- uses: actions/upload-artifact@v6
if: matrix.container == 'php82' || matrix.container == 'php83' || matrix.container == 'php84'
with:
name: playwright-report
name: playwright-report-${{ matrix.container }}
path: tests/playwright-report/
retention-days: 30
- name: Push container image
uses: docker/build-push-action@v6
if: github.ref == 'refs/heads/master' || github.event_name == 'release'
with:
push: true
context: docker/
platforms: linux/amd64,linux/arm64
file: ${{ steps.dockerfile.outputs.DOCKERFILE }}
tags: |
ghcr.io/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
+4 -4
View File
@@ -28,11 +28,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: 3.x
- name: Install dependencies
@@ -42,10 +42,10 @@ jobs:
- name: Build MkDocs
run: mkdocs build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
uses: actions/upload-pages-artifact@v4
with:
# Upload entire repository
path: './site'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
uses: actions/deploy-pages@v5
+1 -1
View File
@@ -11,7 +11,7 @@ jobs:
name: Shellcheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Run ShellCheck
uses: ludeeus/action-shellcheck@master
env:
+3
View File
@@ -1,4 +1,5 @@
/.vscode
/data/nginx/vhost.d/
/data/ssl/
/data/shared/
/workspace/
@@ -13,3 +14,5 @@ node_modules/
/tests/playwright-report/
/tests/blob-report/
/tests/playwright/.cache/
/.idea/
.DS_Store
+10 -8
View File
@@ -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/juliushaertl/nextcloud-dev-$${NAME}"; \
echo "=> Pulling image $$NAME"; docker pull "ghcr.io/juliusknorr/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/juliushaertl/nextcloud-dev-$${NAME}"; \
echo "=> Pulling image $$NAME"; docker pull "ghcr.io/juliusknorr/nextcloud-dev-$${NAME}"; \
done
pull-installed:
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
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
# Empty target to always build
docker-build:
docker/%/Dockerfile: docker-build
NAME=$$(basename $$(dirname $@)); \
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 .)
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 .)
docker/Dockerfile.%: docker-build
NAME=$$(echo $$(basename $@) | sed 's/^.*\.//'); \
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 .)
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 .)
check: dockerfilelint shellcheck
@@ -55,6 +55,8 @@ 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
+9 -9
View File
@@ -1,6 +1,6 @@
# Nextcloud development environment on Docker Compose
[Documentation](https://juliushaertl.github.io/nextcloud-docker-dev/) | [Nextcloud Developer Portal](https://nextcloud.com/developer/)
[Documentation](https://juliusknorr.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://juliushaertl.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://juliusknorr.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/juliushaertl/nextcloud-docker-dev
git clone https://github.com/juliusknorr/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://juliushaertl.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://juliusknorr.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/juliushaertl/nextcloud-dev-php80:latest
docker run --rm -p 8080:80 ghcr.io/juliusknorr/nextcloud-dev-php81: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/juliushaertl/nextcloud-dev-php80:latest
docker run --rm -p 8080:80 -v ~/path/to/appid:/var/www/html/apps-extra/appid ghcr.io/juliusknorr/nextcloud-dev-php81:latest
```
The `SERVER_BRANCH` environment variable can be used to run different versions of Nextcloud by specifying either a server branch or git tag.
```bash
docker run --rm -p 8080:80 -e SERVER_BRANCH=v24.0.1 ghcr.io/juliushaertl/nextcloud-dev-php80:latest
docker run --rm -p 8080:80 -e SERVER_BRANCH=v24.0.1 ghcr.io/juliusknorr/nextcloud-dev-php81:latest
```
You can also mount your local server source code into the container to run a local version of Nextcloud:
```bash
docker run --rm -p 8080:80 -e SERVER_BRANCH=v24.0.1 -v /tmp/server:/var/www/html ghcr.io/juliushaertl/nextcloud-dev-php80:latest
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
```
## More features
You can find documentation for more advanced features in [nextcloud-docker-dev documentation](https://juliushaertl.github.io/nextcloud-docker-dev/) for example:
You can find documentation for more advanced features in [nextcloud-docker-dev documentation](https://juliusknorr.github.io/nextcloud-docker-dev/) for example:
- Running stable Nextcloud versions in parallel
- Using different database backends
+8 -8
View File
@@ -11,7 +11,7 @@ APPS_CLONE_FILTER=
print_help() {
cat << EOF
boottrap.sh [--full-clone|--clone-no-blobs] [--clone-all-apps-filtered] [--] APPS
bootstrap.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 stable26 stable27 stable28
for i in stable29 stable30 stable31 stable32 stable33
do
echo "Stable $i repository path: ${STABLE_ROOT_PATH}/${i}"
STABLE_VERSION=$(grep "OC_VersionString" "${STABLE_ROOT_PATH}/${i}/version.php" | cut -d "'" -f 2)
@@ -102,7 +102,7 @@ case $SERVER_CLONE in
squashed)
CLONE_PARAMS=(--depth 1)
;;
clone-no-blobs)
filter-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 --depth 1 workspace/server --progress 2>&1 &&
git clone ${CLONE_PARAMS[@]+"${CLONE_PARAMS[@]}"} https://github.com/nextcloud/server.git 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/juliushaertl/nextcloud-docker-dev
https://github.com/juliusknorr/nextcloud-docker-dev
EOF
View File
+324 -65
View File
@@ -1,17 +1,16 @@
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/juliushaertl/nextcloud-dev-nginx:latest
image: ghcr.io/juliusknorr/nextcloud-dev-nginx:latest
ports:
- "${PROXY_PORT_HTTP:-80}:80"
- "${PROXY_PORT_HTTPS:-443}:443"
- "${IP_BIND:-127.0.0.1}:${PROXY_PORT_HTTP:-80}:80"
- "${IP_BIND:-127.0.0.1}:${PROXY_PORT_HTTPS:-443}:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- ${DOCKER_SOCKET-/var/run/docker.sock}:/tmp/docker.sock:ro
- ./data/ssl/:/etc/nginx/certs
- ./data/nginx/vhost.d/:/etc/nginx/vhost.d
environment:
DHPARAM_BITS: 2048
DHPARAM_GENERATION: "false"
@@ -39,7 +38,15 @@ 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}
@@ -57,6 +64,9 @@ 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
@@ -68,7 +78,7 @@ services:
- ./docker/configs/haproxy.conf:/usr/local/etc/haproxy/haproxy.cfg:ro
nextcloud:
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
environment:
SQL: ${SQL:-mysql}
NEXTCLOUD_AUTOINSTALL: ${NEXTCLOUD_AUTOINSTALL:-YES}
@@ -100,9 +110,9 @@ services:
- host.docker.internal:host-gateway
nextcloud2:
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
environment:
SQL: 'mysql'
SQL: ${SQL:-mysql}
VIRTUAL_HOST: "nextcloud2${DOMAIN_SUFFIX}"
PHP_XDEBUG_MODE: ${PHP_XDEBUG_MODE:-develop}
volumes:
@@ -116,7 +126,7 @@ services:
- ./data/additional.config.php:/var/www/html/config/additional.config.php:ro
- ./data/shared:/shared
ports:
- "${PORTBASE:-800}1:80"
- "${IP_BIND:-127.0.0.1}:${PORTBASE:-800}1:80"
depends_on:
- database-${SQL:-mysql}
- redis
@@ -126,7 +136,7 @@ services:
- host.docker.internal:host-gateway
nextcloud3:
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
environment:
SQL: ${SQL:-mysql}
VIRTUAL_HOST: "nextcloud3${DOMAIN_SUFFIX}"
@@ -150,7 +160,7 @@ services:
- host.docker.internal:host-gateway
stable16:
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-73}:latest
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-73}:latest
environment:
SQL: ${SQL:-mysql}
NEXTCLOUD_AUTOINSTALL: "YES"
@@ -179,7 +189,7 @@ services:
- host.docker.internal:host-gateway
stable17:
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-73}:latest
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-73}:latest
environment:
SQL: ${SQL:-mysql}
NEXTCLOUD_AUTOINSTALL: "YES"
@@ -208,7 +218,7 @@ services:
- host.docker.internal:host-gateway
stable18:
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-74}:latest
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-74}:latest
environment:
SQL: ${SQL:-mysql}
NEXTCLOUD_AUTOINSTALL: "YES"
@@ -237,7 +247,7 @@ services:
- host.docker.internal:host-gateway
stable19:
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-74}:latest
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-74}:latest
environment:
SQL: ${SQL:-mysql}
NEXTCLOUD_AUTOINSTALL: "YES"
@@ -266,7 +276,7 @@ services:
- host.docker.internal:host-gateway
stable20:
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-74}:latest
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-74}:latest
environment:
SQL: ${SQL:-mysql}
NEXTCLOUD_AUTOINSTALL: "YES"
@@ -295,7 +305,7 @@ services:
- host.docker.internal:host-gateway
stable21:
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-80}:latest
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-80}:latest
environment:
SQL: ${SQL:-mysql}
NEXTCLOUD_AUTOINSTALL: "YES"
@@ -325,7 +335,7 @@ services:
- host.docker.internal:host-gateway
stable22:
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-80}:latest
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-80}:latest
environment:
SQL: ${SQL:-mysql}
NEXTCLOUD_AUTOINSTALL: "YES"
@@ -355,7 +365,7 @@ services:
- host.docker.internal:host-gateway
stable23:
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-80}:latest
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-80}:latest
environment:
SQL: ${SQL:-mysql}
NEXTCLOUD_AUTOINSTALL: "YES"
@@ -385,7 +395,7 @@ services:
- host.docker.internal:host-gateway
stable24:
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-80}:latest
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-80}:latest
environment:
SQL: ${SQL:-mysql}
NEXTCLOUD_AUTOINSTALL: "YES"
@@ -415,7 +425,7 @@ services:
- host.docker.internal:host-gateway
stable25:
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
environment:
SQL: ${SQL:-mysql}
NEXTCLOUD_AUTOINSTALL: "YES"
@@ -445,7 +455,7 @@ services:
- host.docker.internal:host-gateway
stable26:
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
environment:
SQL: ${SQL:-mysql}
NEXTCLOUD_AUTOINSTALL: "YES"
@@ -475,7 +485,7 @@ services:
- host.docker.internal:host-gateway
stable27:
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
environment:
SQL: ${SQL:-mysql}
NEXTCLOUD_AUTOINSTALL: "YES"
@@ -505,7 +515,7 @@ services:
- host.docker.internal:host-gateway
stable28:
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
environment:
SQL: ${SQL:-mysql}
NEXTCLOUD_AUTOINSTALL: "YES"
@@ -535,7 +545,7 @@ services:
- host.docker.internal:host-gateway
stable29:
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
environment:
SQL: ${SQL:-mysql}
NEXTCLOUD_AUTOINSTALL: "YES"
@@ -564,8 +574,128 @@ 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: rwgrim/docker-noop
image: ghcr.io/juliusknorr/nextcloud-dev-noop:latest
database-mysql:
image: mariadb:10.6
@@ -578,14 +708,14 @@ services:
'--wait_timeout=28800',
]
ports:
- "${PORTBASE:-800}2:3306"
- "${IP_BIND:-127.0.0.1}:${PORTBASE:-800}2:3306"
volumes:
- mysql:/var/lib/mysql
database-mariadb-primary:
image: docker.io/bitnami/mariadb:10.6
ports:
- '3306'
- "${IP_BIND:-127.0.0.1}:3306:3306"
volumes:
- 'mariadb_primary_data:/bitnami/mariadb'
environment:
@@ -600,7 +730,7 @@ services:
database-mariadb-replica:
image: docker.io/bitnami/mariadb:10.6
ports:
- '3306'
- "${IP_BIND:-127.0.0.1}:3306:3306"
depends_on:
- database-mariadb-primary
environment:
@@ -621,7 +751,7 @@ services:
volumes:
- './docker/maxscale/my-maxscale.cnf:/etc/maxscale.cnf.d/my-maxscale.cnf'
ports:
- '3306'
- "${IP_BIND:-127.0.0.1}:3306:3306"
database-pgsql:
image: postgres:latest
@@ -629,19 +759,18 @@ services:
POSTGRES_DB: nextcloud
POSTGRES_PASSWORD: postgres
ports:
- "${PORTBASE:-800}2:5432"
- "${IP_BIND:-127.0.0.1}:${PORTBASE:-800}2:5432"
volumes:
- postgres:/var/lib/postgresql
database-oci:
image: ghcr.io/gvenzl/oracle-xe:21
image: gvenzl/oracle-free:23
environment:
ORACLE_PASSWORD: nextcloud
APP_USER: nextcloud
APP_USER_PASSWORD: nextcloud
ORACLE_DATABASE: nextcloud
ORACLE_PASSWORD: oracle
ports:
- 1521:1521/tcp
- "${IP_BIND:-127.0.0.1}:1521:1521"
volumes:
- oracle:/opt/oracle/oradata
pgadmin:
container_name: pgadmin_container
@@ -659,7 +788,7 @@ services:
- ${PROXY_SERVICE:-proxy}
redis:
image: redis:7
image: redis:8
volumes:
- redis:/data
@@ -670,7 +799,7 @@ services:
- 389
- 636
ports:
- 3389:389
- "${IP_BIND:-127.0.0.1}:3389:389"
environment:
LDAP_DOMAIN: planetexpress.com
LDAP_BASE_DN: dc=planetexpress,dc=com
@@ -685,6 +814,7 @@ services:
PMA_HOST: database-mysql
PMA_USER: root
PMA_PASSWORD: nextcloud
UPLOAD_LIMIT: 512M
ldapadmin:
image: osixia/phpldapadmin
@@ -692,10 +822,10 @@ services:
PHPLDAPADMIN_LDAP_HOSTS: ldap
PHPLDAPADMIN_HTTPS: 'false'
ports:
- "${PORTBASE:-800}8:80"
- "${IP_BIND:-127.0.0.1}:${PORTBASE:-800}8:80"
saml:
image: unicon/simplesamlphp
image: unicon/simplesamlphp
volumes:
- ./docker/configs/var-simplesamlphp/config:/var/simplesamlphp/config
- ./docker/configs/var-simplesamlphp/cert:/var/simplesamlphp/cert
@@ -706,16 +836,23 @@ services:
- 80
mail:
image: ghcr.io/juliushaertl/nextcloud-dev-mailhog:latest
image: ghcr.io/juliusknorr/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:
- 139
- 445
- "${IP_BIND:-127.0.0.1}:139:139"
- "${IP_BIND:-127.0.0.1}:445:445"
environment:
# -u "<username;password>[;ID;group;GID]"
USER: "admin;admin"
@@ -732,7 +869,7 @@ services:
blackfire:
image: blackfire/blackfire:2
ports:
- 8307:8307
- "${IP_BIND:-127.0.0.1}:8307:8307"
environment:
- BLACKFIRE_SERVER_ID
- BLACKFIRE_SERVER_TOKEN
@@ -756,6 +893,11 @@ 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
@@ -793,14 +935,27 @@ services:
image: minio/minio
environment:
VIRTUAL_HOST: minio${DOMAIN_SUFFIX}
VIRTUAL_PORT: 9001
VIRTUAL_PORT: 9000
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: nextcloud
MINIO_BROWSER_REDIRECT_URL: ${PROTOCOL}://minio${DOMAIN_SUFFIX}
ports:
- "9001:9001"
volumes:
- objectstorage_minio:/data
command: server /data --console-address :9001
rustfs:
image: rustfs/rustfs:latest
environment:
VIRTUAL_HOST: rustfs${DOMAIN_SUFFIX}
VIRTUAL_PORT: 9001
RUSTFS_ACCESS_KEY: nextcloud
RUSTFS_SECRET_KEY: nextcloud
RUSTFS_CONSOLE_ENABLE: "true"
volumes:
- objectstorage_rustfs:/data
elasticsearch:
build:
context: ./docker
@@ -828,7 +983,7 @@ services:
elasticsearch-ui:
image: appbaseio/dejavu
ports:
- 1358:1358
- "${IP_BIND:-127.0.0.1}:1358:1358"
expose:
- 1358
environment:
@@ -838,7 +993,7 @@ services:
push:
image: ghcr.io/juliushaertl/nextcloud-dev-push:latest
image: ghcr.io/juliusknorr/nextcloud-dev-push:latest
environment:
RUST_LOG: debug
VIRTUAL_HOST: push${DOMAIN_SUFFIX}
@@ -848,18 +1003,21 @@ services:
NEXTCLOUD_URL: http://nextcloud
keycloak:
image: quay.io/keycloak/keycloak:25.0
image: ghcr.io/juliusknorr/nextcloud-dev-keycloak:latest
expose:
- 8080
volumes:
- ./docker/configs/keycloak:/opt/keycloak/data/import
command: start-dev --import-realm
# volumes:
# - ./docker/configs/keycloak:/opt/keycloak/data/import
command: start-dev --import-realm --http-enabled=true --proxy-headers xforwarded
environment:
PROTOCOL: "${PROTOCOL:-http}"
DOMAIN_SUFFIX: "${DOMAIN_SUFFIX:-.local}"
VIRTUAL_HOST: "keycloak${DOMAIN_SUFFIX}"
VIRTUAL_PORT: 8080
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: admin
PROXY_ADDRESS_FORWARDING: "true"
KC_BOOTSTRAP_ADMIN_USERNAME: admin
KC_BOOTSTRAP_ADMIN_PASSWORD: admin
KEYCLOAK_PROXY_ADDRESS_FORWARDING: "true"
KEYCLOAK_FRONTEND_URL: "${PROTOCOL:-http}://keycloak${DOMAIN_SUFFIX}"
KC_PROXY: edge
av:
@@ -870,7 +1028,7 @@ services:
- clam:/var/lib/clamav
portal:
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
environment:
VIRTUAL_HOST: portal${DOMAIN_SUFFIX}
SQL: 'mysql'
@@ -892,7 +1050,7 @@ services:
- host.docker.internal:host-gateway
gs1:
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
environment:
VIRTUAL_HOST: gs1${DOMAIN_SUFFIX}
SQL: 'mysql'
@@ -915,7 +1073,7 @@ services:
- host.docker.internal:host-gateway
gs2:
image: ghcr.io/juliushaertl/nextcloud-dev-php${PHP_VERSION:-81}:latest
image: ghcr.io/juliusknorr/nextcloud-dev-php${PHP_VERSION:-82}:latest
environment:
VIRTUAL_HOST: gs2${DOMAIN_SUFFIX}
SQL: 'mysql'
@@ -938,7 +1096,7 @@ services:
- host.docker.internal:host-gateway
lookup:
image: ghcr.io/juliushaertl/nextcloud-dev-lookupserver:latest
image: ghcr.io/juliusknorr/nextcloud-dev-lookupserver:latest
environment:
VIRTUAL_HOST: "lookup${DOMAIN_SUFFIX}"
# volumes:
@@ -950,7 +1108,7 @@ services:
cap_drop:
- ALL
ports:
- 8888:8888
- "${IP_BIND:-127.0.0.1}:8888:8888"
environment:
MAX_CLIENTS: 100
ALLOWED_NETWORKS: 0.0.0.0/0
@@ -971,9 +1129,9 @@ services:
previews_hpb:
image: nextcloud/aio-imaginary:latest
image: ghcr.io/nextcloud-releases/aio-imaginary:latest
ports:
- "8088:8088"
- "${IP_BIND:-127.0.0.1}:8088:8088"
environment:
- PORT=8088
@@ -992,10 +1150,10 @@ services:
INTERNAL_SHARED_SECRET_KEY: "4567"
talk-janus:
image: ghcr.io/juliushaertl/nextcloud-dev-talk-janus:latest
image: ghcr.io/juliusknorr/nextcloud-dev-talk-janus:latest
talk-recording:
image: nextcloud/aio-talk-recording:latest
image: ghcr.io/nextcloud-releases/aio-talk-recording:latest
environment:
NC_DOMAIN: "nextcloud${DOMAIN_SUFFIX}"
ALLOW_ALL: "true"
@@ -1008,13 +1166,111 @@ 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:
@@ -1025,11 +1281,14 @@ volumes:
document_data:
document_log:
objectstorage_minio:
objectstorage_rustfs:
smb:
smbhomes:
elasticsearch_data:
clam:
mariadb_primary_data:
authentik-database:
driver: local
networks:
default:
+29 -22
View File
@@ -11,7 +11,6 @@ RUN install-php-extensions \
exif \
gd \
gmp \
imagick \
intl \
ldap \
memcached \
@@ -30,22 +29,37 @@ RUN install-php-extensions \
# dev tools separate install so we quickly change without rebuilding all php extensions
RUN apt update && apt-get install -y --no-install-recommends \
git curl vim sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
git \
curl \
vim-tiny \
nano \
sudo \
cron \
smbclient \
iproute2 \
lnav \
wget \
iputils-ping \
gnupg2 \
jq \
ripgrep \
rsync \
&& rm -rf /var/lib/apt/lists/*
# Install PHPUnit
RUN wget -O /usr/local/bin/phpunit8 https://phar.phpunit.de/phpunit-8.phar \
&& chmod +x /usr/local/bin/phpunit8 \
&& wget -O /usr/local/bin/phpunit9 https://phar.phpunit.de/phpunit-9.phar \
&& chmod +x /usr/local/bin/phpunit9 \
&& ln -s /usr/local/bin/phpunit9 /usr/local/bin/phpunit
RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \
&& chmod +x /usr/local/bin/phpunit11 \
&& wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \
&& chmod +x /usr/local/bin/phpunit12 \
&& ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit
# Install NVM
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
&& export NVM_DIR="/root/.nvm" \
&& . "$NVM_DIR/nvm.sh" \
&& nvm install 14 && nvm install 16 && nvm install 20 \
&& nvm alias default 20
&& nvm install node \
&& nvm alias default node \
&& nvm cache clear
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
@@ -64,14 +78,7 @@ ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini
ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
# Setup blackfire probe
RUN wget -q -O - https://packages.blackfire.io/gpg.key | sudo apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list \
&& apt-get update \
&& (apt-get install -y --no-install-recommends blackfire \
&& mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled \
&& printf "\n\nblackfire.agent_socket=tcp://blackfire:8307\n" >> $PHP_INI_DIR/conf.d/zz-blackfire.ini) \
|| echo "Skipped blackfire as the installation failed" \
&& rm -rf /var/lib/apt/lists/*
RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
@@ -86,16 +93,16 @@ VOLUME /var/www/html/apps-writable
VOLUME /var/www/html/config
VOLUME /var/www/html/data
ENV SQL sqlite
ENV NEXTCLOUD_AUTOINSTALL YES
ENV WITH_REDIS NO
ENV SQL=sqlite
ENV NEXTCLOUD_AUTOINSTALL=YES
ENV WITH_REDIS=NO
ENV WEBROOT /var/www/html
ENV WEBROOT=/var/www/html
WORKDIR /var/www/html
ENTRYPOINT ["/usr/local/bin/bootstrap.sh"]
CMD ["apache2-foreground"]
ADD data/installing.html /root/installing.html
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/redis.config.php configs/apcu.config.php /root/
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
+29 -22
View File
@@ -11,7 +11,6 @@ RUN install-php-extensions \
exif \
gd \
gmp \
imagick \
intl \
ldap \
memcached \
@@ -30,22 +29,37 @@ RUN install-php-extensions \
# dev tools separate install so we quickly change without rebuilding all php extensions
RUN apt update && apt-get install -y --no-install-recommends \
git curl vim sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
git \
curl \
vim-tiny \
nano \
sudo \
cron \
smbclient \
iproute2 \
lnav \
wget \
iputils-ping \
gnupg2 \
jq \
ripgrep \
rsync \
&& rm -rf /var/lib/apt/lists/*
# Install PHPUnit
RUN wget -O /usr/local/bin/phpunit8 https://phar.phpunit.de/phpunit-8.phar \
&& chmod +x /usr/local/bin/phpunit8 \
&& wget -O /usr/local/bin/phpunit9 https://phar.phpunit.de/phpunit-9.phar \
&& chmod +x /usr/local/bin/phpunit9 \
&& ln -s /usr/local/bin/phpunit9 /usr/local/bin/phpunit
RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \
&& chmod +x /usr/local/bin/phpunit11 \
&& wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \
&& chmod +x /usr/local/bin/phpunit12 \
&& ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit
# Install NVM
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
&& export NVM_DIR="/root/.nvm" \
&& . "$NVM_DIR/nvm.sh" \
&& nvm install 14 && nvm install 16 && nvm install 20 \
&& nvm alias default 20
&& nvm install node \
&& nvm alias default node \
&& nvm cache clear
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
@@ -64,14 +78,7 @@ ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini
ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
# Setup blackfire probe
RUN wget -q -O - https://packages.blackfire.io/gpg.key | sudo apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list \
&& apt-get update \
&& (apt-get install -y --no-install-recommends blackfire \
&& mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled \
&& printf "\n\nblackfire.agent_socket=tcp://blackfire:8307\n" >> $PHP_INI_DIR/conf.d/zz-blackfire.ini) \
|| echo "Skipped blackfire as the installation failed" \
&& rm -rf /var/lib/apt/lists/*
RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
@@ -86,16 +93,16 @@ VOLUME /var/www/html/apps-writable
VOLUME /var/www/html/config
VOLUME /var/www/html/data
ENV SQL sqlite
ENV NEXTCLOUD_AUTOINSTALL YES
ENV WITH_REDIS NO
ENV SQL=sqlite
ENV NEXTCLOUD_AUTOINSTALL=YES
ENV WITH_REDIS=NO
ENV WEBROOT /var/www/html
ENV WEBROOT=/var/www/html
WORKDIR /var/www/html
ENTRYPOINT ["/usr/local/bin/bootstrap.sh"]
CMD ["apache2-foreground"]
ADD data/installing.html /root/installing.html
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/redis.config.php configs/apcu.config.php /root/
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
+29 -22
View File
@@ -11,7 +11,6 @@ RUN install-php-extensions \
exif \
gd \
gmp \
imagick \
intl \
ldap \
memcached \
@@ -30,22 +29,37 @@ RUN install-php-extensions \
# dev tools separate install so we quickly change without rebuilding all php extensions
RUN apt update && apt-get install -y --no-install-recommends \
git curl vim sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
git \
curl \
vim-tiny \
nano \
sudo \
cron \
smbclient \
iproute2 \
lnav \
wget \
iputils-ping \
gnupg2 \
jq \
ripgrep \
rsync \
&& rm -rf /var/lib/apt/lists/*
# Install PHPUnit
RUN wget -O /usr/local/bin/phpunit8 https://phar.phpunit.de/phpunit-8.phar \
&& chmod +x /usr/local/bin/phpunit8 \
&& wget -O /usr/local/bin/phpunit9 https://phar.phpunit.de/phpunit-9.phar \
&& chmod +x /usr/local/bin/phpunit9 \
&& ln -s /usr/local/bin/phpunit9 /usr/local/bin/phpunit
RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \
&& chmod +x /usr/local/bin/phpunit11 \
&& wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \
&& chmod +x /usr/local/bin/phpunit12 \
&& ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit
# Install NVM
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
&& export NVM_DIR="/root/.nvm" \
&& . "$NVM_DIR/nvm.sh" \
&& nvm install 14 && nvm install 16 && nvm install 20 \
&& nvm alias default 20
&& nvm install node \
&& nvm alias default node \
&& nvm cache clear
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
@@ -64,14 +78,7 @@ ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini
ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
# Setup blackfire probe
RUN wget -q -O - https://packages.blackfire.io/gpg.key | sudo apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list \
&& apt-get update \
&& (apt-get install -y --no-install-recommends blackfire \
&& mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled \
&& printf "\n\nblackfire.agent_socket=tcp://blackfire:8307\n" >> $PHP_INI_DIR/conf.d/zz-blackfire.ini) \
|| echo "Skipped blackfire as the installation failed" \
&& rm -rf /var/lib/apt/lists/*
RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
@@ -86,16 +93,16 @@ VOLUME /var/www/html/apps-writable
VOLUME /var/www/html/config
VOLUME /var/www/html/data
ENV SQL sqlite
ENV NEXTCLOUD_AUTOINSTALL YES
ENV WITH_REDIS NO
ENV SQL=sqlite
ENV NEXTCLOUD_AUTOINSTALL=YES
ENV WITH_REDIS=NO
ENV WEBROOT /var/www/html
ENV WEBROOT=/var/www/html
WORKDIR /var/www/html
ENTRYPOINT ["/usr/local/bin/bootstrap.sh"]
CMD ["apache2-foreground"]
ADD data/installing.html /root/installing.html
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/redis.config.php configs/apcu.config.php /root/
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
+29 -22
View File
@@ -11,7 +11,6 @@ RUN install-php-extensions \
exif \
gd \
gmp \
imagick \
intl \
ldap \
memcached \
@@ -30,22 +29,37 @@ RUN install-php-extensions \
# dev tools separate install so we quickly change without rebuilding all php extensions
RUN apt update && apt-get install -y --no-install-recommends \
git curl vim sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
git \
curl \
vim-tiny \
nano \
sudo \
cron \
smbclient \
iproute2 \
lnav \
wget \
iputils-ping \
gnupg2 \
jq \
ripgrep \
rsync \
&& rm -rf /var/lib/apt/lists/*
# Install PHPUnit
RUN wget -O /usr/local/bin/phpunit8 https://phar.phpunit.de/phpunit-8.phar \
&& chmod +x /usr/local/bin/phpunit8 \
&& wget -O /usr/local/bin/phpunit9 https://phar.phpunit.de/phpunit-9.phar \
&& chmod +x /usr/local/bin/phpunit9 \
&& ln -s /usr/local/bin/phpunit9 /usr/local/bin/phpunit
RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \
&& chmod +x /usr/local/bin/phpunit11 \
&& wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \
&& chmod +x /usr/local/bin/phpunit12 \
&& ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit
# Install NVM
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
&& export NVM_DIR="/root/.nvm" \
&& . "$NVM_DIR/nvm.sh" \
&& nvm install 14 && nvm install 16 && nvm install 20 \
&& nvm alias default 20
&& nvm install node \
&& nvm alias default node \
&& nvm cache clear
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
@@ -64,14 +78,7 @@ ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini
ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
# Setup blackfire probe
RUN wget -q -O - https://packages.blackfire.io/gpg.key | sudo apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list \
&& apt-get update \
&& (apt-get install -y --no-install-recommends blackfire \
&& mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled \
&& printf "\n\nblackfire.agent_socket=tcp://blackfire:8307\n" >> $PHP_INI_DIR/conf.d/zz-blackfire.ini) \
|| echo "Skipped blackfire as the installation failed" \
&& rm -rf /var/lib/apt/lists/*
RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
@@ -86,16 +93,16 @@ VOLUME /var/www/html/apps-writable
VOLUME /var/www/html/config
VOLUME /var/www/html/data
ENV SQL sqlite
ENV NEXTCLOUD_AUTOINSTALL YES
ENV WITH_REDIS NO
ENV SQL=sqlite
ENV NEXTCLOUD_AUTOINSTALL=YES
ENV WITH_REDIS=NO
ENV WEBROOT /var/www/html
ENV WEBROOT=/var/www/html
WORKDIR /var/www/html
ENTRYPOINT ["/usr/local/bin/bootstrap.sh"]
CMD ["apache2-foreground"]
ADD data/installing.html /root/installing.html
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/redis.config.php configs/apcu.config.php /root/
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
+29 -22
View File
@@ -11,7 +11,6 @@ RUN install-php-extensions \
exif \
gd \
gmp \
imagick \
intl \
ldap \
memcached \
@@ -30,22 +29,37 @@ RUN install-php-extensions \
# dev tools separate install so we quickly change without rebuilding all php extensions
RUN apt update && apt-get install -y --no-install-recommends \
git curl vim sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
git \
curl \
vim-tiny \
nano \
sudo \
cron \
smbclient \
iproute2 \
lnav \
wget \
iputils-ping \
gnupg2 \
jq \
ripgrep \
rsync \
&& rm -rf /var/lib/apt/lists/*
# Install PHPUnit
RUN wget -O /usr/local/bin/phpunit8 https://phar.phpunit.de/phpunit-8.phar \
&& chmod +x /usr/local/bin/phpunit8 \
&& wget -O /usr/local/bin/phpunit9 https://phar.phpunit.de/phpunit-9.phar \
&& chmod +x /usr/local/bin/phpunit9 \
&& ln -s /usr/local/bin/phpunit9 /usr/local/bin/phpunit
RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \
&& chmod +x /usr/local/bin/phpunit11 \
&& wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \
&& chmod +x /usr/local/bin/phpunit12 \
&& ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit
# Install NVM
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
&& export NVM_DIR="/root/.nvm" \
&& . "$NVM_DIR/nvm.sh" \
&& nvm install 14 && nvm install 16 && nvm install 20 \
&& nvm alias default 20
&& nvm install node \
&& nvm alias default node \
&& nvm cache clear
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
@@ -64,14 +78,7 @@ ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini
ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
# Setup blackfire probe
RUN wget -q -O - https://packages.blackfire.io/gpg.key | sudo apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list \
&& apt-get update \
&& (apt-get install -y --no-install-recommends blackfire \
&& mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled \
&& printf "\n\nblackfire.agent_socket=tcp://blackfire:8307\n" >> $PHP_INI_DIR/conf.d/zz-blackfire.ini) \
|| echo "Skipped blackfire as the installation failed" \
&& rm -rf /var/lib/apt/lists/*
RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
@@ -86,16 +93,16 @@ VOLUME /var/www/html/apps-writable
VOLUME /var/www/html/config
VOLUME /var/www/html/data
ENV SQL sqlite
ENV NEXTCLOUD_AUTOINSTALL YES
ENV WITH_REDIS NO
ENV SQL=sqlite
ENV NEXTCLOUD_AUTOINSTALL=YES
ENV WITH_REDIS=NO
ENV WEBROOT /var/www/html
ENV WEBROOT=/var/www/html
WORKDIR /var/www/html
ENTRYPOINT ["/usr/local/bin/bootstrap.sh"]
CMD ["apache2-foreground"]
ADD data/installing.html /root/installing.html
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/redis.config.php configs/apcu.config.php /root/
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
+29 -22
View File
@@ -11,7 +11,6 @@ RUN install-php-extensions \
exif \
gd \
gmp \
imagick \
intl \
ldap \
memcached \
@@ -30,22 +29,37 @@ RUN install-php-extensions \
# dev tools separate install so we quickly change without rebuilding all php extensions
RUN apt update && apt-get install -y --no-install-recommends \
git curl vim sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
git \
curl \
vim-tiny \
nano \
sudo \
cron \
smbclient \
iproute2 \
lnav \
wget \
iputils-ping \
gnupg2 \
jq \
ripgrep \
rsync \
&& rm -rf /var/lib/apt/lists/*
# Install PHPUnit
RUN wget -O /usr/local/bin/phpunit8 https://phar.phpunit.de/phpunit-8.phar \
&& chmod +x /usr/local/bin/phpunit8 \
&& wget -O /usr/local/bin/phpunit9 https://phar.phpunit.de/phpunit-9.phar \
&& chmod +x /usr/local/bin/phpunit9 \
&& ln -s /usr/local/bin/phpunit9 /usr/local/bin/phpunit
RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \
&& chmod +x /usr/local/bin/phpunit11 \
&& wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \
&& chmod +x /usr/local/bin/phpunit12 \
&& ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit
# Install NVM
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
&& export NVM_DIR="/root/.nvm" \
&& . "$NVM_DIR/nvm.sh" \
&& nvm install 14 && nvm install 16 && nvm install 20 \
&& nvm alias default 20
&& nvm install node \
&& nvm alias default node \
&& nvm cache clear
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
@@ -64,14 +78,7 @@ ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini
ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
# Setup blackfire probe
RUN wget -q -O - https://packages.blackfire.io/gpg.key | sudo apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list \
&& apt-get update \
&& (apt-get install -y --no-install-recommends blackfire \
&& mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled \
&& printf "\n\nblackfire.agent_socket=tcp://blackfire:8307\n" >> $PHP_INI_DIR/conf.d/zz-blackfire.ini) \
|| echo "Skipped blackfire as the installation failed" \
&& rm -rf /var/lib/apt/lists/*
RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
@@ -86,16 +93,16 @@ VOLUME /var/www/html/apps-writable
VOLUME /var/www/html/config
VOLUME /var/www/html/data
ENV SQL sqlite
ENV NEXTCLOUD_AUTOINSTALL YES
ENV WITH_REDIS NO
ENV SQL=sqlite
ENV NEXTCLOUD_AUTOINSTALL=YES
ENV WITH_REDIS=NO
ENV WEBROOT /var/www/html
ENV WEBROOT=/var/www/html
WORKDIR /var/www/html
ENTRYPOINT ["/usr/local/bin/bootstrap.sh"]
CMD ["apache2-foreground"]
ADD data/installing.html /root/installing.html
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/redis.config.php configs/apcu.config.php /root/
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
+29 -22
View File
@@ -11,7 +11,6 @@ RUN install-php-extensions \
exif \
gd \
gmp \
imagick \
intl \
ldap \
memcached \
@@ -30,22 +29,37 @@ RUN install-php-extensions \
# dev tools separate install so we quickly change without rebuilding all php extensions
RUN apt update && apt-get install -y --no-install-recommends \
git curl vim sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
git \
curl \
vim-tiny \
nano \
sudo \
cron \
smbclient \
iproute2 \
lnav \
wget \
iputils-ping \
gnupg2 \
jq \
ripgrep \
rsync \
&& rm -rf /var/lib/apt/lists/*
# Install PHPUnit
RUN wget -O /usr/local/bin/phpunit8 https://phar.phpunit.de/phpunit-8.phar \
&& chmod +x /usr/local/bin/phpunit8 \
&& wget -O /usr/local/bin/phpunit9 https://phar.phpunit.de/phpunit-9.phar \
&& chmod +x /usr/local/bin/phpunit9 \
&& ln -s /usr/local/bin/phpunit9 /usr/local/bin/phpunit
RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \
&& chmod +x /usr/local/bin/phpunit11 \
&& wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \
&& chmod +x /usr/local/bin/phpunit12 \
&& ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit
# Install NVM
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
&& export NVM_DIR="/root/.nvm" \
&& . "$NVM_DIR/nvm.sh" \
&& nvm install 14 && nvm install 16 && nvm install 20 \
&& nvm alias default 20
&& nvm install node \
&& nvm alias default node \
&& nvm cache clear
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
@@ -64,14 +78,7 @@ ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini
ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
# Setup blackfire probe
RUN wget -q -O - https://packages.blackfire.io/gpg.key | sudo apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list \
&& apt-get update \
&& (apt-get install -y --no-install-recommends blackfire \
&& mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled \
&& printf "\n\nblackfire.agent_socket=tcp://blackfire:8307\n" >> $PHP_INI_DIR/conf.d/zz-blackfire.ini) \
|| echo "Skipped blackfire as the installation failed" \
&& rm -rf /var/lib/apt/lists/*
RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
@@ -86,16 +93,16 @@ VOLUME /var/www/html/apps-writable
VOLUME /var/www/html/config
VOLUME /var/www/html/data
ENV SQL sqlite
ENV NEXTCLOUD_AUTOINSTALL YES
ENV WITH_REDIS NO
ENV SQL=sqlite
ENV NEXTCLOUD_AUTOINSTALL=YES
ENV WITH_REDIS=NO
ENV WEBROOT /var/www/html
ENV WEBROOT=/var/www/html
WORKDIR /var/www/html
ENTRYPOINT ["/usr/local/bin/bootstrap.sh"]
CMD ["apache2-foreground"]
ADD data/installing.html /root/installing.html
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/redis.config.php configs/apcu.config.php /root/
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
+22 -6
View File
@@ -41,6 +41,11 @@ 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
@@ -100,7 +105,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 2
sleep 45
;;
"sqlite")
output " - SQLite"
@@ -222,7 +227,11 @@ configure_add_user() {
install() {
DBNAME=$(echo "$VIRTUAL_HOST" | cut -d '.' -f1)
if [ -n "$VIRTUAL_HOST" ]; then
DBNAME=$(echo "$VIRTUAL_HOST" | cut -d '.' -f1)
else
DBNAME="nextcloud"
fi
SQLHOST="database-$SQL"
echo "database name will be $DBNAME"
@@ -233,7 +242,7 @@ install() {
output "🔧 Starting auto installation"
if [ "$SQL" = "oci" ]; then
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
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
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
@@ -250,7 +259,14 @@ install() {
OCC maintenance:install --admin-user=$USER --admin-pass=$PASSWORD --database="$SQL"
fi;
output "🔧 Server installed"
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 "🔧 Provisioning apps"
OCC app:disable password_policy
@@ -356,8 +372,8 @@ add_hosts() {
setup() {
update_permission
configure_xdebug_mode
STATUS=$(OCC status)
if [[ "$STATUS" = *"installed: true"* ]] || [[ ! -f $WEBROOT/config/config.php ]]
if is_installed || [[ ! -f $WEBROOT/config/config.php ]]
then
output "🚀 Nextcloud already installed ... skipping setup"
+46
View File
@@ -109,3 +109,49 @@ if ($primary === 'minio-multibucket') {
),
];
}
if ($primary === 'rustfs') {
$CONFIG += [
'objectstore' =>
array (
'class' => 'OC\\Files\\ObjectStore\\S3',
'arguments' =>
array (
'bucket' => 'nc-' . $hostname,
'key' => 'nextcloud',
'secret' => 'nextcloud',
'hostname' => 'rustfs.local',
'port' => '80',
'proxy' => 'rustfs:9000',
'use_ssl' => false,
'use_path_style' => true,
'use_presigned_url' => true,
'autocreate' => true,
'verify_bucket_exists' => true,
),
)
];
}
if ($primary === 'rustfs-multibucket') {
$CONFIG += [
'objectstore_multibucket' => array(
'class' => 'OC\\Files\\ObjectStore\\S3',
'arguments' => array(
// optional, defaults to 64
'num_buckets' => 64,
// n integer in the range from 0 to (num_buckets-1) will be appended
'bucket' => 'nc-' . $hostname,
'key' => 'nextcloud',
'secret' => 'nextcloud',
'hostname' => 'rustfs.local',
'port' => '80',
'proxy' => 'rustfs:9000',
'use_presigned_url' => true,
'use_ssl' => false,
'use_path_style' => true,
),
),
];
}
-52
View File
@@ -1,52 +0,0 @@
<?php
// FIXME: Move everything except the last part to the containers
// set the hostname to the VIRTUAL_HOST set for the docker container, otherwise fallback to the docker hostname
$hostname = gethostname();
$primary = isset($_ENV['PRIMARY']) ? $_ENV['PRIMARY'] : '';
$virtualHost = isset($_ENV['VIRTUAL_HOST']) ? $_ENV['VIRTUAL_HOST'] : '';
$virtualHost = explode(".", $virtualHost);
if (count($virtualHost) > 0) {
$hostname = array_shift($virtualHost);
}
$CONFIG = [];
if ($primary === 'minio') {
$CONFIG += [
'objectstore' =>
array (
'class' => 'OC\\Files\\ObjectStore\\S3',
'arguments' =>
array (
'bucket' => 'nc-' . $hostname,
'key' => 'nextcloud',
'secret' => 'nextcloud',
'hostname' => 'minio',
'port' => '9000',
'use_ssl' => false,
'use_path_style' => true,
'autocreate' => true,
'verify_bucket_exists' => true,
),
)
];
}
if ($primary === 'minio-multibucket') {
$CONFIG += [
'objectstore_multibucket' => array(
'class' => 'OC\\Files\\ObjectStore\\S3',
'arguments' => array(
// optional, defaults to 64
'num_buckets' => 64,
// n integer in the range from 0 to (num_buckets-1) will be appended
'bucket' => 'nc-' . $hostname,
'key' => 'nextcloud',
'secret' => 'nextcloud',
'hostname' => 'minio',
'port' => '9000',
'use_ssl' => false,
'use_path_style' => true,
),
),
];
}
@@ -21,7 +21,7 @@ $config = array(
* external url, no matter where you come from (direct access or via the
* reverse proxy).
*/
'baseurlpath' => 'https://sso.local.dev.bitgrid.net/simplesaml/',
'baseurlpath' => 'https://sso.local/simplesaml/',
'certdir' => 'cert/',
'loggingdir' => 'log/',
'datadir' => 'data/',
@@ -1,6 +1,6 @@
<?php
$metadata['https://nextcloud.local.dev.bitgrid.net/index.php/apps/user_saml/saml/metadata'] = array (
'entityid' => 'https://nextcloud.local.dev.bitgrid.net/index.php/apps/user_saml/saml/metadata',
$metadata['https://nextcloud.local/index.php/apps/user_saml/saml/metadata'] = array (
'entityid' => 'https://nextcloud.local/index.php/apps/user_saml/saml/metadata',
'contacts' =>
array (
),
@@ -11,7 +11,7 @@ $metadata['https://nextcloud.local.dev.bitgrid.net/index.php/apps/user_saml/saml
0 =>
array (
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
'Location' => 'https://nextcloud.local.dev.bitgrid.net/index.php/apps/user_saml/saml/acs',
'Location' => 'https://nextcloud.local/index.php/apps/user_saml/saml/acs',
'index' => 1,
),
),
@@ -20,7 +20,7 @@ $metadata['https://nextcloud.local.dev.bitgrid.net/index.php/apps/user_saml/saml
0 =>
array (
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
'Location' => 'https://nextcloud.local.dev.bitgrid.net/index.php/apps/user_saml/saml/sls',
'Location' => 'https://nextcloud.local/index.php/apps/user_saml/saml/sls',
),
),
'NameIDFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified',
@@ -36,4 +36,4 @@ $metadata['https://nextcloud.local.dev.bitgrid.net/index.php/apps/user_saml/saml
),
'validate.authnrequest' => false,
'saml20.sign.assertion' => false,
);
);
+103 -72
View File
@@ -1,75 +1,106 @@
<!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;
}
.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>
<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>
+1 -1
View File
@@ -1,3 +1,3 @@
FROM elasticsearch:7.17.22
FROM elasticsearch:7.17.25
RUN bin/elasticsearch-plugin install --batch ingest-attachment
+9
View File
@@ -0,0 +1,9 @@
FROM quay.io/keycloak/keycloak:26.4
RUN mkdir -p /opt/keycloak/data/import
ADD keycloak/Example-realm.json /opt/keycloak/data/import/Example-realm.json
ADD keycloak/prepare.sh /opt/keycloak/bin/custom-kc.sh
ENTRYPOINT ["/opt/keycloak/bin/custom-kc.sh"]
@@ -511,7 +511,7 @@
"containerId" : "6b350bb7-8ea6-438b-be38-fb58f6523f45",
"attributes" : { }
} ],
"http://nextcloud.dev.local/index.php/apps/user_saml/saml/metadata" : [ ]
"http://nextcloud.local/index.php/apps/user_saml/saml/metadata" : [ ]
}
},
"groups" : [ ],
@@ -689,15 +689,15 @@
"optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ]
}, {
"id" : "555c2809-b153-4cf4-8bb1-a6306e5179c7",
"clientId" : "http://nextcloud.dev.local/index.php/apps/user_saml/saml/metadata",
"adminUrl" : "http://keycloak.dev.local/auth/realms/Example",
"clientId" : "http://nextcloud.local/index.php/apps/user_saml/saml/metadata",
"adminUrl" : "http://keycloak.local/auth/realms/Example",
"surrogateAuthRequired" : false,
"enabled" : true,
"alwaysDisplayInConsole" : false,
"clientAuthenticatorType" : "client-secret",
"secret" : "FipRMpAHMklMkZtbQfAKkUhxe7gkRZzR",
"redirectUris" : [ "http://nextcloud.dev.local/index.php/apps/user_saml/saml/acs" ],
"webOrigins" : [ "http://nextcloud.dev.local" ],
"redirectUris" : [ "http://nextcloud.local/index.php/apps/user_saml/saml/acs" ],
"webOrigins" : [ "http://nextcloud.local" ],
"notBefore" : 0,
"bearerOnly" : false,
"consentRequired" : false,
@@ -713,12 +713,12 @@
"client.secret.creation.time" : "1670752721",
"saml.force.post.binding" : "true",
"post.logout.redirect.uris" : "+",
"saml_assertion_consumer_url_post" : "http://nextcloud.dev.local/index.php/apps/user_saml/saml/acs",
"saml_assertion_consumer_url_post" : "http://nextcloud.local/index.php/apps/user_saml/saml/acs",
"saml.server.signature" : "true",
"saml.server.signature.keyinfo.ext" : "false",
"saml.signing.certificate" : "MIICvjCCAaYCCQDS+w+GXVpJsDANBgkqhkiG9w0BAQsFADAhMQswCQYDVQQGEwJERTESMBAGA1UECgwJZGV2LmxvY2FsMB4XDTIyMTIxMDA1MjgxMloXDTIzMDEwOTA1MjgxMlowITELMAkGA1UEBhMCREUxEjAQBgNVBAoMCWRldi5sb2NhbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOXPQ1YfI0aNUJEVdqFprGGtVMCZ5WIQsk7elS2KqljCHFX6eqpFR8FrQoZgcDVsi4zjX85bAdCPAW2ikfk5hNOypeJx1WSr7mtg/60p0m/T5Lim4QBCyItSARYulV9KYEijIYadTiFQJRE0PJKijlyOZ69FRt3lG+3vqE5xgQc+ZA59Pex7fB/R9jWwORxRMrzZQDP7cvKkvOlq13mR5WbCQkLXG0n6Fd2/Av27TNEP8gkITUlkrv7DkKoHcBRpUGLBuod+C/GM9aZYXxtlIStyIkz27ulsU7+VdNympFkEL+vzRrptW/S0C0RT4xKBbFeA+pCwgoIMeJsnBaAP2OkCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAOJ3+a1d06LN83gh3iNEvwWNudKVPi7MvyltW2WVBzQBoN2wCYC0crl7PRxXqACvpw2nE2qZaJ0KrrbVWUVMf2lAwRKk4g2F3WcwBjqakWwWEgIDuocLt1WX5nHbI6hb9E2jAwa8wpYbAiRQF5HnZGxI+1ZXKROZvhOPIiAVTv4jTPGr5lgxJ1lKqnVRfKIHZlPWPFGTmuwSkuq+9lwqp/HdCOIiV54c5yi0XBMvEjLhqoE5cxSVNswLF7thD7B2E1NTpyH83Z7rHtK/HDHinUVfOTKhnt15JAf2I2zwh9HErW/Bz4zQlmmBL0uMpgOjTix9h55p2JMuM7/Bd7ng2Dg==",
"saml.artifact.binding.identifier" : "0TDhGxUTNYmRM8Yd/PcR55vLtAs=",
"saml_single_logout_service_url_redirect" : "http://nextcloud.dev.local/index.php/apps/user_saml/saml/sls",
"saml_single_logout_service_url_redirect" : "http://nextcloud.local/index.php/apps/user_saml/saml/sls",
"saml.signature.algorithm" : "RSA_SHA256",
"saml_force_name_id_format" : "false",
"saml.client.signature" : "true",
@@ -775,15 +775,15 @@
}, {
"id" : "a7bab497-e991-491b-aae2-785f049cf361",
"clientId" : "nextcloud",
"rootUrl" : "https://nextcloud.dev.local",
"adminUrl" : "https://nextcloud.dev.local",
"rootUrl" : "http://nextcloud.local",
"adminUrl" : "http://nextcloud.local",
"surrogateAuthRequired" : false,
"enabled" : true,
"alwaysDisplayInConsole" : false,
"clientAuthenticatorType" : "client-secret",
"secret" : "09e3c268-d8bc-42f1-b7c6-74d307ef5fde",
"redirectUris" : [ "https://nextcloud.dev.local/*" ],
"webOrigins" : [ "https://nextcloud.dev.local" ],
"redirectUris" : [ "http://nextcloud.local/*" ],
"webOrigins" : [ "http://nextcloud.local" ],
"notBefore" : 0,
"bearerOnly" : false,
"consentRequired" : false,
+26
View File
@@ -0,0 +1,26 @@
#!/bin/bash
KEYCLOAK_REALM_CONFIG="/opt/keycloak/data/import/Example-realm.json"
PROTOCOL="${PROTOCOL:-http}"
NEXTCLOUD_URL=${PROTOCOL}://${NEXTCLOUD_URL:-nextcloud}${DOMAIN_SUFFIX}
KEYCLOAK_URL=${PROTOCOL}://${KEYCLOAK_URL:-keycloak}${DOMAIN_SUFFIX}
if [ -f "$KEYCLOAK_REALM_CONFIG" ]; then
echo "Preparing Keycloak realm configuration..."
echo "Using NEXTCLOUD_URL: ${NEXTCLOUD_URL}"
echo "Using KEYCLOAK_URL: ${KEYCLOAK_URL}"
# Replace placeholder with actual NEXTCLOUD_URL
sed -i.bak "s|http://nextcloud\\.local|${NEXTCLOUD_URL//./\\.}|g" "$KEYCLOAK_REALM_CONFIG"
sed -i.bak "s|http://keycloak\\.local|${KEYCLOAK_URL//./\\.}|g" "$KEYCLOAK_REALM_CONFIG"
rm -f "${KEYCLOAK_REALM_CONFIG}.bak"
cat "$KEYCLOAK_REALM_CONFIG"
echo "Realm configuration prepared."
else
echo "Realm configuration file not found: $KEYCLOAK_REALM_CONFIG"
fi
exec /opt/keycloak/bin/kc.sh "$@"
+8 -1
View File
@@ -5,4 +5,11 @@ proxy_read_timeout 3600;
proxy_send_timeout 3600;
proxy_connect_timeout 3600;
proxy_set_header X-Forwarded-Proto $scheme;
#proxy_http_version 1.1;
#proxy_set_header Upgrade $http_upgrade;
#proxy_set_header Connection "Upgrade";
proxy_set_header X-Forwarded-Proto https;
# FIXME: remove this when onlyoffice is fixed https to http proxying
# https://github.com/ONLYOFFICE/DocumentServer/issues/2186
proxy_set_header CloudFront-Forwarded-Proto $scheme;
+11
View File
@@ -0,0 +1,11 @@
# VERSION 0.1.0
# Based on https://github.com/JanNash/docker_noop
FROM alpine:latest AS builder
COPY noop/noop.c /
RUN apk add --no-cache gcc musl-dev && gcc -static -o /noop /noop.c
FROM scratch
COPY --from=builder /noop /noop
CMD ["/noop"]
+5
View File
@@ -0,0 +1,5 @@
#include <stdlib.h>
int main() {
exit(0);
}
+29 -22
View File
@@ -11,7 +11,6 @@ RUN install-php-extensions \
exif \
gd \
gmp \
imagick \
intl \
ldap \
memcached \
@@ -30,22 +29,37 @@ RUN install-php-extensions \
# dev tools separate install so we quickly change without rebuilding all php extensions
RUN apt update && apt-get install -y --no-install-recommends \
git curl vim sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
git \
curl \
vim-tiny \
nano \
sudo \
cron \
smbclient \
iproute2 \
lnav \
wget \
iputils-ping \
gnupg2 \
jq \
ripgrep \
rsync \
&& rm -rf /var/lib/apt/lists/*
# Install PHPUnit
RUN wget -O /usr/local/bin/phpunit8 https://phar.phpunit.de/phpunit-8.phar \
&& chmod +x /usr/local/bin/phpunit8 \
&& wget -O /usr/local/bin/phpunit9 https://phar.phpunit.de/phpunit-9.phar \
&& chmod +x /usr/local/bin/phpunit9 \
&& ln -s /usr/local/bin/phpunit9 /usr/local/bin/phpunit
RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \
&& chmod +x /usr/local/bin/phpunit11 \
&& wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \
&& chmod +x /usr/local/bin/phpunit12 \
&& ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit
# Install NVM
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
&& export NVM_DIR="/root/.nvm" \
&& . "$NVM_DIR/nvm.sh" \
&& nvm install 14 && nvm install 16 && nvm install 20 \
&& nvm alias default 20
&& nvm install node \
&& nvm alias default node \
&& nvm cache clear
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
@@ -64,14 +78,7 @@ ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini
ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
# Setup blackfire probe
RUN wget -q -O - https://packages.blackfire.io/gpg.key | sudo apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list \
&& apt-get update \
&& (apt-get install -y --no-install-recommends blackfire \
&& mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled \
&& printf "\n\nblackfire.agent_socket=tcp://blackfire:8307\n" >> $PHP_INI_DIR/conf.d/zz-blackfire.ini) \
|| echo "Skipped blackfire as the installation failed" \
&& rm -rf /var/lib/apt/lists/*
RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
@@ -86,16 +93,16 @@ VOLUME /var/www/html/apps-writable
VOLUME /var/www/html/config
VOLUME /var/www/html/data
ENV SQL sqlite
ENV NEXTCLOUD_AUTOINSTALL YES
ENV WITH_REDIS NO
ENV SQL=sqlite
ENV NEXTCLOUD_AUTOINSTALL=YES
ENV WITH_REDIS=NO
ENV WEBROOT /var/www/html
ENV WEBROOT=/var/www/html
WORKDIR /var/www/html
ENTRYPOINT ["/usr/local/bin/bootstrap.sh"]
CMD ["apache2-foreground"]
ADD data/installing.html /root/installing.html
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/redis.config.php configs/apcu.config.php /root/
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
+29 -23
View File
@@ -11,8 +11,6 @@ RUN install-php-extensions \
exif \
gd \
gmp \
# waiting for https://github.com/mlocati/docker-php-extension-installer/pull/811
# imagick \
intl \
ldap \
memcached \
@@ -31,22 +29,37 @@ RUN install-php-extensions \
# dev tools separate install so we quickly change without rebuilding all php extensions
RUN apt update && apt-get install -y --no-install-recommends \
git curl vim sudo cron smbclient iproute2 lnav wget iputils-ping gnupg2 jq ripgrep rsync mariadb-client \
git \
curl \
vim-tiny \
nano \
sudo \
cron \
smbclient \
iproute2 \
lnav \
wget \
iputils-ping \
gnupg2 \
jq \
ripgrep \
rsync \
&& rm -rf /var/lib/apt/lists/*
# Install PHPUnit
RUN wget -O /usr/local/bin/phpunit8 https://phar.phpunit.de/phpunit-8.phar \
&& chmod +x /usr/local/bin/phpunit8 \
&& wget -O /usr/local/bin/phpunit9 https://phar.phpunit.de/phpunit-9.phar \
&& chmod +x /usr/local/bin/phpunit9 \
&& ln -s /usr/local/bin/phpunit9 /usr/local/bin/phpunit
RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \
&& chmod +x /usr/local/bin/phpunit11 \
&& wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \
&& chmod +x /usr/local/bin/phpunit12 \
&& ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit
# Install NVM
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
&& export NVM_DIR="/root/.nvm" \
&& . "$NVM_DIR/nvm.sh" \
&& nvm install 14 && nvm install 16 && nvm install 20 \
&& nvm alias default 20
&& nvm install node \
&& nvm alias default node \
&& nvm cache clear
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
@@ -65,14 +78,7 @@ ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini
ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
# Setup blackfire probe
RUN wget -q -O - https://packages.blackfire.io/gpg.key | sudo apt-key add - \
&& echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list \
&& apt-get update \
&& (apt-get install -y --no-install-recommends blackfire \
&& mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled \
&& printf "\n\nblackfire.agent_socket=tcp://blackfire:8307\n" >> $PHP_INI_DIR/conf.d/zz-blackfire.ini) \
|| echo "Skipped blackfire as the installation failed" \
&& rm -rf /var/lib/apt/lists/*
RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
@@ -87,16 +93,16 @@ VOLUME /var/www/html/apps-writable
VOLUME /var/www/html/config
VOLUME /var/www/html/data
ENV SQL sqlite
ENV NEXTCLOUD_AUTOINSTALL YES
ENV WITH_REDIS NO
ENV SQL=sqlite
ENV NEXTCLOUD_AUTOINSTALL=YES
ENV WITH_REDIS=NO
ENV WEBROOT /var/www/html
ENV WEBROOT=/var/www/html
WORKDIR /var/www/html
ENTRYPOINT ["/usr/local/bin/bootstrap.sh"]
CMD ["apache2-foreground"]
ADD data/installing.html /root/installing.html
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/storage.config.php configs/redis.config.php configs/apcu.config.php /root/
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/redis.config.php configs/apcu.config.php /root/
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
+108
View File
@@ -0,0 +1,108 @@
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/
+108
View File
@@ -0,0 +1,108 @@
FROM php:8.5-apache
ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
RUN chmod +x /usr/local/bin/install-php-extensions
RUN install-php-extensions \
apcu \
bcmath \
excimer \
exif \
gd \
gmp \
intl \
ldap \
memcached \
oci8 \
opcache \
pcntl \
pdo_mysql \
pdo_pgsql \
redis \
smbclient \
sysvsem \
xdebug \
zip \
blackfire \
@composer
# dev tools separate install so we quickly change without rebuilding all php extensions
RUN apt update && apt-get install -y --no-install-recommends \
git \
curl \
vim-tiny \
nano \
sudo \
cron \
smbclient \
iproute2 \
lnav \
wget \
iputils-ping \
gnupg2 \
jq \
ripgrep \
rsync \
&& rm -rf /var/lib/apt/lists/*
# Install PHPUnit
RUN wget -O /usr/local/bin/phpunit11 https://phar.phpunit.de/phpunit-11.phar \
&& chmod +x /usr/local/bin/phpunit11 \
&& wget -O /usr/local/bin/phpunit12 https://phar.phpunit.de/phpunit-12.phar \
&& chmod +x /usr/local/bin/phpunit12 \
&& ln -s /usr/local/bin/phpunit11 /usr/local/bin/phpunit
# Install NVM
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash \
&& export NVM_DIR="/root/.nvm" \
&& . "$NVM_DIR/nvm.sh" \
&& nvm install node \
&& nvm alias default node \
&& nvm cache clear
RUN wget https://gist.githubusercontent.com/nickvergessen/e21ee0a09ee3b3f7fd1b04c83dd3e114/raw/83142be1e50c23e8de1bd7aae88a95e5d6ae1ce2/nextcloud_log.json && lnav -i nextcloud_log.json && rm nextcloud_log.json
RUN { \
echo '[global]'; \
echo 'client min protocol = SMB2'; \
echo 'client max protocol = SMB3'; \
echo 'hide dot files = no'; \
} > /etc/samba/smb.conf
RUN mkdir --parent /var/log/cron
ADD configs/cron.conf /etc/nc-cron.conf
RUN crontab /etc/nc-cron.conf
ADD configs/php/nextcloud.ini /usr/local/etc/php/conf.d/nextcloud.ini
ADD configs/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
# Setup blackfire probe
RUN mv /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini /usr/local/etc/php/conf.d/docker-php-ext-blackfire.ini.disabled
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
# mod_rewrite
RUN a2enmod rewrite headers
# increase limit request body
RUN echo "LimitRequestBody 0" > /etc/apache2/conf-available/limit-request-body.conf && a2enconf limit-request-body
VOLUME /var/www/html
VOLUME /var/www/html/apps-writable
VOLUME /var/www/html/config
VOLUME /var/www/html/data
ENV SQL=sqlite
ENV NEXTCLOUD_AUTOINSTALL=YES
ENV WITH_REDIS=NO
ENV WEBROOT=/var/www/html
WORKDIR /var/www/html
ENTRYPOINT ["/usr/local/bin/bootstrap.sh"]
CMD ["apache2-foreground"]
ADD data/installing.html /root/installing.html
ADD configs/autoconfig_mysql.php configs/autoconfig_pgsql.php configs/autoconfig_oci.php configs/default.config.php configs/redis.config.php configs/apcu.config.php /root/
ADD bin/bootstrap.sh bin/occ /usr/local/bin/
+5 -1
View File
@@ -1,6 +1,10 @@
FROM alpine
RUN wget https://github.com/nextcloud/notify_push/releases/download/v0.6.3/notify_push-`uname -m`-unknown-linux-musl -O /notify_push && chmod +x /notify_push && /notify_push --version
RUN apk add curl jq \
&& latest_tag=$(curl -Ls https://api.github.com/repos/nextcloud/notify_push/releases/latest | jq -r '.tag_name') \
&& wget https://github.com/nextcloud/notify_push/releases/download/${latest_tag}/notify_push-`uname -m`-unknown-linux-musl -O /notify_push \
&& chmod +x /notify_push \
&& /notify_push --version
EXPOSE 7867
+9 -6
View File
@@ -13,11 +13,14 @@ 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/juliushaertl/nextcloud-docker-dev
git clone https://github.com/juliusknorr/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.
@@ -29,7 +32,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://juliushaertl.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://juliusknorr.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:
@@ -56,23 +59,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/juliushaertl/nextcloud-dev-php80:latest
docker run --rm -p 8080:80 ghcr.io/juliusknorr/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/juliushaertl/nextcloud-dev-php80:latest
docker run --rm -p 8080:80 -v ~/path/to/appid:/var/www/html/apps-extra/appid ghcr.io/juliusknorr/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/juliushaertl/nextcloud-dev-php80:latest
docker run --rm -p 8080:80 -e SERVER_BRANCH=v24.0.1 ghcr.io/juliusknorr/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/juliushaertl/nextcloud-dev-php80:latest
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
```
+69
View File
@@ -0,0 +1,69 @@
# 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.
+2
View File
@@ -9,6 +9,8 @@ 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
+4 -4
View File
@@ -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/juliushaertl/nextcloud-dev-php80:latest
docker run --rm -p 8080:80 ghcr.io/juliusknorr/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/juliushaertl/nextcloud-dev-php80:latest
ghcr.io/juliusknorr/nextcloud-dev-php81:latest
```
The `SERVER_BRANCH` environment variable can be used to run different versions of Nextcloud by specifying either a server branch or git tag.
```bash
docker run --rm -p 8080:80 -e SERVER_BRANCH=v24.0.1 ghcr.io/juliushaertl/nextcloud-dev-php80:latest
docker run --rm -p 8080:80 -e SERVER_BRANCH=v32.0.1 ghcr.io/juliusknorr/nextcloud-dev-php81:latest
```
You can also mount your local server source code into the container to run a local version of Nextcloud:
```bash
docker run --rm -p 8080:80 -e SERVER_BRANCH=v24.0.1 -v /tmp/server:/var/www/html ghcr.io/juliushaertl/nextcloud-dev-php80:latest
docker run --rm -p 8080:80 -e SERVER_BRANCH=v32.0.1 -v /tmp/server:/var/www/html ghcr.io/juliusknorr/nextcloud-dev-php81:latest
```
+19
View File
@@ -0,0 +1,19 @@
# 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
View File
@@ -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://juliushaertl.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://juliusknorr.github.io/nextcloud-docker-dev/basics/getting-started/) or the [Nextcloud developer tutorial](https://nextcloud.com/developer/) to get started.
+87
View File
@@ -0,0 +1,87 @@
# 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.
+10 -1
View File
@@ -9,10 +9,11 @@ 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:
All databases use the following credentials by default (except oracle):
- Root password: `nextcloud`
- Username: `nextcloud`
@@ -72,3 +73,11 @@ 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 -1
View File
@@ -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/juliushaertl/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/juliusknorr/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.
+28
View File
@@ -0,0 +1,28 @@
# Notify Push service
Prepare your setup:
* Setup your server with https.
* Install `notify_push` app.
* Start `push` alongside the other services:
```
docker compose up nextcloud proxy push
```
Configure `notify_push` on the nextcloud instance:
* Configure the `notify_push` url:
```
./occ notify_push:setup http://push:7867/push
```
Once `notify_push:setup` finishes you can test the setup:
```bash
./occ notify_push:self-test
```
## Fixing problems:
If the version does not match:
* Alter `docker/push/Dockerfile`.
* Rebuild the image (`docker build .`).
* Replace the push image in `docker-compose.yml`.
* Tear down and restart the push service.
+81 -3
View File
@@ -1,15 +1,93 @@
# S3 / Object storage
## Primary 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 can be enabled by setting the `PRIMARY=minio` environment variable either in your `.env` file or in `docker-compose.yml` for individual containers.
```bash
docker compose up nextcloud minio
PRIMARY=minio docker compose up nextcloud minio
```
### External object storage
## Using mc command line
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
This can be useful for admin operations like setting a bucket quota on the `nc-external` bucket name:
+14 -5
View File
@@ -4,11 +4,20 @@
## [Keycloak](https://www.keycloak.org/)
- Keycloak is using LDAP as a user backend (make sure the LDAP container is also running)
- `occ user_oidc:provider Keycloak -c nextcloud -s 09e3c268-d8bc-42f1-b7c6-74d307ef5fde -d http://keycloak.dev.local/auth/realms/Example/.well-known/openid-configuration`
- <http://keycloak.dev.local/auth/realms/Example/.well-known/openid-configuration>
- If you have ssl enabled please modify the example realm config accordingly in `docker/configs/keycloak/Example-realm.json`
- `occ user_oidc:provider Keycloak -c nextcloud -s 09e3c268-d8bc-42f1-b7c6-74d307ef5fde -d http://keycloak.local/auth/realms/Example/.well-known/openid-configuration`
- <http://keycloak.local/auth/realms/Example/.well-known/openid-configuration>
- nextcloud
- 09e3c268-d8bc-42f1-b7c6-74d307ef5fde
## Authentik
```
docker compose up -d proxy nextcloud authentik
```
The server will be available on [http://authentik.local:9000](http://authentik.local:9000) and you can follow [authentik documentation](https://integrations.goauthentik.io/chat-communication-collaboration/nextcloud/) to understand how to configure Nextcloud with SAML (but also OIDC and LDAP).
## SAML
```
@@ -16,9 +25,9 @@ docker compose up -d proxy nextcloud saml
```
- uid mapping: `urn:oid:0.9.2342.19200300.100.1.1`
- idp entity id: `https://sso.local.dev.bitgrid.net/simplesaml/saml2/idp/metadata.php`
- Single Sign-On (SSO) service url: `https://sso.local.dev.bitgrid.net/simplesaml/saml2/idp/SSOService.php`
- single log out service url: `https://sso.local.dev.bitgrid.net/simplesaml/saml2/idp/SingleLogoutService.php`
- idp entity id: `https://sso.local/simplesaml/saml2/idp/metadata.php`
- Single Sign-On (SSO) service url: `https://sso.local/simplesaml/saml2/idp/SSOService.php`
- single log out service url: `https://sso.local/simplesaml/saml2/idp/SingleLogoutService.php`
- use certificate from `docker/configs/var-simplesamlphp/cert/example.org.crt`
```
+1 -1
View File
@@ -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 signaling server (`http://talk-recording.local` with shared secret `6789`)
- Go to the admin settings of talk and add the recording server (`http://talk-recording.local` with shared secret `6789`)
+1 -1
View File
@@ -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
View File
@@ -24,6 +24,9 @@ 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
@@ -49,3 +52,21 @@ 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
# ------------------------------------
+4 -2
View File
@@ -24,8 +24,10 @@ 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://nextcloud/"
occ config:app:set onlyoffice StorageUrl --value="http://${CONTAINER}${DOMAIN_SUFFIX}/"
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 /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 'services.CoAuthoring.secret.session.string'
docker_compose exec onlyoffice supervisorctl start ds:example
+2 -2
View File
@@ -7,13 +7,13 @@ test.beforeEach(async ({ page }) => {
test.describe('New Todo', () => {
test('see the nextcloud login page', async ({ page }) => {
await expect(page).toHaveTitle('Login Nextcloud');
await expect(page).toHaveTitle('Login Nextcloud');
});
test('login to nextcloud as admin', async ({ page }) => {
await page.fill('#user', 'admin');
await page.fill('#password', 'admin');
await page.getByRole('button', { name: 'Log in' }).click();
await page.getByRole('button', { name: 'Log in', exact: true }).click();
await page.goto('http://nextcloud.local/index.php/apps/files');
});
});
+30 -24
View File
@@ -9,32 +9,34 @@
"version": "1.0.0",
"license": "ISC",
"devDependencies": {
"@playwright/test": "^1.40.1",
"@types/node": "^20.10.2"
"@playwright/test": "^1.52.0",
"@types/node": "^22.15.30"
}
},
"node_modules/@playwright/test": {
"version": "1.40.1",
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.40.1.tgz",
"integrity": "sha512-EaaawMTOeEItCRvfmkI9v6rBkF1svM8wjl/YPRrg2N2Wmp+4qJYkWtJsbew1szfKKDm6fPLy4YAanBhIlf9dWw==",
"version": "1.56.1",
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.56.1.tgz",
"integrity": "sha512-vSMYtL/zOcFpvJCW71Q/OEGQb7KYBPAdKh35WNSkaZA75JlAO8ED8UN6GUNTm3drWomcbcqRPFqQbLae8yBTdg==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"playwright": "1.40.1"
"playwright": "1.56.1"
},
"bin": {
"playwright": "cli.js"
},
"engines": {
"node": ">=16"
"node": ">=18"
}
},
"node_modules/@types/node": {
"version": "20.10.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.2.tgz",
"integrity": "sha512-37MXfxkb0vuIlRKHNxwCkb60PNBpR94u4efQuN4JgIAm66zfCDXGSAFCef9XUWFovX2R1ok6Z7MHhtdVXXkkIw==",
"version": "22.15.30",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.30.tgz",
"integrity": "sha512-6Q7lr06bEHdlfplU6YRbgG1SFBdlsfNC4/lX+SkhiTs0cpJkOElmWls8PxDFv4yY/xKb8Y6SO0OmSX4wgqTZbA==",
"dev": true,
"license": "MIT",
"dependencies": {
"undici-types": "~5.26.4"
"undici-types": "~6.21.0"
}
},
"node_modules/fsevents": {
@@ -43,6 +45,7 @@
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
@@ -52,40 +55,43 @@
}
},
"node_modules/playwright": {
"version": "1.40.1",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.40.1.tgz",
"integrity": "sha512-2eHI7IioIpQ0bS1Ovg/HszsN/XKNwEG1kbzSDDmADpclKc7CyqkHw7Mg2JCz/bbCxg25QUPcjksoMW7JcIFQmw==",
"version": "1.56.1",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.56.1.tgz",
"integrity": "sha512-aFi5B0WovBHTEvpM3DzXTUaeN6eN0qWnTkKx4NQaH4Wvcmc153PdaY2UBdSYKaGYw+UyWXSVyxDUg5DoPEttjw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"playwright-core": "1.40.1"
"playwright-core": "1.56.1"
},
"bin": {
"playwright": "cli.js"
},
"engines": {
"node": ">=16"
"node": ">=18"
},
"optionalDependencies": {
"fsevents": "2.3.2"
}
},
"node_modules/playwright-core": {
"version": "1.40.1",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.40.1.tgz",
"integrity": "sha512-+hkOycxPiV534c4HhpfX6yrlawqVUzITRKwHAmYfmsVreltEl6fAZJ3DPfLMOODw0H3s1Itd6MDCWmP1fl/QvQ==",
"version": "1.56.1",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.1.tgz",
"integrity": "sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==",
"dev": true,
"license": "Apache-2.0",
"bin": {
"playwright-core": "cli.js"
},
"engines": {
"node": ">=16"
"node": ">=18"
}
},
"node_modules/undici-types": {
"version": "5.26.5",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
"integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
"dev": true
"version": "6.21.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
"integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
"dev": true,
"license": "MIT"
}
}
}
+2 -2
View File
@@ -8,7 +8,7 @@
"author": "",
"license": "ISC",
"devDependencies": {
"@playwright/test": "^1.40.1",
"@types/node": "^20.10.2"
"@playwright/test": "^1.52.0",
"@types/node": "^22.15.30"
}
}