Docker Alfresco Compose ready to be used
Switch branches/tags
Nothing to show
Clone or download

README.md

Alfresco Community Docker

Deployment template based in official Docker Composition provided by Alfresco.

You should review volumes, configuration, modules & tuning parameters before using this composition in Production environments.

Source Images

Volumes

A directory named volumes is located in the root folder to store configuration, data and log files.

$ tree volumes
volumes
├── config
│   ├── alfresco-global.properties
│   ├── ext-share-config-custom.xml
│   ├── nginx.conf
│   └── nginx.htpasswd
├── data
│   ├── alf-repo-data
│   ├── postgres-data
│   └── solr-data
└── logs
    ├── alfresco
    ├── nginx
    ├── postgres
    └── share

Configuration files are available at config folder:

  • alfresco-global.properties for Repository
  • ext-share-config-custom.xml for Share
  • nginx.conf for HTTP Proxy
  • nginx.htpasswd for Basic Auth credentials to access SOLR Web Console

Data wil be persisted automatically in data folder. Once launched, Docker will create three subfolders for following services:

  • alf-repo-data for Content Store
  • postgres-data for Database
  • solr-data for Indexes

For Linux hosts, set solr-data folder permissions to user with UID 1001, as alfresco-search-services is using an container user named solr with UID 1001.

Logs folder includes log files for:

  • alfresco contains Tomcat repository logs
  • nginx contains HTTP Proxy logs
  • postgres contains database logs
  • share contains Tomcat share logs

Tuning options

Memory resources for the containers can be changed in .env file.

Sample values are set by default.

# Alfresco JVM Memory Settings
ALFRESCO_XMX=2g
ALFRESCO_XMS=2g

# Share JVM Memory Settings
SHARE_XMX=1g
SHARE_XMS=1g

# Solr 6 JVM Memory Settings
SOLR_XMX=1g
SOLR_XMS=1g

# Postgres Tuning Settings
# Default: pg_tune with 100 connections, 1GB RAM & 1 CPU
PG_MAX_CONNECTIONS=100
PG_SHARED_BUFFERS=256MB
PG_EFFECTIVE_CACHE_SIZE=768MB
PG_MAINTENANCE_WORK_MEM=64MB
PG_CHECKPOINT_COMPLETION_TARGET=0.7
PG_WAL_BUFFERS=7864kB
PG_DEFAULT_STATISTICS_TARGET=100
PG_RANDOM_PAGE_COST=4
PG_EFFECTIVE_IO_CONCURRENCY=2
PG_WORK_MEM=2621kB
PG_MIN_WAL_SIZE=1GB
PG_MAX_WAL_SIZE=2GB
PG_MAX_WORKER_PROCESSES=1
PG_MAX_PARALLEL_WORKERS_PER_GATHER=1
PG_MAX_PARALLEL_WORKERS=1

SOLR Considerations

Alfresco SOLR API has been protected to be accessed from outside Docker network. You can enable this URLs removing following lines at nginx.conf

    # Protect access to SOLR APIs
    location ~ ^(/.*/service/api/solr/.*)$ {return 403;}
    location ~ ^(/.*/s/api/solr/.*)$ {return 403;}
    location ~ ^(/.*/wcservice/api/solr/.*)$ {return 403;}
    location ~ ^(/.*/wcs/api/solr/.*)$ {return 403;}
    
    location ~ ^(/.*/proxy/alfresco/api/solr/.*)$ {return 403 ;}
    location ~ ^(/.*/-default-/proxy/alfresco/api/.*)$ {return 403;}  

SOLR Web Console (http://localhost/solr) access has been protected with Basic Auth. Default user/password is admin/admin, but it can be customised modifying the content of the file nginx.htpasswd

How to use this composition

Start Docker

Start docker and check the ports are correctly bound.

$ docker-compose up -d
$ docker ps --format '{{.Names}}\t{{.Image}}\t{{.Ports}}'
proxy        nginx:stable-alpine                           0.0.0.0:80->80/tcp
share        docker-alfresco_share                         8080/tcp
content-app  alfresco/alfresco-content-app:master-latest   80/tcp
solr6        alfresco/alfresco-search-services:1.2.0       8983/tcp
alfresco     docker-alfresco_alfresco                      8080/tcp
postgres     postgres:10                                   5432/tcp

Viewing System Logs

You can view the system logs by issuing the following.

$ docker-compose logs -f

Logs for every service are also available at volumes/logs folder.

Access

Use the following username/password combination to login.

  • User: admin
  • Password: admin

Alfresco and related web applications can be accessed from the below URIs when the servers have started.

http://localhost               - Alfresco Content Application
http://localhost/share         - Alfresco Share WebApp
http://localhost/alfresco      - Alfresco Repository (REST)
http://localhost/solr          - Alfresco Search Services (Basic Auth, admin/admin by default)

Further configuration

Deploying additional Addons

You can copy additional Alfresco addons to following paths.

alfresco/modules/amps
alfresco/modules/jars
share/modules/amps_share
share/modules/jars

After you rebuild the image, they will be available within the Alfresco instance.

Adding configuration to repository

You can set additional properties modifying default files available at volumes/config folder.

Configuration tips

We are including some other configuration operations in this Wiki