2022-01-31 21:39:54 +00:00
# Nextcloud (Docker Compose)
2022-02-27 15:39:16 +00:00
Build a Nextcloud instance in Docker Compose complete with PostgreSQL and Redis
2022-01-31 21:39:54 +00:00
2022-02-02 17:08:49 +00:00
## Prerequisites
2022-01-31 21:39:54 +00:00
1. [Docker ](https://docs.docker.com/engine/install/ )
2. [Docker Compose ](https://docs.docker.com/compose/install/ )
2022-02-27 15:39:16 +00:00
3. A reverse proxy on its own Docker network
2022-01-31 21:39:54 +00:00
2022-02-02 17:08:49 +00:00
## Setup
2022-01-31 21:39:54 +00:00
1. Create a copy of `.env.example` :
```bash
cp .env.example .env
```
2022-02-27 15:39:16 +00:00
2. Replace the `NEXTCLOUD_HOST` variable with your desired domain
2022-01-31 21:39:54 +00:00
2022-02-27 15:39:16 +00:00
3. Replace `VOLUME_PATH` variable if you wish to change where volume data is stored
2022-01-31 21:39:54 +00:00
2022-02-27 15:39:16 +00:00
4. Modify other variables as needed
2022-01-31 21:39:54 +00:00
2022-02-27 15:39:16 +00:00
5. Create the following required secrets files (you should consider restricting access to these files):
2022-01-31 21:39:54 +00:00
2022-02-27 15:39:16 +00:00
- `secrets/postgres_password.txt`
- `secrets/nextcloud_admin_user.txt`
- `secrets/nextcloud_admin_password.txt`
2022-01-31 21:39:54 +00:00
```bash
# Postgres
echo "SuperSecretPassword" > secrets/postgres_password.txt # Replace with your own super secret password
# Nextcloud
echo "admin" > secrets/nextcloud_admin_user.txt # Replace with desired admin username
echo "SuperSecretPassword" > secrets/nextcloud_admin_password.txt # Replace with super secret password for admin Nextcloud user
```
2022-02-27 15:39:16 +00:00
6. Bring up the containers!
2022-01-31 21:39:54 +00:00
```bash
2022-01-31 22:55:25 +00:00
sudo docker-compose -p nextcloud up --build -d
2022-01-31 21:39:54 +00:00
```
2022-01-31 22:51:46 +00:00
2022-02-27 15:39:16 +00:00
7. (Optional) To enable some file previews copy [previews.config.php ](nextcloud/previews.config.php ) into your Nextcloud's `config` directory (replace `$volume` with the path you have set in the `VOLUME_PATH` environment variable):
2022-01-31 22:51:46 +00:00
```bash
sudo cp nextcloud/previews.config.php $volume/var/www/html/config/
2022-02-27 15:38:16 +00:00
sudo chown www-data:root $volume/var/www/html/config/previews.config.php
2022-01-31 22:51:46 +00:00
```