This guide uses Docker Compose to run ownCloud 10 in containers with MariaDB database and Redis caching.
For Docker installation, see Docker.
Create a docker-compose.yml file with the following content:
version: '3.8'
volumes:
files:
driver: local
mysql:
driver: local
redis:
driver: local
services:
owncloud:
image: owncloud/server:10.16
container_name: owncloud_server
restart: always
ports:
- "8080:8080"
depends_on:
- mariadb
- redis
environment:
- OWNCLOUD_DOMAIN=localhost:8080
- OWNCLOUD_DB_TYPE=mysql
- OWNCLOUD_DB_NAME=owncloud
- OWNCLOUD_DB_USERNAME=owncloud
- OWNCLOUD_DB_PASSWORD=owncloud
- OWNCLOUD_DB_HOST=mariadb
- OWNCLOUD_ADMIN_USERNAME=admin
- OWNCLOUD_ADMIN_PASSWORD=admin
- OWNCLOUD_MYSQL_UTF8MB4=true
- OWNCLOUD_REDIS_ENABLED=true
- OWNCLOUD_REDIS_HOST=redis
volumes:
- files:/mnt/data
mariadb:
image: mariadb:10.11
container_name: owncloud_mariadb
restart: always
environment:
- MYSQL_ROOT_PASSWORD=owncloud
- MYSQL_USER=owncloud
- MYSQL_PASSWORD=owncloud
- MYSQL_DATABASE=owncloud
volumes:
- mysql:/var/lib/mysql
redis:
image: redis:6
container_name: owncloud_redis
restart: always
volumes:
- redis:/data
Security Note: Replace passwords (owncloud, admin) with strong, unique values before production deployment.
docker compose up -d
Wait for the containers to start (approximately 60-90 seconds for first run).
Open http://YOUR-SERVER:8080 and log in with:
adminadmin (change immediately after login!)For production access, configure trusted domains:
# Enter the container
docker compose exec owncloud occ config:system:set trusted_domains 1 --value=your-domain.com
For production deployments:
/mnt/data and MySQL databaseSee Configuration and Security for production hardening.
Any questions?
Feel free to contact us. Find all contact information on our contact page.