Setting Up Nextcloud with Docker Compose¶
Introduction to Nextcloud¶
Nextcloud is an open-source, self-hosted file share and collaboration platform. It provides a secure and private alternative to cloud-based storage services.
Docker Compose Configuration for Nextcloud¶
This setup includes Nextcloud and a MariaDB database, ensuring an isolated and manageable environment.
Docker Compose File (docker-compose.yml
)¶
version: '2'
volumes:
nextcloud:
db:
services:
db:
image: mariadb:10.6
restart: always
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=<ENTER PASSWORD HERE>
- MYSQL_PASSWORD=<ENTER PASSWORD HERE>
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud
restart: always
ports:
- 8080:80
links:
- db
volumes:
- nextcloud:/var/www/html
environment:
- MYSQL_PASSWORD=<ENTER PASSWORD HERE>
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=db
Key Components of the Configuration¶
Volumes¶
nextcloud
: Stores Nextcloud's data.db
: Stores the MariaDB database files.
Services¶
db
¶
- Image:
mariadb:10.6
- Restart: Always ensures the container restarts after a crash or reboot.
- Command: Configures MariaDB for optimal use with Nextcloud.
- Volumes: Maps
db
volume to MariaDB data directory. - Environment Variables: Set the MySQL root and Nextcloud user passwords, database, and user.
app
¶
- Image:
nextcloud
- Restart: Always ensures the container restarts after a crash or reboot.
- Ports: Maps port 8080 of the host to port 80 of the container.
- Links: Connects to the
db
service. - Volumes: Maps
nextcloud
volume to Nextcloud's HTML directory. - Environment Variables: Set the database details for Nextcloud to connect to MariaDB.
Deploying Nextcloud¶
- Save the Docker Compose configuration in a
docker-compose.yml
file. - Replace
<ENTER PASSWORD HERE>
with your chosen passwords. - Run
docker compose up -d
to start Nextcloud in detached mode. - Access Nextcloud via
http://<host-ip>:8080
.
Configuring and Using Nextcloud¶
After deployment, configure your Nextcloud instance through its web interface. This includes admin account setup, storage management, and app configurations.
Youtube Video¶
If there is an issue with this guide or you wish to suggest changes, please raise an issue on GitHub.