Unraid-first Infisical AIO with bundled PostgreSQL, Redis, and Mailpit for easy self-hosting.
6.2K
![]()
An Unraid-first, single-container deployment of Infisical for people who want the easiest reliable self-hosted install without manually wiring PostgreSQL and Redis on day one.
infisical-aio is opinionated for a predictable beginner install, but it does not hide the real tradeoffs: this is still a serious secrets-management platform, SITE_URL still needs to be correct, backups still matter, and the bundled database/cache path is convenience infrastructure rather than the ideal long-term production topology.
8080/config storage for generated wrapper state and bootstrap artifacts/data storage for bundled PostgreSQL and Redis stateENCRYPTION_KEY and AUTH_SECRET when you leave them blankIf you want the simplest supported path:
/config and /data paths in place unless you have a reason to move them.SITE_URL to the real URL users will visit, such as https://secrets.example.com or http://tower.local:8080.8025 and read the generated AIO_MAILPIT_UI_USERNAME / AIO_MAILPIT_UI_PASSWORD values from /config/aio/generated.env.AIO_BOOTSTRAP_* fields in Advanced View to auto-bootstrap it.If you leave the important secrets blank, the wrapper will:
ENCRYPTION_KEYAUTH_SECRETThis repo is deliberately not a stripped-down wrapper. Advanced View exposes the broader practical Infisical self-hosted environment surface plus the AIO defaults for the bundled PostgreSQL + Redis path. In Advanced View you can:
DB_CONNECTION_URI or the upstream DB fieldsThe wrapper still defaults to the internal bundled services so new Unraid users are not forced into extra containers on day one.
Additional advanced wrapper-specific knobs worth knowing about:
AIO_ENABLE_BUNDLED_MAILPIT to keep or disable the bundled local inbox when SMTP_HOST is blankAIO_MAILPIT_UI_USERNAME and AIO_MAILPIT_UI_PASSWORD if you want to override the generated inbox UI credentialsNODE_EXTRA_CA_CERTS if your external Redis or other upstream dependency uses a private or self-signed CA; point it at a PEM file under /config, such as /config/aio/certs/custom-ca.pem9464 when you enable OTEL_TELEMETRY_COLLECTION_ENABLED=true with OTEL_EXPORT_TYPE=prometheusSITE_URL matters. If you set it wrong, browser flows, links, email behavior, and some integrations will break in subtle ways.v0.159.16-aio.1.git-cliff.<Changes> block is synced from CHANGELOG.md during release preparation.main publishes latest, the pinned upstream version tag, the explicit AIO package tag, and sha-<commit> to GHCR.See docs/releases.md for the release workflow details.
Local validation in this repo is built around:
rediss://, and Prometheus metrics exposureRun the source-repo-first checks before enabling automation:
STRICT_PLACEHOLDERS=true bash scripts/validate-derived-repo.sh .
python3 scripts/validate-template.py
python3 scripts/generate_infisical_template.py --check
docker build -t infisical-aio:test .
bash scripts/smoke-test.sh infisical-aio:test
bash scripts/validate-runtime-matrix.sh infisical-aio:test
The runtime matrix asserts:
ENCRYPTION_KEY and AUTH_SECRET overrides are honored without being rewritten into /config/aio/generated.envAIO_BOOTSTRAP_* bootstrap completes, can persist the saved response artifact, and can drive a real account-recovery email into bundled Mailpit/config/aio/generated.env persists unchanged across restartDB_CONNECTION_URI and upstream DB_HOST/DB_PORT/DB_USER/DB_PASSWORD/DB_NAMEREDIS_URL, Redis Sentinel, and Redis Clusterrediss:// works when NODE_EXTRA_CA_CERTS points at a mounted PEM bundle/metrics when OTEL_TELEMETRY_COLLECTION_ENABLED=true and OTEL_EXPORT_TYPE=prometheusStill manual:
SITE_URLThis repo is the source repo. The CA-facing XML and icon should be synced into JSONbored/awesome-unraid only after:
If this work saves you time, support it here:
Content type
Image
Digest
sha256:34f7277ce…
Size
876.7 MB
Last updated
about 1 month ago
docker pull jsonbored/infisical-aio:sha-2388a80d0063ed5320ec65513e6e06f8a266434c