feat: initial app template catalog with 16 apps

Populate the appstore-apptemplates repo with catalog.json and
per-app config files for all 16 curated Docker apps, each at v1.0.0.
This commit is contained in:
2026-03-19 15:30:08 +00:00
commit b5585534eb
33 changed files with 435 additions and 0 deletions

10
apps/adminer/app.json Normal file
View File

@@ -0,0 +1,10 @@
{
"id": "adminer",
"name": "Adminer",
"description": "Lightweight database management tool with web interface",
"category": "Databases",
"iconName": "adminer",
"latestVersion": "1.0.0",
"versions": ["1.0.0"],
"maintainer": "serve.zone"
}

View File

@@ -0,0 +1,4 @@
{
"image": "adminer:latest",
"port": 8080
}

10
apps/ghost/app.json Normal file
View File

@@ -0,0 +1,10 @@
{
"id": "ghost",
"name": "Ghost",
"description": "Professional publishing platform for blogs and newsletters",
"category": "CMS",
"iconName": "ghost",
"latestVersion": "1.0.0",
"versions": ["1.0.0"],
"maintainer": "serve.zone"
}

View File

@@ -0,0 +1,18 @@
{
"image": "ghost:latest",
"port": 2368,
"envVars": [
{
"name": "database__client",
"default": "sqlite3"
},
{
"name": "database__connection__filename",
"default": "/var/lib/ghost/content/data/ghost.db"
},
{
"name": "url",
"default": "http://localhost:2368"
}
]
}

10
apps/gitea/app.json Normal file
View File

@@ -0,0 +1,10 @@
{
"id": "gitea",
"name": "Gitea",
"description": "Lightweight self-hosted Git service",
"category": "Development",
"iconName": "gitea",
"latestVersion": "1.0.0",
"versions": ["1.0.0"],
"maintainer": "serve.zone"
}

View File

@@ -0,0 +1,4 @@
{
"image": "gitea/gitea:latest",
"port": 3000
}

10
apps/grafana/app.json Normal file
View File

@@ -0,0 +1,10 @@
{
"id": "grafana",
"name": "Grafana",
"description": "Open-source analytics and monitoring platform",
"category": "Monitoring",
"iconName": "grafana",
"latestVersion": "1.0.0",
"versions": ["1.0.0"],
"maintainer": "serve.zone"
}

View File

@@ -0,0 +1,10 @@
{
"image": "grafana/grafana:latest",
"port": 3000,
"envVars": [
{
"name": "GF_SECURITY_ADMIN_PASSWORD",
"default": "admin"
}
]
}

10
apps/mariadb/app.json Normal file
View File

@@ -0,0 +1,10 @@
{
"id": "mariadb",
"name": "MariaDB",
"description": "Community-developed relational database forked from MySQL",
"category": "Databases",
"iconName": "mariadb",
"latestVersion": "1.0.0",
"versions": ["1.0.0"],
"maintainer": "serve.zone"
}

View File

@@ -0,0 +1,10 @@
{
"image": "mariadb:latest",
"port": 3306,
"envVars": [
{
"name": "MARIADB_ROOT_PASSWORD",
"required": true
}
]
}

10
apps/mattermost/app.json Normal file
View File

@@ -0,0 +1,10 @@
{
"id": "mattermost",
"name": "Mattermost",
"description": "Open-source team messaging and collaboration platform",
"category": "Communication",
"iconName": "mattermost",
"latestVersion": "1.0.0",
"versions": ["1.0.0"],
"maintainer": "serve.zone"
}

View File

@@ -0,0 +1,4 @@
{
"image": "mattermost/mattermost-team-edition:latest",
"port": 8065
}

10
apps/n8n/app.json Normal file
View File

@@ -0,0 +1,10 @@
{
"id": "n8n",
"name": "n8n",
"description": "Workflow automation platform with visual editor",
"category": "Automation",
"iconName": "n8n",
"latestVersion": "1.0.0",
"versions": ["1.0.0"],
"maintainer": "serve.zone"
}

View File

@@ -0,0 +1,4 @@
{
"image": "n8nio/n8n:latest",
"port": 5678
}

10
apps/nextcloud/app.json Normal file
View File

@@ -0,0 +1,10 @@
{
"id": "nextcloud",
"name": "Nextcloud",
"description": "Self-hosted productivity and file sharing platform",
"category": "Cloud Storage",
"iconName": "nextcloud",
"latestVersion": "1.0.0",
"versions": ["1.0.0"],
"maintainer": "serve.zone"
}

View File

@@ -0,0 +1,4 @@
{
"image": "nextcloud:latest",
"port": 80
}

10
apps/nginx/app.json Normal file
View File

@@ -0,0 +1,10 @@
{
"id": "nginx",
"name": "Nginx",
"description": "High-performance web server and reverse proxy",
"category": "Web Servers",
"iconName": "nginx",
"latestVersion": "1.0.0",
"versions": ["1.0.0"],
"maintainer": "serve.zone"
}

View File

@@ -0,0 +1,4 @@
{
"image": "nginx:alpine",
"port": 80
}

10
apps/plausible/app.json Normal file
View File

@@ -0,0 +1,10 @@
{
"id": "plausible",
"name": "Plausible",
"description": "Privacy-friendly web analytics platform",
"category": "Analytics",
"iconName": "plausible",
"latestVersion": "1.0.0",
"versions": ["1.0.0"],
"maintainer": "serve.zone"
}

View File

@@ -0,0 +1,7 @@
{
"image": "plausible/analytics:latest",
"port": 8000,
"platformRequirements": {
"clickhouse": true
}
}

10
apps/portainer/app.json Normal file
View File

@@ -0,0 +1,10 @@
{
"id": "portainer",
"name": "Portainer",
"description": "Container management UI for Docker environments",
"category": "Infrastructure",
"iconName": "portainer",
"latestVersion": "1.0.0",
"versions": ["1.0.0"],
"maintainer": "serve.zone"
}

View File

@@ -0,0 +1,4 @@
{
"image": "portainer/portainer-ce:latest",
"port": 9000
}

10
apps/postgres/app.json Normal file
View File

@@ -0,0 +1,10 @@
{
"id": "postgres",
"name": "PostgreSQL",
"description": "Advanced open-source relational database",
"category": "Databases",
"iconName": "postgres",
"latestVersion": "1.0.0",
"versions": ["1.0.0"],
"maintainer": "serve.zone"
}

View File

@@ -0,0 +1,18 @@
{
"image": "postgres:16-alpine",
"port": 5432,
"envVars": [
{
"name": "POSTGRES_PASSWORD",
"required": true
},
{
"name": "POSTGRES_USER",
"default": "postgres"
},
{
"name": "POSTGRES_DB",
"default": "postgres"
}
]
}

10
apps/redis/app.json Normal file
View File

@@ -0,0 +1,10 @@
{
"id": "redis",
"name": "Redis",
"description": "In-memory data store for caching and message brokering",
"category": "Databases",
"iconName": "redis",
"latestVersion": "1.0.0",
"versions": ["1.0.0"],
"maintainer": "serve.zone"
}

View File

@@ -0,0 +1,4 @@
{
"image": "redis:alpine",
"port": 6379
}

10
apps/uptime-kuma/app.json Normal file
View File

@@ -0,0 +1,10 @@
{
"id": "uptime-kuma",
"name": "Uptime Kuma",
"description": "Self-hosted uptime monitoring tool",
"category": "Monitoring",
"iconName": "uptime-kuma",
"latestVersion": "1.0.0",
"versions": ["1.0.0"],
"maintainer": "serve.zone"
}

View File

@@ -0,0 +1,4 @@
{
"image": "louislam/uptime-kuma:latest",
"port": 3001
}

10
apps/vaultwarden/app.json Normal file
View File

@@ -0,0 +1,10 @@
{
"id": "vaultwarden",
"name": "Vaultwarden",
"description": "Lightweight Bitwarden-compatible password manager server",
"category": "Security",
"iconName": "vaultwarden",
"latestVersion": "1.0.0",
"versions": ["1.0.0"],
"maintainer": "serve.zone"
}

View File

@@ -0,0 +1,4 @@
{
"image": "vaultwarden/server:latest",
"port": 80
}

10
apps/wordpress/app.json Normal file
View File

@@ -0,0 +1,10 @@
{
"id": "wordpress",
"name": "WordPress",
"description": "Popular open-source content management system",
"category": "CMS",
"iconName": "wordpress",
"latestVersion": "1.0.0",
"versions": ["1.0.0"],
"maintainer": "serve.zone"
}

View File

@@ -0,0 +1,22 @@
{
"image": "wordpress:latest",
"port": 80,
"envVars": [
{
"name": "WORDPRESS_DB_HOST",
"required": true
},
{
"name": "WORDPRESS_DB_USER",
"default": "wordpress"
},
{
"name": "WORDPRESS_DB_PASSWORD",
"required": true
},
{
"name": "WORDPRESS_DB_NAME",
"default": "wordpress"
}
]
}

150
catalog.json Normal file
View File

@@ -0,0 +1,150 @@
{
"schemaVersion": 1,
"updatedAt": "2026-03-19T00:00:00Z",
"apps": [
{
"id": "nginx",
"name": "Nginx",
"description": "High-performance web server and reverse proxy. Lightweight, fast, and battle-tested.",
"category": "Web Server",
"iconName": "globe",
"latestVersion": "1.0.0",
"tags": ["web", "proxy"]
},
{
"id": "wordpress",
"name": "WordPress",
"description": "The world's most popular content management system. Powers over 40% of the web.",
"category": "CMS",
"iconName": "file-text",
"latestVersion": "1.0.0",
"tags": ["cms", "blog"]
},
{
"id": "ghost",
"name": "Ghost",
"description": "Modern publishing platform for creating professional blogs and newsletters.",
"category": "CMS",
"iconName": "book-open",
"latestVersion": "1.0.0",
"tags": ["cms", "blog", "newsletter"]
},
{
"id": "gitea",
"name": "Gitea",
"description": "Lightweight self-hosted Git service. Easy to install and maintain.",
"category": "Dev Tools",
"iconName": "git-branch",
"latestVersion": "1.0.0",
"tags": ["git", "devtools"]
},
{
"id": "nextcloud",
"name": "Nextcloud",
"description": "Self-hosted file sync and share platform. Your own private cloud.",
"category": "Storage",
"iconName": "package",
"latestVersion": "1.0.0",
"tags": ["storage", "cloud"]
},
{
"id": "grafana",
"name": "Grafana",
"description": "Open-source observability platform for metrics, logs, and traces visualization.",
"category": "Monitoring",
"iconName": "monitor",
"latestVersion": "1.0.0",
"tags": ["monitoring", "observability"]
},
{
"id": "uptime-kuma",
"name": "Uptime Kuma",
"description": "Self-hosted monitoring tool. Beautiful UI for tracking uptime of services.",
"category": "Monitoring",
"iconName": "monitor",
"latestVersion": "1.0.0",
"tags": ["monitoring", "uptime"]
},
{
"id": "plausible",
"name": "Plausible Analytics",
"description": "Privacy-friendly web analytics. No cookies, GDPR compliant by design.",
"category": "Analytics",
"iconName": "monitor",
"latestVersion": "1.0.0",
"tags": ["analytics"]
},
{
"id": "vaultwarden",
"name": "Vaultwarden",
"description": "Lightweight Bitwarden-compatible password manager server.",
"category": "Security",
"iconName": "shield",
"latestVersion": "1.0.0",
"tags": ["security", "passwords"]
},
{
"id": "n8n",
"name": "N8N",
"description": "Workflow automation tool. Connect anything to everything with a visual editor.",
"category": "Automation",
"iconName": "server",
"latestVersion": "1.0.0",
"tags": ["automation", "workflow"]
},
{
"id": "mattermost",
"name": "Mattermost",
"description": "Open-source Slack alternative for team communication and collaboration.",
"category": "Communication",
"iconName": "mail",
"latestVersion": "1.0.0",
"tags": ["communication", "chat"]
},
{
"id": "portainer",
"name": "Portainer",
"description": "Docker management UI. Monitor and manage containers from a web interface.",
"category": "Dev Tools",
"iconName": "package",
"latestVersion": "1.0.0",
"tags": ["docker", "devtools"]
},
{
"id": "redis",
"name": "Redis",
"description": "In-memory data store used as database, cache, and message broker.",
"category": "Database",
"iconName": "database",
"latestVersion": "1.0.0",
"tags": ["database", "cache"]
},
{
"id": "postgres",
"name": "PostgreSQL",
"description": "Advanced open-source relational database. Reliable and feature-rich.",
"category": "Database",
"iconName": "database",
"latestVersion": "1.0.0",
"tags": ["database", "sql"]
},
{
"id": "mariadb",
"name": "MariaDB",
"description": "Community-developed fork of MySQL. Drop-in replacement with enhanced features.",
"category": "Database",
"iconName": "database",
"latestVersion": "1.0.0",
"tags": ["database", "sql", "mysql"]
},
{
"id": "adminer",
"name": "Adminer",
"description": "Database management tool in a single PHP file. Supports MySQL, PostgreSQL, SQLite.",
"category": "Dev Tools",
"iconName": "database",
"latestVersion": "1.0.0",
"tags": ["database", "devtools"]
}
]
}