44 lines
1.5 KiB
JSON
44 lines
1.5 KiB
JSON
{
|
|
"id": "postgres",
|
|
"name": "PostgreSQL",
|
|
"description": "Shared PostgreSQL database for homelab services (Forgejo today, future apps later).",
|
|
"version": "17.0.0",
|
|
"category": "database",
|
|
"tags": ["database", "sql", "postgres"],
|
|
"author": "PostgreSQL Global Development Group",
|
|
"license": "PostgreSQL",
|
|
"homepage": "https://www.postgresql.org/",
|
|
"documentation": "https://hub.docker.com/_/postgres",
|
|
"compose": {
|
|
"image": "postgres:17",
|
|
"container_name": "homelab-postgres",
|
|
"restart": "unless-stopped",
|
|
"environment": [
|
|
"POSTGRES_USER=${PG_USER}",
|
|
"POSTGRES_PASSWORD=${PG_PASSWORD}",
|
|
"POSTGRES_DB=${PG_DB}"
|
|
],
|
|
"volumes": ["pg_data:/var/lib/postgresql/data"],
|
|
"networks": ["homelab"],
|
|
"healthcheck": {
|
|
"test": ["CMD-SHELL", "pg_isready -U ${PG_USER} -d ${PG_DB}"],
|
|
"interval": "10s",
|
|
"timeout": "5s",
|
|
"retries": 5
|
|
}
|
|
},
|
|
"volumes": { "pg_data": {} },
|
|
"networks": { "homelab": { "external": true } },
|
|
"env": [
|
|
{ "name": "PG_USER", "label": "Postgres user", "default": "homelab" },
|
|
{
|
|
"name": "PG_PASSWORD",
|
|
"label": "Postgres password",
|
|
"description": "Auto-generated on first install and stored in ~/.homelab/services/postgres/.env",
|
|
"secret": true,
|
|
"generate": true
|
|
},
|
|
{ "name": "PG_DB", "label": "Database name", "default": "forgejo" }
|
|
],
|
|
"notes": "No host port published — reachable only inside the homelab docker network as `homelab-postgres`."
|
|
}
|