diff --git a/AGENTS.md b/AGENTS.md index 107c1d87..09fa3a20 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -781,12 +781,12 @@ Every application requires a JSON metadata file in `json/.json`. "documentation": "https://docs.appname.com/", "website": "https://appname.com/", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/appname.webp", - "config_path": "/opt/appname/.env", "description": "Short description of the application and its purpose.", "install_methods": [ { "type": "default", "script": "ct/appname.sh", + "config_path": "/opt/appname/.env", "resources": { "cpu": 2, "ram": 2048, @@ -819,7 +819,6 @@ Every application requires a JSON metadata file in `json/.json`. | `documentation` | string | Link to official docs | | `website` | string | Link to official website | | `logo` | string | URL to application logo (preferably selfhst icons) | -| `config_path` | string | Path to main config file (or empty string) | | `description` | string | Brief description of the application | | `install_methods` | array | Installation configurations | | `default_credentials` | object | Default username/password (or null) | diff --git a/json/affine.json b/json/affine.json index e2122372..27846003 100644 --- a/json/affine.json +++ b/json/affine.json @@ -1,44 +1,44 @@ { - "name": "AFFiNE", - "slug": "affine", - "categories": [ - 12 - ], - "date_created": "2026-01-18", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3010, - "documentation": "https://affine.pro/docs", - "website": "https://affine.pro/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/affine.webp", - "config_path": "/opt/affine/.env", - "description": "Open-source, privacy-first workspace for notes, docs, and knowledge management with offline-first design and end-to-end encryption.", - "install_methods": [ - { - "type": "default", - "script": "ct/affine.sh", - "resources": { - "cpu": 4, - "ram": 12288, - "hdd": 20, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "AFFiNE", + "slug": "affine", + "categories": [ + 12 + ], + "date_created": "2026-01-18", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3010, + "documentation": "https://affine.pro/docs", + "website": "https://affine.pro/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/affine.webp", + "description": "Open-source, privacy-first workspace for notes, docs, and knowledge management with offline-first design and end-to-end encryption.", + "install_methods": [ + { + "type": "default", + "script": "ct/affine.sh", + "config_path": "/opt/affine/.env", + "resources": { + "cpu": 4, + "ram": 12288, + "hdd": 20, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Initial build takes 20-30 minutes due to native module compilation.", + "type": "info" }, - "notes": [ - { - "text": "Initial build takes 20-30 minutes due to native module compilation.", - "type": "info" - }, - { - "text": "Requires at least 8GB RAM for building and 4GB for runtime.", - "type": "warning" - } - ] + { + "text": "Requires at least 8GB RAM for building and 4GB for runtime.", + "type": "warning" + } + ] } diff --git a/json/akaunting.json b/json/akaunting.json index b37d703f..ff3e612b 100644 --- a/json/akaunting.json +++ b/json/akaunting.json @@ -1,40 +1,40 @@ { - "name": "Akaunting", - "slug": "akaunting", - "categories": [ - 23 - ], - "date_created": "2026-07-13", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 80, - "documentation": "https://akaunting.com/hc/docs", - "website": "https://akaunting.com/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/akaunting.webp", - "config_path": "/opt/akaunting/.env", - "description": "Akaunting is a free, open-source online accounting software designed for small businesses and freelancers, featuring invoicing, expense tracking, and financial reporting.", - "install_methods": [ - { - "type": "default", - "script": "ct/akaunting.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Complete the setup wizard via the web interface on first access.", - "type": "info" - } - ] -} \ No newline at end of file + "name": "Akaunting", + "slug": "akaunting", + "categories": [ + 23 + ], + "date_created": "2026-07-13", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": "https://akaunting.com/hc/docs", + "website": "https://akaunting.com/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/akaunting.webp", + "description": "Akaunting is a free, open-source online accounting software designed for small businesses and freelancers, featuring invoicing, expense tracking, and financial reporting.", + "install_methods": [ + { + "type": "default", + "script": "ct/akaunting.sh", + "config_path": "/opt/akaunting/.env", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Complete the setup wizard via the web interface on first access.", + "type": "info" + } + ] +} diff --git a/json/allstarlink.json b/json/allstarlink.json index 402f4ef9..bb888931 100644 --- a/json/allstarlink.json +++ b/json/allstarlink.json @@ -1,40 +1,40 @@ { - "name": "AllStarLink", - "slug": "allstarlink-vm", - "categories": [ - 24 - ], - "date_created": "2025-05-05", - "type": "vm", - "updateable": false, - "privileged": false, - "interface_port": null, - "documentation": "https://allstarlink.github.io/", - "website": "https://www.allstarlink.org/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/allstar-link.webp", - "config_path": "", - "description": "AllStarLink is a network of Amateur Radio repeaters, remote base stations and hot spots accessible to each other via Voice over Internet Protocol.", - "install_methods": [ - { - "type": "default", - "script": "vm/allstarlink-vm.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Options to Install Allmon3", - "type": "info" - } - ] + "name": "AllStarLink", + "slug": "allstarlink-vm", + "categories": [ + 24 + ], + "date_created": "2025-05-05", + "type": "vm", + "updateable": false, + "privileged": false, + "interface_port": null, + "documentation": "https://allstarlink.github.io/", + "website": "https://www.allstarlink.org/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/allstar-link.webp", + "description": "AllStarLink is a network of Amateur Radio repeaters, remote base stations and hot spots accessible to each other via Voice over Internet Protocol.", + "install_methods": [ + { + "type": "default", + "script": "vm/allstarlink-vm.sh", + "config_path": "", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Options to Install Allmon3", + "type": "info" + } + ] } diff --git a/json/almalinux-10-vm.json b/json/almalinux-10-vm.json index e0a6f39e..bd63826d 100644 --- a/json/almalinux-10-vm.json +++ b/json/almalinux-10-vm.json @@ -12,12 +12,12 @@ "documentation": "https://wiki.almalinux.org/", "website": "https://almalinux.org/", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/almalinux.webp", - "config_path": "", "description": "AlmaLinux 10 (Heliotrope Lion) is a community-driven, RHEL-compatible enterprise Linux distribution. It provides a stable, production-ready platform with long-term support, making it ideal for servers, workloads, and cloud deployments.", "install_methods": [ { "type": "default", "script": "vm/almalinux-10-vm.sh", + "config_path": "", "resources": { "cpu": 2, "ram": 2048, diff --git a/json/alpine-ntfy.json b/json/alpine-ntfy.json index adb73bf2..0168c3ba 100644 --- a/json/alpine-ntfy.json +++ b/json/alpine-ntfy.json @@ -1,40 +1,40 @@ { - "name": "Alpine-ntfy", - "slug": "alpine-ntfy", - "categories": [ - 18 - ], - "date_created": "2025-06-10", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 80, - "documentation": "https://docs.ntfy.sh/", - "website": "https://ntfy.sh/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/ntfy.webp", - "config_path": "/etc/ntfy/server.yml", - "description": "ntfy is a simple HTTP-based pub-sub notification service that lets you send push notifications to your phone or desktop via scripts, without signup or cost.", - "install_methods": [ - { - "type": "default", - "script": "ct/alpine-ntfy.sh", - "resources": { - "cpu": 1, - "ram": 256, - "hdd": 2, - "os": "Alpine", - "version": "3.22" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Alpine-based LXC using apk package manager.", - "type": "info" - } - ] -} \ No newline at end of file + "name": "Alpine-ntfy", + "slug": "alpine-ntfy", + "categories": [ + 18 + ], + "date_created": "2025-06-10", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": "https://docs.ntfy.sh/", + "website": "https://ntfy.sh/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/ntfy.webp", + "description": "ntfy is a simple HTTP-based pub-sub notification service that lets you send push notifications to your phone or desktop via scripts, without signup or cost.", + "install_methods": [ + { + "type": "default", + "script": "ct/alpine-ntfy.sh", + "config_path": "/etc/ntfy/server.yml", + "resources": { + "cpu": 1, + "ram": 256, + "hdd": 2, + "os": "Alpine", + "version": "3.22" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Alpine-based LXC using apk package manager.", + "type": "info" + } + ] +} diff --git a/json/anchor.json b/json/anchor.json index 9071432e..4bc5e7d8 100644 --- a/json/anchor.json +++ b/json/anchor.json @@ -1,44 +1,44 @@ { - "name": "Anchor", - "slug": "anchor", - "categories": [ - 12 - ], - "date_created": "2026-04-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3000, - "documentation": "https://github.com/ZhFahim/anchor#readme", - "website": "https://github.com/ZhFahim/anchor", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/anchor.webp", - "config_path": "/opt/anchor/.env", - "description": "Anchor is an offline-first, self-hosted note-taking application with rich text editing, real-time sync across devices, note sharing, tags, attachments, OIDC authentication, and admin panel.", - "install_methods": [ - { - "type": "default", - "script": "ct/anchor.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 10, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Anchor", + "slug": "anchor", + "categories": [ + 12 + ], + "date_created": "2026-04-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3000, + "documentation": "https://github.com/ZhFahim/anchor#readme", + "website": "https://github.com/ZhFahim/anchor", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/anchor.webp", + "description": "Anchor is an offline-first, self-hosted note-taking application with rich text editing, real-time sync across devices, note sharing, tags, attachments, OIDC authentication, and admin panel.", + "install_methods": [ + { + "type": "default", + "script": "ct/anchor.sh", + "config_path": "/opt/anchor/.env", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 10, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "The first user to register becomes the admin.", + "type": "info" }, - "notes": [ - { - "text": "The first user to register becomes the admin.", - "type": "info" - }, - { - "text": "OIDC can be configured via environment variables in `/opt/anchor/.env` or the admin panel.", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "OIDC can be configured via environment variables in `/opt/anchor/.env` or the admin panel.", + "type": "info" + } + ] +} diff --git a/json/anytype.json b/json/anytype.json index c3f5b154..fe990531 100644 --- a/json/anytype.json +++ b/json/anytype.json @@ -1,48 +1,48 @@ { - "name": "Anytype", - "slug": "anytype", - "categories": [ - 12 - ], - "date_created": "2026-01-29", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 33010, - "documentation": "https://doc.anytype.io/", - "website": "https://anytype.io/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/anytype.webp", - "config_path": "/opt/anytype/.env", - "description": "Anytype is a local-first, privacy-focused alternative to Notion. This script deploys the any-sync-bundle which provides a self-hosted sync server for Anytype clients with external MongoDB and Redis Stack.", - "install_methods": [ - { - "type": "default", - "script": "ct/anytype-server.sh", - "resources": { - "cpu": 2, - "ram": 4096, - "hdd": 16, - "os": "Ubuntu", - "version": "24.04" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Anytype", + "slug": "anytype", + "categories": [ + 12 + ], + "date_created": "2026-01-29", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 33010, + "documentation": "https://doc.anytype.io/", + "website": "https://anytype.io/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/anytype.webp", + "description": "Anytype is a local-first, privacy-focused alternative to Notion. This script deploys the any-sync-bundle which provides a self-hosted sync server for Anytype clients with external MongoDB and Redis Stack.", + "install_methods": [ + { + "type": "default", + "script": "ct/anytype-server.sh", + "config_path": "/opt/anytype/.env", + "resources": { + "cpu": 2, + "ram": 4096, + "hdd": 16, + "os": "Ubuntu", + "version": "24.04" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "After installation, import /opt/anytype/data/client-config.yml into your Anytype apps.", + "type": "info" }, - "notes": [ - { - "text": "After installation, import /opt/anytype/data/client-config.yml into your Anytype apps.", - "type": "info" - }, - { - "text": "This uses the community any-sync-bundle by grishy, not the official Anytype deployment.", - "type": "warning" - }, - { - "text": "Firewall: Open TCP 33010 (DRPC) and UDP 33020 (QUIC) for external access.", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "This uses the community any-sync-bundle by grishy, not the official Anytype deployment.", + "type": "warning" + }, + { + "text": "Firewall: Open TCP 33010 (DRPC) and UDP 33020 (QUIC) for external access.", + "type": "info" + } + ] +} diff --git a/json/apprise-api.json b/json/apprise-api.json index 53e6eeee..00f1e3b3 100644 --- a/json/apprise-api.json +++ b/json/apprise-api.json @@ -12,12 +12,12 @@ "documentation": "https://appriseit.com/api/", "website": "https://appriseit.com/api/", "logo": "https://appriseit.com/_s/apprise-full-logo-light.DZmBGJFz.svg", - "config_path": "/config", "description": "The Apprise API is a web-based gateway to the Apprise library.", "install_methods": [ { "type": "default", "script": "ct/apprise-api.sh", + "config_path": "/config", "resources": { "cpu": 1, "ram": 512, @@ -41,4 +41,4 @@ "type": "info" } ] -} \ No newline at end of file +} diff --git a/json/arm.json b/json/arm.json index 4dc54202..2af2c644 100644 --- a/json/arm.json +++ b/json/arm.json @@ -1,42 +1,44 @@ { - "name": "ARM", - "slug": "arm", - "categories": [13], - "date_created": "2026-03-06", - "type": "ct", - "updateable": true, - "privileged": true, - "interface_port": 8080, - "documentation": "https://github.com/automatic-ripping-machine/automatic-ripping-machine/wiki", - "website": "https://github.com/automatic-ripping-machine/automatic-ripping-machine", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/arm.webp", - "config_path": "/opt/arm/arm.yaml", - "description": "Automatic Ripping Machine (ARM) automatically detects and rips Blu-rays, DVDs, and CDs. It identifies disc type, retrieves metadata, and handles transcoding with MakeMKV and HandBrake.", - "install_methods": [ - { - "type": "default", - "script": "ct/arm.sh", - "resources": { - "cpu": 4, - "ram": 4096, - "hdd": 16, - "os": "Debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": "admin", - "password": "password" + "name": "ARM", + "slug": "arm", + "categories": [ + 13 + ], + "date_created": "2026-03-06", + "type": "ct", + "updateable": true, + "privileged": true, + "interface_port": 8080, + "documentation": "https://github.com/automatic-ripping-machine/automatic-ripping-machine/wiki", + "website": "https://github.com/automatic-ripping-machine/automatic-ripping-machine", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/arm.webp", + "description": "Automatic Ripping Machine (ARM) automatically detects and rips Blu-rays, DVDs, and CDs. It identifies disc type, retrieves metadata, and handles transcoding with MakeMKV and HandBrake.", + "install_methods": [ + { + "type": "default", + "script": "ct/arm.sh", + "config_path": "/opt/arm/arm.yaml", + "resources": { + "cpu": 4, + "ram": 4096, + "hdd": 16, + "os": "Debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": "admin", + "password": "password" + }, + "notes": [ + { + "text": "Optical drive passthrough to the LXC container is required. Configure device mappings in the Proxmox container settings.", + "type": "warning" }, - "notes": [ - { - "text": "Optical drive passthrough to the LXC container is required. Configure device mappings in the Proxmox container settings.", - "type": "warning" - }, - { - "text": "Navigate to http://IP:8080/setup on first launch to complete initial setup. Default credentials: admin / password.", - "type": "info" - } - ] + { + "text": "Navigate to http://IP:8080/setup on first launch to complete initial setup. Default credentials: admin / password.", + "type": "info" + } + ] } diff --git a/json/authentik.json b/json/authentik.json index 1e899da7..dce71538 100644 --- a/json/authentik.json +++ b/json/authentik.json @@ -1,42 +1,44 @@ { - "name": "authentik", - "slug": "authentik", - "categories": [6], - "date_created": "2026-02-21", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 9000, - "documentation": "https://docs.goauthentik.io/", - "website": "https://goauthentik.io/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/authentik.webp", - "config_path": "/etc/authentik/config.yml", - "description": "authentik is an IdP (Identity Provider) and SSO (Single Sign On) platform.", - "install_methods": [ - { - "type": "default", - "script": "ct/authentik.sh", - "resources": { - "cpu": 4, - "ram": 4096, - "hdd": 10, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, -"notes": [ + "name": "authentik", + "slug": "authentik", + "categories": [ + 6 + ], + "date_created": "2026-02-21", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 9000, + "documentation": "https://docs.goauthentik.io/", + "website": "https://goauthentik.io/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/authentik.webp", + "description": "authentik is an IdP (Identity Provider) and SSO (Single Sign On) platform.", + "install_methods": [ { - "text": "You will get a Not Found error if initial setup URL doesn't include the trailing forward slash /. Make sure you use the complete url (http://:9000/if/flow/initial-setup/) including the trailing forward slash.", - "type": "info" - }, - { - "text": "If you want automatic GeoIP updates, create a free account at https://www.maxmind.com/en/geolite2/signup, then edit the /usr/local/etc/GeoIP.conf file with your credentials and remove the # in front of the geoipupdate line in the crontab.", - "type": "info" + "type": "default", + "script": "ct/authentik.sh", + "config_path": "/etc/authentik/config.yml", + "resources": { + "cpu": 4, + "ram": 4096, + "hdd": 10, + "os": "Debian", + "version": "13" + } } -] -} \ No newline at end of file + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "You will get a Not Found error if initial setup URL doesn't include the trailing forward slash /. Make sure you use the complete url (http://:9000/if/flow/initial-setup/) including the trailing forward slash.", + "type": "info" + }, + { + "text": "If you want automatic GeoIP updates, create a free account at https://www.maxmind.com/en/geolite2/signup, then edit the /usr/local/etc/GeoIP.conf file with your credentials and remove the # in front of the geoipupdate line in the crontab.", + "type": "info" + } + ] +} diff --git a/json/baserow.json b/json/baserow.json index ff961d67..91a369e1 100644 --- a/json/baserow.json +++ b/json/baserow.json @@ -1,48 +1,48 @@ { - "name": "Baserow", - "slug": "baserow", - "categories": [ - 8 - ], - "date_created": "2026-03-25", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3000, - "documentation": "https://baserow.io/docs/index", - "website": "https://baserow.io/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/baserow.webp", - "config_path": "/opt/baserow/.env", - "description": "Baserow is an open-source no-code database platform for building databases, applications, automations, and AI agents without code.", - "install_methods": [ - { - "type": "default", - "script": "ct/baserow.sh", - "resources": { - "cpu": 4, - "ram": 8192, - "hdd": 15, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Baserow", + "slug": "baserow", + "categories": [ + 8 + ], + "date_created": "2026-03-25", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3000, + "documentation": "https://baserow.io/docs/index", + "website": "https://baserow.io/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/baserow.webp", + "description": "Baserow is an open-source no-code database platform for building databases, applications, automations, and AI agents without code.", + "install_methods": [ + { + "type": "default", + "script": "ct/baserow.sh", + "config_path": "/opt/baserow/.env", + "resources": { + "cpu": 4, + "ram": 8192, + "hdd": 15, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "First visit will prompt you to create an admin account.", + "type": "info" }, - "notes": [ - { - "text": "First visit will prompt you to create an admin account.", - "type": "info" - }, - { - "text": "Building from source requires significant resources and may take 10+ minutes.", - "type": "warning" - }, - { - "text": "Update BASEROW_PUBLIC_URL in /opt/baserow/.env if accessing from a different hostname.", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "Building from source requires significant resources and may take 10+ minutes.", + "type": "warning" + }, + { + "text": "Update BASEROW_PUBLIC_URL in /opt/baserow/.env if accessing from a different hostname.", + "type": "info" + } + ] +} diff --git a/json/bitfocus-companion.json b/json/bitfocus-companion.json index 8da96568..45a127bb 100644 --- a/json/bitfocus-companion.json +++ b/json/bitfocus-companion.json @@ -1,43 +1,44 @@ { - "name": "Bitfocus Companion", - "slug": "bitfocus-companion", - "categories": [ - 19 - ], - "date_created": "2026-03-16", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8000, - "documentation": "https://user.bitfocus.io/docs", - "website": "https://bitfocus.io/companion", - "logo": "https://raw.githubusercontent.com/bitfocus/companion/main/assets/icon.png", - "description": "Bitfocus Companion enables the Elgato Stream Deck and other controllers to trigger actions in broadcast software. Installs headless with systemd service, fetching the latest release via the Bitfocus API.", - "install_methods": [ - { - "type": "default", - "script": "ct/bitfocus-companion.sh", - "resources": { - "cpu": 2, - "ram": 512, - "hdd": 8, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Bitfocus Companion", + "slug": "bitfocus-companion", + "categories": [ + 19 + ], + "date_created": "2026-03-16", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8000, + "documentation": "https://user.bitfocus.io/docs", + "website": "https://bitfocus.io/companion", + "logo": "https://raw.githubusercontent.com/bitfocus/companion/main/assets/icon.png", + "description": "Bitfocus Companion enables the Elgato Stream Deck and other controllers to trigger actions in broadcast software. Installs headless with systemd service, fetching the latest release via the Bitfocus API.", + "install_methods": [ + { + "type": "default", + "script": "ct/bitfocus-companion.sh", + "config_path": "", + "resources": { + "cpu": 2, + "ram": 512, + "hdd": 8, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Companion v4.x downloads are served through the Bitfocus API, not GitHub Releases.", + "type": "info" }, - "notes": [ - { - "text": "Companion v4.x downloads are served through the Bitfocus API, not GitHub Releases.", - "type": "info" - }, - { - "text": "Requires libusb for USB device (Stream Deck) bindings.", - "type": "info" - } - ] + { + "text": "Requires libusb for USB device (Stream Deck) bindings.", + "type": "info" + } + ] } diff --git a/json/blinko.json b/json/blinko.json index 13b46819..465735bc 100644 --- a/json/blinko.json +++ b/json/blinko.json @@ -1,40 +1,40 @@ { - "name": "Blinko", - "slug": "blinko", - "categories": [ - 12 - ], - "date_created": "2026-07-13", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 1111, - "documentation": "https://docs.blinko.space/", - "website": "https://blinko.space/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/blinko.webp", - "config_path": "/opt/blinko/.env", - "description": "Blinko is an AI-powered card note-taking tool designed for capturing and organizing fleeting thoughts with natural language search powered by RAG technology.", - "install_methods": [ - { - "type": "default", - "script": "ct/blinko.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Create your account on first access via the web interface.", - "type": "info" - } - ] -} \ No newline at end of file + "name": "Blinko", + "slug": "blinko", + "categories": [ + 12 + ], + "date_created": "2026-07-13", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 1111, + "documentation": "https://docs.blinko.space/", + "website": "https://blinko.space/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/blinko.webp", + "description": "Blinko is an AI-powered card note-taking tool designed for capturing and organizing fleeting thoughts with natural language search powered by RAG technology.", + "install_methods": [ + { + "type": "default", + "script": "ct/blinko.sh", + "config_path": "/opt/blinko/.env", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Create your account on first access via the web interface.", + "type": "info" + } + ] +} diff --git a/json/caddymanager.json b/json/caddymanager.json index 27920efb..0cd87e29 100644 --- a/json/caddymanager.json +++ b/json/caddymanager.json @@ -10,7 +10,6 @@ "privileged": false, "interface_port": 80, "documentation": "https://caddymanager.online/#/docs", - "config_path": "/opt/caddymanager/caddymanager.env", "website": "https://caddymanager.online", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/caddymanager.webp", "description": "Caddy Manager is a free, open source tool to easily manage your Caddy web servers with a modern web interace. Simplify your workflow and focus on what matters.", @@ -18,6 +17,7 @@ { "type": "default", "script": "ct/caddymanager.sh", + "config_path": "/opt/caddymanager/caddymanager.env", "resources": { "cpu": 1, "ram": 1024, diff --git a/json/certimate.json b/json/certimate.json index be4c4742..ef5408e9 100644 --- a/json/certimate.json +++ b/json/certimate.json @@ -1,40 +1,40 @@ { - "name": "Certimate", - "slug": "certimate", - "categories": [ - 6 - ], - "date_created": "2026-07-13", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8090, - "documentation": "https://docs.certimate.me/", - "website": "https://certimate.me/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/certimate.webp", - "config_path": "", - "description": "Certimate is an open-source SSL certificate management tool that automates the application, deployment, and renewal of SSL certificates, supporting integration with various cloud providers and deployment targets.", - "install_methods": [ - { - "type": "default", - "script": "ct/certimate.sh", - "resources": { - "cpu": 1, - "ram": 256, - "hdd": 2, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": "admin@certimate.fun", - "password": "1234567890" - }, - "notes": [ - { - "text": "Change the default password after first login!", - "type": "warning" - } - ] -} \ No newline at end of file + "name": "Certimate", + "slug": "certimate", + "categories": [ + 6 + ], + "date_created": "2026-07-13", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8090, + "documentation": "https://docs.certimate.me/", + "website": "https://certimate.me/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/certimate.webp", + "description": "Certimate is an open-source SSL certificate management tool that automates the application, deployment, and renewal of SSL certificates, supporting integration with various cloud providers and deployment targets.", + "install_methods": [ + { + "type": "default", + "script": "ct/certimate.sh", + "config_path": "", + "resources": { + "cpu": 1, + "ram": 256, + "hdd": 2, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": "admin@certimate.fun", + "password": "1234567890" + }, + "notes": [ + { + "text": "Change the default password after first login!", + "type": "warning" + } + ] +} diff --git a/json/cliproxyapi.json b/json/cliproxyapi.json index 7bdac97b..bae6de3f 100644 --- a/json/cliproxyapi.json +++ b/json/cliproxyapi.json @@ -12,12 +12,12 @@ "documentation": "https://help.router-for.me/", "website": "https://github.com/router-for-me/CLIProxyAPI", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/openai.webp", - "config_path": "/opt/cliproxyapi/config.yaml", "description": "CLIProxyAPI is a proxy server that provides OpenAI-compatible API endpoints for multiple AI CLI tools including Claude Code, Gemini CLI, OpenAI Codex, and more. It enables leveraging free-tier AI subscriptions through a unified API with features like credential routing, quota management, and request retrying.", "install_methods": [ { "type": "default", "script": "ct/cliproxyapi.sh", + "config_path": "/opt/cliproxyapi/config.yaml", "resources": { "cpu": 1, "ram": 512, @@ -41,4 +41,4 @@ "type": "warning" } ] -} \ No newline at end of file +} diff --git a/json/coredns.json b/json/coredns.json index 8ba6184f..1cae4ba2 100644 --- a/json/coredns.json +++ b/json/coredns.json @@ -1,51 +1,52 @@ { - "name": "CoreDNS", - "slug": "coredns", - "categories": [ - 5 - ], - "date_created": "2026-03-27", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": null, - "documentation": "https://coredns.io/manual/toc/", - "website": "https://coredns.io/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/coredns.webp", - "config_path": "/etc/coredns/Corefile", - "description": "CoreDNS is a modern, lightweight, and highly extensible DNS server with a plugin-driven architecture. It is the default DNS engine for Kubernetes and ideal as a local authoritative DNS server for homelabs.", - "install_methods": [ - { - "type": "default", - "script": "ct/coredns.sh", - "resources": { - "cpu": 1, - "ram": 256, - "hdd": 1, - "os": "Debian", - "version": "13" - } - }, - { - "type": "alpine", - "script": "ct/alpine-coredns.sh", - "resources": { - "cpu": 1, - "ram": 256, - "hdd": 1, - "os": "Alpine", - "version": "3.23" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "CoreDNS", + "slug": "coredns", + "categories": [ + 5 + ], + "date_created": "2026-03-27", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": null, + "documentation": "https://coredns.io/manual/toc/", + "website": "https://coredns.io/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/coredns.webp", + "description": "CoreDNS is a modern, lightweight, and highly extensible DNS server with a plugin-driven architecture. It is the default DNS engine for Kubernetes and ideal as a local authoritative DNS server for homelabs.", + "install_methods": [ + { + "type": "default", + "script": "ct/coredns.sh", + "config_path": "/etc/coredns/Corefile", + "resources": { + "cpu": 1, + "ram": 256, + "hdd": 1, + "os": "Debian", + "version": "13" + } }, - "notes": [ - { - "text": "Configuration file is located at /etc/coredns/Corefile", - "type": "info" - } - ] -} \ No newline at end of file + { + "type": "alpine", + "script": "ct/alpine-coredns.sh", + "config_path": "/etc/coredns/Corefile", + "resources": { + "cpu": 1, + "ram": 256, + "hdd": 1, + "os": "Alpine", + "version": "3.23" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Configuration file is located at /etc/coredns/Corefile", + "type": "info" + } + ] +} diff --git a/json/dagu.json b/json/dagu.json index 213ddb32..349c7c83 100644 --- a/json/dagu.json +++ b/json/dagu.json @@ -1,35 +1,35 @@ { - "name": "Dagu", - "slug": "dagu", - "categories": [ - 19 - ], - "date_created": "2026-07-13", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8080, - "documentation": "https://docs.dagu.sh/", - "website": "https://dagu.sh/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/dagu.webp", - "config_path": "", - "description": "Dagu is a powerful, developer-friendly workflow engine that allows you to define DAGs (Directed Acyclic Graphs) in a simple YAML format for scheduling and running complex job dependencies.", - "install_methods": [ - { - "type": "default", - "script": "ct/dagu.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 4, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] -} \ No newline at end of file + "name": "Dagu", + "slug": "dagu", + "categories": [ + 19 + ], + "date_created": "2026-07-13", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8080, + "documentation": "https://docs.dagu.sh/", + "website": "https://dagu.sh/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/dagu.webp", + "description": "Dagu is a powerful, developer-friendly workflow engine that allows you to define DAGs (Directed Acyclic Graphs) in a simple YAML format for scheduling and running complex job dependencies.", + "install_methods": [ + { + "type": "default", + "script": "ct/dagu.sh", + "config_path": "", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 4, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] +} diff --git a/json/dashy.json b/json/dashy.json index 33729782..1da70a92 100644 --- a/json/dashy.json +++ b/json/dashy.json @@ -12,12 +12,12 @@ "documentation": "https://dashy.to/docs", "website": "https://dashy.to/", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/dashy.webp", - "config_path": "/opt/dashy/user-data/conf.yml", "description": "Dashy is a solution that helps you organize your self-hosted services by centralizing access to them through a single interface.", "install_methods": [ { "type": "default", "script": "ct/dashy.sh", + "config_path": "/opt/dashy/user-data/conf.yml", "resources": { "cpu": 2, "ram": 2048, diff --git a/json/ddclient.json b/json/ddclient.json index a7c4a514..f5a0e8d7 100644 --- a/json/ddclient.json +++ b/json/ddclient.json @@ -1,4 +1,3 @@ - { "name": "ddclient", "slug": "ddclient", @@ -13,12 +12,12 @@ "documentation": "https://ddclient.net/", "website": "https://ddclient.net/", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/ddclient.webp", - "config_path": "/etc/ddclient.conf", "description": "ddclient is a Perl client used to update dynamic DNS entries for accounts on a wide range of dynamic DNS service providers. It supports multiple protocols and providers, allowing automatic IP address updates for your domain names.", "install_methods": [ { "type": "default", "script": "ct/ddclient.sh", + "config_path": "/etc/ddclient.conf", "resources": { "cpu": 1, "ram": 512, @@ -40,6 +39,6 @@ { "type": "info", "text": "Sample configuration is created for Namecheap but can be modified for other providers" - }, + } ] -} +} \ No newline at end of file diff --git a/json/degoog.json b/json/degoog.json index 9b525181..e23cd9fb 100644 --- a/json/degoog.json +++ b/json/degoog.json @@ -1,44 +1,44 @@ { - "name": "degoog", - "slug": "degoog", - "categories": [ - 0 - ], - "date_created": "2026-03-20", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 4444, - "documentation": "https://fccview.github.io/degoog/", - "website": "https://github.com/fccview/degoog", - "logo": "https://raw.githubusercontent.com/fccview/degoog/main/src/public/images/degoog-logo.png", - "config_path": "/opt/degoog/.env", - "description": "Search aggregator that queries multiple engines and supports plugins, themes, and extension repositories.", - "install_methods": [ - { - "type": "default", - "script": "ct/degoog.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 6, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "degoog", + "slug": "degoog", + "categories": [ + 0 + ], + "date_created": "2026-03-20", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 4444, + "documentation": "https://fccview.github.io/degoog/", + "website": "https://github.com/fccview/degoog", + "logo": "https://raw.githubusercontent.com/fccview/degoog/main/src/public/images/degoog-logo.png", + "description": "Search aggregator that queries multiple engines and supports plugins, themes, and extension repositories.", + "install_methods": [ + { + "type": "default", + "script": "ct/degoog.sh", + "config_path": "/opt/degoog/.env", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 6, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Project is currently marked beta upstream and not intended for production use yet.", + "type": "warning" }, - "notes": [ - { - "text": "Project is currently marked beta upstream and not intended for production use yet.", - "type": "warning" - }, - { - "text": "Add extension store repositories in Settings after first start (official repo: https://github.com/fccview/fccview-degoog-extensions).", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "Add extension store repositories in Settings after first start (official repo: https://github.com/fccview/fccview-degoog-extensions).", + "type": "info" + } + ] +} diff --git a/json/dependency-check.json b/json/dependency-check.json index 22f08ae7..e258eb8a 100644 --- a/json/dependency-check.json +++ b/json/dependency-check.json @@ -1,52 +1,52 @@ { - "name": "PVE Startup Dependency Check", - "slug": "dependency-check", - "categories": [ - 1 - ], - "date_created": "2025-08-12", - "type": "pve", - "updateable": false, - "privileged": false, - "interface_port": null, - "documentation": null, - "website": null, - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/proxmox.webp", - "config_path": "/etc/default/pve-auto-hook", - "description": "This script checks for the presence of required dependencies before starting a VM or LXC container in Proxmox. It ensures that all referenced storages are available and, additionally, supports the usage of tags to check for specific dependencies. If any required dependency is missing, the VM or container will not start until the issue is resolved. This script is designed to be used as a Proxmox hookscript, which can be applied to both QEMU VMs and LXC containers.", - "install_methods": [ - { - "type": "default", - "script": "tools/pve/dependency-check.sh", - "resources": { - "cpu": null, - "ram": null, - "hdd": null, - "os": null, - "version": "PVE 8.x / 9.x" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "PVE Startup Dependency Check", + "slug": "dependency-check", + "categories": [ + 1 + ], + "date_created": "2025-08-12", + "type": "pve", + "updateable": false, + "privileged": false, + "interface_port": null, + "documentation": null, + "website": null, + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/proxmox.webp", + "description": "This script checks for the presence of required dependencies before starting a VM or LXC container in Proxmox. It ensures that all referenced storages are available and, additionally, supports the usage of tags to check for specific dependencies. If any required dependency is missing, the VM or container will not start until the issue is resolved. This script is designed to be used as a Proxmox hookscript, which can be applied to both QEMU VMs and LXC containers.", + "install_methods": [ + { + "type": "default", + "script": "tools/pve/dependency-check.sh", + "config_path": "/etc/default/pve-auto-hook", + "resources": { + "cpu": null, + "ram": null, + "hdd": null, + "os": null, + "version": "PVE 8.x / 9.x" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Execute within the Proxmox shell", + "type": "info" }, - "notes": [ - { - "text": "Execute within the Proxmox shell", - "type": "info" - }, - { - "text": "The script supports --install (default), --status and --uninstall for clean lifecycle management.", - "type": "info" - }, - { - "text": "To wait until a certain host is available, tag the VM or container with `dep_ping_` where `` is the name or IP of the host to ping. The script will wait until the host is reachable before proceeding with the startup.", - "type": "info" - }, - { - "text": "To wait until a certain TCP port is open, tag the VM or container with `dep_tcp__` where `` is the name or IP of the host and `` is the TCP port number. The script will wait until the port is open before proceeding with the startup.", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "The script supports --install (default), --status and --uninstall for clean lifecycle management.", + "type": "info" + }, + { + "text": "To wait until a certain host is available, tag the VM or container with `dep_ping_` where `` is the name or IP of the host to ping. The script will wait until the host is reachable before proceeding with the startup.", + "type": "info" + }, + { + "text": "To wait until a certain TCP port is open, tag the VM or container with `dep_tcp__` where `` is the name or IP of the host and `` is the TCP port number. The script will wait until the port is open before proceeding with the startup.", + "type": "info" + } + ] +} diff --git a/json/discourse.json b/json/discourse.json index e5d1e017..d4302989 100644 --- a/json/discourse.json +++ b/json/discourse.json @@ -1,48 +1,48 @@ { - "name": "Discourse", - "slug": "discourse", - "categories": [ - 23 - ], - "date_created": "2026-02-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 80, - "documentation": "https://www.discourse.org/", - "website": "https://www.discourse.org/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/discourse.webp", - "config_path": "/opt/discourse/.env", - "description": "Discourse is the civilized discussion platform. Use it as a mailing list, discussion forum, or long-form chat room.", - "install_methods": [ - { - "type": "default", - "script": "ct/discourse.sh", - "resources": { - "cpu": 4, - "ram": 4096, - "hdd": 20, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": "admin", - "password": null + "name": "Discourse", + "slug": "discourse", + "categories": [ + 23 + ], + "date_created": "2026-02-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": "https://www.discourse.org/", + "website": "https://www.discourse.org/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/discourse.webp", + "description": "Discourse is the civilized discussion platform. Use it as a mailing list, discussion forum, or long-form chat room.", + "install_methods": [ + { + "type": "default", + "script": "ct/discourse.sh", + "config_path": "/opt/discourse/.env", + "resources": { + "cpu": 4, + "ram": 4096, + "hdd": 20, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": "admin", + "password": null + }, + "notes": [ + { + "text": "Minimum 4GB RAM and 4 CPU cores recommended for production use.", + "type": "warning" }, - "notes": [ - { - "text": "Minimum 4GB RAM and 4 CPU cores recommended for production use.", - "type": "warning" - }, - { - "text": "Admin credentials are saved in `/root/discourse.creds` inside the container.", - "type": "info" - }, - { - "text": "Configure SMTP settings in the admin panel (Admin > Settings > Email) for email notifications.", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "Admin credentials are saved in `/root/discourse.creds` inside the container.", + "type": "info" + }, + { + "text": "Configure SMTP settings in the admin panel (Admin > Settings > Email) for email notifications.", + "type": "info" + } + ] +} diff --git a/json/ente.json b/json/ente.json index 703f6761..f0506e2d 100644 --- a/json/ente.json +++ b/json/ente.json @@ -1,48 +1,48 @@ { - "name": "Ente", - "slug": "ente", - "categories": [ - 11 - ], - "date_created": "2025-11-22", - "type": "ct", - "updateable": false, - "privileged": false, - "config_path": "/opt", - "interface_port": 3000, - "documentation": "https://github.com/ente-io/ente", - "website": "https://ente.io/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/ente-photos.webp", - "description": "Ente is a service that provides a fully open source, end-to-end encrypted platform for you to store your data in the cloud without needing to trust the service provider. On top of this platform, we have built two apps so far: Ente Photos (an alternative to Apple and Google Photos) and Ente Auth (a 2FA alternative to the deprecated Authy).", - "install_methods": [ - { - "type": "default", - "script": "ct/ente.sh", - "resources": { - "cpu": 4, - "ram": 4096, - "hdd": 10, - "os": "debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Ente", + "slug": "ente", + "categories": [ + 11 + ], + "date_created": "2025-11-22", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 3000, + "documentation": "https://github.com/ente-io/ente", + "website": "https://ente.io/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/ente-photos.webp", + "description": "Ente is a service that provides a fully open source, end-to-end encrypted platform for you to store your data in the cloud without needing to trust the service provider. On top of this platform, we have built two apps so far: Ente Photos (an alternative to Apple and Google Photos) and Ente Auth (a 2FA alternative to the deprecated Authy).", + "install_methods": [ + { + "type": "default", + "script": "ct/ente.sh", + "config_path": "/opt", + "resources": { + "cpu": 4, + "ram": 4096, + "hdd": 10, + "os": "debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "First-Start: Run `ente-setup` — it guides you through account creation, verification, and admin configuration.", + "type": "info" }, - "notes": [ - { - "text": "First-Start: Run `ente-setup` — it guides you through account creation, verification, and admin configuration.", - "type": "info" - }, - { - "text": "To upgrade subscription later: `ente-upgrade-subscription user@example.com`", - "type": "info" - }, - { - "text": "To see Museum config: `cat /opt/ente/server/museum.yaml`", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "To upgrade subscription later: `ente-upgrade-subscription user@example.com`", + "type": "info" + }, + { + "text": "To see Museum config: `cat /opt/ente/server/museum.yaml`", + "type": "info" + } + ] +} diff --git a/json/erpnext.json b/json/erpnext.json index 5ba50feb..d2612fb4 100644 --- a/json/erpnext.json +++ b/json/erpnext.json @@ -1,48 +1,48 @@ { - "name": "ERPNext", - "slug": "erpnext", - "categories": [ - 25 - ], - "date_created": "2026-03-25", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 80, - "documentation": "https://docs.erpnext.com/", - "website": "https://erpnext.com/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/frappe-erpnext.webp", - "config_path": "/opt/frappe-bench/.env", - "description": "ERPNext is a powerful, intuitive and open-source ERP system for managing accounting, inventory, manufacturing, CRM, projects, HR and more.", - "install_methods": [ - { - "type": "default", - "script": "ct/erpnext.sh", - "resources": { - "cpu": 4, - "ram": 4096, - "hdd": 20, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": "Administrator", - "password": null + "name": "ERPNext", + "slug": "erpnext", + "categories": [ + 25 + ], + "date_created": "2026-03-25", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": "https://docs.erpnext.com/", + "website": "https://erpnext.com/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/frappe-erpnext.webp", + "description": "ERPNext is a powerful, intuitive and open-source ERP system for managing accounting, inventory, manufacturing, CRM, projects, HR and more.", + "install_methods": [ + { + "type": "default", + "script": "ct/erpnext.sh", + "config_path": "/opt/frappe-bench/.env", + "resources": { + "cpu": 4, + "ram": 4096, + "hdd": 20, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": "Administrator", + "password": null + }, + "notes": [ + { + "text": "Admin password is stored in `/opt/frappe-bench/.env`.", + "type": "info" }, - "notes": [ - { - "text": "Admin password is stored in `/opt/frappe-bench/.env`.", - "type": "info" - }, - { - "text": "The default site name is `site1.local`. Configure your domain in Frappe settings.", - "type": "info" - }, - { - "text": "Run `bench update` from `/opt/frappe-bench` to update ERPNext manually.", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "The default site name is `site1.local`. Configure your domain in Frappe settings.", + "type": "info" + }, + { + "text": "Run `bench update` from `/opt/frappe-bench` to update ERPNext manually.", + "type": "info" + } + ] +} diff --git a/json/fireshare.json b/json/fireshare.json index dc5eb339..438e689c 100644 --- a/json/fireshare.json +++ b/json/fireshare.json @@ -12,12 +12,12 @@ "documentation": "https://github.com/ShaneIsrael/fireshare/blob/develop/README.md", "website": "https://github.com/ShaneIsrael/fireshare", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/fireshare.webp", - "config_path": "/opt/fireshare/fireshare.env", "description": "Fireshare is a self-hosted app that lets you share videos — particularly gaming clips — via unique links. You upload videos to a folder, and the app generates shareable URLs for each one. It's designed as a lightweight alternative to services like Medal or YouTube for people who want full control over their content without relying on third-party platforms.", "install_methods": [ { "type": "default", "script": "ct/fireshare.sh", + "config_path": "/opt/fireshare/fireshare.env", "resources": { "cpu": 2, "ram": 2048, @@ -45,4 +45,4 @@ "type": "warning" } ] -} \ No newline at end of file +} diff --git a/json/fleet.json b/json/fleet.json index 128b22bd..cfdc58f5 100644 --- a/json/fleet.json +++ b/json/fleet.json @@ -1,44 +1,44 @@ { - "name": "Fleet", - "slug": "fleet", - "categories": [ - 9 - ], - "date_created": "2026-04-04", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8080, - "documentation": "https://fleetdm.com/docs", - "website": "https://fleetdm.com/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/fleet.webp", - "config_path": "/opt/fleet/.env", - "description": "Fleet is an open-source device management platform for IT and security teams to manage and monitor servers, laptops, and other devices with osquery.", - "install_methods": [ - { - "type": "default", - "script": "ct/fleet.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Fleet", + "slug": "fleet", + "categories": [ + 9 + ], + "date_created": "2026-04-04", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8080, + "documentation": "https://fleetdm.com/docs", + "website": "https://fleetdm.com/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/fleet.webp", + "description": "Fleet is an open-source device management platform for IT and security teams to manage and monitor servers, laptops, and other devices with osquery.", + "install_methods": [ + { + "type": "default", + "script": "ct/fleet.sh", + "config_path": "/opt/fleet/.env", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Create your admin account on first login via the web interface.", + "type": "info" }, - "notes": [ - { - "text": "Create your admin account on first login via the web interface.", - "type": "info" - }, - { - "text": "TLS is disabled by default. Configure TLS in /opt/fleet/.env for production use.", - "type": "warning" - } - ] -} \ No newline at end of file + { + "text": "TLS is disabled by default. Configure TLS in /opt/fleet/.env for production use.", + "type": "warning" + } + ] +} diff --git a/json/foldergram.json b/json/foldergram.json index 69d7df58..060bfea5 100644 --- a/json/foldergram.json +++ b/json/foldergram.json @@ -10,7 +10,6 @@ "privileged": false, "interface_port": 4141, "documentation": "https://foldergram.github.io/quick-start", - "config_path": "/opt/foldergram/foldergram.env", "website": "https://foldergram.github.io/", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/foldergram.webp", "description": "Foldergram is a self-hosted web application that turns your local folders into a beautiful, instagram-style feed and profile. It turns your local folder to app folders (profiles), and serves a lightning-fast Progressive Web App (PWA).", @@ -18,6 +17,7 @@ { "type": "default", "script": "ct/foldergram.sh", + "config_path": "/opt/foldergram/foldergram.env", "resources": { "cpu": 1, "ram": 2048, @@ -32,4 +32,4 @@ "password": null }, "notes": [] -} \ No newline at end of file +} diff --git a/json/forgejo-runner.json b/json/forgejo-runner.json index 1ffd96d0..f713685b 100644 --- a/json/forgejo-runner.json +++ b/json/forgejo-runner.json @@ -10,7 +10,6 @@ "privileged": false, "interface_port": null, "documentation": "https://forgejo.org/docs/latest/admin/actions/runner-installation/", - "config_path": "/root/.runner", "website": "https://forgejo.org/docs/latest/admin/actions/runner-installation/", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/forgejo.webp", "description": "Forgejo Runner is a lightweight service that executes CI/CD jobs for Forgejo, enabling automated builds, tests, and deployments.", @@ -18,6 +17,7 @@ { "type": "default", "script": "ct/forgejo-runner.sh", + "config_path": "/root/.runner", "resources": { "cpu": 2, "ram": 2048, @@ -32,4 +32,4 @@ "password": null }, "notes": [] -} \ No newline at end of file +} diff --git a/json/garmin-grafana.json b/json/garmin-grafana.json index a34e2338..aaa5150f 100644 --- a/json/garmin-grafana.json +++ b/json/garmin-grafana.json @@ -1,44 +1,44 @@ { - "name": "garmin-grafana", - "slug": "garmin-grafana", - "categories": [ - 9 - ], - "date_created": "2025-05-08", - "type": "addon", - "updateable": true, - "privileged": false, - "interface_port": 3000, - "documentation": "https://github.com/arpanghosh8453/garmin-grafana", - "config_path": "/opt/garmin-grafana/.env", - "website": "https://github.com/arpanghosh8453/garmin-grafana", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/garmin-grafana.webp", - "description": "A self-hosted solution to fetch data from Garmin servers and store it in a local InfluxDB database for visualization with Grafana.", - "install_methods": [ - { - "type": "default", - "script": "/tools/addon/garmin-grafana.sh", - "resources": { - "cpu": null, - "ram": null, - "hdd": null, - "os": null, - "version": null - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "garmin-grafana", + "slug": "garmin-grafana", + "categories": [ + 9 + ], + "date_created": "2025-05-08", + "type": "addon", + "updateable": true, + "privileged": false, + "interface_port": 3000, + "documentation": "https://github.com/arpanghosh8453/garmin-grafana", + "website": "https://github.com/arpanghosh8453/garmin-grafana", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/garmin-grafana.webp", + "description": "A self-hosted solution to fetch data from Garmin servers and store it in a local InfluxDB database for visualization with Grafana.", + "install_methods": [ + { + "type": "default", + "script": "/tools/addon/garmin-grafana.sh", + "config_path": "/opt/garmin-grafana/.env", + "resources": { + "cpu": null, + "ram": null, + "hdd": null, + "os": null, + "version": null + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Grafana and InfluxDB credentials are stored in `/opt/garmin-grafana/.env`.", + "type": "info" }, - "notes": [ - { - "text": "Grafana and InfluxDB credentials are stored in `/opt/garmin-grafana/.env`.", - "type": "info" - }, - { - "text": "`garmin-grafana` only imports the past 7 days by default. To import historical data, use `/usr/local/bin/garmin-bulk-import` after installation.", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "`garmin-grafana` only imports the past 7 days by default. To import historical data, use `/usr/local/bin/garmin-bulk-import` after installation.", + "type": "info" + } + ] +} diff --git a/json/github-runner.json b/json/github-runner.json index 723393fe..bbaff61f 100644 --- a/json/github-runner.json +++ b/json/github-runner.json @@ -10,7 +10,6 @@ "privileged": false, "interface_port": null, "documentation": "https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners", - "config_path": "/opt/actions-runner", "website": "https://github.com/actions/runner", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/github.webp", "description": "GitHub Actions self-hosted runner executes workflows for your repository or organization, enabling CI/CD, builds, and deployments.", @@ -18,6 +17,7 @@ { "type": "default", "script": "ct/github-runner.sh", + "config_path": "/opt/actions-runner", "resources": { "cpu": 2, "ram": 2048, diff --git a/json/godoxy.json b/json/godoxy.json index 1e7ad2ea..46d634be 100644 --- a/json/godoxy.json +++ b/json/godoxy.json @@ -1,44 +1,44 @@ { - "name": "GoDoxy", - "slug": "godoxy", - "categories": [ - 21 - ], - "date_created": "2026-03-24", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": null, - "documentation": "https://docs.godoxy.dev", - "website": "https://github.com/yusing/godoxy", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/godoxy.webp", - "config_path": "/etc/godoxy-agent.env", - "description": "GoDoxy Agent is a lightweight system agent that connects Proxmox nodes and LXC containers to a GoDoxy main server, enabling automatic route binding, LXC lifecycle control, and real-time log streaming.", - "install_methods": [ - { - "type": "default", - "script": "ct/godoxy.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 2, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "GoDoxy", + "slug": "godoxy", + "categories": [ + 21 + ], + "date_created": "2026-03-24", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": null, + "documentation": "https://docs.godoxy.dev", + "website": "https://github.com/yusing/godoxy", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/godoxy.webp", + "description": "GoDoxy Agent is a lightweight system agent that connects Proxmox nodes and LXC containers to a GoDoxy main server, enabling automatic route binding, LXC lifecycle control, and real-time log streaming.", + "install_methods": [ + { + "type": "default", + "script": "ct/godoxy.sh", + "config_path": "/etc/godoxy-agent.env", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 2, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "This installs the GoDoxy Agent only. A running GoDoxy main server is required to connect to.", + "type": "warning" }, - "notes": [ - { - "text": "This installs the GoDoxy Agent only. A running GoDoxy main server is required to connect to.", - "type": "warning" - }, - { - "text": "After install, set AGENT_PORT and configure AGENT_CA_CERT / AGENT_SSL_CERT in /etc/godoxy-agent.env using certs generated by your GoDoxy main server.", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "After install, set AGENT_PORT and configure AGENT_CA_CERT / AGENT_SSL_CERT in /etc/godoxy-agent.env using certs generated by your GoDoxy main server.", + "type": "info" + } + ] +} diff --git a/json/gogs.json b/json/gogs.json index 280ffadc..8c0f2365 100644 --- a/json/gogs.json +++ b/json/gogs.json @@ -1,40 +1,40 @@ { - "name": "Gogs", - "slug": "gogs", - "categories": [ - 20 - ], - "date_created": "2026-07-13", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3000, - "documentation": "https://gogs.io/docs", - "website": "https://gogs.io/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/gogs.webp", - "config_path": "/opt/gogs/custom/conf/app.ini", - "description": "Gogs is a painless self-hosted Git service written in Go, designed to be the easiest, fastest, and most lightweight way to set up a self-hosted Git service.", - "install_methods": [ - { - "type": "default", - "script": "ct/gogs.sh", - "resources": { - "cpu": 2, - "ram": 1024, - "hdd": 8, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Complete the initial setup via the web installer on first access.", - "type": "info" - } - ] -} \ No newline at end of file + "name": "Gogs", + "slug": "gogs", + "categories": [ + 20 + ], + "date_created": "2026-07-13", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3000, + "documentation": "https://gogs.io/docs", + "website": "https://gogs.io/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/gogs.webp", + "description": "Gogs is a painless self-hosted Git service written in Go, designed to be the easiest, fastest, and most lightweight way to set up a self-hosted Git service.", + "install_methods": [ + { + "type": "default", + "script": "ct/gogs.sh", + "config_path": "/opt/gogs/custom/conf/app.ini", + "resources": { + "cpu": 2, + "ram": 1024, + "hdd": 8, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Complete the initial setup via the web installer on first access.", + "type": "info" + } + ] +} diff --git a/json/hoodik.json b/json/hoodik.json index 65bf673d..20fc904b 100644 --- a/json/hoodik.json +++ b/json/hoodik.json @@ -1,56 +1,56 @@ { - "name": "Hoodik", - "slug": "hoodik", - "categories": [ - 11 - ], - "date_created": "2025-12-10", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 5443, - "documentation": "https://github.com/hudikhq/hoodik#readme", - "config_path": "/opt/hoodik/.env", - "website": "https://github.com/hudikhq/hoodik", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/hoodik.webp", - "description": "Hoodik is a lightweight, self-hosted cloud storage solution with end-to-end encryption. Files are encrypted on your device before upload using hybrid RSA/AES encryption, ensuring only you can access your data.", - "install_methods": [ - { - "type": "default", - "script": "ct/hoodik.sh", - "resources": { - "cpu": 4, - "ram": 4096, - "hdd": 20, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Hoodik", + "slug": "hoodik", + "categories": [ + 11 + ], + "date_created": "2025-12-10", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 5443, + "documentation": "https://github.com/hudikhq/hoodik#readme", + "website": "https://github.com/hudikhq/hoodik", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/hoodik.webp", + "description": "Hoodik is a lightweight, self-hosted cloud storage solution with end-to-end encryption. Files are encrypted on your device before upload using hybrid RSA/AES encryption, ensuring only you can access your data.", + "install_methods": [ + { + "type": "default", + "script": "ct/hoodik.sh", + "config_path": "/opt/hoodik/.env", + "resources": { + "cpu": 4, + "ram": 4096, + "hdd": 20, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "First visit will prompt you to create an admin account", + "type": "info" }, - "notes": [ - { - "text": "First visit will prompt you to create an admin account", - "type": "info" - }, - { - "text": "Installation builds Rust backend and Vue frontend from source - takes 15-20 minutes", - "type": "warning" - }, - { - "text": "Requires 4GB RAM and 20GB disk for build process", - "type": "warning" - }, - { - "text": "Data is stored in /opt/hoodik_data", - "type": "info" - }, - { - "text": "SSL is disabled by default - use a reverse proxy for HTTPS", - "type": "warning" - } - ] + { + "text": "Installation builds Rust backend and Vue frontend from source - takes 15-20 minutes", + "type": "warning" + }, + { + "text": "Requires 4GB RAM and 20GB disk for build process", + "type": "warning" + }, + { + "text": "Data is stored in /opt/hoodik_data", + "type": "info" + }, + { + "text": "SSL is disabled by default - use a reverse proxy for HTTPS", + "type": "warning" + } + ] } diff --git a/json/igotify.json b/json/igotify.json index 7d5f2574..7c0df562 100644 --- a/json/igotify.json +++ b/json/igotify.json @@ -1,40 +1,40 @@ { - "name": "iGotify", - "slug": "igotify", - "categories": [ - 19 - ], - "date_created": "2026-02-18", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 80, - "documentation": "https://github.com/androidseb25/iGotify-Notification-Assistent", - "website": "https://github.com/androidseb25/iGotify-Notification-Assistent", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/gotify.webp", - "config_path": "/opt/igotify/.env", - "description": "Companion service to Gotify that forwards notifications to iOS devices via Apple Push Notification service (APNs).", - "install_methods": [ - { - "type": "default", - "script": "ct/igotify.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 4, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Requires a running Gotify instance. Configure the Gotify server URL and client token in the iGotify web interface after setup.", - "type": "info" - } - ] + "name": "iGotify", + "slug": "igotify", + "categories": [ + 19 + ], + "date_created": "2026-02-18", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": "https://github.com/androidseb25/iGotify-Notification-Assistent", + "website": "https://github.com/androidseb25/iGotify-Notification-Assistent", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/gotify.webp", + "description": "Companion service to Gotify that forwards notifications to iOS devices via Apple Push Notification service (APNs).", + "install_methods": [ + { + "type": "default", + "script": "ct/igotify.sh", + "config_path": "/opt/igotify/.env", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 4, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Requires a running Gotify instance. Configure the Gotify server URL and client token in the iGotify web interface after setup.", + "type": "info" + } + ] } diff --git a/json/invidious.json b/json/invidious.json index 3a7e94e3..384188ea 100644 --- a/json/invidious.json +++ b/json/invidious.json @@ -12,12 +12,12 @@ "documentation": "https:/docs.invidious.io", "website": "https://invidious.io", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/invidious.webp", - "config_path": "/opt/invidious/config", "description": "A self-hosted alternative frontend for YouTube", "install_methods": [ { "type": "default", "script": "ct/invidious.sh", + "config_path": "/opt/invidious/config", "resources": { "cpu": 2, "ram": 2048, diff --git a/json/invoiceshelf.json b/json/invoiceshelf.json index 68fb1fe0..c9cb022a 100644 --- a/json/invoiceshelf.json +++ b/json/invoiceshelf.json @@ -1,40 +1,40 @@ { - "name": "InvoiceShelf", - "slug": "invoiceshelf", - "categories": [ - 23 - ], - "date_created": "2026-07-13", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 80, - "documentation": "https://docs.invoiceshelf.com/", - "website": "https://invoiceshelf.com/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/invoiceshelf.webp", - "config_path": "/opt/invoiceshelf/.env", - "description": "InvoiceShelf is an open-source web and mobile app that helps you track expenses, payments and create professional invoices and estimates.", - "install_methods": [ - { - "type": "default", - "script": "ct/invoiceshelf.sh", - "resources": { - "cpu": 2, - "ram": 1024, - "hdd": 4, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Complete the initial setup wizard via the web interface on first access.", - "type": "info" - } - ] -} \ No newline at end of file + "name": "InvoiceShelf", + "slug": "invoiceshelf", + "categories": [ + 23 + ], + "date_created": "2026-07-13", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": "https://docs.invoiceshelf.com/", + "website": "https://invoiceshelf.com/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/invoiceshelf.webp", + "description": "InvoiceShelf is an open-source web and mobile app that helps you track expenses, payments and create professional invoices and estimates.", + "install_methods": [ + { + "type": "default", + "script": "ct/invoiceshelf.sh", + "config_path": "/opt/invoiceshelf/.env", + "resources": { + "cpu": 2, + "ram": 1024, + "hdd": 4, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Complete the initial setup wizard via the web interface on first access.", + "type": "info" + } + ] +} diff --git a/json/jitsi.json b/json/jitsi.json index f6cb083e..2987654f 100644 --- a/json/jitsi.json +++ b/json/jitsi.json @@ -1,48 +1,48 @@ { - "name": "Jitsi Meet", - "slug": "jitsi", - "categories": [ - 0 - ], - "date_created": "2026-03-25", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 443, - "documentation": "https://jitsi.github.io/handbook/", - "website": "https://jitsi.org/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/jitsi-meet.webp", - "config_path": "/etc/jitsi", - "description": "Jitsi Meet is a set of open-source projects for secure, simple and scalable video conferences with state-of-the-art video quality and features.", - "install_methods": [ - { - "type": "default", - "script": "ct/jitsi.sh", - "resources": { - "cpu": 4, - "ram": 4096, - "hdd": 12, - "os": "Debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Jitsi Meet", + "slug": "jitsi", + "categories": [ + 0 + ], + "date_created": "2026-03-25", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 443, + "documentation": "https://jitsi.github.io/handbook/", + "website": "https://jitsi.org/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/jitsi-meet.webp", + "description": "Jitsi Meet is a set of open-source projects for secure, simple and scalable video conferences with state-of-the-art video quality and features.", + "install_methods": [ + { + "type": "default", + "script": "ct/jitsi.sh", + "config_path": "/etc/jitsi", + "resources": { + "cpu": 4, + "ram": 4096, + "hdd": 12, + "os": "Debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Uses a self-signed certificate by default. Your browser will show a security warning.", + "type": "info" }, - "notes": [ - { - "text": "Uses a self-signed certificate by default. Your browser will show a security warning.", - "type": "info" - }, - { - "text": "Port 10000/UDP must be forwarded to the container for video/audio to work properly.", - "type": "warning" - }, - { - "text": "Configuration files are located in `/etc/jitsi/`.", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "Port 10000/UDP must be forwarded to the container for video/audio to work properly.", + "type": "warning" + }, + { + "text": "Configuration files are located in `/etc/jitsi/`.", + "type": "info" + } + ] +} diff --git a/json/kan.json b/json/kan.json index 177604ce..b243c2b2 100644 --- a/json/kan.json +++ b/json/kan.json @@ -1,44 +1,44 @@ { - "name": "Kan", - "slug": "kan", - "categories": [ - 25 - ], - "date_created": "2026-04-04", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3000, - "documentation": "https://github.com/kanbn/kan#readme", - "website": "https://kan.bn/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/kan.webp", - "config_path": "/opt/kan/.env", - "description": "Kan is an open-source Kanban board and project management tool built with Next.js and PostgreSQL.", - "install_methods": [ - { - "type": "default", - "script": "ct/kan.sh", - "resources": { - "cpu": 4, - "ram": 4096, - "hdd": 12, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Kan", + "slug": "kan", + "categories": [ + 25 + ], + "date_created": "2026-04-04", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3000, + "documentation": "https://github.com/kanbn/kan#readme", + "website": "https://kan.bn/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/kan.webp", + "description": "Kan is an open-source Kanban board and project management tool built with Next.js and PostgreSQL.", + "install_methods": [ + { + "type": "default", + "script": "ct/kan.sh", + "config_path": "/opt/kan/.env", + "resources": { + "cpu": 4, + "ram": 4096, + "hdd": 12, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Building from source requires significant resources and may take several minutes.", + "type": "warning" }, - "notes": [ - { - "text": "Building from source requires significant resources and may take several minutes.", - "type": "warning" - }, - { - "text": "Update NEXT_PUBLIC_BASE_URL in /opt/kan/.env if accessing from a different hostname.", - "type": "info" - } - ] + { + "text": "Update NEXT_PUBLIC_BASE_URL in /opt/kan/.env if accessing from a different hostname.", + "type": "info" + } + ] } diff --git a/json/labca.json b/json/labca.json index 2738200c..819fe43b 100644 --- a/json/labca.json +++ b/json/labca.json @@ -1,44 +1,44 @@ { - "name": "LabCA", - "slug": "labca", - "categories": [ - 6 - ], - "date_created": "2026-03-25", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3000, - "documentation": "https://github.com/hakwerk/labca", - "website": "https://github.com/hakwerk/labca", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/labca.webp", - "config_path": "/etc/labca/config.json", - "description": "LabCA is a standalone web GUI for managing ACME certificate authorities like step-ca, providing dashboard, certificate overview, and admin management.", - "install_methods": [ - { - "type": "default", - "script": "ct/labca.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 2, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "LabCA", + "slug": "labca", + "categories": [ + 6 + ], + "date_created": "2026-03-25", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3000, + "documentation": "https://github.com/hakwerk/labca", + "website": "https://github.com/hakwerk/labca", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/labca.webp", + "description": "LabCA is a standalone web GUI for managing ACME certificate authorities like step-ca, providing dashboard, certificate overview, and admin management.", + "install_methods": [ + { + "type": "default", + "script": "ct/labca.sh", + "config_path": "/etc/labca/config.json", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 2, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "On first access, you will be prompted to create an admin account and configure the database connection to your step-ca instance.", + "type": "info" }, - "notes": [ - { - "text": "On first access, you will be prompted to create an admin account and configure the database connection to your step-ca instance.", - "type": "info" - }, - { - "text": "LabCA standalone requires a MySQL-backed step-ca instance to connect to.", - "type": "warning" - } - ] -} \ No newline at end of file + { + "text": "LabCA standalone requires a MySQL-backed step-ca instance to connect to.", + "type": "warning" + } + ] +} diff --git a/json/librechat.json b/json/librechat.json index 8379ea7f..5b1c57b9 100644 --- a/json/librechat.json +++ b/json/librechat.json @@ -1,52 +1,52 @@ { - "name": "LibreChat", - "slug": "librechat", - "categories": [ - 20 - ], - "date_created": "2026-03-18", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3080, - "documentation": "https://www.librechat.ai/docs", - "website": "https://www.librechat.ai/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/librechat.webp", - "config_path": "/opt/librechat/.env", - "description": "LibreChat is an open-source AI chat platform that supports multiple AI providers including OpenAI, Anthropic, Google, and more. It features conversation history, multi-modal support, custom endpoints, and a plugin system.", - "install_methods": [ - { - "type": "default", - "script": "ct/librechat.sh", - "resources": { - "cpu": 4, - "ram": 6144, - "hdd": 20, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "LibreChat", + "slug": "librechat", + "categories": [ + 20 + ], + "date_created": "2026-03-18", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3080, + "documentation": "https://www.librechat.ai/docs", + "website": "https://www.librechat.ai/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/librechat.webp", + "description": "LibreChat is an open-source AI chat platform that supports multiple AI providers including OpenAI, Anthropic, Google, and more. It features conversation history, multi-modal support, custom endpoints, and a plugin system.", + "install_methods": [ + { + "type": "default", + "script": "ct/librechat.sh", + "config_path": "/opt/librechat/.env", + "resources": { + "cpu": 4, + "ram": 6144, + "hdd": 20, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Register the first account via the web interface — it becomes the admin account.", + "type": "info" }, - "notes": [ - { - "text": "Register the first account via the web interface — it becomes the admin account.", - "type": "info" - }, - { - "text": "Add your AI provider API keys to /opt/librechat/.env (OPENAI_API_KEY, ANTHROPIC_API_KEY, etc.) and restart librechat. OpenAI, Anthropic, Google and Agents endpoints are pre-enabled via ENDPOINTS.", - "type": "info" - }, - { - "text": "RAG API is included and running on port 8000. Set RAG_OPENAI_API_KEY in /opt/rag-api/.env to enable document Q&A.", - "type": "info" - }, - { - "text": "For local embeddings without an API key, set EMBEDDINGS_PROVIDER=ollama and OLLAMA_BASE_URL=http://:11434 in /opt/rag-api/.env and restart rag-api.", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "Add your AI provider API keys to /opt/librechat/.env (OPENAI_API_KEY, ANTHROPIC_API_KEY, etc.) and restart librechat. OpenAI, Anthropic, Google and Agents endpoints are pre-enabled via ENDPOINTS.", + "type": "info" + }, + { + "text": "RAG API is included and running on port 8000. Set RAG_OPENAI_API_KEY in /opt/rag-api/.env to enable document Q&A.", + "type": "info" + }, + { + "text": "For local embeddings without an API key, set EMBEDDINGS_PROVIDER=ollama and OLLAMA_BASE_URL=http://:11434 in /opt/rag-api/.env and restart rag-api.", + "type": "info" + } + ] +} diff --git a/json/lobehub.json b/json/lobehub.json index 69ac137a..e6bb81b2 100644 --- a/json/lobehub.json +++ b/json/lobehub.json @@ -1,48 +1,48 @@ { - "name": "LobeHub", - "slug": "lobehub", - "categories": [ - 20 - ], - "date_created": "2026-03-25", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3210, - "documentation": "https://lobehub.com/docs", - "website": "https://lobehub.com/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/lobechat.webp", - "config_path": "/opt/lobehub/.env", - "description": "LobeHub is an open-source AI chat platform supporting multiple AI providers, plugins, and knowledge base with a modern interface.", - "install_methods": [ - { - "type": "default", - "script": "ct/lobehub.sh", - "resources": { - "cpu": 4, - "ram": 8192, - "hdd": 15, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "LobeHub", + "slug": "lobehub", + "categories": [ + 20 + ], + "date_created": "2026-03-25", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3210, + "documentation": "https://lobehub.com/docs", + "website": "https://lobehub.com/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/lobechat.webp", + "description": "LobeHub is an open-source AI chat platform supporting multiple AI providers, plugins, and knowledge base with a modern interface.", + "install_methods": [ + { + "type": "default", + "script": "ct/lobehub.sh", + "config_path": "/opt/lobehub/.env", + "resources": { + "cpu": 4, + "ram": 8192, + "hdd": 15, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Configure your AI provider API keys in /opt/lobehub/.env (e.g. OPENAI_API_KEY).", + "type": "info" }, - "notes": [ - { - "text": "Configure your AI provider API keys in /opt/lobehub/.env (e.g. OPENAI_API_KEY).", - "type": "info" - }, - { - "text": "Building from source requires significant resources and may take 10+ minutes.", - "type": "warning" - }, - { - "text": "Update APP_URL in /opt/lobehub/.env if accessing from a different hostname.", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "Building from source requires significant resources and may take 10+ minutes.", + "type": "warning" + }, + { + "text": "Update APP_URL in /opt/lobehub/.env if accessing from a different hostname.", + "type": "info" + } + ] +} diff --git a/json/localagi.json b/json/localagi.json index 44d6e18b..3c8445e6 100644 --- a/json/localagi.json +++ b/json/localagi.json @@ -12,12 +12,12 @@ "documentation": "https://github.com/mudler/LocalAGI#installation-options", "website": "https://github.com/mudler/LocalAGI", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/localagi.webp", - "config_path": "/opt/localagi/.env", "description": "LocalAGI is a self-hostable AI agent platform with a web UI, OpenAI-compatible APIs, and local-first model orchestration.", "install_methods": [ { "type": "default", "script": "ct/localagi.sh", + "config_path": "/opt/localagi/.env", "resources": { "cpu": 2, "ram": 4096, diff --git a/json/lychee.json b/json/lychee.json index f5d9c432..ee29152d 100644 --- a/json/lychee.json +++ b/json/lychee.json @@ -1,44 +1,44 @@ { - "name": "Lychee", - "slug": "lychee", - "categories": [ - 13 - ], - "date_created": "2026-04-04", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 80, - "documentation": "https://lycheeorg.dev/docs", - "website": "https://lycheeorg.github.io/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/lychee.webp", - "config_path": "/opt/lychee/.env", - "description": "Lychee is a free, self-hosted photo management tool that allows you to upload, manage, and share photos with a beautiful web interface.", - "install_methods": [ - { - "type": "default", - "script": "ct/lychee.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Lychee", + "slug": "lychee", + "categories": [ + 13 + ], + "date_created": "2026-04-04", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": "https://lycheeorg.dev/docs", + "website": "https://lycheeorg.github.io/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/lychee.webp", + "description": "Lychee is a free, self-hosted photo management tool that allows you to upload, manage, and share photos with a beautiful web interface.", + "install_methods": [ + { + "type": "default", + "script": "ct/lychee.sh", + "config_path": "/opt/lychee/.env", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Create your admin account on first login via the web interface.", + "type": "info" }, - "notes": [ - { - "text": "Create your admin account on first login via the web interface.", - "type": "info" - }, - { - "text": "Photo storage uses disk space under /opt/lychee/storage. Plan disk size accordingly.", - "type": "info" - } - ] + { + "text": "Photo storage uses disk space under /opt/lychee/storage. Plan disk size accordingly.", + "type": "info" + } + ] } diff --git a/json/matomo.json b/json/matomo.json index 21657e91..715c0944 100644 --- a/json/matomo.json +++ b/json/matomo.json @@ -1,40 +1,40 @@ { - "name": "Matomo", - "slug": "matomo", - "categories": [ - 9 - ], - "date_created": "2026-07-13", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 80, - "documentation": "https://matomo.org/docs/", - "website": "https://matomo.org/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/matomo.webp", - "config_path": "/opt/matomo/config/config.ini.php", - "description": "Matomo is the leading free and open-source web analytics platform, providing a privacy-respecting alternative to Google Analytics with full data ownership.", - "install_methods": [ - { - "type": "default", - "script": "ct/matomo.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 16, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Complete the setup wizard via the web interface on first access. Database credentials are stored in /opt/matomo/.mariadb-creds.", - "type": "info" - } - ] -} \ No newline at end of file + "name": "Matomo", + "slug": "matomo", + "categories": [ + 9 + ], + "date_created": "2026-07-13", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": "https://matomo.org/docs/", + "website": "https://matomo.org/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/matomo.webp", + "description": "Matomo is the leading free and open-source web analytics platform, providing a privacy-respecting alternative to Google Analytics with full data ownership.", + "install_methods": [ + { + "type": "default", + "script": "ct/matomo.sh", + "config_path": "/opt/matomo/config/config.ini.php", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 16, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Complete the setup wizard via the web interface on first access. Database credentials are stored in /opt/matomo/.mariadb-creds.", + "type": "info" + } + ] +} diff --git a/json/mini-qr.json b/json/mini-qr.json index 516a0e98..6e42485e 100644 --- a/json/mini-qr.json +++ b/json/mini-qr.json @@ -12,12 +12,12 @@ "documentation": "https://github.com/lyqht/mini-qr", "website": "https://mini-qr-code-generator.vercel.app/", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/mini-qr.webp", - "config_path": "/etc/caddy/Caddyfile", "description": "Create & scan cute qr codes easily.", "install_methods": [ { "type": "default", "script": "ct/mini-qr.sh", + "config_path": "/etc/caddy/Caddyfile", "resources": { "cpu": 2, "ram": 2048, @@ -32,4 +32,4 @@ "password": null }, "notes": [] -} \ No newline at end of file +} diff --git a/json/minthcm.json b/json/minthcm.json index dcc1527e..ebce74fb 100644 --- a/json/minthcm.json +++ b/json/minthcm.json @@ -1,40 +1,40 @@ { - "name": "MintHCM", - "slug": "minthcm", - "categories": [ - 25 - ], - "date_created": "2025-12-12", - "type": "ct", - "updateable": false, - "privileged": false, - "interface_port": 80, - "documentation": "https://wiki.minthcm.org/", - "config_path": "/var/www/MintHCM", - "website": "https://minthcm.org/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/minthcm.webp", - "description": "MintCHM is a free and open-source tool for Human Capital Management. Main features: recruitment, time management, onboarding & offboarding, calendar, leave management, resources booking, travel & expenses, workplace management, analytics, roles & permissions management, job descriptions, employer branding, employee profiles, competences & skills, employment history, employee evaluations.", - "install_methods": [ - { - "type": "default", - "script": "ct/minthcm.sh", - "resources": { - "cpu": 4, - "ram": 4096, - "hdd": 20, - "os": "debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": "admin", - "password": "minthcm" - }, - "notes": [ - { - "text": "Database credentials are stored in ~/minthcm.creds", - "type": "info" - } - ] + "name": "MintHCM", + "slug": "minthcm", + "categories": [ + 25 + ], + "date_created": "2025-12-12", + "type": "ct", + "updateable": false, + "privileged": false, + "interface_port": 80, + "documentation": "https://wiki.minthcm.org/", + "website": "https://minthcm.org/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/minthcm.webp", + "description": "MintCHM is a free and open-source tool for Human Capital Management. Main features: recruitment, time management, onboarding & offboarding, calendar, leave management, resources booking, travel & expenses, workplace management, analytics, roles & permissions management, job descriptions, employer branding, employee profiles, competences & skills, employment history, employee evaluations.", + "install_methods": [ + { + "type": "default", + "script": "ct/minthcm.sh", + "config_path": "/var/www/MintHCM", + "resources": { + "cpu": 4, + "ram": 4096, + "hdd": 20, + "os": "debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": "admin", + "password": "minthcm" + }, + "notes": [ + { + "text": "Database credentials are stored in ~/minthcm.creds", + "type": "info" + } + ] } diff --git a/json/nametag.json b/json/nametag.json index 5cd5af36..be4736ce 100644 --- a/json/nametag.json +++ b/json/nametag.json @@ -1,38 +1,40 @@ { - "name": "Nametag", - "slug": "nametag", - "categories": [0], - "date_created": "2026-03-30", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3000, - "documentation": "https://github.com/mattogodoy/nametag", - "website": "https://nametag.one", - "logo": "https://raw.githubusercontent.com/mattogodoy/nametag/master/public/android-chrome-192x192.png", - "config_path": "/opt/nametag/.env", - "description": "Nametag is a personal relationships manager that helps you remember the people in your life. Track birthdays, contact info, relationships, and visualize your network as an interactive graph.", - "install_methods": [ - { - "type": "default", - "script": "ct/nametag.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Create your first account via the web UI — self-hosted accounts are auto-verified.", - "type": "info" - } - ] + "name": "Nametag", + "slug": "nametag", + "categories": [ + 0 + ], + "date_created": "2026-03-30", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3000, + "documentation": "https://github.com/mattogodoy/nametag", + "website": "https://nametag.one", + "logo": "https://raw.githubusercontent.com/mattogodoy/nametag/master/public/android-chrome-192x192.png", + "description": "Nametag is a personal relationships manager that helps you remember the people in your life. Track birthdays, contact info, relationships, and visualize your network as an interactive graph.", + "install_methods": [ + { + "type": "default", + "script": "ct/nametag.sh", + "config_path": "/opt/nametag/.env", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Create your first account via the web UI — self-hosted accounts are auto-verified.", + "type": "info" + } + ] } diff --git a/json/neko.json b/json/neko.json index 28082811..b251dd86 100644 --- a/json/neko.json +++ b/json/neko.json @@ -1,44 +1,44 @@ { - "name": "Neko", - "slug": "neko", - "categories": [ - 13 - ], - "date_created": "2026-04-13", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8080, - "documentation": "https://neko.m1k1o.net/docs/v3/configuration", - "website": "https://neko.m1k1o.net/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/neko.webp", - "config_path": "/etc/neko/neko.yaml", - "description": "A self-hosted virtual browser that uses WebRTC to stream a desktop environment to multiple users for watch parties, collaborative browsing, and interactive presentations.", - "install_methods": [ - { - "type": "default", - "script": "ct/neko.sh", - "resources": { - "cpu": 4, - "ram": 4096, - "hdd": 12, - "os": "Debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": "admin" + "name": "Neko", + "slug": "neko", + "categories": [ + 13 + ], + "date_created": "2026-04-13", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8080, + "documentation": "https://neko.m1k1o.net/docs/v3/configuration", + "website": "https://neko.m1k1o.net/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/neko.webp", + "description": "A self-hosted virtual browser that uses WebRTC to stream a desktop environment to multiple users for watch parties, collaborative browsing, and interactive presentations.", + "install_methods": [ + { + "type": "default", + "script": "ct/neko.sh", + "config_path": "/etc/neko/neko.yaml", + "resources": { + "cpu": 4, + "ram": 4096, + "hdd": 12, + "os": "Debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": "admin" + }, + "notes": [ + { + "text": "Login is password-only: 'admin' for admin, 'neko' for regular user. Change both in /etc/neko/neko.yaml.", + "type": "warning" }, - "notes": [ - { - "text": "Login is password-only: 'admin' for admin, 'neko' for regular user. Change both in /etc/neko/neko.yaml.", - "type": "warning" - }, - { - "text": "Firefox ESR is installed as the default browser. The virtual display runs at 1280x720.", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "Firefox ESR is installed as the default browser. The virtual display runs at 1280x720.", + "type": "info" + } + ] +} diff --git a/json/ownfoil.json b/json/ownfoil.json index e3545f8e..429ce086 100644 --- a/json/ownfoil.json +++ b/json/ownfoil.json @@ -1,43 +1,43 @@ { - "name":"Ownfoil", - "slug":"ownfoil", - "categories": [ - 24 - ], - "description": "Ownfoil is a Nintendo Switch library manager, that will also turn your library into a fully customizable and self-hosted Shop, supporting multiple clients like Tinfoil, Cyberfoil and Sphaira.", - "type": "ct", - "privileged": false, - "updateable": true, - "interface_port": 8465, - "documentation": "https://github.com/a1ex4/ownfoil", - "website":" https://github.com/a1ex4/ownfoil", - "logo": null, - "config_path": "/opt/ownfoil/app/config/settings.yaml", - "install_methods": [ - { - "type": "default", - "script": "ct/ownfoil.sh", - "resources": { - "cpu": 1, - "ram": 1024, - "hdd": 4, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Ownfoil", + "slug": "ownfoil", + "categories": [ + 24 + ], + "description": "Ownfoil is a Nintendo Switch library manager, that will also turn your library into a fully customizable and self-hosted Shop, supporting multiple clients like Tinfoil, Cyberfoil and Sphaira.", + "type": "ct", + "privileged": false, + "updateable": true, + "interface_port": 8465, + "documentation": "https://github.com/a1ex4/ownfoil", + "website": " https://github.com/a1ex4/ownfoil", + "logo": null, + "install_methods": [ + { + "type": "default", + "script": "ct/ownfoil.sh", + "config_path": "/opt/ownfoil/app/config/settings.yaml", + "resources": { + "cpu": 1, + "ram": 1024, + "hdd": 4, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Ownfoil requires an admin user to be created to enable Authentication. Go to the Settings tab to create a first user that will have admin rights.", + "type": "warning" }, - "notes": [ - { - "text": "Ownfoil requires an admin user to be created to enable Authentication. Go to the Settings tab to create a first user that will have admin rights.", - "type": "warning" - }, - { - "text": "More CPU/RAM may be required depening on library size and number of concurrent users", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "More CPU/RAM may be required depening on library size and number of concurrent users", + "type": "info" + } + ] +} diff --git a/json/oxicloud.json b/json/oxicloud.json index e1d1bf68..1f718b19 100644 --- a/json/oxicloud.json +++ b/json/oxicloud.json @@ -13,12 +13,12 @@ "documentation": "https://github.com/DioCrafts/OxiCloud/tree/main/doc", "website": "https://github.com/DioCrafts/OxiCloud", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/oxicloud.webp", - "config_path": "/etc/oxicloud/.env", "description": "Ultra-fast, secure & lightweight self-hosted cloud storage — your files, photos, calendars & contacts, all in one place. Built in Rust.", "install_methods": [ { "type": "default", "script": "ct/oxicloud.sh", + "config_path": "/etc/oxicloud/.env", "resources": { "cpu": 2, "ram": 3072, diff --git a/json/papermark.json b/json/papermark.json index 9ca2c559..bc123e77 100644 --- a/json/papermark.json +++ b/json/papermark.json @@ -1,40 +1,40 @@ { - "name": "Papermark", - "slug": "papermark", - "categories": [ - 12 - ], - "date_created": "2026-07-13", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3000, - "documentation": "https://www.papermark.com/docs", - "website": "https://www.papermark.com/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/papermark.webp", - "config_path": "/opt/papermark/.env", - "description": "Papermark is an open-source document sharing alternative to DocSend with built-in analytics, custom domains, and secure shareable links.", - "install_methods": [ - { - "type": "default", - "script": "ct/papermark.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Requires external blob storage (S3 or compatible) and email service (Resend) configured in .env for full functionality.", - "type": "warning" - } - ] -} \ No newline at end of file + "name": "Papermark", + "slug": "papermark", + "categories": [ + 12 + ], + "date_created": "2026-07-13", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3000, + "documentation": "https://www.papermark.com/docs", + "website": "https://www.papermark.com/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/papermark.webp", + "description": "Papermark is an open-source document sharing alternative to DocSend with built-in analytics, custom domains, and secure shareable links.", + "install_methods": [ + { + "type": "default", + "script": "ct/papermark.sh", + "config_path": "/opt/papermark/.env", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Requires external blob storage (S3 or compatible) and email service (Resend) configured in .env for full functionality.", + "type": "warning" + } + ] +} diff --git a/json/pixelfed.json b/json/pixelfed.json index 770dba93..46341388 100644 --- a/json/pixelfed.json +++ b/json/pixelfed.json @@ -1,52 +1,52 @@ { - "name": "Pixelfed", - "slug": "pixelfed", - "categories": [ - 0 - ], - "date_created": "2024-06-15", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 80, - "documentation": "https://docs.pixelfed.org/", - "config_path": "/opt/pixelfed/.env", - "website": "https://pixelfed.org/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/pixelfed.webp", - "description": "Pixelfed is a free, ethical, and decentralized photo sharing platform powered by ActivityPub federation. It offers an ad-free, privacy-focused alternative to Instagram with features like Stories, Collections, and photo filters.", - "install_methods": [ - { - "type": "default", - "script": "ct/pixelfed.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 10, - "os": "Debian", - "version": "12" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Pixelfed", + "slug": "pixelfed", + "categories": [ + 0 + ], + "date_created": "2024-06-15", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": "https://docs.pixelfed.org/", + "website": "https://pixelfed.org/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/pixelfed.webp", + "description": "Pixelfed is a free, ethical, and decentralized photo sharing platform powered by ActivityPub federation. It offers an ad-free, privacy-focused alternative to Instagram with features like Stories, Collections, and photo filters.", + "install_methods": [ + { + "type": "default", + "script": "ct/pixelfed.sh", + "config_path": "/opt/pixelfed/.env", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 10, + "os": "Debian", + "version": "12" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Create admin account with: cd /opt/pixelfed && sudo -u pixelfed php artisan user:create", + "type": "warning" }, - "notes": [ - { - "text": "Create admin account with: cd /opt/pixelfed && sudo -u pixelfed php artisan user:create", - "type": "warning" - }, - { - "text": "Credentials are stored in /opt/pixelfed/.env", - "type": "info" - }, - { - "text": "ActivityPub federation is enabled by default", - "type": "info" - }, - { - "text": "Uses PostgreSQL, Redis (socket), and PHP-FPM", - "type": "info" - } - ] + { + "text": "Credentials are stored in /opt/pixelfed/.env", + "type": "info" + }, + { + "text": "ActivityPub federation is enabled by default", + "type": "info" + }, + { + "text": "Uses PostgreSQL, Redis (socket), and PHP-FPM", + "type": "info" + } + ] } diff --git a/json/plane.json b/json/plane.json index fd1e0522..f4578d24 100644 --- a/json/plane.json +++ b/json/plane.json @@ -12,12 +12,12 @@ "documentation": "https://developers.plane.so/self-hosting/overview", "website": "https://plane.so", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/plane.webp", - "config_path": "/opt/plane/apps/api/.env", "description": "Open-source project tracking tool that helps teams plan, track, and manage their software projects with issues, cycles, and modules.", "install_methods": [ { "type": "default", "script": "ct/plane.sh", + "config_path": "/opt/plane/apps/api/.env", "resources": { "cpu": 4, "ram": 6144, @@ -49,4 +49,4 @@ "type": "warning" } ] -} \ No newline at end of file +} diff --git a/json/postiz.json b/json/postiz.json index 32040801..95bb842c 100644 --- a/json/postiz.json +++ b/json/postiz.json @@ -1,44 +1,44 @@ { - "name": "Postiz", - "slug": "postiz", - "categories": [ - 19 - ], - "date_created": "2026-02-22", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 80, - "documentation": "https://docs.postiz.com/", - "website": "https://postiz.com/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/postiz.webp", - "config_path": "/opt/postiz/.env", - "description": "Postiz is an AI-powered social media scheduling tool for managing posts, building audiences, and growing your business across platforms like X, LinkedIn, Instagram, TikTok, Reddit, and more.", - "install_methods": [ - { - "type": "default", - "script": "ct/postiz.sh", - "resources": { - "cpu": 4, - "ram": 8192, - "hdd": 20, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Postiz", + "slug": "postiz", + "categories": [ + 19 + ], + "date_created": "2026-02-22", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": "https://docs.postiz.com/", + "website": "https://postiz.com/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/postiz.webp", + "description": "Postiz is an AI-powered social media scheduling tool for managing posts, building audiences, and growing your business across platforms like X, LinkedIn, Instagram, TikTok, Reddit, and more.", + "install_methods": [ + { + "type": "default", + "script": "ct/postiz.sh", + "config_path": "/opt/postiz/.env", + "resources": { + "cpu": 4, + "ram": 8192, + "hdd": 20, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "The build process requires significant RAM (4GB+). Do not reduce container RAM below 4GB.", + "type": "warning" }, - "notes": [ - { - "text": "The build process requires significant RAM (4GB+). Do not reduce container RAM below 4GB.", - "type": "warning" - }, - { - "text": "NEXT_PUBLIC_* variables are baked at build time. If you change the IP/URL or add social provider keys, rebuild with: postiz-rebuild", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "NEXT_PUBLIC_* variables are baked at build time. If you change the IP/URL or add social provider keys, rebuild with: postiz-rebuild", + "type": "info" + } + ] +} diff --git a/json/protonmail-bridge.json b/json/protonmail-bridge.json index 51847b26..e24637ad 100644 --- a/json/protonmail-bridge.json +++ b/json/protonmail-bridge.json @@ -12,12 +12,12 @@ "documentation": "https://proton.me/support/bridge-cli-guide", "website": "https://proton.me/mail/bridge", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/proton-mail.webp", - "config_path": "", "description": "Proton Mail Bridge runs a local IMAP/SMTP service that lets traditional mail clients access a Proton mailbox. This LXC runs Bridge headless and forwards IMAP/SMTP to the LAN using systemd socket activation (systemd-socket-proxyd).", "install_methods": [ { "type": "default", "script": "ct/protonmail-bridge.sh", + "config_path": "", "resources": { "cpu": 2, "ram": 1024, diff --git a/json/puter.json b/json/puter.json index 59522274..5c3adee5 100644 --- a/json/puter.json +++ b/json/puter.json @@ -1,40 +1,40 @@ { - "name": "Puter", - "slug": "puter", - "categories": [ - 0 - ], - "date_created": "2026-04-04", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 4100, - "documentation": "https://docs.puter.com/", - "website": "https://puter.com/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/puter.webp", - "config_path": "/etc/puter", - "description": "Puter is an open-source personal cloud and web desktop environment that runs in your browser, providing a full desktop experience with file management, app ecosystem, and cloud storage.", - "install_methods": [ - { - "type": "default", - "script": "ct/puter.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Configuration is stored in /etc/puter and data in /var/puter.", - "type": "info" - } - ] + "name": "Puter", + "slug": "puter", + "categories": [ + 0 + ], + "date_created": "2026-04-04", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 4100, + "documentation": "https://docs.puter.com/", + "website": "https://puter.com/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/puter.webp", + "description": "Puter is an open-source personal cloud and web desktop environment that runs in your browser, providing a full desktop experience with file management, app ecosystem, and cloud storage.", + "install_methods": [ + { + "type": "default", + "script": "ct/puter.sh", + "config_path": "/etc/puter", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Configuration is stored in /etc/puter and data in /var/puter.", + "type": "info" + } + ] } diff --git a/json/rss-bridge.json b/json/rss-bridge.json index 57c159b0..c8a78b90 100644 --- a/json/rss-bridge.json +++ b/json/rss-bridge.json @@ -1,35 +1,35 @@ { - "name": "RSS-Bridge", - "slug": "rss-bridge", - "categories": [ - 0 - ], - "date_created": "2026-07-13", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 80, - "documentation": "https://rss-bridge.github.io/rss-bridge/", - "website": "https://rss-bridge.org/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/rss-bridge.webp", - "config_path": "/opt/rss-bridge/config.ini.php", - "description": "RSS-Bridge is a PHP web application that generates web feeds for websites that don't have one, supporting over 400 bridges for various platforms and services.", - "install_methods": [ - { - "type": "default", - "script": "ct/rss-bridge.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 2, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] -} \ No newline at end of file + "name": "RSS-Bridge", + "slug": "rss-bridge", + "categories": [ + 0 + ], + "date_created": "2026-07-13", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": "https://rss-bridge.github.io/rss-bridge/", + "website": "https://rss-bridge.org/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/rss-bridge.webp", + "description": "RSS-Bridge is a PHP web application that generates web feeds for websites that don't have one, supporting over 400 bridges for various platforms and services.", + "install_methods": [ + { + "type": "default", + "script": "ct/rss-bridge.sh", + "config_path": "/opt/rss-bridge/config.ini.php", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 2, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] +} diff --git a/json/simplelogin.json b/json/simplelogin.json index 6f312b17..aad8d5fe 100644 --- a/json/simplelogin.json +++ b/json/simplelogin.json @@ -1,52 +1,52 @@ { - "name": "SimpleLogin", - "slug": "simplelogin", - "categories": [ - 6 - ], - "date_created": "2026-02-22", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 80, - "documentation": "https://github.com/simple-login/app/blob/master/docs/", - "website": "https://simplelogin.io/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/simplelogin.webp", - "config_path": "/opt/simplelogin/.env", - "description": "SimpleLogin is an open-source email alias solution that lets you create anonymous email aliases to protect your real email address from spam, trackers and data breaches.", - "install_methods": [ - { - "type": "default", - "script": "ct/simplelogin.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 10, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "SimpleLogin", + "slug": "simplelogin", + "categories": [ + 6 + ], + "date_created": "2026-02-22", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": "https://github.com/simple-login/app/blob/master/docs/", + "website": "https://simplelogin.io/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/simplelogin.webp", + "description": "SimpleLogin is an open-source email alias solution that lets you create anonymous email aliases to protect your real email address from spam, trackers and data breaches.", + "install_methods": [ + { + "type": "default", + "script": "ct/simplelogin.sh", + "config_path": "/opt/simplelogin/.env", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 10, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "After installation, update EMAIL_DOMAIN and URL in /opt/simplelogin/.env with your actual domain and configure DNS (MX, SPF, DKIM) accordingly.", + "type": "warning" }, - "notes": [ - { - "text": "After installation, update EMAIL_DOMAIN and URL in /opt/simplelogin/.env with your actual domain and configure DNS (MX, SPF, DKIM) accordingly.", - "type": "warning" - }, - { - "text": "A working SMTP setup (Postfix + valid domain/DNS) is required. Registration sends an activation email that must be delivered.", - "type": "warning" - }, - { - "text": "DKIM keys are generated at /opt/simplelogin/dkim/. Add the public key as a TXT record: dkim._domainkey.yourdomain.com", - "type": "info" - }, - { - "text": "Create your first admin account by visiting the web interface and registering.", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "A working SMTP setup (Postfix + valid domain/DNS) is required. Registration sends an activation email that must be delivered.", + "type": "warning" + }, + { + "text": "DKIM keys are generated at /opt/simplelogin/dkim/. Add the public key as a TXT record: dkim._domainkey.yourdomain.com", + "type": "info" + }, + { + "text": "Create your first admin account by visiting the web interface and registering.", + "type": "info" + } + ] +} diff --git a/json/skylite-ux.json b/json/skylite-ux.json index 2ff8107c..1768ef83 100644 --- a/json/skylite-ux.json +++ b/json/skylite-ux.json @@ -12,12 +12,12 @@ "documentation": "https://github.com/Wetzel402/Skylite-UX", "website": "https://github.com/Wetzel402/Skylite-UX", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/skylite-ux.webp", - "config_path": "/opt/skylite-ux/.env", "description": "Skylite-UX is an open-source, self-hosted family management app with calendar, todos, shopping lists, and user management.", "install_methods": [ { "type": "default", "script": "ct/skylite-ux.sh", + "config_path": "/opt/skylite-ux/.env", "resources": { "cpu": 2, "ram": 4096, diff --git a/json/slink.json b/json/slink.json index 1ed8a776..7bc4da3c 100644 --- a/json/slink.json +++ b/json/slink.json @@ -1,48 +1,48 @@ { - "name": "Slink", - "slug": "slink", - "categories": [ - 11 - ], - "date_created": "2026-04-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3000, - "documentation": "https://slink.pages.dev", - "website": "https://github.com/andrii-kryvoviaz/slink", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/slink.webp", - "config_path": "/opt/slink/services/api/.env", - "description": "Slink is a self-hosted image sharing platform built with Symfony and SvelteKit. It supports multi-file uploads, image compression, URL shortening, collections, tags, comments, SSO/OIDC, dark mode, and S3 storage.", - "install_methods": [ - { - "type": "default", - "script": "ct/slink.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 10, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": "admin@localhost", - "password": "auto-generated" + "name": "Slink", + "slug": "slink", + "categories": [ + 11 + ], + "date_created": "2026-04-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3000, + "documentation": "https://slink.pages.dev", + "website": "https://github.com/andrii-kryvoviaz/slink", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/slink.webp", + "description": "Slink is a self-hosted image sharing platform built with Symfony and SvelteKit. It supports multi-file uploads, image compression, URL shortening, collections, tags, comments, SSO/OIDC, dark mode, and S3 storage.", + "install_methods": [ + { + "type": "default", + "script": "ct/slink.sh", + "config_path": "/opt/slink/services/api/.env", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 10, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": "admin@localhost", + "password": "auto-generated" + }, + "notes": [ + { + "text": "API runs on Caddy+PHP-FPM (port 8080), client on Node.js (port 3000).", + "type": "info" }, - "notes": [ - { - "text": "API runs on Caddy+PHP-FPM (port 8080), client on Node.js (port 3000).", - "type": "info" - }, - { - "text": "Credentials are saved to `~/slink.creds`.", - "type": "info" - }, - { - "text": "Mercure real-time notifications are not available in this bare-metal setup.", - "type": "warning" - } - ] -} \ No newline at end of file + { + "text": "Credentials are saved to `~/slink.creds`.", + "type": "info" + }, + { + "text": "Mercure real-time notifications are not available in this bare-metal setup.", + "type": "warning" + } + ] +} diff --git a/json/solidtime.json b/json/solidtime.json index a5a65dc4..0dc5564e 100644 --- a/json/solidtime.json +++ b/json/solidtime.json @@ -1,40 +1,40 @@ { - "name": "SolidTime", - "slug": "solidtime", - "categories": [ - 25 - ], - "date_created": "2026-07-13", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 80, - "documentation": "https://docs.solidtime.io/", - "website": "https://www.solidtime.io/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/solidtime.webp", - "config_path": "/opt/solidtime/.env", - "description": "SolidTime is a modern open-source time tracking application for freelancers and agencies, featuring project management, task tracking, billable rates, and multiple organizations.", - "install_methods": [ - { - "type": "default", - "script": "ct/solidtime.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Create your first account by registering via the web interface.", - "type": "info" - } - ] -} \ No newline at end of file + "name": "SolidTime", + "slug": "solidtime", + "categories": [ + 25 + ], + "date_created": "2026-07-13", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": "https://docs.solidtime.io/", + "website": "https://www.solidtime.io/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/solidtime.webp", + "description": "SolidTime is a modern open-source time tracking application for freelancers and agencies, featuring project management, task tracking, billable rates, and multiple organizations.", + "install_methods": [ + { + "type": "default", + "script": "ct/solidtime.sh", + "config_path": "/opt/solidtime/.env", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Create your first account by registering via the web interface.", + "type": "info" + } + ] +} diff --git a/json/soulsync.json b/json/soulsync.json index 5d014b7d..077505ba 100644 --- a/json/soulsync.json +++ b/json/soulsync.json @@ -1,44 +1,44 @@ { - "name": "SoulSync", - "slug": "soulsync", - "categories": [ - 13 - ], - "date_created": "2026-04-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8008, - "documentation": "https://github.com/Nezreka/SoulSync#readme", - "website": "https://github.com/Nezreka/SoulSync", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/soulsync.webp", - "config_path": "/opt/soulsync/config", - "description": "SoulSync is an intelligent music discovery and automation platform. It monitors artists, generates playlists, downloads missing tracks from multiple sources, verifies audio fingerprints, enriches metadata, and syncs with your media server.", - "install_methods": [ - { - "type": "default", - "script": "ct/soulsync.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "SoulSync", + "slug": "soulsync", + "categories": [ + 13 + ], + "date_created": "2026-04-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8008, + "documentation": "https://github.com/Nezreka/SoulSync#readme", + "website": "https://github.com/Nezreka/SoulSync", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/soulsync.webp", + "description": "SoulSync is an intelligent music discovery and automation platform. It monitors artists, generates playlists, downloads missing tracks from multiple sources, verifies audio fingerprints, enriches metadata, and syncs with your media server.", + "install_methods": [ + { + "type": "default", + "script": "ct/soulsync.sh", + "config_path": "/opt/soulsync/config", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Requires a running slskd instance for Soulseek downloads. Configure in Settings → Downloads.", + "type": "warning" }, - "notes": [ - { - "text": "Requires a running slskd instance for Soulseek downloads. Configure in Settings → Downloads.", - "type": "warning" - }, - { - "text": "Spotify API credentials are optional but recommended for discovery features. Configure at `http://IP:8008` → Settings.", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "Spotify API credentials are optional but recommended for discovery features. Configure at `http://IP:8008` → Settings.", + "type": "info" + } + ] +} diff --git a/json/sparkyfitness-garmin.json b/json/sparkyfitness-garmin.json index 5b6165ef..4e4841bb 100644 --- a/json/sparkyfitness-garmin.json +++ b/json/sparkyfitness-garmin.json @@ -1,35 +1,35 @@ { - "name": "SparkyFitness Garmin Microservice", - "slug": "sparkyfitness-garmin", - "categories": [ - 9 - ], - "date_created": "2026-03-26", - "type": "addon", - "updateable": true, - "privileged": false, - "interface_port": 8000, - "documentation": "https://codewithcj.github.io/SparkyFitness", - "website": "https://github.com/CodeWithCJ/SparkyFitness", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/sparkyfitness.webp", - "config_path": "/etc/sparkyfitness-garmin/.env", - "description": "Microservice that acts as a bridge between the Garmin API and the main SparkyFitness application. It's required if users want to sync their Garmin data with SparkyFitness.", - "install_methods": [ - { - "type": "default", - "script": "tools/addon/sparkyfitness-garmin.sh", - "resources": { - "cpu": null, - "ram": null, - "hdd": null, - "os": null, - "version": null - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] -} \ No newline at end of file + "name": "SparkyFitness Garmin Microservice", + "slug": "sparkyfitness-garmin", + "categories": [ + 9 + ], + "date_created": "2026-03-26", + "type": "addon", + "updateable": true, + "privileged": false, + "interface_port": 8000, + "documentation": "https://codewithcj.github.io/SparkyFitness", + "website": "https://github.com/CodeWithCJ/SparkyFitness", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/sparkyfitness.webp", + "description": "Microservice that acts as a bridge between the Garmin API and the main SparkyFitness application. It's required if users want to sync their Garmin data with SparkyFitness.", + "install_methods": [ + { + "type": "default", + "script": "tools/addon/sparkyfitness-garmin.sh", + "config_path": "/etc/sparkyfitness-garmin/.env", + "resources": { + "cpu": null, + "ram": null, + "hdd": null, + "os": null, + "version": null + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] +} diff --git a/json/step-ca.json b/json/step-ca.json index cda8080a..59b733a6 100644 --- a/json/step-ca.json +++ b/json/step-ca.json @@ -12,12 +12,12 @@ "documentation": "https://smallstep.com/docs/step-ca/", "website": "https://github.com/smallstep/certificates", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/step-ca.webp", - "config_path": "/etc/step-ca", "description": "A private certificate authority (X.509 & SSH) & ACME server for secure automated certificate management, so you can use TLS everywhere & SSO for SSH.", "install_methods": [ { "type": "default", "script": "ct/step-ca.sh", + "config_path": "/etc/step-ca", "resources": { "cpu": 1, "ram": 512, diff --git a/json/storybook.json b/json/storybook.json index 2d229e80..3daa8f6c 100644 --- a/json/storybook.json +++ b/json/storybook.json @@ -1,44 +1,44 @@ { - "name": "Storybook", - "slug": "storybook", - "categories": [ - 20 - ], - "date_created": "2026-03-25", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 6006, - "documentation": "https://storybook.js.org/docs", - "website": "https://storybook.js.org/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/storybook.webp", - "config_path": "", - "description": "Storybook is a frontend workshop for building UI components and pages in isolation. It's used for UI development, testing, and documentation.", - "install_methods": [ - { - "type": "default", - "script": "ct/storybook.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Storybook", + "slug": "storybook", + "categories": [ + 20 + ], + "date_created": "2026-03-25", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 6006, + "documentation": "https://storybook.js.org/docs", + "website": "https://storybook.js.org/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/storybook.webp", + "description": "Storybook is a frontend workshop for building UI components and pages in isolation. It's used for UI development, testing, and documentation.", + "install_methods": [ + { + "type": "default", + "script": "ct/storybook.sh", + "config_path": "", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "The installer uses an interactive setup wizard (like fumadocs). Follow the prompts during installation.", + "type": "info" }, - "notes": [ - { - "text": "The installer uses an interactive setup wizard (like fumadocs). Follow the prompts during installation.", - "type": "info" - }, - { - "text": "Storybook runs in development mode on port 6006.", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "Storybook runs in development mode on port 6006.", + "type": "info" + } + ] +} diff --git a/json/storyteller.json b/json/storyteller.json index 3b79954a..a5ad9fe7 100644 --- a/json/storyteller.json +++ b/json/storyteller.json @@ -1,48 +1,48 @@ { - "name": "Storyteller", - "slug": "storyteller", - "categories": [ - 13 - ], - "date_created": "2026-03-25", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8001, - "documentation": "https://storyteller-platform.dev/docs/welcome", - "website": "https://storyteller-platform.dev/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/storyteller.webp", - "config_path": "/opt/storyteller/.env", - "description": "Storyteller is a self-hosted platform for creating and reading ebooks with synced narration, combining audiobooks and ebooks with automatic synchronization.", - "install_methods": [ - { - "type": "default", - "script": "ct/storyteller.sh", - "resources": { - "cpu": 4, - "ram": 10240, - "hdd": 16, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Storyteller", + "slug": "storyteller", + "categories": [ + 13 + ], + "date_created": "2026-03-25", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8001, + "documentation": "https://storyteller-platform.dev/docs/welcome", + "website": "https://storyteller-platform.dev/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/storyteller.webp", + "description": "Storyteller is a self-hosted platform for creating and reading ebooks with synced narration, combining audiobooks and ebooks with automatic synchronization.", + "install_methods": [ + { + "type": "default", + "script": "ct/storyteller.sh", + "config_path": "/opt/storyteller/.env", + "resources": { + "cpu": 4, + "ram": 10240, + "hdd": 16, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Minimum 8GB RAM recommended. AI-based transcription is resource-intensive.", + "type": "warning" }, - "notes": [ - { - "text": "Minimum 8GB RAM recommended. AI-based transcription is resource-intensive.", - "type": "warning" - }, - { - "text": "Secret key is stored in `/opt/storyteller/.env`.", - "type": "info" - }, - { - "text": "GPU acceleration is not available in the LXC version. Use CPU-based transcription.", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "Secret key is stored in `/opt/storyteller/.env`.", + "type": "info" + }, + { + "text": "GPU acceleration is not available in the LXC version. Use CPU-based transcription.", + "type": "info" + } + ] +} diff --git a/json/surrealdb.json b/json/surrealdb.json index fb6ddc31..c21c58b3 100644 --- a/json/surrealdb.json +++ b/json/surrealdb.json @@ -1,42 +1,44 @@ { - "name": "SurrealDB", - "slug": "surrealdb", - "categories": [8], - "date_created": "2026-02-26", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8000, - "documentation": "https://surrealdb.com/docs", - "website": "https://surrealdb.com/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/surrealdb.webp", - "config_path": "/opt/surrealdb/.env", - "description": "SurrealDB is a multi-model database that combines the power of document, graph, and relational databases into a single platform, offering real-time queries, built-in permissions, and a simplified backend stack.", - "install_methods": [ - { - "type": "default", - "script": "ct/surrealdb.sh", - "resources": { - "cpu": 2, - "ram": 1024, - "hdd": 4, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": "root", - "password": null - }, - "notes": [ - { - "text": "SurrealDB web interface is available on port 8000.", - "type": "info" - }, - { - "text": "Default credentials are saved in ~/surrealdb.creds.", - "type": "info" - } - ] + "name": "SurrealDB", + "slug": "surrealdb", + "categories": [ + 8 + ], + "date_created": "2026-02-26", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8000, + "documentation": "https://surrealdb.com/docs", + "website": "https://surrealdb.com/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/surrealdb.webp", + "description": "SurrealDB is a multi-model database that combines the power of document, graph, and relational databases into a single platform, offering real-time queries, built-in permissions, and a simplified backend stack.", + "install_methods": [ + { + "type": "default", + "script": "ct/surrealdb.sh", + "config_path": "/opt/surrealdb/.env", + "resources": { + "cpu": 2, + "ram": 1024, + "hdd": 4, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": "root", + "password": null + }, + "notes": [ + { + "text": "SurrealDB web interface is available on port 8000.", + "type": "info" + }, + { + "text": "Default credentials are saved in ~/surrealdb.creds.", + "type": "info" + } + ] } diff --git a/json/teable.json b/json/teable.json index ddcc022b..1045c0e7 100644 --- a/json/teable.json +++ b/json/teable.json @@ -1,44 +1,44 @@ { - "name": "Teable", - "slug": "teable", - "categories": [ - 8 - ], - "date_created": "2026-03-25", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3000, - "documentation": "https://help.teable.io/", - "website": "https://teable.io/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/teable.webp", - "config_path": "/opt/teable/.env", - "description": "Teable is a super-fast, open-source no-code database built on PostgreSQL with a spreadsheet-like interface for building applications.", - "install_methods": [ - { - "type": "default", - "script": "ct/teable.sh", - "resources": { - "cpu": 4, - "ram": 10240, - "hdd": 25, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Teable", + "slug": "teable", + "categories": [ + 8 + ], + "date_created": "2026-03-25", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3000, + "documentation": "https://help.teable.io/", + "website": "https://teable.io/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/teable.webp", + "description": "Teable is a super-fast, open-source no-code database built on PostgreSQL with a spreadsheet-like interface for building applications.", + "install_methods": [ + { + "type": "default", + "script": "ct/teable.sh", + "config_path": "/opt/teable/.env", + "resources": { + "cpu": 4, + "ram": 10240, + "hdd": 25, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Minimum 10GB RAM recommended. The build process is very resource-intensive.", + "type": "warning" }, - "notes": [ - { - "text": "Minimum 10GB RAM recommended. The build process is very resource-intensive.", - "type": "warning" - }, - { - "text": "Configuration is stored in `/opt/teable/.env`.", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "Configuration is stored in `/opt/teable/.env`.", + "type": "info" + } + ] +} diff --git a/json/tor-snowflake.json b/json/tor-snowflake.json index d100e588..680f31a0 100644 --- a/json/tor-snowflake.json +++ b/json/tor-snowflake.json @@ -1,35 +1,35 @@ { - "name": "Tor Snowflake", - "slug": "tor-snowflake", - "categories": [ - 4 - ], - "date_created": "2025-12-19", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": null, - "documentation": "https://community.torproject.org/relay/setup/snowflake/standalone/", - "website": "https://snowflake.torproject.org/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/tor.webp", - "config_path": "", - "description": "Snowflake is a pluggable transport that proxies traffic through temporary proxies using WebRTC. Snowflake allows users in censored locations to access the open internet by connecting through volunteer-run proxies. Running a Snowflake proxy helps users circumvent internet censorship by forwarding their traffic through your server.", - "install_methods": [ - { - "type": "default", - "script": "ct/tor-snowflake.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 4, - "os": "debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "Tor Snowflake", + "slug": "tor-snowflake", + "categories": [ + 4 + ], + "date_created": "2025-12-19", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": null, + "documentation": "https://community.torproject.org/relay/setup/snowflake/standalone/", + "website": "https://snowflake.torproject.org/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/tor.webp", + "description": "Snowflake is a pluggable transport that proxies traffic through temporary proxies using WebRTC. Snowflake allows users in censored locations to access the open internet by connecting through volunteer-run proxies. Running a Snowflake proxy helps users circumvent internet censorship by forwarding their traffic through your server.", + "install_methods": [ + { + "type": "default", + "script": "ct/tor-snowflake.sh", + "config_path": "", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 4, + "os": "debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/json/transmute.json b/json/transmute.json index 4c8e9768..515eb3d8 100644 --- a/json/transmute.json +++ b/json/transmute.json @@ -1,38 +1,40 @@ { - "name": "Transmute", - "slug": "transmute", - "categories": [11], - "date_created": "2026-03-30", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3313, - "documentation": "https://transmute.sh/docs/getting-started/", - "website": "https://transmute.sh", - "logo": "https://raw.githubusercontent.com/transmute-app/transmute/main/frontend/public/transmute-logo.svg", - "config_path": "/opt/transmute/backend/.env", - "description": "Transmute is a free, open-source, self-hosted file converter built for privacy. Convert images, video, audio, documents, spreadsheets, subtitles, and fonts locally with no file size limits.", - "install_methods": [ - { - "type": "default", - "script": "ct/transmute.sh", - "resources": { - "cpu": 4, - "ram": 4096, - "hdd": 16, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "Create your first account via the web UI — it becomes the admin account.", - "type": "info" - } - ] + "name": "Transmute", + "slug": "transmute", + "categories": [ + 11 + ], + "date_created": "2026-03-30", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3313, + "documentation": "https://transmute.sh/docs/getting-started/", + "website": "https://transmute.sh", + "logo": "https://raw.githubusercontent.com/transmute-app/transmute/main/frontend/public/transmute-logo.svg", + "description": "Transmute is a free, open-source, self-hosted file converter built for privacy. Convert images, video, audio, documents, spreadsheets, subtitles, and fonts locally with no file size limits.", + "install_methods": [ + { + "type": "default", + "script": "ct/transmute.sh", + "config_path": "/opt/transmute/backend/.env", + "resources": { + "cpu": 4, + "ram": 4096, + "hdd": 16, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Create your first account via the web UI — it becomes the admin account.", + "type": "info" + } + ] } diff --git a/json/trek.json b/json/trek.json index a3705a83..2631a616 100644 --- a/json/trek.json +++ b/json/trek.json @@ -1,44 +1,44 @@ { - "name": "TREK", - "slug": "trek", - "categories": [ - 0 - ], - "date_created": "2026-04-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3000, - "documentation": "https://github.com/mauriceboe/TREK#readme", - "website": "https://github.com/mauriceboe/TREK", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/trek.webp", - "config_path": "/opt/trek/server/.env", - "description": "TREK is a self-hosted, real-time collaborative travel planner with interactive maps, budgets, packing lists, weather forecasts, PWA support, and multi-user collaboration via WebSocket.", - "install_methods": [ - { - "type": "default", - "script": "ct/trek.sh", - "resources": { - "cpu": 2, - "ram": 2048, - "hdd": 8, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "TREK", + "slug": "trek", + "categories": [ + 0 + ], + "date_created": "2026-04-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3000, + "documentation": "https://github.com/mauriceboe/TREK#readme", + "website": "https://github.com/mauriceboe/TREK", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/trek.webp", + "description": "TREK is a self-hosted, real-time collaborative travel planner with interactive maps, budgets, packing lists, weather forecasts, PWA support, and multi-user collaboration via WebSocket.", + "install_methods": [ + { + "type": "default", + "script": "ct/trek.sh", + "config_path": "/opt/trek/server/.env", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 8, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "The first user to register becomes the admin.", + "type": "info" }, - "notes": [ - { - "text": "The first user to register becomes the admin.", - "type": "info" - }, - { - "text": "ENCRYPTION_KEY is auto-generated during setup. See `/opt/trek/server/.env`.", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "ENCRYPTION_KEY is auto-generated during setup. See `/opt/trek/server/.env`.", + "type": "info" + } + ] +} diff --git a/json/tubearchivist.json b/json/tubearchivist.json index cb6bf2f9..a23c6c08 100644 --- a/json/tubearchivist.json +++ b/json/tubearchivist.json @@ -1,52 +1,52 @@ { - "name": "Tube Archivist", - "slug": "tubearchivist", - "categories": [ - 13 - ], - "date_created": "2026-03-25", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8000, - "documentation": "https://docs.tubearchivist.com/", - "website": "https://github.com/tubearchivist/tubearchivist", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/tube-archivist.webp", - "config_path": "/opt/tubearchivist/.env", - "description": "Tube Archivist is a self-hosted YouTube media collection manager that indexes your video collection with metadata for organizing, searching, and playing archived YouTube videos offline.", - "install_methods": [ - { - "type": "default", - "script": "ct/tubearchivist.sh", - "resources": { - "cpu": 4, - "ram": 6144, - "hdd": 30, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": "admin", - "password": null + "name": "Tube Archivist", + "slug": "tubearchivist", + "categories": [ + 13 + ], + "date_created": "2026-03-25", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8000, + "documentation": "https://docs.tubearchivist.com/", + "website": "https://github.com/tubearchivist/tubearchivist", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/tube-archivist.webp", + "description": "Tube Archivist is a self-hosted YouTube media collection manager that indexes your video collection with metadata for organizing, searching, and playing archived YouTube videos offline.", + "install_methods": [ + { + "type": "default", + "script": "ct/tubearchivist.sh", + "config_path": "/opt/tubearchivist/.env", + "resources": { + "cpu": 4, + "ram": 6144, + "hdd": 30, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": "admin", + "password": null + }, + "notes": [ + { + "text": "Requires `vm.max_map_count=262144` on the Proxmox host. Run `sysctl -w vm.max_map_count=262144` on the host and add it to `/etc/sysctl.conf` for persistence.", + "type": "warning" }, - "notes": [ - { - "text": "Requires `vm.max_map_count=262144` on the Proxmox host. Run `sysctl -w vm.max_map_count=262144` on the host and add it to `/etc/sysctl.conf` for persistence.", - "type": "warning" - }, - { - "text": "ElasticSearch is configured with 1GB heap. Adjust `/etc/elasticsearch/jvm.options.d/heap.options` for larger collections.", - "type": "info" - }, - { - "text": "Admin password is stored in `/opt/tubearchivist/.env`.", - "type": "info" - }, - { - "text": "Minimum 6GB RAM recommended. ElasticSearch alone requires 2GB+.", - "type": "warning" - } - ] -} \ No newline at end of file + { + "text": "ElasticSearch is configured with 1GB heap. Adjust `/etc/elasticsearch/jvm.options.d/heap.options` for larger collections.", + "type": "info" + }, + { + "text": "Admin password is stored in `/opt/tubearchivist/.env`.", + "type": "info" + }, + { + "text": "Minimum 6GB RAM recommended. ElasticSearch alone requires 2GB+.", + "type": "warning" + } + ] +} diff --git a/json/twenty.json b/json/twenty.json index 45ce78af..be019bdd 100644 --- a/json/twenty.json +++ b/json/twenty.json @@ -1,48 +1,48 @@ { - "name": "Twenty", - "slug": "twenty", - "categories": [ - 25 - ], - "date_created": "2026-02-22", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 3000, - "documentation": "https://docs.twenty.com/", - "website": "https://twenty.com/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/twenty-crm.webp", - "config_path": "/opt/twenty/.env", - "description": "Twenty is a modern open-source CRM platform that helps you manage customer relationships, track deals, and organize contacts with a clean and powerful interface.", - "install_methods": [ - { - "type": "default", - "script": "ct/twenty.sh", - "resources": { - "cpu": 4, - "ram": 10240, - "hdd": 20, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "Twenty", + "slug": "twenty", + "categories": [ + 25 + ], + "date_created": "2026-02-22", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3000, + "documentation": "https://docs.twenty.com/", + "website": "https://twenty.com/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/twenty-crm.webp", + "description": "Twenty is a modern open-source CRM platform that helps you manage customer relationships, track deals, and organize contacts with a clean and powerful interface.", + "install_methods": [ + { + "type": "default", + "script": "ct/twenty.sh", + "config_path": "/opt/twenty/.env", + "resources": { + "cpu": 4, + "ram": 10240, + "hdd": 20, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "First visit will prompt you to create a workspace and admin account.", + "type": "info" }, - "notes": [ - { - "text": "First visit will prompt you to create a workspace and admin account.", - "type": "info" - }, - { - "text": "Building from source requires significant resources and takes 10-15 minutes.", - "type": "warning" - }, - { - "text": "Update SERVER_URL in /opt/twenty/.env if accessing from a different hostname.", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "Building from source requires significant resources and takes 10-15 minutes.", + "type": "warning" + }, + { + "text": "Update SERVER_URL in /opt/twenty/.env if accessing from a different hostname.", + "type": "info" + } + ] +} diff --git a/json/unifi-os-server-vm.json b/json/unifi-os-server-vm.json index 160c0b4c..8b4b1953 100644 --- a/json/unifi-os-server-vm.json +++ b/json/unifi-os-server-vm.json @@ -1,35 +1,35 @@ { - "name": "Unifi OS Server VM", - "slug": "unifi-os-server-vm", - "categories": [ - 2 - ], - "date_created": "2025-12-02", - "type": "vm", - "updateable": true, - "privileged": false, - "interface_port": null, - "documentation": "https://help.ui.com/hc/en-us", - "website": "https://www.ui.com/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/ubiquiti-unifi.webp", - "config_path": "", - "description": "Unifi OS Server is the operating system that powers Ubiquiti's UniFi line of network devices. It provides a centralized platform for managing and monitoring UniFi access points, switches, and security gateways, offering features such as network configuration, device provisioning, and performance analytics.", - "install_methods": [ - { - "type": "default", - "script": "vm/unifi-os-server-vm.sh", - "resources": { - "cpu": 2, - "ram": 4096, - "hdd": 32, - "os": null, - "version": null - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [] + "name": "Unifi OS Server VM", + "slug": "unifi-os-server-vm", + "categories": [ + 2 + ], + "date_created": "2025-12-02", + "type": "vm", + "updateable": true, + "privileged": false, + "interface_port": null, + "documentation": "https://help.ui.com/hc/en-us", + "website": "https://www.ui.com/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/ubiquiti-unifi.webp", + "description": "Unifi OS Server is the operating system that powers Ubiquiti's UniFi line of network devices. It provides a centralized platform for managing and monitoring UniFi access points, switches, and security gateways, offering features such as network configuration, device provisioning, and performance analytics.", + "install_methods": [ + { + "type": "default", + "script": "vm/unifi-os-server-vm.sh", + "config_path": "", + "resources": { + "cpu": 2, + "ram": 4096, + "hdd": 32, + "os": null, + "version": null + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [] } diff --git a/json/update-apps.json b/json/update-apps.json index c94e9a32..0c559ce3 100644 --- a/json/update-apps.json +++ b/json/update-apps.json @@ -1,80 +1,80 @@ { - "name": "PVE LXC Apps Update", - "slug": "update-apps", - "categories": [ - 1 - ], - "date_created": "2025-09-15", - "type": "pve", - "updateable": true, - "privileged": false, - "interface_port": null, - "documentation": null, - "website": null, - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/proxmox.webp", - "config_path": "", - "description": "This script updates community-scripts managed LXC containers on a Proxmox VE node. It detects the installed service, verifies available update scripts, and applies updates interactively or unattended. Optionally, containers can be backed up before the update process. If additional build resources (CPU/RAM) are required, the script adjusts container resources temporarily and restores them after the update. Containers requiring a reboot will be listed at the end of the process.", - "install_methods": [ - { - "type": "default", - "script": "tools/pve/update-apps.sh", - "resources": { - "cpu": null, - "ram": null, - "hdd": null, - "os": null, - "version": null - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "PVE LXC Apps Update", + "slug": "update-apps", + "categories": [ + 1 + ], + "date_created": "2025-09-15", + "type": "pve", + "updateable": true, + "privileged": false, + "interface_port": null, + "documentation": null, + "website": null, + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/proxmox.webp", + "description": "This script updates community-scripts managed LXC containers on a Proxmox VE node. It detects the installed service, verifies available update scripts, and applies updates interactively or unattended. Optionally, containers can be backed up before the update process. If additional build resources (CPU/RAM) are required, the script adjusts container resources temporarily and restores them after the update. Containers requiring a reboot will be listed at the end of the process.", + "install_methods": [ + { + "type": "default", + "script": "tools/pve/update-apps.sh", + "config_path": "", + "resources": { + "cpu": null, + "ram": null, + "hdd": null, + "os": null, + "version": null + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Execute within the Proxmox shell.", + "type": "info" }, - "notes": [ - { - "text": "Execute within the Proxmox shell.", - "type": "info" - }, - { - "text": "Only containers with `community-script` or `proxmox-helper-scripts` tags are listed for update.", - "type": "info" - }, - { - "text": "Optionally performs a vzdump backup before updating containers.", - "type": "warning" - }, - { - "text": "If required, the script will temporarily increase container CPU/RAM resources for the build process and restore them after completion.", - "type": "info" - }, - { - "text": "At the end of the update, containers requiring a reboot will be listed, and you may choose to reboot them directly.", - "type": "info" - }, - { - "text": "Use `var_backup=yes|no` to enable/disable backup (skip prompt).", - "type": "info" - }, - { - "text": "Use `var_backup_storage=` to set backup storage location.", - "type": "info" - }, - { - "text": "Use `var_container=all|all_running|all_stopped|101,102,...` to select containers.", - "type": "info" - }, - { - "text": "Use `var_unattended=yes|no` to run updates without interaction.", - "type": "info" - }, - { - "text": "Use `var_skip_confirm=yes` to skip initial confirmation dialog.", - "type": "info" - }, - { - "text": "Use `var_auto_reboot=yes|no` to auto-reboot containers after update.", - "type": "info" - } - ] + { + "text": "Only containers with `community-script` or `proxmox-helper-scripts` tags are listed for update.", + "type": "info" + }, + { + "text": "Optionally performs a vzdump backup before updating containers.", + "type": "warning" + }, + { + "text": "If required, the script will temporarily increase container CPU/RAM resources for the build process and restore them after completion.", + "type": "info" + }, + { + "text": "At the end of the update, containers requiring a reboot will be listed, and you may choose to reboot them directly.", + "type": "info" + }, + { + "text": "Use `var_backup=yes|no` to enable/disable backup (skip prompt).", + "type": "info" + }, + { + "text": "Use `var_backup_storage=` to set backup storage location.", + "type": "info" + }, + { + "text": "Use `var_container=all|all_running|all_stopped|101,102,...` to select containers.", + "type": "info" + }, + { + "text": "Use `var_unattended=yes|no` to run updates without interaction.", + "type": "info" + }, + { + "text": "Use `var_skip_confirm=yes` to skip initial confirmation dialog.", + "type": "info" + }, + { + "text": "Use `var_auto_reboot=yes|no` to auto-reboot containers after update.", + "type": "info" + } + ] } diff --git a/json/upsnap.json b/json/upsnap.json index 4fcde671..bdae169d 100644 --- a/json/upsnap.json +++ b/json/upsnap.json @@ -1,44 +1,44 @@ { - "name": "UpSnap", - "slug": "upsnap", - "categories": [ - 4 - ], - "date_created": "2026-04-02", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8090, - "documentation": "https://github.com/seriousm4x/UpSnap/wiki", - "website": "https://github.com/seriousm4x/UpSnap", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/upsnap.webp", - "config_path": "", - "description": "UpSnap is a simple Wake-on-LAN web app with device dashboard, scheduled wake events via cron, network scanning with nmap, custom shutdown commands, user management, and 35 themes.", - "install_methods": [ - { - "type": "default", - "script": "ct/upsnap.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 2, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null + "name": "UpSnap", + "slug": "upsnap", + "categories": [ + 4 + ], + "date_created": "2026-04-02", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8090, + "documentation": "https://github.com/seriousm4x/UpSnap/wiki", + "website": "https://github.com/seriousm4x/UpSnap", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/upsnap.webp", + "description": "UpSnap is a simple Wake-on-LAN web app with device dashboard, scheduled wake events via cron, network scanning with nmap, custom shutdown commands, user management, and 35 themes.", + "install_methods": [ + { + "type": "default", + "script": "ct/upsnap.sh", + "config_path": "", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 2, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "The first user to register becomes the admin (visit `http://IP:8090/_/`).", + "type": "info" }, - "notes": [ - { - "text": "The first user to register becomes the admin (visit `http://IP:8090/_/`).", - "type": "info" - }, - { - "text": "Do not expose UpSnap to the internet — shutdown commands can execute shell commands. Use a VPN for remote access.", - "type": "warning" - } - ] -} \ No newline at end of file + { + "text": "Do not expose UpSnap to the internet — shutdown commands can execute shell commands. Use a VPN for remote access.", + "type": "warning" + } + ] +} diff --git a/json/whodb.json b/json/whodb.json index 6f6336d9..c9d2110f 100644 --- a/json/whodb.json +++ b/json/whodb.json @@ -1,40 +1,40 @@ { - "name": "WhoDB", - "slug": "whodb", - "categories": [ - 8 - ], - "date_created": "2026-04-13", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 8080, - "documentation": "https://docs.whodb.com/", - "website": "https://whodb.com/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/whodb.webp", - "config_path": "", - "description": "WhoDB is a lightweight next-gen database management tool built with Go and React, supporting PostgreSQL, MySQL, SQLite, MongoDB, Redis, MariaDB, ElasticSearch, and ClickHouse with AI-powered natural language queries.", - "install_methods": [ - { - "type": "default", - "script": "ct/whodb.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 2, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": null, - "password": null - }, - "notes": [ - { - "text": "WhoDB connects to external databases — enter your database credentials on the login page.", - "type": "info" - } - ] -} \ No newline at end of file + "name": "WhoDB", + "slug": "whodb", + "categories": [ + 8 + ], + "date_created": "2026-04-13", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 8080, + "documentation": "https://docs.whodb.com/", + "website": "https://whodb.com/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/whodb.webp", + "description": "WhoDB is a lightweight next-gen database management tool built with Go and React, supporting PostgreSQL, MySQL, SQLite, MongoDB, Redis, MariaDB, ElasticSearch, and ClickHouse with AI-powered natural language queries.", + "install_methods": [ + { + "type": "default", + "script": "ct/whodb.sh", + "config_path": "", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 2, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "WhoDB connects to external databases — enter your database credentials on the login page.", + "type": "info" + } + ] +} diff --git a/json/yourls.json b/json/yourls.json index a6fefd11..ee9db90d 100644 --- a/json/yourls.json +++ b/json/yourls.json @@ -1,44 +1,44 @@ { - "name": "YOURLS", - "slug": "yourls", - "categories": [ - 0 - ], - "date_created": "2026-03-24", - "type": "ct", - "updateable": true, - "privileged": false, - "interface_port": 80, - "documentation": "https://yourls.org/", - "website": "https://yourls.org/", - "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/yourls.webp", - "config_path": "/opt/yourls/user/config.php", - "description": "YOURLS (Your Own URL Shortener) is a set of PHP scripts that allows you to run your own URL shortener with full control over data, detailed stats, analytics, and plugin support.", - "install_methods": [ - { - "type": "default", - "script": "ct/yourls.sh", - "resources": { - "cpu": 1, - "ram": 512, - "hdd": 4, - "os": "Debian", - "version": "13" - } - } - ], - "default_credentials": { - "username": "admin", - "password": "Generated during install" + "name": "YOURLS", + "slug": "yourls", + "categories": [ + 0 + ], + "date_created": "2026-03-24", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 80, + "documentation": "https://yourls.org/", + "website": "https://yourls.org/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/yourls.webp", + "description": "YOURLS (Your Own URL Shortener) is a set of PHP scripts that allows you to run your own URL shortener with full control over data, detailed stats, analytics, and plugin support.", + "install_methods": [ + { + "type": "default", + "script": "ct/yourls.sh", + "config_path": "/opt/yourls/user/config.php", + "resources": { + "cpu": 1, + "ram": 512, + "hdd": 4, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": "admin", + "password": "Generated during install" + }, + "notes": [ + { + "text": "After installation, visit /admin/install.php once to initialize the database and complete setup.", + "type": "info" }, - "notes": [ - { - "text": "After installation, visit /admin/install.php once to initialize the database and complete setup.", - "type": "info" - }, - { - "text": "The admin password is shown at the end of the installation log.", - "type": "info" - } - ] -} \ No newline at end of file + { + "text": "The admin password is shown at the end of the installation log.", + "type": "info" + } + ] +} diff --git a/json/zitadel.json b/json/zitadel.json index 5f3b789e..b54fe479 100644 --- a/json/zitadel.json +++ b/json/zitadel.json @@ -12,12 +12,12 @@ "documentation": "https://zitadel.com/docs/guides/overview", "website": "https://zitadel.com", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/zitadel.webp", - "config_path": "/etc/zitadel/config.yaml", "description": "Zitadel is an open-source identity and access management (IAM) solution designed to provide secure authentication, authorization, and user management for modern applications and services. Built with a focus on flexibility, scalability, and security, Zitadel offers a comprehensive set of features for developers and organizations looking to implement robust identity management.", "install_methods": [ { "type": "default", "script": "ct/zitadel.sh", + "config_path": "/etc/zitadel/config.yaml", "resources": { "cpu": 1, "ram": 1024,