diff --git a/blueprints/chroma/chroma.svg b/blueprints/chroma/chroma.svg new file mode 100644 index 000000000..60112fc5f --- /dev/null +++ b/blueprints/chroma/chroma.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/blueprints/chroma/docker-compose.yml b/blueprints/chroma/docker-compose.yml new file mode 100644 index 000000000..d8c886d87 --- /dev/null +++ b/blueprints/chroma/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3.8" + +services: + chroma: + image: chromadb/chroma:1.5.6 + restart: unless-stopped + expose: + - "8000" + environment: + - IS_PERSISTENT=TRUE + - PERSIST_DIRECTORY=/chroma/chroma + - ANONYMIZED_TELEMETRY=FALSE + volumes: + - chroma-data:/chroma/chroma + +volumes: + chroma-data: diff --git a/blueprints/chroma/template.toml b/blueprints/chroma/template.toml new file mode 100644 index 000000000..446ada123 --- /dev/null +++ b/blueprints/chroma/template.toml @@ -0,0 +1,5 @@ +[config] +[[config.domains]] +serviceName = "chroma" +port = 8000 +host = "${domain}" diff --git a/blueprints/gotify/docker-compose.yml b/blueprints/gotify/docker-compose.yml new file mode 100644 index 000000000..c8026c500 --- /dev/null +++ b/blueprints/gotify/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.8" + +services: + gotify: + image: gotify/server:latest + restart: unless-stopped + expose: + - "80" + environment: + - GOTIFY_DEFAULTUSER_PASS=${GOTIFY_DEFAULTUSER_PASS} + volumes: + - gotify-data:/app/data + +volumes: + gotify-data: diff --git a/blueprints/gotify/gotify.svg b/blueprints/gotify/gotify.svg new file mode 100644 index 000000000..b84c52fb6 --- /dev/null +++ b/blueprints/gotify/gotify.svg @@ -0,0 +1 @@ + diff --git a/blueprints/gotify/template.toml b/blueprints/gotify/template.toml new file mode 100644 index 000000000..2b8eaac2e --- /dev/null +++ b/blueprints/gotify/template.toml @@ -0,0 +1,11 @@ +[variables] +admin_password = "${password:32}" + +[config] +[[config.domains]] +serviceName = "gotify" +port = 80 +host = "${domain}" + +[config.env] +GOTIFY_DEFAULTUSER_PASS = "${admin_password}" diff --git a/blueprints/homebox/docker-compose.yml b/blueprints/homebox/docker-compose.yml new file mode 100644 index 000000000..ac83e728d --- /dev/null +++ b/blueprints/homebox/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.8" + +services: + homebox: + image: ghcr.io/sysadminsmedia/homebox:latest + restart: unless-stopped + expose: + - "7745" + environment: + - TZ=${TZ} + volumes: + - homebox-data:/data + +volumes: + homebox-data: diff --git a/blueprints/homebox/homebox.svg b/blueprints/homebox/homebox.svg new file mode 100644 index 000000000..029b516fe --- /dev/null +++ b/blueprints/homebox/homebox.svg @@ -0,0 +1 @@ + diff --git a/blueprints/homebox/template.toml b/blueprints/homebox/template.toml new file mode 100644 index 000000000..04d60a554 --- /dev/null +++ b/blueprints/homebox/template.toml @@ -0,0 +1,11 @@ +[variables] +timezone = "Etc/UTC" + +[config] +[[config.domains]] +serviceName = "homebox" +port = 7745 +host = "${domain}" + +[config.env] +TZ = "${timezone}" diff --git a/blueprints/jellyseerr/docker-compose.yml b/blueprints/jellyseerr/docker-compose.yml new file mode 100644 index 000000000..e63921e7e --- /dev/null +++ b/blueprints/jellyseerr/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.8" + +services: + jellyseerr: + image: fallenbagel/jellyseerr:latest + restart: unless-stopped + expose: + - "5055" + environment: + - LOG_LEVEL=info + - TZ=${TZ} + volumes: + - jellyseerr-config:/app/config + +volumes: + jellyseerr-config: diff --git a/blueprints/jellyseerr/jellyseerr.svg b/blueprints/jellyseerr/jellyseerr.svg new file mode 100644 index 000000000..59637a676 --- /dev/null +++ b/blueprints/jellyseerr/jellyseerr.svg @@ -0,0 +1 @@ + diff --git a/blueprints/jellyseerr/template.toml b/blueprints/jellyseerr/template.toml new file mode 100644 index 000000000..3093d90d1 --- /dev/null +++ b/blueprints/jellyseerr/template.toml @@ -0,0 +1,11 @@ +[variables] +timezone = "Etc/UTC" + +[config] +[[config.domains]] +serviceName = "jellyseerr" +port = 5055 +host = "${domain}" + +[config.env] +TZ = "${timezone}" diff --git a/blueprints/kavita/docker-compose.yml b/blueprints/kavita/docker-compose.yml new file mode 100644 index 000000000..c4db48933 --- /dev/null +++ b/blueprints/kavita/docker-compose.yml @@ -0,0 +1,21 @@ +version: "3.8" + +services: + kavita: + image: jvmilazz0/kavita:latest + restart: unless-stopped + expose: + - "5000" + environment: + - TZ=${TZ} + volumes: + - kavita-config:/kavita/config + - kavita-media:/manga + - kavita-books:/books + - kavita-comics:/comics + +volumes: + kavita-config: + kavita-media: + kavita-books: + kavita-comics: diff --git a/blueprints/kavita/kavita.svg b/blueprints/kavita/kavita.svg new file mode 100644 index 000000000..d29402276 --- /dev/null +++ b/blueprints/kavita/kavita.svg @@ -0,0 +1 @@ + diff --git a/blueprints/kavita/template.toml b/blueprints/kavita/template.toml new file mode 100644 index 000000000..20187dad4 --- /dev/null +++ b/blueprints/kavita/template.toml @@ -0,0 +1,11 @@ +[variables] +timezone = "Etc/UTC" + +[config] +[[config.domains]] +serviceName = "kavita" +port = 5000 +host = "${domain}" + +[config.env] +TZ = "${timezone}" diff --git a/blueprints/languagetool/docker-compose.yml b/blueprints/languagetool/docker-compose.yml new file mode 100644 index 000000000..3b6e81059 --- /dev/null +++ b/blueprints/languagetool/docker-compose.yml @@ -0,0 +1,8 @@ +version: "3.8" + +services: + languagetool: + image: collabora/languagetool:6.6 + restart: unless-stopped + expose: + - "8010" diff --git a/blueprints/languagetool/languagetool.svg b/blueprints/languagetool/languagetool.svg new file mode 100644 index 000000000..24b55c7ee --- /dev/null +++ b/blueprints/languagetool/languagetool.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/blueprints/languagetool/template.toml b/blueprints/languagetool/template.toml new file mode 100644 index 000000000..fe54ef487 --- /dev/null +++ b/blueprints/languagetool/template.toml @@ -0,0 +1,5 @@ +[config] +[[config.domains]] +serviceName = "languagetool" +port = 8010 +host = "${domain}" diff --git a/blueprints/pairdrop/docker-compose.yml b/blueprints/pairdrop/docker-compose.yml new file mode 100644 index 000000000..7dd5cbaa5 --- /dev/null +++ b/blueprints/pairdrop/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3.8" + +services: + pairdrop: + image: lscr.io/linuxserver/pairdrop:latest + restart: unless-stopped + expose: + - "3000" + environment: + - PUID=1000 + - PGID=1000 + - TZ=${TZ} + volumes: + - pairdrop-config:/config + +volumes: + pairdrop-config: diff --git a/blueprints/pairdrop/pairdrop.svg b/blueprints/pairdrop/pairdrop.svg new file mode 100644 index 000000000..56e796670 --- /dev/null +++ b/blueprints/pairdrop/pairdrop.svg @@ -0,0 +1 @@ + diff --git a/blueprints/pairdrop/template.toml b/blueprints/pairdrop/template.toml new file mode 100644 index 000000000..a71345003 --- /dev/null +++ b/blueprints/pairdrop/template.toml @@ -0,0 +1,11 @@ +[variables] +timezone = "Etc/UTC" + +[config] +[[config.domains]] +serviceName = "pairdrop" +port = 3000 +host = "${domain}" + +[config.env] +TZ = "${timezone}" diff --git a/blueprints/privatebin/docker-compose.yml b/blueprints/privatebin/docker-compose.yml new file mode 100644 index 000000000..4e6e06e25 --- /dev/null +++ b/blueprints/privatebin/docker-compose.yml @@ -0,0 +1,19 @@ +version: "3.8" + +services: + privatebin: + image: privatebin/nginx-fpm-alpine:latest + restart: unless-stopped + read_only: true + expose: + - "8080" + volumes: + - privatebin-data:/srv/data + tmpfs: + - /tmp + - /var/tmp + - /var/run + - /var/lib/nginx/tmp + +volumes: + privatebin-data: diff --git a/blueprints/privatebin/privatebin.svg b/blueprints/privatebin/privatebin.svg new file mode 100644 index 000000000..3408d7227 --- /dev/null +++ b/blueprints/privatebin/privatebin.svg @@ -0,0 +1 @@ + diff --git a/blueprints/privatebin/template.toml b/blueprints/privatebin/template.toml new file mode 100644 index 000000000..a8ffc50f5 --- /dev/null +++ b/blueprints/privatebin/template.toml @@ -0,0 +1,5 @@ +[config] +[[config.domains]] +serviceName = "privatebin" +port = 8080 +host = "${domain}" diff --git a/blueprints/shiori/docker-compose.yml b/blueprints/shiori/docker-compose.yml new file mode 100644 index 000000000..213c3c96c --- /dev/null +++ b/blueprints/shiori/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.8" + +services: + shiori: + image: ghcr.io/go-shiori/shiori:v1.8.0-2-g585ea34 + restart: unless-stopped + expose: + - "8080" + environment: + - SHIORI_DIR=/srv/shiori + volumes: + - shiori-data:/srv/shiori + +volumes: + shiori-data: diff --git a/blueprints/shiori/shiori.svg b/blueprints/shiori/shiori.svg new file mode 100644 index 000000000..0ce7e2452 --- /dev/null +++ b/blueprints/shiori/shiori.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/blueprints/shiori/template.toml b/blueprints/shiori/template.toml new file mode 100644 index 000000000..158ba0037 --- /dev/null +++ b/blueprints/shiori/template.toml @@ -0,0 +1,5 @@ +[config] +[[config.domains]] +serviceName = "shiori" +port = 8080 +host = "${domain}" diff --git a/blueprints/speedtest-tracker/docker-compose.yml b/blueprints/speedtest-tracker/docker-compose.yml new file mode 100644 index 000000000..8f0476a24 --- /dev/null +++ b/blueprints/speedtest-tracker/docker-compose.yml @@ -0,0 +1,22 @@ +version: "3.8" + +services: + speedtest-tracker: + image: lscr.io/linuxserver/speedtest-tracker:latest + restart: unless-stopped + expose: + - "80" + environment: + - APP_KEY + - APP_URL + - DB_CONNECTION + - PUID + - PGID + - TZ + - DISPLAY_TIMEZONE + - SPEEDTEST_SCHEDULE + volumes: + - speedtest-tracker-config:/config + +volumes: + speedtest-tracker-config: diff --git a/blueprints/speedtest-tracker/speedtest-tracker.svg b/blueprints/speedtest-tracker/speedtest-tracker.svg new file mode 100644 index 000000000..1df3d9984 --- /dev/null +++ b/blueprints/speedtest-tracker/speedtest-tracker.svg @@ -0,0 +1 @@ + diff --git a/blueprints/speedtest-tracker/template.toml b/blueprints/speedtest-tracker/template.toml new file mode 100644 index 000000000..aafa65b07 --- /dev/null +++ b/blueprints/speedtest-tracker/template.toml @@ -0,0 +1,21 @@ +[variables] +main_domain = "${domain}" +app_key = "base64:${base64:32}" +timezone = "Etc/UTC" + +[config] +env = [ + "APP_KEY=${app_key}", + "APP_URL=https://${main_domain}", + "DB_CONNECTION=sqlite", + "PUID=1000", + "PGID=1000", + "TZ=${timezone}", + "DISPLAY_TIMEZONE=${timezone}", + "SPEEDTEST_SCHEDULE=0 */6 * * *", +] + +[[config.domains]] +serviceName = "speedtest-tracker" +port = 80 +host = "${main_domain}" diff --git a/blueprints/wakapi/docker-compose.yml b/blueprints/wakapi/docker-compose.yml new file mode 100644 index 000000000..ce3992310 --- /dev/null +++ b/blueprints/wakapi/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3.8" + +services: + wakapi: + image: ghcr.io/muety/wakapi:latest + restart: unless-stopped + expose: + - "3000" + environment: + - WAKAPI_PASSWORD_SALT=${WAKAPI_PASSWORD_SALT} + - WAKAPI_DB_TYPE=sqlite3 + - WAKAPI_DB_NAME=/data/wakapi.db + - WAKAPI_LISTEN_IPV4=0.0.0.0 + volumes: + - wakapi-data:/data + +volumes: + wakapi-data: diff --git a/blueprints/wakapi/template.toml b/blueprints/wakapi/template.toml new file mode 100644 index 000000000..939158b3e --- /dev/null +++ b/blueprints/wakapi/template.toml @@ -0,0 +1,11 @@ +[variables] +password_salt = "${password:64}" + +[config] +[[config.domains]] +serviceName = "wakapi" +port = 3000 +host = "${domain}" + +[config.env] +WAKAPI_PASSWORD_SALT = "${password_salt}" diff --git a/blueprints/wakapi/wakapi.svg b/blueprints/wakapi/wakapi.svg new file mode 100644 index 000000000..4acaecb6c --- /dev/null +++ b/blueprints/wakapi/wakapi.svg @@ -0,0 +1 @@ + diff --git a/meta.json b/meta.json index 8be7825d7..7fe80ba85 100644 --- a/meta.json +++ b/meta.json @@ -1212,6 +1212,24 @@ "monitoring" ] }, + { + "id": "chroma", + "name": "Chroma", + "version": "1.5.6", + "description": "Chroma is an open-source embedding database for AI applications, with persistent vector storage and a simple HTTP API.", + "logo": "chroma.svg", + "links": { + "github": "https://github.com/chroma-core/chroma", + "website": "https://www.trychroma.com/", + "docs": "https://docs.trychroma.com/" + }, + "tags": [ + "ai", + "vector-database", + "embeddings", + "database" + ] + }, { "id": "chromium", "name": "Chromium", @@ -2866,6 +2884,24 @@ "tools" ] }, + { + "id": "gotify", + "name": "Gotify", + "version": "latest", + "description": "Gotify is a simple self-hosted push notification server with a web UI and HTTP API for application alerts.", + "logo": "gotify.svg", + "links": { + "github": "https://github.com/gotify/server", + "website": "https://gotify.net/", + "docs": "https://gotify.net/docs/" + }, + "tags": [ + "notifications", + "alerting", + "api", + "self-hosted" + ] + }, { "id": "grafana", "name": "Grafana", @@ -3023,6 +3059,24 @@ "server" ] }, + { + "id": "homebox", + "name": "Homebox", + "version": "latest", + "description": "Homebox is a self-hosted home inventory and organization app for tracking belongings, locations, and labels.", + "logo": "homebox.svg", + "links": { + "github": "https://github.com/sysadminsmedia/homebox", + "website": "https://homebox.software/", + "docs": "https://homebox.software/en/" + }, + "tags": [ + "inventory", + "home", + "organization", + "self-hosted" + ] + }, { "id": "homebridge", "name": "Homebridge", @@ -3328,6 +3382,24 @@ "media system" ] }, + { + "id": "jellyseerr", + "name": "Jellyseerr", + "version": "latest", + "description": "Jellyseerr is a self-hosted media request and discovery manager for Jellyfin, Plex, and Emby libraries.", + "logo": "jellyseerr.svg", + "links": { + "github": "https://github.com/Fallenbagel/jellyseerr", + "website": "https://docs.jellyseerr.dev/", + "docs": "https://docs.jellyseerr.dev/getting-started" + }, + "tags": [ + "media", + "requests", + "jellyfin", + "plex" + ] + }, { "id": "jenkins", "name": "jenkins", @@ -3383,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", @@ -3554,6 +3644,24 @@ "ai" ] }, + { + "id": "languagetool", + "name": "LanguageTool", + "version": "6.6", + "description": "LanguageTool is an open-source grammar, style, and spell checker that can run as a self-hosted HTTP service.", + "logo": "languagetool.svg", + "links": { + "github": "https://github.com/languagetool-org/languagetool", + "website": "https://languagetool.org/", + "docs": "https://dev.languagetool.org/http-server" + }, + "tags": [ + "writing", + "grammar", + "spellcheck", + "api" + ] + }, { "id": "lavalink", "name": "Lavalink", @@ -4835,6 +4943,24 @@ "rtmp" ] }, + { + "id": "pairdrop", + "name": "PairDrop", + "version": "latest", + "description": "PairDrop is a self-hosted local file sharing web app for sending files and text between nearby devices.", + "logo": "pairdrop.svg", + "links": { + "github": "https://github.com/schlagmichdoch/PairDrop", + "website": "https://pairdrop.net/", + "docs": "https://github.com/schlagmichdoch/PairDrop/blob/master/docs/host-your-own.md" + }, + "tags": [ + "file-sharing", + "p2p", + "web-app", + "self-hosted" + ] + }, { "id": "palmr", "name": "Palmr", @@ -5290,6 +5416,24 @@ ], "dokploy_version": "<0.22.5" }, + { + "id": "privatebin", + "name": "PrivateBin", + "version": "latest", + "description": "PrivateBin is a minimalist pastebin where pasted data is encrypted and decrypted in the browser.", + "logo": "privatebin.svg", + "links": { + "github": "https://github.com/PrivateBin/PrivateBin", + "website": "https://privatebin.info/", + "docs": "https://github.com/PrivateBin/docker-nginx-fpm-alpine" + }, + "tags": [ + "pastebin", + "privacy", + "encryption", + "sharing" + ] + }, { "id": "prometheus", "name": "Prometheus", @@ -5741,6 +5885,24 @@ "file-system" ] }, + { + "id": "shiori", + "name": "Shiori", + "version": "v1.8.0-2-g585ea34", + "description": "Shiori is a simple self-hosted bookmark manager with offline archive support and a web interface.", + "logo": "shiori.svg", + "links": { + "github": "https://github.com/go-shiori/shiori", + "website": "https://go-shiori.github.io/shiori/", + "docs": "https://go-shiori.github.io/shiori/" + }, + "tags": [ + "bookmarks", + "read-it-later", + "archiving", + "self-hosted" + ] + }, { "id": "shlink", "name": "Shlink", @@ -5864,6 +6026,24 @@ "storage" ] }, + { + "id": "speedtest-tracker", + "name": "Speedtest Tracker", + "version": "latest", + "description": "Speedtest Tracker is a self-hosted internet performance tracker that runs scheduled speed tests and stores results.", + "logo": "speedtest-tracker.svg", + "links": { + "github": "https://github.com/alexjustesen/speedtest-tracker", + "website": "https://speedtest-tracker.dev/", + "docs": "https://docs.speedtest-tracker.dev/getting-started/installation/using-docker-compose" + }, + "tags": [ + "monitoring", + "network", + "speedtest", + "analytics" + ] + }, { "id": "stack-auth", "name": "Stack Auth", @@ -6517,6 +6697,24 @@ "project-management" ] }, + { + "id": "wakapi", + "name": "Wakapi", + "version": "latest", + "description": "Wakapi is a self-hosted WakaTime-compatible backend for tracking coding activity and developer statistics.", + "logo": "wakapi.svg", + "links": { + "github": "https://github.com/muety/wakapi", + "website": "https://wakapi.dev/", + "docs": "https://github.com/muety/wakapi#-installation" + }, + "tags": [ + "developer-tools", + "analytics", + "wakatime", + "self-hosted" + ] + }, { "id": "wallos", "name": "Wallos",