feat: add OpenSourcePOS template (#890)

This commit is contained in:
Abdelatif Djeddou
2026-07-07 23:50:58 +02:00
committed by GitHub
parent 06904b17be
commit 292716be4b
4 changed files with 124 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
version: "3.8"
services:
opensourcepos:
image: jekkos/opensourcepos:master
restart: unless-stopped
depends_on:
opensourcepos-db:
condition: service_healthy
expose:
- "80"
environment:
CI_ENVIRONMENT: production
ALLOWED_HOSTNAMES: ${ALLOWED_HOSTNAMES}
FORCE_HTTPS: ${FORCE_HTTPS}
PHP_TIMEZONE: ${PHP_TIMEZONE}
MYSQL_USERNAME: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
MYSQL_DB_NAME: ${MYSQL_DATABASE}
MYSQL_HOST_NAME: opensourcepos-db
volumes:
- opensourcepos-uploads:/app/public/uploads
- opensourcepos-logs:/app/writable/logs
opensourcepos-db:
image: mariadb:10.11
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
volumes:
- opensourcepos-db:/var/lib/mysql
healthcheck:
test: ["CMD-SHELL", "healthcheck.sh --connect --innodb_initialized"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
volumes:
opensourcepos-db:
opensourcepos-uploads:
opensourcepos-logs:

View File

@@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" role="img" aria-label="OpenSourcePOS">
<rect width="128" height="128" rx="24" fill="#177245"/>
<path fill="#fff" d="M30 34h68l-6 44H40L30 34Z"/>
<path fill="#d8f3dc" d="M42 45h44l-3 22H45l-3-22Z"/>
<path fill="#fff" d="M42 83h44a10 10 0 0 1 10 10v3H32v-3a10 10 0 0 1 10-10Z"/>
<path fill="#177245" d="M50 51h28v8H50zM49 88h30v5H49z"/>
<circle cx="48" cy="75" r="4" fill="#177245"/>
<circle cx="80" cy="75" r="4" fill="#177245"/>
</svg>

After

Width:  |  Height:  |  Size: 512 B

View File

@@ -0,0 +1,51 @@
[variables]
main_domain = "${domain}"
mysql_root_password = "${password:32}"
mysql_password = "${password:32}"
php_timezone = "UTC"
force_https = "false"
allowed_hostnames = "${main_domain}"
[[config.domains]]
serviceName = "opensourcepos"
port = 80
host = "${main_domain}"
path = "/"
[[config.mounts]]
filePath = "README.md"
content = """# OpenSourcePOS
This template deploys Open Source Point of Sale with MariaDB using the upstream Docker image and persistent storage for uploads, logs, and database data.
## Access
- URL: `http://${main_domain}`
- Default application user: `admin`
- Default application password: `pointofsale`
Change the default application password immediately after the first login.
## Hostnames and HTTPS
OpenSourcePOS validates incoming host headers in production. The `allowed_hostnames` variable defaults to `${main_domain}` and can be set to a comma-separated list such as `pos.example.com,www.pos.example.com`.
The template defaults `force_https` to `false` because Dokploy terminates TLS outside the container. Set it to `true` only when your deployment always reaches OpenSourcePOS through HTTPS and the reverse proxy sends the expected headers.
## Storage
The template creates persistent volumes for:
- MariaDB data
- uploaded files
- application logs
"""
[config.env]
MYSQL_ROOT_PASSWORD = "${mysql_root_password}"
MYSQL_DATABASE = "ospos"
MYSQL_USER = "admin"
MYSQL_PASSWORD = "${mysql_password}"
PHP_TIMEZONE = "${php_timezone}"
FORCE_HTTPS = "${force_https}"
ALLOWED_HOSTNAMES = "${allowed_hostnames}"

View File

@@ -5219,6 +5219,25 @@
"nginx"
]
},
{
"id": "opensourcepos",
"name": "OpenSourcePOS",
"version": "master",
"description": "OpenSourcePOS is a web-based point of sale system for managing sales, inventory, customers, and reports.",
"logo": "opensourcepos.svg",
"links": {
"github": "https://github.com/opensourcepos/opensourcepos",
"website": "https://opensourcepos.org/",
"docs": "https://github.com/opensourcepos/opensourcepos/blob/master/README.md"
},
"tags": [
"pos",
"retail",
"inventory",
"sales",
"business"
]
},
{
"id": "openspeedtest",
"name": "OpenSpeedTest",