|
1 |
| -# What is Nextcloud? |
| 1 | +# Nextcloud Docker |
2 | 2 |
|
3 | 3 | [](https://github.com/nextcloud/docker/actions?query=workflow%3AImages)
|
4 | 4 | [](https://github.com/nextcloud/docker/actions?query=workflow%3Aupdate.sh)
|
|
12 | 12 | [](https://doi-janky.infosiftr.net/job/multiarch/job/ppc64le/job/nextcloud)
|
13 | 13 | [](https://doi-janky.infosiftr.net/job/multiarch/job/s390x/job/nextcloud)
|
14 | 14 |
|
15 |
| -A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms. |
| 15 | +Nextcloud Server is a safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms. |
16 | 16 |
|
17 | 17 | 
|
18 | 18 |
|
19 |
| -⚠️⚠️⚠️ This image is maintained by community volunteers and designed for expert use. For quick and easy deployment that supports the full set of Nextcloud Hub features, use the [Nextcloud All-in-One docker container](https://github.com/nextcloud/all-in-one#nextcloud-all-in-one) maintained by Nextcloud GmbH. |
| 19 | +This repository maintains the community Docker images for Nextcloud Server that are designed to be used in micro-services environments. These images adhere to upstream (Nextcloud Server) recommendations as closely as possible with a minimum of extraneous functionality. |
20 | 20 |
|
21 |
| -# How to use this image |
22 |
| -This image is designed to be used in a micro-service environment. There are two versions of the image you can choose from. |
| 21 | +While adhering to Nextcloud Server recommendations, these images *intentionally* do not incorporate every bit of functionality supported by Nextcloud. They aim is provide a good baseline for new deployments as well serve as a stable starting point when an image's defaults don't suit a given use case. Select parameters can be changed through environment variables and all of the images can be customized or extended via typical Docker methods - e.g.`Dockerfile`. |
| 22 | + |
| 23 | +These images are classified as Docker Official Images, which means they are curated by Docker, Inc. |
| 24 | +https://github.com/docker-library/official-images?tab=readme-ov-file#what-are-official-images |
| 25 | + |
| 26 | +> [!IMPORTANT] |
| 27 | +> These images are community maintained (primarily by volunteers) and are designed for expert use. |
| 28 | +
|
| 29 | +# What is this? |
| 30 | + |
| 31 | + |
| 32 | +These images may be used for either: |
| 33 | +* deploying throw away Nextcloud Server service containers |
| 34 | + - e.g. mount your data volume and start the container to have a running Nextcloud Server instance ready to be used for testing purposes *or* place behind an HTTPS reverse proxy - and combine with any desired supplementary services - for production usage |
| 35 | +* building your own specialized images of Nextcloud Server |
| 36 | + |
| 37 | + |
| 38 | +> [!TIP] |
| 39 | +> If a more turnkey deployment is desired, use the [Nextcloud All-in-One docker container](https://github.com/nextcloud/all-in-one#nextcloud-all-in-one) which is maintained by Nextcloud GmbH and aims to support the full set of Nextcloud Hub features. |
| 40 | +
|
| 41 | +## Image Variants |
| 42 | + |
| 43 | +There are multiple editions of the images to accomodate different use cases and preferences. |
| 44 | + |
| 45 | +Each image is a combination of the following: |
| 46 | + |
| 47 | +- Apache HTTP Server with `mod_php` (or standalone `php-fpm`) |
| 48 | +- A specific [version of Nextcloud Server](https://github.com/nextcloud/server/wiki/Maintenance-and-Release-Schedule) |
| 49 | +- Debian (or Alpine) |
| 50 | + |
| 51 | +Editions are chosen through the use of Docker image tags. |
23 | 52 |
|
24 |
| -The `apache` tag contains a full Nextcloud installation including an apache web server. It is designed to be easy to use and gets you running pretty fast. This is also the default for the `latest` tag and version tags that are not further specified. |
| 53 | +### Choosing |
| 54 | + |
| 55 | +First, decide whether you want to deploy your Nextcloud stack around Apache/mod_php or php-fpm. |
| 56 | +Second, decide which major version of Nextcloud Server you wish to deploy (the Nextcloud project generally supports and provides security fixes and critical bug fixes for 2 or 3 major versions simultaneously in their *Stable* channel. The lower numbered Stable majors are the most field tested; while the higher numbered majors have the latest features ) |
| 57 | + |
| 58 | +## `nextcloud:apache` |
| 59 | + |
| 60 | +The is the default image. If you're unsure which edition is appropriate for your situation, you probably want this one. |
| 61 | + |
| 62 | +The Apache edition contains a full Nextcloud installation including an Apache HTTP server. It is designed to be easy to use and gets you running pretty fast. All Apache editions utilize the `apache` tag This is also the default for the `latest` tag and version tags that are not further specified. |
| 63 | + |
| 64 | +## `nextcloud:fpm` |
25 | 65 |
|
26 | 66 | The second option is a `fpm` container. It is based on the [php-fpm](https://hub.docker.com/_/php/) image and runs a fastCGI-Process that serves your Nextcloud page. To use this image it must be combined with any webserver that can proxy the http requests to the FastCGI-port of the container.
|
27 | 67 |
|
28 | 68 | [](http://play-with-docker.com?stack=https://raw.githubusercontent.com/nextcloud/docker/8db861d67f257a3e9ac1790ea06d4e2a7a193a6c/stack.yml)
|
29 | 69 |
|
| 70 | + |
| 71 | +> [!CAUTION] |
| 72 | +> When no tag is specified in Docker, `latest` is presumed. While this may seem like a safe choice, keep in mind that `latest` is mutable, does not provide protection against upgrading across major version boundaries, and may introduce breaking changes without any warning. |
| 73 | +
|
| 74 | +> [!TIP] |
| 75 | +> Best practice is to specify a tag that defines a suitable mixture of the preferred major version of Nextcloud Server + Apache/mod_php versus php-fpm + Debian or Alpine. |
| 76 | +> It is also sometimes advtangeous to pin the version number of Nextcloud Server more tightly, such as to a specific version (e.g. v28.0.2) |
| 77 | +
|
| 78 | + |
| 79 | +# How to use this image |
| 80 | + |
30 | 81 | ## Using the apache image
|
31 | 82 | The apache image contains a webserver and exposes port 80. To start the container type:
|
32 | 83 |
|
@@ -275,6 +326,9 @@ The easiest way to get a fully featured and functional setup is using a `docker-
|
275 | 326 |
|
276 | 327 | At first, make sure you have chosen the right base image (fpm or apache) and added features you wanted (see below). In every case, you would want to add a database container and docker volumes to get easy access to your persistent data. When you want to have your server reachable from the internet, adding HTTPS-encryption is mandatory! See below for more information.
|
277 | 328 |
|
| 329 | +> [!NOTE] |
| 330 | +> All examples here and in the examples folder are provided on a best effort basis. The operator is expected to be familiar with Docker, web server technology, etc. For further details on examples that include third-party components, seek out standard assistance channels for those third-party components. |
| 331 | +
|
278 | 332 | ## Base version - apache
|
279 | 333 | This version will use the apache image and add a mariaDB container. The volumes are set to keep your data persistent. This setup provides **no ssl encryption** and is intended to run behind a proxy.
|
280 | 334 |
|
|
0 commit comments