nextcloud | ||
secrets | ||
.env.example | ||
.gitignore | ||
docker-compose.yaml | ||
README.md |
Nextcloud (Docker Compose)
Build a Nextcloud instance in Docker Compose complete with PostgreSQL and Redis
Prerequisites
- Docker
- Docker Compose
- A reverse proxy on its own Docker network
Reverse Proxy Docker Network
This Docker Compose file assumes you have a reverse proxy (like Nginx) in a Docker container on another Docker network. If you are not using a reverse proxy or do not wish to use the Docker network to connect the reverse proxy, you can set the frontend
network's external
property to be false
in docker-compose.yaml. You may also need to expose the HTTP port (80) on the nextcloud
service.
Setup
- Create a copy of
.env.example
:
cp .env.example .env
-
Replace the
DOCKER_PROXY_NETWORK
variable with the Docker network where your reverse proxy sits (see Reverse Proxy Docker Network) -
Replace the
NEXTCLOUD_HOST
variable with your desired domain -
Replace
VOLUME_PATH
variable if you wish to change where volume data is stored -
Modify other variables as needed
-
Create the following required secrets files (you should consider restricting access to these files):
secrets/postgres_password.txt
secrets/nextcloud_admin_user.txt
secrets/nextcloud_admin_password.txt
- Bring up the containers!
sudo docker-compose -p nextcloud up --build -d
- (Optional) To enable some file previews copy previews.config.php into your Nextcloud's
config
directory (replace$volume
with the path you have set in theVOLUME_PATH
environment variable):
sudo cp nextcloud/previews.config.php $volume/var/www/html/config/
sudo chown www-data:root $volume/var/www/html/config/previews.config.php