Compare commits

..

5 Commits

23 changed files with 182 additions and 286 deletions

7
.env
View File

@@ -1,7 +0,0 @@
ALFRESCO_DIR=~/alfresco
ALFRESCO_LICENSE_DIR=~/alfresco/license
PROXY_PROTOCOL=http
PROXY_HOST=localhost
PROXY_PORT=8080
IDENTITY_SERVICE_BASEURL=http://auth.example.org:8080

View File

@@ -3,127 +3,3 @@
# Using version 2 as 3 does not support resource constraint options (cpu_*, mem_* limits) for non swarm mode in Compose
version: "2"
services:
platform:
image: alfresco/alfresco-content-repository-community:6.2.0-ga
mem_limit: 1700m
environment:
JAVA_OPTS: "
-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.port=8983
-Dsolr.secureComms=none
-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
-DlocalTransform.core-aio.url=http://transform-core-aio:8090/
-Dalfresco-pdf-renderer.url=http://transform-core-aio:8090/
-Djodconverter.url=http://transform-core-aio:8090/
-Dimg.url=http://transform-core-aio:8090/
-Dtika.url=http://transform-core-aio:8090/
-Dtransform.misc.url=http://transform-core-aio:8090/
-Dcsrf.filter.enabled=false
-XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80
-Dtransform.service.enabled=false
-Dauthentication.chain=aims:identity-service,builtin:alfrescoNtlm
-Didentity-service.authentication.defaultAdministratorUserNames=admin.1
-Didentity-service.auth-server-url=${IDENTITY_SERVICE_BASEURL}/auth
-Dsystem.content.eagerOrphanCleanup=true
-Dsystem.content.orphanProtectDays=0
-Djodconverter.enabled=false
"
depends_on:
- postgres-acs
- activemq
transform-core-aio:
image: alfresco/alfresco-transform-core-aio:2.3.6
share:
image: alfresco/alfresco-share:6.2.2
mem_limit: 512m
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}
-Daims.enabled=true
-Daims.realm=alfresco
-Daims.resource=acs-share
-Daims.authServerUrl=${IDENTITY_SERVICE_BASEURL}/auth
-Daims.sslRequired=none
-Daims.publicClient=true
-Daims.autodetectBearerOnly=true
-Daims.alwaysRefreshToken=true
-Daims.principalAttribute=preferred_username
-Daims.enableBasicAuth=true
"
postgres-acs:
image: postgres:11.7
mem_limit: 512m
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:2.0.1
mem_limit: 2g
environment:
- SOLR_ALFRESCO_HOST=platform
- SOLR_ALFRESCO_PORT=8080
- SOLR_SOLR_HOST=search
- SOLR_SOLR_PORT=8983
- SOLR_CREATE_ALFRESCO_DEFAULTS=alfresco,archive
- ALFRESCO_SECURE_COMMS=none
activemq:
image: alfresco/alfresco-activemq:5.15.8
mem_limit: 256m
identity:
image: alfresco/alfresco-identity-service:1.3
user: jboss
environment:
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: admin
KEYCLOAK_HOSTNAME: auth.example.org
KEYCLOAK_IMPORT: /tmp/keycloak-alfresco-realm.json
KEYCLOAK_STATISTICS: enabled
networks:
default:
aliases:
- "auth.example.org"
volumes:
- ./keycloak-alfresco-realm.json:/tmp/keycloak-alfresco-realm.json:ro
proxy:
build: ./nginx-ingress
image: local/nginx-ingress:acs-share-aims
ports:
- 8080:8080
depends_on:
- platform
- share
- identity

View File

@@ -1,62 +0,0 @@
{
"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"
}
},
{
"clientId": "acs-share",
"name": "ACS Share",
"enabled": true,
"alwaysDisplayInConsole": false,
"redirectUris": [ "*" ],
"standardFlowEnabled": true,
"implicitFlowEnabled": false,
"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" ]
}
]
}

View File

@@ -1,8 +0,0 @@
FROM nginx:stable-alpine
COPY nginx.conf /etc/nginx/nginx.conf
COPY entrypoint.sh /
RUN chmod +x /entrypoint.sh
ENTRYPOINT [ "/entrypoint.sh" ]

View File

@@ -1,19 +0,0 @@
#!/bin/sh
if [[ $ACS_PLATFORM_URL ]]; then
sed -i s%http:\/\/platform:8080%"$ACS_PLATFORM_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 [[ $AIMS_URL ]]; then
sed -i s%http:\/\/identity:8080%"$AIMS_URL"%g /etc/nginx/nginx.conf
fi
if [[ $ACCESS_LOG ]]; then
sed -i s%\#ENV_ACCESS_LOG%"access_log $ACCESS_LOG;"%g /etc/nginx/nginx.conf
fi
nginx -g "daemon off;"

View File

@@ -1,66 +0,0 @@
worker_processes 1;
events {
worker_connections 1024;
}
http {
server {
listen *:8080;
client_max_body_size 0;
set $allowOriginSite *;
proxy_pass_request_headers on;
proxy_pass_header Set-Cookie;
# External settings, do not remove
#ENV_ACCESS_LOG
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_redirect 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 X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
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 / {
proxy_pass http://platform:8080;
}
location /alfresco/ {
proxy_pass http://platform:8080;
# If using external proxy / load balancer (for initial redirect if no trailing slash)
absolute_redirect off;
}
location /share/ {
proxy_pass http://share:8080;
}
location /auth/ {
proxy_pass http://identity:8080;
# If using external proxy / load balancer (for initial redirect if no trailing slash)
absolute_redirect off;
}
}
}

View File

@@ -0,0 +1,8 @@
REM Usage: .\download-maven-alfresco-private.bat org/maven/group/path maven-artifact-id 1.2.3 jar a_username a_password
@echo off
set THISDIR_REL=%~dp0
set THISDIR=%THISDIR_REL:~0,-1%
set MAVEN_BASEURL=https://artifacts.alfresco.com/nexus/content/groups/private
call "%THISDIR%\download-maven.bat" %MAVEN_BASEURL% %*

View File

@@ -0,0 +1,6 @@
# Usage: .\download-maven-alfresco-private.ps1 org/maven/group/path maven-artifact-id 1.2.3 jar a_username a_password
$THISDIR=$PSScriptRoot
$MAVEN_BASEURL="https://artifacts.alfresco.com/nexus/content/groups/private"
Invoke-Expression "& '${THISDIR}\download-maven.ps1' '${MAVEN_BASEURL}' $args"

View File

@@ -0,0 +1,7 @@
#!/bin/sh
# Usage: ./download-maven-alfresco-private.sh org/maven/group/path maven-artifact-id 1.2.3 jar a_username a_password
THISDIR=`dirname "$(readlink -f "$0")"`
MAVEN_BASEDIR="https://artifacts.alfresco.com/nexus/content/groups/private"
${THISDIR}/download-maven.sh "${MAVEN_BASEDIR}" $*

View File

@@ -0,0 +1,8 @@
REM Usage: .\download-maven-alfresco-public.bat org/maven/group/path maven-artifact-id 1.2.3 jar
@echo off
set THISDIR_REL=%~dp0
set THISDIR=%THISDIR_REL:~0,-1%
set MAVEN_BASEURL=https://artifacts.alfresco.com/nexus/content/groups/public
call "%THISDIR%\download-maven.bat" %MAVEN_BASEURL% %*

View File

@@ -0,0 +1,6 @@
# Usage: .\download-maven-alfresco-public.ps1 org/maven/group/path maven-artifact-id 1.2.3 jar
$THISDIR=$PSScriptRoot
$MAVEN_BASEURL="https://artifacts.alfresco.com/nexus/content/groups/public"
Invoke-Expression "& '${THISDIR}\download-maven.ps1' '${MAVEN_BASEURL}' $args"

View File

@@ -0,0 +1,7 @@
#!/bin/sh
# Usage: ./download-maven-alfresco-public.sh org/maven/group/path maven-artifact-id 1.2.3 jar
THISDIR=`dirname "$(readlink -f "$0")"`
MAVEN_BASEDIR="https://artifacts.alfresco.com/nexus/content/groups/public"
${THISDIR}/download-maven.sh "${MAVEN_BASEDIR}" $*

View File

@@ -0,0 +1,7 @@
#!/bin/sh
# Usage: ./download-maven-inteligr8-private.sh org/maven/group/path maven-artifact-id 1.2.3 jar a_username a_password
THISDIR=`dirname "$(readlink -f "$0")"`
MAVEN_BASEURL="http://repos.yateslong.us/nexus/repository/inteligr8"
${THISDIR}/download-maven.sh "${MAVEN_BASEURL}" $*

View File

@@ -0,0 +1,7 @@
#!/bin/sh
# Usage: ./download-maven-inteligr8-public.sh org/maven/group/path maven-artifact-id 1.2.3 jar
THISDIR=`dirname "$(readlink -f "$0")"`
MAVEN_BASEURL="http://repos.yateslong.us/nexus/repositories/inteligr8-public"
${THISDIR}/download-maven.sh "${MAVEN_BASEURL}" $*

View File

@@ -0,0 +1,18 @@
REM Usage: .\download-maven.bat https://repo1.maven.org/maven2 org/maven/group/path maven-artifact-id 1.2.3 jar
REM Usage: .\download-maven.bat https://repo1.maven.org/maven2 org/maven/group/path maven-artifact-id 1.2.3 jar a_username a_password
@echo off
set THISDIR_REL=%~dp0
set THISDIR=%THISDIR_REL:~0,-1%
set MAVEN_BASEURL=%1
set MAVEN_GROUP_PATH=%2
set MAVEN_ARTIFACT_ID=%3
set MAVEN_ARTIFACT_VERSION=%4
set MAVEN_PACKAGING=%5
set HTTP_USERNAME=%6
set HTTP_PASSWORD=%7
set MAVEN_ARTIFACT_FILENAME=%MAVEN_ARTIFACT_ID%-%MAVEN_ARTIFACT_VERSION%.%MAVEN_PACKAGING%
set MAVEN_URL=%MAVEN_BASEURL%/%MAVEN_GROUP_PATH%/%MAVEN_ARTIFACT_ID%/%MAVEN_ARTIFACT_VERSION%/%MAVEN_ARTIFACT_FILENAME%
call "%THISDIR%\download-url.bat" %MAVEN_URL% %MAVEN_ARTIFACT_FILENAME% %HTTP_USERNAME% %HTTP_PASSWORD%

View File

@@ -0,0 +1,16 @@
# Usage: .\download-maven.ps1 https://repo1.maven.org/maven2 org/maven/group/path maven-artifact-id 1.2.3 jar
# Usage: .\download-maven.ps1 https://repo1.maven.org/maven2 org/maven/group/path maven-artifact-id 1.2.3 jar a_username a_password
$THISDIR=$PSScriptRoot
$MAVEN_BASEURL=$args[0]
$MAVEN_GROUP_PATH=$args[1]
$MAVEN_ARTIFACT_ID=$args[2]
$MAVEN_ARTIFACT_VERSION=$args[3]
$MAVEN_PACKAGING=$args[4]
$HTTP_USERNAME=$args[5]
$HTTP_PASSWORD=$args[6]
$MAVEN_ARTIFACT_FILENAME="${MAVEN_ARTIFACT_ID}-${MAVEN_ARTIFACT_VERSION}.${MAVEN_PACKAGING}"
$MAVEN_URL="${MAVEN_BASEURL}/${MAVEN_GROUP_PATH}/${MAVEN_ARTIFACT_ID}/${MAVEN_ARTIFACT_VERSION}/${MAVEN_ARTIFACT_FILENAME}"
Invoke-Expression "& '${THISDIR}\download-url.ps1' '${MAVEN_URL}' '${MAVEN_ARTIFACT_FILENAME}' '${HTTP_USERNAME}' '${HTTP_PASSWORD}'"

18
scripts/download-maven.sh Executable file
View File

@@ -0,0 +1,18 @@
#!/bin/sh
# Usage: ./download-maven.sh https://repo1.maven.org/maven2 org/maven/group/path maven-artifact-id 1.2.3 jar
# Usage: ./download-maven.sh https://repo1.maven.org/maven2 org/maven/group/path maven-artifact-id 1.2.3 jar a_username a_password
THISDIR=`dirname "$(readlink -f "$0")"`
MAVEN_BASEURL=$1
MAVEN_GROUP_PATH=$2
MAVEN_ARTIFACT_ID=$3
MAVEN_ARTIFACT_VERSION=$4
MAVEN_PACKAGING=$5
HTTP_USERNAME=$6
HTTP_PASSWORD=$7
MAVEN_ARTIFACT_FILENAME=${MAVEN_ARTIFACT_ID}-${MAVEN_ARTIFACT_VERSION}.${MAVEN_PACKAGING}
MAVEN_URL=${MAVEN_BASEURL}/${MAVEN_GROUP_PATH}/${MAVEN_ARTIFACT_ID}/${MAVEN_ARTIFACT_VERSION}/${MAVEN_ARTIFACT_FILENAME}
echo $MAVEN_URL
${THISDIR}/download-url.sh "${MAVEN_URL}" "${MAVEN_ARTIFACT_FILENAME}" "${HTTP_USERNAME}" "${HTTP_PASSWORD}"

13
scripts/download-url.bat Normal file
View File

@@ -0,0 +1,13 @@
REM Usage: .\download.bat https://www.a.url/to/download filename_for_downloaded.file
REM Usage: .\download.bat https://www.a.url/to/download filename_for_downloaded.file a_username a_password
@echo off
set URL=%1
set FILENAME=%2
if NOT "%~3" == "" (
set USERNAME=%3
set PASSWORD=%4
curl -L -o %FILENAME% -u %USERNAME%:%PASSWORD% %URL%
) else (
curl -L -o %FILENAME% %URL%
)

16
scripts/download-url.ps1 Normal file
View File

@@ -0,0 +1,16 @@
# Usage: .\download.ps1 https://www.a.url/to/download filename_for_downloaded.file
# Usage: .\download.ps1 https://www.a.url/to/download filename_for_downloaded.file a_username a_password
$URL=$args[0]
$FILENAME=$args[1]
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
if ($args.count -gt 2) {
$USERNAME=$args[2]
$PASSWORD=$args[3]
$AUTH_PAIR=[System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes("$($USERNAME):$($PASSWORD)"))
$AUTH_HEADERS=@{Authorization="Basic $AUTH_PAIR"}
Invoke-WebRequest -Uri "${URL}" -OutFile "${FILENAME}" -Headers ${AUTH_HEADERS}
} else {
Invoke-WebRequest -Uri "${URL}" -OutFile "${FILENAME}"
}

13
scripts/download-url.sh Executable file
View File

@@ -0,0 +1,13 @@
#!/bin/sh
# Usage: ./download.sh https://www.a.url/to/download filename_for_downloaded.file
# Usage: ./download.sh https://www.a.url/to/download filename_for_downloaded.file a_username a_password
URL=$1
FILENAME=$2
if [ "$#" -gt 2 ]; then
USERNAME=$3
PASSWORD=$4
curl -L -o "${FILENAME}" -u "${USERNAME}:${PASSWORD}" ${URL}
else
curl -L -o "${FILENAME}" ${URL}
fi

11
scripts/unpack.bat Normal file
View File

@@ -0,0 +1,11 @@
REM Usage: .\unpack.bat filename.zip
REM Usage: .\unpack.bat filename.zip c:\
@echo off
set FILENAME=%1
if NOT "%~2" == "" (
set DESTPATH=%2
powershell -command "Expand-Archive -Force -Path '%FILENAME%' -DestinationPath '%DESTPATH%'"
) else (
powershell -command "Expand-Archive -Force -Path '%FILENAME%' -DestinationPath '%~dp0'"
)

10
scripts/unpack.ps1 Normal file
View File

@@ -0,0 +1,10 @@
# Usage: .\unpack.ps1 filename.zip
# Usage: .\unpack.ps1 filename.zip c:\
$FILENAME=$args[0]
if ($args.count -gt 1) {
$DESTPATH=$args[1]
Expand-Archive -Force -Path "${FILENAME}" -DestinationPath "${DESTPATH}"
} else {
Expand-Archive -Force -Path "${FILENAME}"
}

11
scripts/unpack.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/bin/sh
# Usage: ./unpack.sh filename.zip
# Usage: ./unpack.sh filename.zip /home/user
FILENAME=$1
if [ "$#" -gt 1 ]; then
DESTPATH=$2
unzip -d ${DESTPATH} ${FILENAME}
else
unzip ${FILENAME}
fi