mirror of
https://github.com/hanzo-apps/templates.git
synced 2026-10-30 14:48:30 +00:00
Aggregates five OSS one-click/self-hosting catalogs into the Dokploy blueprint
shape the Hanzo PaaS consumes (meta.json array + blueprints/<id>/{template.toml,
docker-compose.yml,meta.json,logo}):
Dokploy 500 (MIT, verbatim) · Coolify 174 (Apache-2.0) · CapRover 161
(Apache-2.0) · CasaOS 85 (Apache-2.0) · Runtipi 110 (GPL-3.0)
Deduped by app identity; each source + app keeps its upstream license
(ATTRIBUTION.md). Deterministic aggregators + a hard validator (every
template.toml parses with the platform's toml lib, every compose parses as YAML,
meta.json is the expected array, and an over-HTTP fetch probe exercises all
1030) — 0 hard failures. Served natively by hanzoai/static on DOKS (no CDN/Pages/
Vercel); CI builds on the hanzo-build-linux-amd64 arc pool; operator App CR in
crs/ serves it at templates.hanzo.ai.
80 lines
2.9 KiB
YAML
80 lines
2.9 KiB
YAML
# =============================================================================
|
|
# PASSBOLT TEMPLATE - SETUP INSTRUCTIONS
|
|
# =============================================================================
|
|
#
|
|
# After successful deployment, you need to create an admin user:
|
|
#
|
|
# 1. Go to your Dokploy dashboard
|
|
# 2. Navigate to your Passbolt application
|
|
# 3. Wait for both containers to be healthy - check the "Monitoring" tab
|
|
# 4. Go to the "General" tab and click "Open Terminal" button
|
|
# 5. In the terminal, run this command to create admin user:
|
|
# su -s /bin/bash -c "/usr/share/php/passbolt/bin/cake passbolt register_user -u [email protected] -f FirstName -l LastName -r admin" www-data
|
|
# 6. Replace [email protected], FirstName, LastName with your actual details
|
|
# 7. The command will output a registration link - copy and paste it in your browser to complete setup
|
|
#
|
|
# NOTE: If you change the domain after deployment, you will need to manually
|
|
# update the PASSBOLT_APP_FULL_BASE_URL environment variable in the "Environment" tab.
|
|
# =============================================================================
|
|
|
|
services:
|
|
passbolt:
|
|
image: passbolt/passbolt:latest-ce
|
|
environment:
|
|
APP_FULL_BASE_URL: ${PASSBOLT_APP_FULL_BASE_URL}
|
|
DATASOURCES_DEFAULT_HOST: ${PASSBOLT_DB_HOST}
|
|
DATASOURCES_DEFAULT_PORT: ${PASSBOLT_DB_PORT}
|
|
DATASOURCES_DEFAULT_USERNAME: ${PASSBOLT_DB_USER}
|
|
DATASOURCES_DEFAULT_PASSWORD: ${PASSBOLT_DB_PASSWORD}
|
|
DATASOURCES_DEFAULT_DATABASE: ${PASSBOLT_DB_NAME}
|
|
PASSBOLT_PLUGINS_JWT_AUTHENTICATION_ENABLED: ${PASSBOLT_PLUGINS_JWT_AUTHENTICATION_ENABLED}
|
|
|
|
EMAIL_DEFAULT_FROM: ${PASSBOLT_EMAIL_FROM}
|
|
EMAIL_TRANSPORT_DEFAULT_HOST: ${PASSBOLT_EMAIL_HOST}
|
|
EMAIL_TRANSPORT_DEFAULT_PORT: ${PASSBOLT_EMAIL_PORT}
|
|
EMAIL_TRANSPORT_DEFAULT_USERNAME: ${PASSBOLT_EMAIL_USER}
|
|
EMAIL_TRANSPORT_DEFAULT_PASSWORD: ${PASSBOLT_EMAIL_PASS}
|
|
EMAIL_TRANSPORT_DEFAULT_TLS: ${PASSBOLT_EMAIL_TLS}
|
|
|
|
volumes:
|
|
- gpg_volume:/etc/passbolt/gpg
|
|
- jwt_volume:/etc/passbolt/jwt
|
|
|
|
command:
|
|
- /usr/bin/wait-for.sh
|
|
- "-t"
|
|
- "0"
|
|
- "${PASSBOLT_DB_HOST}:${PASSBOLT_DB_PORT}"
|
|
- "--"
|
|
- /docker-entrypoint.sh
|
|
|
|
depends_on:
|
|
mariadb:
|
|
condition: service_healthy
|
|
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://127.0.0.1:80"]
|
|
interval: 5s
|
|
timeout: 20s
|
|
retries: 10
|
|
|
|
mariadb:
|
|
image: mariadb:11
|
|
environment:
|
|
MARIADB_ROOT_PASSWORD: ${PASSBOLT_DB_ROOT_PASSWORD}
|
|
MARIADB_DATABASE: ${PASSBOLT_DB_NAME}
|
|
MARIADB_USER: ${PASSBOLT_DB_USER}
|
|
MARIADB_PASSWORD: ${PASSBOLT_DB_PASSWORD}
|
|
volumes:
|
|
- passbolt_mariadb_data:/var/lib/mysql
|
|
healthcheck:
|
|
test: ["CMD", "mariadb-admin", "ping", "-h", "localhost", "--silent"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
volumes:
|
|
gpg_volume: {}
|
|
jwt_volume: {}
|
|
passbolt_mariadb_data: {}
|