Compare commits

..

11 Commits

5 changed files with 48 additions and 231 deletions

12
.env
View File

@@ -4,15 +4,3 @@ ALFRESCO_LICENSE_DIR=~/alfresco/license
PROXY_PROTOCOL=http PROXY_PROTOCOL=http
PROXY_HOST=localhost PROXY_HOST=localhost
PROXY_PORT=8080 PROXY_PORT=8080
ACS_TAG=7.4.1.1
ATR_TAG=3.0.0
ATE_AIO_TAG=4.0.0
ASFS_TAG=3.0.0
APS_TAG=2.4.1
AAMQ_TAG=latest
POSTGRES_TAG=13
ASIE_TAG=2.0.8.2
ACS_SHARE_TAG=7.4.1.2
ALF_SYNC_SERV_TAG=3.9.0
ADW_TAG=4.1.0

View File

@@ -3,14 +3,3 @@
This Git Repository intends to represent environments in Docker Compose. All environments are effectively a derivative of other environments. The original environment is the environment represented by the `base` branch. All derivative environments are represented by other branches. Those branches are named in the format `{core}.{parent}`. This Git Repository intends to represent environments in Docker Compose. All environments are effectively a derivative of other environments. The original environment is the environment represented by the `base` branch. All derivative environments are represented by other branches. Those branches are named in the format `{core}.{parent}`.
## Licensing
This version of Alfresco requires licensing.
### ACS Enterprise
The enterprise version of ACS requires a license file for it to work for more than 2 days. This means it isn't really required, but it is becomes important when you utilize any `persist` branch. For licensing to work, you must place your license file in the following directory relative to the user home directory that runs the Docker Compose command: `alfresco/license/acs`. There must be just one file in there that ends in `.lic`.
### APS
APS requires a license file for it to work. For licensing to work, you must place your license file in the following directory relative to the user home directory that runs the Docker Compose command: `alfresco/license/aps`. The filename must be `activiti.lic`. You can use symbolic linking if desired.

View File

@@ -1,172 +1,32 @@
# Originally sourced from https://github.com/Alfresco/acs-deployment/blob/4.0.3/docker-compose/docker-compose.yml # Sourced from https://github.com/Alfresco/acs-deployment/blob/4.0.3/docker-compose/docker-compose.yml
# #
version: "3" # Using version 2 as 3 does not support resource constraint options (cpu_*, mem_* limits) for non swarm mode in Compose
version: "2"
services: services:
platform:
image: quay.io/alfresco/alfresco-governance-repository-enterprise:${ACS_TAG}
environment:
JAVA_TOOL_OPTIONS: "
-Dencryption.keystore.type=JCEKS
-Dencryption.cipherAlgorithm=DESede/CBC/PKCS5Padding
-Dencryption.keyAlgorithm=DESede
-Dencryption.keystore.location=/usr/local/tomcat/shared/classes/alfresco/extension/keystore/keystore
-Dmetadata-keystore.password=mp6yc0UD9e
-Dmetadata-keystore.aliases=metadata
-Dmetadata-keystore.metadata.password=oKIWzVdEdA
-Dmetadata-keystore.metadata.algorithm=DESede
"
JAVA_OPTS: "
-Xms512m -Xmx1g
-Ddb.driver=org.postgresql.Driver
-Ddb.username=alfresco
-Ddb.password=alfresco
-Ddb.url=jdbc:postgresql://postgres-acs:5432/alfresco
-Dindex.subsystem.name=solr6
-Dsolr.host=search
-Dsolr.secureComms=secret
-Dsolr.sharedSecret=alfresco-secret
-Dshare.host=${PROXY_HOST}
-Dshare.port=${PROXY_PORT}
-Dshare.protocol=${PROXY_PROTOCOL}
-Dalfresco.host=${PROXY_HOST}
-Dalfresco.port=${PROXY_PORT}
-Dalfresco.protocol=${PROXY_PROTOCOL}
-Daos.baseUrlOverwrite=${PROXY_PROTOCOL}://${PROXY_HOST}:${PROXY_PORT}/alfresco/aos
-Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\"
-Ddeployment.method=DOCKER_COMPOSE
-Dcsrf.filter.enabled=false
-Dcors.enabled=false
-Dtransform.service.enabled=true
-Dtransform.service.url=http://transform-router:8095
-Dsfs.url=http://shared-file-store:8099
-Dlocal.transform.service.enabled=true
-Dalfresco-pdf-renderer.url=http://transform-engine-aio:8090
-Djodconverter.url=http://transform-engine-aio:8090
-Dimg.url=http://transform-engine-aio:8090
-Dtika.url=http://transform-engine-aio:8090
-Dtransform.misc.url=http://transform-engine-aio:8090
-Ddsync.service.uris=${PROXY_PROTOCOL}://${PROXY_HOST}:${PROXY_PORT}/sync
-Dsystem.content.eagerOrphanCleanup=true
-Dsystem.content.orphanProtectDays=0
-Djodconverter.enabled=false
"
depends_on:
- postgres-acs
- activemq
- shared-file-store
volumes:
- "$ALFRESCO_LICENSE_DIR/acs:/usr/local/tomcat/shared/classes/alfresco/extension/license:ro"
transform-router:
image: quay.io/alfresco/alfresco-transform-router:${ATR_TAG}
environment:
ACTIVEMQ_URL: "nio://activemq:61616"
CORE_AIO_URL : "http://transform-core-aio:8090"
FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file"
depends_on:
- activemq
- shared-file-store
transform-core-aio:
image: alfresco/alfresco-transform-core-aio:${ATE_AIO_TAG}
environment:
ACTIVEMQ_URL: "nio://activemq:61616"
FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file"
depends_on:
- activemq
- shared-file-store
shared-file-store:
image: quay.io/alfresco/alfresco-shared-file-store:${ASFS_TAG}
volumes:
- shared-file-store-volume:/tmp/Alfresco/sfs
share:
image: quay.io/alfresco/alfresco-governance-share-enterprise:${ACS_SHARE_TAG}
environment:
REPO_HOST: "platform"
CSRF_FILTER_REFERER: "${PROXY_PROTOCOL}://${PROXY_HOST}(:${PROXY_PORT})?/?.*"
CSRF_FILTER_ORIGIN: "${PROXY_PROTOCOL}://${PROXY_HOST}(:${PROXY_PORT})?"
JAVA_OPTS: "
-Dshare.host=${PROXY_HOST}
-Dshare.port=${PROXY_PORT}
-Dshare.protocol=${PROXY_PROTOCOL}
-Dalfresco.host=${PROXY_HOST}
-Dalfresco.port=${PROXY_PORT}
-Dalfresco.protocol=${PROXY_PROTOCOL}
"
postgres-acs:
image: postgres:${POSTGRES_TAG}
environment:
POSTGRES_PASSWORD: alfresco
POSTGRES_USER: alfresco
POSTGRES_DB: alfresco
command: postgres -c max_connections=300 -c log_min_messages=LOG
search:
image: alfresco/alfresco-search-services:${ASIE_TAG}
environment:
SOLR_ALFRESCO_HOST: platform
SOLR_SOLR_HOST: search
SOLR_CREATE_ALFRESCO_DEFAULTS: alfresco,archive
ALFRESCO_SECURE_COMMS: secret
JAVA_TOOL_OPTIONS: "
-Dalfresco.secureComms.secret=alfresco-secret
"
healthcheck:
test: "curl -fsS http://localhost:8983/solr"
activemq:
image: alfresco/alfresco-activemq:${AAMQ_TAG}
environment:
ACTIVEMQ_OPTS_MEMORY: -Xms64m -Xmx256m
ACTIVEMQ_ADMIN_LOGIN: alfresco
ACTIVEMQ_ADMIN_PASSWORD: alfresco
sync:
image: quay.io/alfresco/service-sync:${ALF_SYNC_SERV_TAG}
environment:
JAVA_OPTS : "
-Xms64m -Xmx256m
-Dsql.db.driver=org.postgresql.Driver
-Dsql.db.url=jdbc:postgresql://postgres-acs:5432/alfresco
-Dsql.db.username=alfresco
-Dsql.db.password=alfresco
-Dmessaging.broker.host=activemq
-Drepo.hostname=platform
-Drepo.port=8080
-Ddw.server.applicationConnectors[0].type=http
"
depends_on:
- postgres-acs
- activemq
digital-workspace:
image: quay.io/alfresco/alfresco-digital-workspace:${ADW_TAG}
environment:
BASE_PATH: ./
APP_CONFIG_ECM_HOST: "${PROXY_PROTOCOL}://${PROXY_HOST}:${PROXY_PORT}"
APP_BASE_SHARE_URL: "${PROXY_PROTOCOL}://${PROXY_HOST}:${PROXY_PORT}/#/preview/s"
activiti-app: activiti-app:
image: quay.io/alfresco/alfresco-process-services:${APS_TAG} image: alfresco/process-services:1.11.1.1
mem_limit: 512m
environment: environment:
ACTIVITI_DATASOURCE_USERNAME: alfresco ACTIVITI_DATASOURCE_USERNAME: alfresco
ACTIVITI_DATASOURCE_PASSWORD: alfresco ACTIVITI_DATASOURCE_PASSWORD: alfresco
ACTIVITI_DATASOURCE_DRIVER: org.postgresql.Driver ACTIVITI_DATASOURCE_DRIVER: org.postgresql.Driver
ACTIVITI_HIBERNATE_DIALECT: org.hibernate.dialect.PostgreSQLDialect ACTIVITI_HIBERNATE_DIALECT: org.hibernate.dialect.PostgreSQLDialect
ACTIVITI_DATASOURCE_URL: 'jdbc:postgresql://postgres-aps:5432/activiti?characterEncoding=UTF-8' ACTIVITI_DATASOURCE_URL: 'jdbc:postgresql://postgres-aps:5432/activiti?characterEncoding=UTF-8'
JAVA_OPTS: "-Xms128m -Xmx256m" ACTIVITI_ES_SERVER_TYPE: rest
ACTIVITI_ES_REST_CLIENT_ADDRESS: search-aps
ACTIVITI_ES_REST_CLIENT_PORT: 9200
ACTIVITI_ES_REST_CLIENT_SCHEMA: http
JAVA_OPTS: "-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"
depends_on: depends_on:
- postgres-aps - postgres-aps
volumes: volumes:
- "$ALFRESCO_LICENSE_DIR/aps:/home/alfresco/.activiti/enterprise-license:ro" - "$ALFRESCO_LICENSE_DIR/aps:/root/.activiti/enterprise-license:ro"
- apsbin-volume:/var/lib/postgresql/data:rw
activiti-admin: activiti-admin:
image: quay.io/alfresco/alfresco-process-services-admin:${APS_TAG} image: alfresco/process-services-admin:1.11.1.1
mem_limit: 256m
environment: environment:
ACTIVITI_ADMIN_DATASOURCE_USERNAME: alfresco ACTIVITI_ADMIN_DATASOURCE_USERNAME: alfresco
ACTIVITI_ADMIN_DATASOURCE_PASSWORD: alfresco ACTIVITI_ADMIN_DATASOURCE_PASSWORD: alfresco
@@ -175,42 +35,63 @@ services:
ACTIVITI_ADMIN_DATASOURCE_URL: 'jdbc:postgresql://postgres-aps-admin:5432/activiti-admin?characterEncoding=UTF-8' ACTIVITI_ADMIN_DATASOURCE_URL: 'jdbc:postgresql://postgres-aps-admin:5432/activiti-admin?characterEncoding=UTF-8'
ACTIVITI_ADMIN_REST_APP_HOST: http://activiti-app ACTIVITI_ADMIN_REST_APP_HOST: http://activiti-app
ACTIVITI_ADMIN_REST_APP_PORT: 8080 ACTIVITI_ADMIN_REST_APP_PORT: 8080
JAVA_OPTS: "-Xms64m -Xmx128m" JAVA_OPTS: "-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80"
depends_on: depends_on:
- postgres-aps-admin - postgres-aps-admin
- activiti-app - activiti-app
postgres-aps: postgres-aps:
image: postgres:${POSTGRES_TAG} image: postgres:11.6
mem_limit: 256m
environment: environment:
POSTGRES_DB: activiti POSTGRES_DB: activiti
POSTGRES_USER: alfresco POSTGRES_USER: alfresco
POSTGRES_PASSWORD: alfresco POSTGRES_PASSWORD: alfresco
command: postgres -c max_connections=300 -c log_min_messages=LOG command: postgres -c max_connections=300 -c log_min_messages=LOG
volumes:
- apsdb-volume:/var/lib/postgresql/data:rw
postgres-aps-admin: postgres-aps-admin:
image: postgres:${POSTGRES_TAG} image: postgres:11.6
mem_limit: 128m
environment: environment:
POSTGRES_DB: activiti-admin POSTGRES_DB: activiti-admin
POSTGRES_USER: alfresco POSTGRES_USER: alfresco
POSTGRES_PASSWORD: alfresco POSTGRES_PASSWORD: alfresco
command: postgres -c max_connections=50 -c log_min_messages=LOG command: postgres -c max_connections=50 -c log_min_messages=LOG
volumes:
- apsadmindb-volume:/var/lib/postgresql/data:rw
search-aps:
image: elasticsearch:7.6.0
mem_limit: 512m
environment:
discovery.type: single-node
ES_JAVA_OPTS: "-Xms128m -Xmx256m"
ulimits:
memlock:
soft: -1
hard: -1
depends_on:
- activiti-app
volumes:
- esindex-volume:/var/lib/postgresql/data:rw
proxy: proxy:
build: ./nginx-ingress build: ./nginx-ingress
image: local/nginx-ingress:acs-sync-share-adw-aps image: local/nginx-ingress:acs
ports: ports:
- 8080:8080 - 8080:8080
depends_on: depends_on:
- platform
- sync
- share
- digital-workspace
- activiti-app - activiti-app
- activiti-admin - activiti-admin
volumes: volumes:
shared-file-store-volume: apsbin-volume:
driver_opts: driver: local
type: tmpfs apsdb-volume:
device: tmpfs driver: local
apsadmindb-volume:
driver: local
esindex-volume:
driver: local

View File

@@ -1,21 +1,5 @@
#!/bin/sh #!/bin/sh
if [[ $ACS_PLATFORM_URL ]]; then
sed -i s%http:\/\/platform:8080%"$ACS_PLATFORM_URL"%g /etc/nginx/nginx.conf
fi
if [[ $ACS_SYNC_URL ]]; then
sed -i s%http:\/\/sync:9090%"$ACS_SYNC_URL"%g /etc/nginx/nginx.conf
fi
if [[ $ACS_SHARE_URL ]]; then
sed -i s%http:\/\/share:8080%"$ACS_SHARE_URL"%g /etc/nginx/nginx.conf
fi
if [[ $ADW_URL ]]; then
sed -i s%http:\/\/digital-workspace:8080%"$ADW_URL"%g /etc/nginx/nginx.conf
fi
if [[ $APS_APP_URL ]]; then if [[ $APS_APP_URL ]]; then
sed -i s%http:\/\/activiti-app:8080%"$APS_APP_URL"%g /etc/nginx/nginx.conf sed -i s%http:\/\/activiti-app:8080%"$APS_APP_URL"%g /etc/nginx/nginx.conf
fi fi

View File

@@ -39,18 +39,7 @@ http {
location ~ ^(/.*/s/prometheus)$ {return 403;} location ~ ^(/.*/s/prometheus)$ {return 403;}
location / { location / {
proxy_pass http://platform:8080; return 301 $scheme://$http_host/activiti-app;
}
location /alfresco/ {
proxy_pass http://platform:8080;
# If using external proxy / load balancer (for initial redirect if no trailing slash)
absolute_redirect off;
}
location /sync/ {
proxy_pass http://sync:9090/alfresco/;
} }
location /activiti-app/ { location /activiti-app/ {
@@ -66,19 +55,5 @@ http {
# If using external proxy / load balancer (for initial redirect if no trailing slash) # If using external proxy / load balancer (for initial redirect if no trailing slash)
absolute_redirect off; absolute_redirect off;
} }
location /share/ {
proxy_pass http://share:8080;
# If using external proxy / load balancer (for initial redirect if no trailing slash)
absolute_redirect off;
}
location /workspace/ {
proxy_pass http://digital-workspace:8080/;
# If using external proxy / load balancer (for initial redirect if no trailing slash)
absolute_redirect off;
}
} }
} }