feat: add more self-hosted app templates

This commit is contained in:
NightVibes33
2026-05-20 22:16:10 +00:00
parent bd2dd62358
commit aea19d1d5a
10 changed files with 212 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
version: "3.8"
services:
kavita:
image: jvmilazz0/kavita:latest
restart: unless-stopped
expose:
- "5000"
environment:
- TZ=Etc/UTC
volumes:
- kavita-config:/kavita/config
- kavita-media:/manga
- kavita-books:/books
- kavita-comics:/comics
volumes:
kavita-config:
kavita-media:
kavita-books:
kavita-comics:

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120"><rect width="120" height="120" rx="24" fill="#8b5cf6"/><path d="M33 30h27c10 0 18 8 18 18v42H51c-10 0-18-8-18-18z" fill="#fff"/><path d="M60 30h27v42c0 10-8 18-18 18H60z" fill="#ddd6fe"/><path d="M48 47h24M48 61h24M48 75h15" stroke="#6d28d9" stroke-width="6" stroke-linecap="round"/></svg>

After

Width:  |  Height:  |  Size: 352 B

View File

@@ -0,0 +1,5 @@
[config]
[[config.domains]]
serviceName = "kavita"
port = 5000
host = "${domain}"

View File

@@ -0,0 +1,35 @@
version: "3.8"
services:
miniflux:
image: miniflux/miniflux:latest
restart: unless-stopped
expose:
- "8080"
depends_on:
miniflux-db:
condition: service_healthy
environment:
- DATABASE_URL=postgres://miniflux:${MINIFLUX_DB_PASSWORD}@miniflux-db/miniflux?sslmode=disable
- RUN_MIGRATIONS=1
- CREATE_ADMIN=1
- ADMIN_USERNAME=${MINIFLUX_ADMIN_USERNAME}
- ADMIN_PASSWORD=${MINIFLUX_ADMIN_PASSWORD}
miniflux-db:
image: postgres:17-alpine
restart: unless-stopped
environment:
- POSTGRES_USER=miniflux
- POSTGRES_PASSWORD=${MINIFLUX_DB_PASSWORD}
- POSTGRES_DB=miniflux
volumes:
- miniflux-db-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "miniflux"]
interval: 10s
timeout: 5s
retries: 5
volumes:
miniflux-db-data:

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120"><rect width="120" height="120" rx="24" fill="#f59e0b"/><path d="M32 38h18c21 0 38 17 38 38v10H74V76c0-13-11-24-24-24H32z" fill="#fff"/><path d="M32 62h12c11 0 20 9 20 20v4H50v-4c0-4-3-7-7-7H32z" fill="#fff"/><circle cx="39" cy="86" r="8" fill="#fff"/></svg>

After

Width:  |  Height:  |  Size: 320 B

View File

@@ -0,0 +1,15 @@
[variables]
admin_username = "admin"
admin_password = "${password}"
db_password = "${password}"
[config]
[[config.domains]]
serviceName = "miniflux"
port = 8080
host = "${domain}"
[config.env]
MINIFLUX_ADMIN_USERNAME = "${admin_username}"
MINIFLUX_ADMIN_PASSWORD = "${admin_password}"
MINIFLUX_DB_PASSWORD = "${db_password}"

View File

@@ -0,0 +1,58 @@
version: "3.8"
services:
paperless-ngx:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: unless-stopped
expose:
- "8000"
depends_on:
paperless-db:
condition: service_healthy
paperless-redis:
condition: service_started
environment:
- PAPERLESS_REDIS=redis://paperless-redis:6379
- PAPERLESS_DBHOST=paperless-db
- PAPERLESS_DBNAME=paperless
- PAPERLESS_DBUSER=paperless
- PAPERLESS_DBPASS=${PAPERLESS_DB_PASSWORD}
- PAPERLESS_SECRET_KEY=${PAPERLESS_SECRET_KEY}
- PAPERLESS_URL=https://${PAPERLESS_DOMAIN}
- PAPERLESS_TIME_ZONE=${PAPERLESS_TIME_ZONE}
- PAPERLESS_ADMIN_USER=${PAPERLESS_ADMIN_USER}
- PAPERLESS_ADMIN_PASSWORD=${PAPERLESS_ADMIN_PASSWORD}
volumes:
- paperless-data:/usr/src/paperless/data
- paperless-media:/usr/src/paperless/media
- paperless-export:/usr/src/paperless/export
- paperless-consume:/usr/src/paperless/consume
paperless-db:
image: postgres:17-alpine
restart: unless-stopped
environment:
- POSTGRES_DB=paperless
- POSTGRES_USER=paperless
- POSTGRES_PASSWORD=${PAPERLESS_DB_PASSWORD}
volumes:
- paperless-db-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "paperless"]
interval: 10s
timeout: 5s
retries: 5
paperless-redis:
image: redis:7-alpine
restart: unless-stopped
volumes:
- paperless-redis-data:/data
volumes:
paperless-data:
paperless-media:
paperless-export:
paperless-consume:
paperless-db-data:
paperless-redis-data:

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120"><rect width="120" height="120" rx="24" fill="#22c55e"/><path d="M35 24h36l14 14v58H35z" fill="#fff"/><path d="M70 24v16h15" fill="#bbf7d0"/><path d="M47 55h28M47 68h28M47 81h18" stroke="#16a34a" stroke-width="7" stroke-linecap="round"/></svg>

After

Width:  |  Height:  |  Size: 305 B

View File

@@ -0,0 +1,21 @@
[variables]
main_domain = "${domain}"
admin_user = "admin"
admin_password = "${password}"
db_password = "${password}"
secret_key = "${base64:48}"
timezone = "Etc/UTC"
[config]
[[config.domains]]
serviceName = "paperless-ngx"
port = 8000
host = "${main_domain}"
[config.env]
PAPERLESS_DOMAIN = "${main_domain}"
PAPERLESS_ADMIN_USER = "${admin_user}"
PAPERLESS_ADMIN_PASSWORD = "${admin_password}"
PAPERLESS_DB_PASSWORD = "${db_password}"
PAPERLESS_SECRET_KEY = "${secret_key}"
PAPERLESS_TIME_ZONE = "${timezone}"

View File

@@ -3455,6 +3455,24 @@
"productivity"
]
},
{
"id": "kavita",
"name": "Kavita",
"version": "latest",
"description": "Kavita is a self-hosted digital library server for reading manga, comics, and ebooks from any device.",
"logo": "kavita.svg",
"links": {
"github": "https://github.com/Kareadita/Kavita",
"website": "https://www.kavitareader.com/",
"docs": "https://wiki.kavitareader.com/installation/docker/"
},
"tags": [
"media",
"ebooks",
"comics",
"library"
]
},
{
"id": "kener",
"name": "Kener",
@@ -4176,6 +4194,24 @@
"docker"
]
},
{
"id": "miniflux",
"name": "Miniflux",
"version": "latest",
"description": "Miniflux is a minimalist and opinionated feed reader built for self-hosted RSS and Atom subscriptions.",
"logo": "miniflux.svg",
"links": {
"github": "https://github.com/miniflux/v2",
"website": "https://miniflux.app/",
"docs": "https://miniflux.app/docs/docker.html"
},
"tags": [
"rss",
"feed-reader",
"news",
"self-hosted"
]
},
{
"id": "minio",
"name": "Minio",
@@ -4960,6 +4996,24 @@
"open-source"
]
},
{
"id": "paperless-ngx",
"name": "Paperless-ngx",
"version": "latest",
"description": "Paperless-ngx is a self-hosted document management system that indexes, archives, and organizes scanned documents.",
"logo": "paperless-ngx.svg",
"links": {
"github": "https://github.com/paperless-ngx/paperless-ngx",
"website": "https://paperless-ngx.com/",
"docs": "https://docs.paperless-ngx.com/setup/"
},
"tags": [
"documents",
"ocr",
"archive",
"productivity"
]
},
{
"id": "parseable",
"name": "Parseable",