Skip to content

Applications

Pigsty application templates and data applets: run stateless apps with Docker Compose and host state in external PostgreSQL and S3-compatible storage.

Pigsty applications have two categories:

  • Software Templates: Deployment resources under ~/pigsty/app/<name>, mainly using Docker Compose. Hermes provides a separate source installation guide.
  • Data Applets: PostgreSQL + Grafana analytics demos, mainly for learning and showcase use.

Use matching versions of app.yml, app/<name>/, and conf/. Replacing only a configuration file does not enable development features; unreleased behavior is noted on each application page.

Application Model

The recommended application deployment workflow is:

curl -fsSL https://repo.pigsty.io/get | bash; cd ~/pigsty
./bootstrap
./configure -c <template>     # e.g. app/dify, app/immich, app/jumpserver, app/maybe, supabase
vi pigsty.yml                 # edit passwords, domains, IPs, and secrets
./deploy.yml                  # deploy infrastructure and databases
./docker.yml                  # install Docker
./app.yml                     # launch applications

app.yml copies app/<name> templates to /opt/<name>, prepares directories from apps.<name>.file, writes .env from apps.<name>.conf, and runs the application’s default Make target. Use apps.<name>.args to select other Make targets. Each application’s Makefile and Compose definition control initialization.

apps.<name>.conf writes .env with mode 0600 and lowercase true / false for booleans. Values still pass through Compose dotenv parsing: inspect the resulting configuration when values contain $, quotes, or spaces. ${OTHER_VARIABLE} is not a literal string immune to expansion. Connection strings can be evaluated with Ansible/Jinja first, but special characters in passwords still need URL encoding.

Maintained Config Templates

The following app config templates are actively maintained (conf/app/*.yml, conf/supabase.yml, and the conf/app/supa.yml symlink):

  • app/dify
  • app/odoo
  • app/teable
  • app/mattermost
  • app/electric
  • app/maybe
  • app/immich
  • app/jumpserver
  • app/registry
  • app/insforge
  • app/hindsight
  • supabase

These templates use the ./configure -c ... and ./app.yml workflow. Check database, directory, and image requirements on the application page before deploying.

Lightweight Compose Apps

For apps like bytebase, gitea, jupyter, kong, metabase, nocodb, pgadmin, pgweb, postgrest, pg_exporter, and wiki, you can also use the per-app Compose templates directly. For object storage, see the MINIO module; the standalone app/silo template is still a development draft.

FerretDB is provided as the Docker APP layer of PostgreSQL Mongo mode. Deploy it from the mongo configuration template with docker.yml and app.yml.

cd ~/pigsty/app/<name>
make up

To manage these apps with Pigsty IaC, run:

./app.yml -e app=<name>

See each application page for database, directory, and initialization requirements. Hermes uses a Python virtual environment and has no Compose or app.yml deployment entry point.

Legacy Applets

Data applets like pglog, covid, db-engine, sf-survey, cloud, and isd are kept as reference examples for data modeling and visualization ideas.

They are no longer the primary application delivery path. Prefer the software template workflow above.

Self-host enterprise-grade Supabase with Pigsty, featuring monitoring, high availability, PITR, IaC, and access to 600 packaged PostgreSQL extensions.

Install a pinned Hermes Agent release in a Python virtual environment on a Pigsty host and connect it to an external model provider.

Deploy Gitea with Pigsty’s Compose template and connect it to external PostgreSQL.

Deploy Kong with Pigsty Compose templates and PostgreSQL backend storage.

Use Metabase for rapid business intelligence analysis with a user-friendly interface for team self-service data exploration.

Deploy pgAdmin4 with Pigsty’s Docker Compose template and safely load the PostgreSQL server inventory.

Was this page helpful?