Compare commits
5 Commits
acs-fronte
...
propagate/
Author | SHA1 | Date | |
---|---|---|---|
|
f23cda3fd1 | ||
b4be2e251c | |||
44b6f26f4f | |||
b124cd027c | |||
919d842d61 |
15
.env
15
.env
@@ -1,17 +1,4 @@
|
|||||||
ALFRESCO_DIR=~/alfresco
|
|
||||||
ALFRESCO_LICENSE_DIR=~/alfresco/license
|
|
||||||
|
|
||||||
PROXY_PROTOCOL=http
|
PROXY_PROTOCOL=http
|
||||||
PROXY_HOST=localhost
|
PROXY_HOST=localhost
|
||||||
PROXY_PORT=8080
|
PROXY_PORT=8080
|
||||||
|
IDENTITY_SERVICE_BASEURL=http://auth.example.org:8080
|
||||||
ACS_TAG=7.4.1.1
|
|
||||||
ATR_TAG=3.0.0
|
|
||||||
ATE_AIO_TAG=4.0.0
|
|
||||||
ASFS_TAG=3.0.0
|
|
||||||
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
|
|
||||||
|
@@ -3,11 +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`.
|
|
||||||
|
|
||||||
|
@@ -1,169 +1,30 @@
|
|||||||
# 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:
|
identity:
|
||||||
image: quay.io/alfresco/alfresco-content-repository:${ACS_TAG}
|
image: alfresco/alfresco-identity-service:1.3
|
||||||
|
user: jboss
|
||||||
environment:
|
environment:
|
||||||
JAVA_TOOL_OPTIONS: "
|
KEYCLOAK_USER: admin
|
||||||
-Dencryption.keystore.type=JCEKS
|
KEYCLOAK_PASSWORD: admin
|
||||||
-Dencryption.cipherAlgorithm=DESede/CBC/PKCS5Padding
|
KEYCLOAK_HOSTNAME: auth.example.org
|
||||||
-Dencryption.keyAlgorithm=DESede
|
KEYCLOAK_IMPORT: /tmp/keycloak-alfresco-realm.json
|
||||||
-Dencryption.keystore.location=/usr/local/tomcat/shared/classes/alfresco/extension/keystore/keystore
|
KEYCLOAK_STATISTICS: enabled
|
||||||
-Dmetadata-keystore.password=mp6yc0UD9e
|
networks:
|
||||||
-Dmetadata-keystore.aliases=metadata
|
default:
|
||||||
-Dmetadata-keystore.metadata.password=oKIWzVdEdA
|
aliases:
|
||||||
-Dmetadata-keystore.metadata.algorithm=DESede
|
- "auth.example.org"
|
||||||
"
|
|
||||||
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:
|
volumes:
|
||||||
- "$ALFRESCO_LICENSE_DIR/acs:/usr/local/tomcat/shared/classes/alfresco/extension/license:ro"
|
- ./keycloak-alfresco-realm.json:/tmp/keycloak-alfresco-realm.json: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: alfresco/alfresco-share:${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"
|
|
||||||
|
|
||||||
proxy:
|
proxy:
|
||||||
build: ./nginx-ingress
|
build: ./nginx-ingress
|
||||||
image: local/nginx-ingress:acs-sync-share-adw
|
image: local/nginx-ingress:aims
|
||||||
ports:
|
ports:
|
||||||
- 8080:8080
|
- 8080:8080
|
||||||
depends_on:
|
depends_on:
|
||||||
- platform
|
- identity
|
||||||
- sync
|
|
||||||
- share
|
|
||||||
- digital-workspace
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
shared-file-store-volume:
|
|
||||||
driver_opts:
|
|
||||||
type: tmpfs
|
|
||||||
device: tmpfs
|
|
||||||
|
47
keycloak-alfresco-realm.json
Normal file
47
keycloak-alfresco-realm.json
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
{
|
||||||
|
"realm": "alfresco",
|
||||||
|
"enabled": true,
|
||||||
|
"sslRequired": "external",
|
||||||
|
"registrationAllowed": false,
|
||||||
|
"roles": {
|
||||||
|
"realm": [ {
|
||||||
|
"name": "user",
|
||||||
|
"description": "User privileges"
|
||||||
|
}, {
|
||||||
|
"name": "admin",
|
||||||
|
"description": "Administrator privileges"
|
||||||
|
} ]
|
||||||
|
},
|
||||||
|
"clients": [
|
||||||
|
{
|
||||||
|
"clientId": "alfresco",
|
||||||
|
"name": "Alfresco Products",
|
||||||
|
"enabled": true,
|
||||||
|
"alwaysDisplayInConsole": false,
|
||||||
|
"redirectUris": [ "*" ],
|
||||||
|
"standardFlowEnabled": true,
|
||||||
|
"implicitFlowEnabled": true,
|
||||||
|
"directAccessGrantsEnabled": false,
|
||||||
|
"publicClient": true,
|
||||||
|
"protocol": "openid-connect",
|
||||||
|
"attributes": {
|
||||||
|
"login_theme": "alfresco"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"requiredCredentials": [ "password" ],
|
||||||
|
"users": [
|
||||||
|
{
|
||||||
|
"username": "admin",
|
||||||
|
"email": "admin@app.activiti.com",
|
||||||
|
"enabled": true,
|
||||||
|
"credentials" : [
|
||||||
|
{
|
||||||
|
"type" : "password",
|
||||||
|
"value" : "admin"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"realmRoles": [ "user", "admin" ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@@ -1,19 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
if [[ $ACS_PLATFORM_URL ]]; then
|
if [[ $AIMS_URL ]]; then
|
||||||
sed -i s%http:\/\/platform:8080%"$ACS_PLATFORM_URL"%g /etc/nginx/nginx.conf
|
sed -i s%http:\/\/identity:8080%"$AIMS_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
|
fi
|
||||||
|
|
||||||
if [[ $ACCESS_LOG ]]; then
|
if [[ $ACCESS_LOG ]]; then
|
||||||
|
@@ -19,49 +19,22 @@ http {
|
|||||||
|
|
||||||
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
|
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
|
||||||
proxy_redirect off;
|
proxy_redirect off;
|
||||||
proxy_buffering off;
|
# proxy_buffering off;
|
||||||
|
proxy_buffer_size 64k;
|
||||||
|
proxy_buffers 4 256k;
|
||||||
|
proxy_busy_buffers_size 256k;
|
||||||
proxy_set_header Host $http_host;
|
proxy_set_header Host $http_host;
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
proxy_pass_header Set-Cookie;
|
proxy_pass_header Set-Cookie;
|
||||||
|
|
||||||
# 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;}
|
|
||||||
|
|
||||||
# Protect access to Prometheus endpoint
|
|
||||||
location ~ ^(/.*/s/prometheus)$ {return 403;}
|
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
proxy_pass http://platform:8080;
|
return 301 $scheme://$http_host/auth;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /alfresco/ {
|
location /auth/ {
|
||||||
proxy_pass http://platform:8080;
|
proxy_pass http://identity: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 /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)
|
# If using external proxy / load balancer (for initial redirect if no trailing slash)
|
||||||
absolute_redirect off;
|
absolute_redirect off;
|
||||||
|
Reference in New Issue
Block a user