Skip to main content

Installation

OwnCloud can be installed by following the Portainer guide for creating a new stack.  Learn about configuring a Docker stacks and then use the following Docker Compose code to run this app:

---
services:
  actual-server:
    image: docker.io/actualbudget/actual-server:latest
    container_name: actual-server
    network_mode: bridge
    environment:
      - TZ=America/Vancouver
    volumes:
      # Persistent Data
      - /srv/actual-budget:/data
    ports:
      - 5006:5006
    restart: unless-stopped




services:
  owncloud:
    image: owncloud/server:latest
    container_name: owncloud
    restart: always
    ports:
      - ${HTTP_PORT}:8080
    depends_on:
      - mariadb
      - redis
    environment:
      - PGID=1000
      - PUID=1000
      - OWNCLOUD_DOMAIN=${OWNCLOUD_DOMAIN}
      - OWNCLOUD_FULL_LOCAL_DISCOVERY_INTERVAL=0
      -OWNCLOUD_TRUSTED_DOMAINS=${OWNCLOUD_TRUSTED_DOMAINS}
      - OWNCLOUD_DB_TYPE=
      - OWNCLOUD_DB_NAME=
      - OWNCLOUD_DB_USERNAME=
      - OWNCLOUD_DB_PASSWORD=
      - OWNCLOUD_DB_HOST=mariadb
      - OWNCLOUD_ADMIN_USERNAME=${ADMIN_USERNAME}
      - OWNCLOUD_ADMIN_PASSWORD=${ADMIN_PASSWORD}
      - OWNCLOUD_MYSQL_UTF8MB4=true
      - OWNCLOUD_REDIS_ENABLED=true
      - OWNCLOUD_REDIS_HOST=redis
    healthcheck:
      test: ["CMD", "/usr/bin/healthcheck"]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      # Persistent Data
      - /srv/owncloud/config:/mnt/data

      # Media Data
      - /mnt/libraries:/mnt/libraries

  # OwnCloud Database
  mariadb:
    image: mariadb:10.6
    container_name: owncloud_mariadb
    restart: always
    command: ["--max-allowed-packet=128M", "--innodb-log-file-size=64M"]
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-u", "root", "--password=owncloud"]
      interval: 10s
      timeout: 5s
      retries: 5
    volumes:
      # Persistent Data
      - /srv/owncloud/db:/var/lib/mysql

  # Cache Server
  redis:
    image: redis:6
    container_name: owncloud_redis
    restart: always
    command: ["--databases", "1"]
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 5
    volumes:
      # Persistent Data
      - /srv/owncloud/redis:/data


OWNCLOUD_VERSION=latest
OWNCLOUD_DOMAIN=
ADMIN_USERNAME=
ADMIN_PASSWORD=
HTTP_PORT=8080
OWNCLOUD_TRUSTED_DOMAINS=
OWNCLOUD_DOMAIN=${OWNCLOUD_DOMAIN}
OWNCLOUD_FULL_LOCAL_DISCOVERY_INTERVAL=0
OWNCLOUD_TRUSTED_DOMAINS=${OWNCLOUD_TRUSTED_DOMAINS}
OWNCLOUD_DB_TYPE=
OWNCLOUD_DB_NAME=
OWNCLOUD_DB_USERNAME=
OWNCLOUD_DB_PASSWORD=
OWNCLOUD_DB_HOST=mariadb
OWNCLOUD_ADMIN_USERNAME=${ADMIN_USERNAME}
OWNCLOUD_ADMIN_PASSWORD=${ADMIN_PASSWORD}
OWNCLOUD_MYSQL_UTF8MB4=true
OWNCLOUD_REDIS_ENABLED=true
OWNCLOUD_REDIS_HOST=redis

MYSQL_ROOT_PASSWORD=
MYSQL_USER=
MYSQL_PASSWORD=
MYSQL_DATABASEMYSQL_DATABASE=

PGID=1000
PUID=1000