Repository files navigation

ProcessMaker 4 Core Docker Instance

This docker-compose setup allows you to quickly start up an instance of ProcessMaker4 Core to test with.

This build has no enterprise packages.

Requirements

Running an instance

  1. Clone or download this repo

  2. Modify the .env file (optional)

    VariableDescription
    PM_VERSIONThe version to install from dockerhub. Must match one of the tags at https://hub.docker.com/r/processmaker/pm4-core/tags or build it locally
    PM_APP_URLThe base URL that's accessible from outside the container. This will usually be http://localhost but you can change it if you customize your hosts file and add extra_hosts to the docker-compose.yml
    PM_APP_PORTChoose a different port if 8080 is in use on your host
    PM_BROADCASTER_PORTChoose a different port for the Socket.io server if 6001 is in use on your host
    PM_DOCKER_SOCKLocation of your docker socket file. See note
  3. Run docker-compose up

    This will pull the image if it doesn't exist. It's >2 gigabytes so it could take some time.

    If this is the first time running, it will run the install script and seed the database. This part usually takes a few minutes but if script executor images need to be downloaded and built it will take a few extra minutes.

    The instance should now be available at http://localhost:8080 (or where ever you configured it in the .env file)

    Username: admin Password: admin123

    ctrl+c will gracefully stop all containers but will not remove them so changes will persist.

    If you need a clean environment or made changes to config files, you can reinstall with

    docker-compose down -v
    docker-compose up
    

Building the application image locally

If you want to build your own version locally, run docker build with PM_VERSION set to a tag at https://github.com/ProcessMaker/processmaker/tags (without the leading 'v')

docker build --build-arg PM_VERSION=4.1.21-RC7 -t processmaker/pm4-core:local .

Then change PM_VERSION in .env to local

Building the base image locally

The pm4-base image includes all the prerequisites for PM4. It's available at https://hub.docker.com/r/processmaker/pm4-base

If you need to modify it you can edit Dockerfile.base and build it yourself with

docker build -t pm4-base:local -f Dockerfile.base .

After building the base image, change FROM at the top of the Dockerfile and rebuild the application image the above instructions

Bind-mounting the docker socket

The instance uses the host's docker server by bind-mounting your docker sock file. This allows for smaller images and better performance than using dind (docker in docker). See this post for more info. The host socket file is usually at /var/run/docker.sock but can be changed in the .env file

Todo

Automated builds pushed to dockerhub

Currently, the image must be built and pushed to dockerhub manually using the instructions above when a new tag of PM4 is released.

The goal is to have CircleCI do this automatically

Use production build

Currently the image is built using development as the target (e.g. npm run dev). Building for production for Node and Composer packages should greatly reduce the image size and might increase performance.

About

No description, website, or topics provided.

Resources

Stars

49 stars

Watchers

20 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

ProcessMaker 4 Core Docker Instance

This docker-compose setup allows you to quickly start up an instance of ProcessMaker4 Core to test with.

This build has no enterprise packages.

Requirements

Running an instance

  1. Clone or download this repo

  2. Modify the .env file (optional)

    VariableDescription
    PM_VERSIONThe version to install from dockerhub. Must match one of the tags at https://hub.docker.com/r/processmaker/pm4-core/tags or build it locally
    PM_APP_URLThe base URL that's accessible from outside the container. This will usually be http://localhost but you can change it if you customize your hosts file and add extra_hosts to the docker-compose.yml
    PM_APP_PORTChoose a different port if 8080 is in use on your host
    PM_BROADCASTER_PORTChoose a different port for the Socket.io server if 6001 is in use on your host
    PM_DOCKER_SOCKLocation of your docker socket file. See note
  3. Run docker-compose up

    This will pull the image if it doesn't exist. It's >2 gigabytes so it could take some time.

    If this is the first time running, it will run the install script and seed the database. This part usually takes a few minutes but if script executor images need to be downloaded and built it will take a few extra minutes.

    The instance should now be available at http://localhost:8080 (or where ever you configured it in the .env file)

    Username: admin Password: admin123

    ctrl+c will gracefully stop all containers but will not remove them so changes will persist.

    If you need a clean environment or made changes to config files, you can reinstall with

    docker-compose down -v
    docker-compose up
    

Building the application image locally

If you want to build your own version locally, run docker build with PM_VERSION set to a tag at https://github.com/ProcessMaker/processmaker/tags (without the leading 'v')

docker build --build-arg PM_VERSION=4.1.21-RC7 -t processmaker/pm4-core:local .

Then change PM_VERSION in .env to local

Building the base image locally

The pm4-base image includes all the prerequisites for PM4. It's available at https://hub.docker.com/r/processmaker/pm4-base

If you need to modify it you can edit Dockerfile.base and build it yourself with

docker build -t pm4-base:local -f Dockerfile.base .

After building the base image, change FROM at the top of the Dockerfile and rebuild the application image the above instructions

Bind-mounting the docker socket

The instance uses the host's docker server by bind-mounting your docker sock file. This allows for smaller images and better performance than using dind (docker in docker). See this post for more info. The host socket file is usually at /var/run/docker.sock but can be changed in the .env file

Todo

Automated builds pushed to dockerhub

Currently, the image must be built and pushed to dockerhub manually using the instructions above when a new tag of PM4 is released.

The goal is to have CircleCI do this automatically

Use production build

Currently the image is built using development as the target (e.g. npm run dev). Building for production for Node and Composer packages should greatly reduce the image size and might increase performance.

About

No description, website, or topics provided.

Resources

Stars

49 stars

Watchers

20 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ProcessMaker 4 Core Docker Instance

This docker-compose setup allows you to quickly start up an instance of ProcessMaker4 Core to test with.

This build has no enterprise packages.

Requirements

Running an instance

  1. Clone or download this repo

  2. Modify the .env file (optional)

    VariableDescription
    PM_VERSIONThe version to install from dockerhub. Must match one of the tags at https://hub.docker.com/r/processmaker/pm4-core/tags or build it locally
    PM_APP_URLThe base URL that's accessible from outside the container. This will usually be http://localhost but you can change it if you customize your hosts file and add extra_hosts to the docker-compose.yml
    PM_APP_PORTChoose a different port if 8080 is in use on your host
    PM_BROADCASTER_PORTChoose a different port for the Socket.io server if 6001 is in use on your host
    PM_DOCKER_SOCKLocation of your docker socket file. See note
  3. Run docker-compose up

    This will pull the image if it doesn't exist. It's >2 gigabytes so it could take some time.

    If this is the first time running, it will run the install script and seed the database. This part usually takes a few minutes but if script executor images need to be downloaded and built it will take a few extra minutes.

    The instance should now be available at http://localhost:8080 (or where ever you configured it in the .env file)

    Username: admin Password: admin123

    ctrl+c will gracefully stop all containers but will not remove them so changes will persist.

    If you need a clean environment or made changes to config files, you can reinstall with

    docker-compose down -v
    docker-compose up
    

Building the application image locally

If you want to build your own version locally, run docker build with PM_VERSION set to a tag at https://github.com/ProcessMaker/processmaker/tags (without the leading 'v')

docker build --build-arg PM_VERSION=4.1.21-RC7 -t processmaker/pm4-core:local .

Then change PM_VERSION in .env to local

Building the base image locally

The pm4-base image includes all the prerequisites for PM4. It's available at https://hub.docker.com/r/processmaker/pm4-base

If you need to modify it you can edit Dockerfile.base and build it yourself with

docker build -t pm4-base:local -f Dockerfile.base .

After building the base image, change FROM at the top of the Dockerfile and rebuild the application image the above instructions

Bind-mounting the docker socket

The instance uses the host's docker server by bind-mounting your docker sock file. This allows for smaller images and better performance than using dind (docker in docker). See this post for more info. The host socket file is usually at /var/run/docker.sock but can be changed in the .env file

Todo

Automated builds pushed to dockerhub

Currently, the image must be built and pushed to dockerhub manually using the instructions above when a new tag of PM4 is released.

The goal is to have CircleCI do this automatically

Use production build

Currently the image is built using development as the target (e.g. npm run dev). Building for production for Node and Composer packages should greatly reduce the image size and might increase performance.

About

No description, website, or topics provided.

Resources

Stars

49 stars

Watchers

20 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ProcessMaker 4 Core Docker Instance

This docker-compose setup allows you to quickly start up an instance of ProcessMaker4 Core to test with.

This build has no enterprise packages.

Requirements

Running an instance

  1. Clone or download this repo

  2. Modify the .env file (optional)

    VariableDescription
    PM_VERSIONThe version to install from dockerhub. Must match one of the tags at https://hub.docker.com/r/processmaker/pm4-core/tags or build it locally
    PM_APP_URLThe base URL that's accessible from outside the container. This will usually be http://localhost but you can change it if you customize your hosts file and add extra_hosts to the docker-compose.yml
    PM_APP_PORTChoose a different port if 8080 is in use on your host
    PM_BROADCASTER_PORTChoose a different port for the Socket.io server if 6001 is in use on your host
    PM_DOCKER_SOCKLocation of your docker socket file. See note
  3. Run docker-compose up

    This will pull the image if it doesn't exist. It's >2 gigabytes so it could take some time.

    If this is the first time running, it will run the install script and seed the database. This part usually takes a few minutes but if script executor images need to be downloaded and built it will take a few extra minutes.

    The instance should now be available at http://localhost:8080 (or where ever you configured it in the .env file)

    Username: admin Password: admin123

    ctrl+c will gracefully stop all containers but will not remove them so changes will persist.

    If you need a clean environment or made changes to config files, you can reinstall with

    docker-compose down -v
    docker-compose up
    

Building the application image locally

If you want to build your own version locally, run docker build with PM_VERSION set to a tag at https://github.com/ProcessMaker/processmaker/tags (without the leading 'v')

docker build --build-arg PM_VERSION=4.1.21-RC7 -t processmaker/pm4-core:local .

Then change PM_VERSION in .env to local

Building the base image locally

The pm4-base image includes all the prerequisites for PM4. It's available at https://hub.docker.com/r/processmaker/pm4-base

If you need to modify it you can edit Dockerfile.base and build it yourself with

docker build -t pm4-base:local -f Dockerfile.base .

After building the base image, change FROM at the top of the Dockerfile and rebuild the application image the above instructions

Bind-mounting the docker socket

The instance uses the host's docker server by bind-mounting your docker sock file. This allows for smaller images and better performance than using dind (docker in docker). See this post for more info. The host socket file is usually at /var/run/docker.sock but can be changed in the .env file

Todo

Automated builds pushed to dockerhub

Currently, the image must be built and pushed to dockerhub manually using the instructions above when a new tag of PM4 is released.

The goal is to have CircleCI do this automatically

Use production build

Currently the image is built using development as the target (e.g. npm run dev). Building for production for Node and Composer packages should greatly reduce the image size and might increase performance.

About

No description, website, or topics provided.

Resources

Stars

49 stars

Watchers

20 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

ProcessMaker 4 Core Docker Instance

This docker-compose setup allows you to quickly start up an instance of ProcessMaker4 Core to test with.

This build has no enterprise packages.

Requirements

Running an instance

  1. Clone or download this repo

  2. Modify the .env file (optional)

    VariableDescription
    PM_VERSIONThe version to install from dockerhub. Must match one of the tags at https://hub.docker.com/r/processmaker/pm4-core/tags or build it locally
    PM_APP_URLThe base URL that's accessible from outside the container. This will usually be http://localhost but you can change it if you customize your hosts file and add extra_hosts to the docker-compose.yml
    PM_APP_PORTChoose a different port if 8080 is in use on your host
    PM_BROADCASTER_PORTChoose a different port for the Socket.io server if 6001 is in use on your host
    PM_DOCKER_SOCKLocation of your docker socket file. See note
  3. Run docker-compose up

    This will pull the image if it doesn't exist. It's >2 gigabytes so it could take some time.

    If this is the first time running, it will run the install script and seed the database. This part usually takes a few minutes but if script executor images need to be downloaded and built it will take a few extra minutes.

    The instance should now be available at http://localhost:8080 (or where ever you configured it in the .env file)

    Username: admin Password: admin123

    ctrl+c will gracefully stop all containers but will not remove them so changes will persist.

    If you need a clean environment or made changes to config files, you can reinstall with

    docker-compose down -v
    docker-compose up
    

Building the application image locally

If you want to build your own version locally, run docker build with PM_VERSION set to a tag at https://github.com/ProcessMaker/processmaker/tags (without the leading 'v')

docker build --build-arg PM_VERSION=4.1.21-RC7 -t processmaker/pm4-core:local .

Then change PM_VERSION in .env to local

Building the base image locally

The pm4-base image includes all the prerequisites for PM4. It's available at https://hub.docker.com/r/processmaker/pm4-base

If you need to modify it you can edit Dockerfile.base and build it yourself with

docker build -t pm4-base:local -f Dockerfile.base .

After building the base image, change FROM at the top of the Dockerfile and rebuild the application image the above instructions

Bind-mounting the docker socket

The instance uses the host's docker server by bind-mounting your docker sock file. This allows for smaller images and better performance than using dind (docker in docker). See this post for more info. The host socket file is usually at /var/run/docker.sock but can be changed in the .env file

Todo

Automated builds pushed to dockerhub

Currently, the image must be built and pushed to dockerhub manually using the instructions above when a new tag of PM4 is released.

The goal is to have CircleCI do this automatically

Use production build

Currently the image is built using development as the target (e.g. npm run dev). Building for production for Node and Composer packages should greatly reduce the image size and might increase performance.

About

No description, website, or topics provided.

Resources

Stars

49 stars

Watchers

20 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ProcessMaker 4 Core Docker Instance

This docker-compose setup allows you to quickly start up an instance of ProcessMaker4 Core to test with.

This build has no enterprise packages.

Requirements

Running an instance

  1. Clone or download this repo

  2. Modify the .env file (optional)

    VariableDescription
    PM_VERSIONThe version to install from dockerhub. Must match one of the tags at https://hub.docker.com/r/processmaker/pm4-core/tags or build it locally
    PM_APP_URLThe base URL that's accessible from outside the container. This will usually be http://localhost but you can change it if you customize your hosts file and add extra_hosts to the docker-compose.yml
    PM_APP_PORTChoose a different port if 8080 is in use on your host
    PM_BROADCASTER_PORTChoose a different port for the Socket.io server if 6001 is in use on your host
    PM_DOCKER_SOCKLocation of your docker socket file. See note
  3. Run docker-compose up

    This will pull the image if it doesn't exist. It's >2 gigabytes so it could take some time.

    If this is the first time running, it will run the install script and seed the database. This part usually takes a few minutes but if script executor images need to be downloaded and built it will take a few extra minutes.

    The instance should now be available at http://localhost:8080 (or where ever you configured it in the .env file)

    Username: admin Password: admin123

    ctrl+c will gracefully stop all containers but will not remove them so changes will persist.

    If you need a clean environment or made changes to config files, you can reinstall with

    docker-compose down -v
    docker-compose up
    

Building the application image locally

If you want to build your own version locally, run docker build with PM_VERSION set to a tag at https://github.com/ProcessMaker/processmaker/tags (without the leading 'v')

docker build --build-arg PM_VERSION=4.1.21-RC7 -t processmaker/pm4-core:local .

Then change PM_VERSION in .env to local

Building the base image locally

The pm4-base image includes all the prerequisites for PM4. It's available at https://hub.docker.com/r/processmaker/pm4-base

If you need to modify it you can edit Dockerfile.base and build it yourself with

docker build -t pm4-base:local -f Dockerfile.base .

After building the base image, change FROM at the top of the Dockerfile and rebuild the application image the above instructions

Bind-mounting the docker socket

The instance uses the host's docker server by bind-mounting your docker sock file. This allows for smaller images and better performance than using dind (docker in docker). See this post for more info. The host socket file is usually at /var/run/docker.sock but can be changed in the .env file

Todo

Automated builds pushed to dockerhub

Currently, the image must be built and pushed to dockerhub manually using the instructions above when a new tag of PM4 is released.

The goal is to have CircleCI do this automatically

Use production build

Currently the image is built using development as the target (e.g. npm run dev). Building for production for Node and Composer packages should greatly reduce the image size and might increase performance.

About

No description, website, or topics provided.

Resources

Stars

49 stars

Watchers

20 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ProcessMaker 4 Core Docker Instance

This docker-compose setup allows you to quickly start up an instance of ProcessMaker4 Core to test with.

This build has no enterprise packages.

Requirements

Running an instance

  1. Clone or download this repo

  2. Modify the .env file (optional)

    VariableDescription
    PM_VERSIONThe version to install from dockerhub. Must match one of the tags at https://hub.docker.com/r/processmaker/pm4-core/tags or build it locally
    PM_APP_URLThe base URL that's accessible from outside the container. This will usually be http://localhost but you can change it if you customize your hosts file and add extra_hosts to the docker-compose.yml
    PM_APP_PORTChoose a different port if 8080 is in use on your host
    PM_BROADCASTER_PORTChoose a different port for the Socket.io server if 6001 is in use on your host
    PM_DOCKER_SOCKLocation of your docker socket file. See note
  3. Run docker-compose up

    This will pull the image if it doesn't exist. It's >2 gigabytes so it could take some time.

    If this is the first time running, it will run the install script and seed the database. This part usually takes a few minutes but if script executor images need to be downloaded and built it will take a few extra minutes.

    The instance should now be available at http://localhost:8080 (or where ever you configured it in the .env file)

    Username: admin Password: admin123

    ctrl+c will gracefully stop all containers but will not remove them so changes will persist.

    If you need a clean environment or made changes to config files, you can reinstall with

    docker-compose down -v
    docker-compose up
    

Building the application image locally

If you want to build your own version locally, run docker build with PM_VERSION set to a tag at https://github.com/ProcessMaker/processmaker/tags (without the leading 'v')

docker build --build-arg PM_VERSION=4.1.21-RC7 -t processmaker/pm4-core:local .

Then change PM_VERSION in .env to local

Building the base image locally

The pm4-base image includes all the prerequisites for PM4. It's available at https://hub.docker.com/r/processmaker/pm4-base

If you need to modify it you can edit Dockerfile.base and build it yourself with

docker build -t pm4-base:local -f Dockerfile.base .

After building the base image, change FROM at the top of the Dockerfile and rebuild the application image the above instructions

Bind-mounting the docker socket

The instance uses the host's docker server by bind-mounting your docker sock file. This allows for smaller images and better performance than using dind (docker in docker). See this post for more info. The host socket file is usually at /var/run/docker.sock but can be changed in the .env file

Todo

Automated builds pushed to dockerhub

Currently, the image must be built and pushed to dockerhub manually using the instructions above when a new tag of PM4 is released.

The goal is to have CircleCI do this automatically

Use production build

Currently the image is built using development as the target (e.g. npm run dev). Building for production for Node and Composer packages should greatly reduce the image size and might increase performance.

About

No description, website, or topics provided.

Resources

Stars

49 stars

Watchers

20 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

ProcessMaker 4 Core Docker Instance

This docker-compose setup allows you to quickly start up an instance of ProcessMaker4 Core to test with.

This build has no enterprise packages.

Requirements

Running an instance

  1. Clone or download this repo

  2. Modify the .env file (optional)

    VariableDescription
    PM_VERSIONThe version to install from dockerhub. Must match one of the tags at https://hub.docker.com/r/processmaker/pm4-core/tags or build it locally
    PM_APP_URLThe base URL that's accessible from outside the container. This will usually be http://localhost but you can change it if you customize your hosts file and add extra_hosts to the docker-compose.yml
    PM_APP_PORTChoose a different port if 8080 is in use on your host
    PM_BROADCASTER_PORTChoose a different port for the Socket.io server if 6001 is in use on your host
    PM_DOCKER_SOCKLocation of your docker socket file. See note
  3. Run docker-compose up

    This will pull the image if it doesn't exist. It's >2 gigabytes so it could take some time.

    If this is the first time running, it will run the install script and seed the database. This part usually takes a few minutes but if script executor images need to be downloaded and built it will take a few extra minutes.

    The instance should now be available at http://localhost:8080 (or where ever you configured it in the .env file)

    Username: admin Password: admin123

    ctrl+c will gracefully stop all containers but will not remove them so changes will persist.

    If you need a clean environment or made changes to config files, you can reinstall with

    docker-compose down -v
    docker-compose up
    

Building the application image locally

If you want to build your own version locally, run docker build with PM_VERSION set to a tag at https://github.com/ProcessMaker/processmaker/tags (without the leading 'v')

docker build --build-arg PM_VERSION=4.1.21-RC7 -t processmaker/pm4-core:local .

Then change PM_VERSION in .env to local

Building the base image locally

The pm4-base image includes all the prerequisites for PM4. It's available at https://hub.docker.com/r/processmaker/pm4-base

If you need to modify it you can edit Dockerfile.base and build it yourself with

docker build -t pm4-base:local -f Dockerfile.base .

After building the base image, change FROM at the top of the Dockerfile and rebuild the application image the above instructions

Bind-mounting the docker socket

The instance uses the host's docker server by bind-mounting your docker sock file. This allows for smaller images and better performance than using dind (docker in docker). See this post for more info. The host socket file is usually at /var/run/docker.sock but can be changed in the .env file

Todo

Automated builds pushed to dockerhub

Currently, the image must be built and pushed to dockerhub manually using the instructions above when a new tag of PM4 is released.

The goal is to have CircleCI do this automatically

Use production build

Currently the image is built using development as the target (e.g. npm run dev). Building for production for Node and Composer packages should greatly reduce the image size and might increase performance.

About

No description, website, or topics provided.

Resources

Stars

49 stars

Watchers

20 watching

Forks

Releases

Packages

Contributors

Languages