refactor: move config_path from root into install_methods

Migrated all 80 app JSON files to place config_path inside each
install_methods object instead of at the root level. This allows
different install methods (e.g. Debian vs Alpine) to have distinct
config paths.

Also updated AGENTS.md JSON structure example to reflect the change.
This commit is contained in:
CanbiZ (MickLesk)
2026-04-14 14:51:01 +02:00
parent 935f9d9d3d
commit 36a4635772
81 changed files with 2621 additions and 2611 deletions

View File

@@ -781,12 +781,12 @@ Every application requires a JSON metadata file in `json/<appname>.json`.
"documentation": "https://docs.appname.com/", "documentation": "https://docs.appname.com/",
"website": "https://appname.com/", "website": "https://appname.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/appname.webp", "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.", "description": "Short description of the application and its purpose.",
"install_methods": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "ct/appname.sh", "script": "ct/appname.sh",
"config_path": "/opt/appname/.env",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
@@ -819,7 +819,6 @@ Every application requires a JSON metadata file in `json/<appname>.json`.
| `documentation` | string | Link to official docs | | `documentation` | string | Link to official docs |
| `website` | string | Link to official website | | `website` | string | Link to official website |
| `logo` | string | URL to application logo (preferably selfhst icons) | | `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 | | `description` | string | Brief description of the application |
| `install_methods` | array | Installation configurations | | `install_methods` | array | Installation configurations |
| `default_credentials` | object | Default username/password (or null) | | `default_credentials` | object | Default username/password (or null) |

View File

@@ -1,44 +1,44 @@
{ {
"name": "AFFiNE", "name": "AFFiNE",
"slug": "affine", "slug": "affine",
"categories": [ "categories": [
12 12
], ],
"date_created": "2026-01-18", "date_created": "2026-01-18",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 3010, "interface_port": 3010,
"documentation": "https://affine.pro/docs", "documentation": "https://affine.pro/docs",
"website": "https://affine.pro/", "website": "https://affine.pro/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/affine.webp", "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.",
"description": "Open-source, privacy-first workspace for notes, docs, and knowledge management with offline-first design and end-to-end encryption.", "install_methods": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/affine.sh",
"script": "ct/affine.sh", "config_path": "/opt/affine/.env",
"resources": { "resources": {
"cpu": 4, "cpu": 4,
"ram": 12288, "ram": 12288,
"hdd": 20, "hdd": 20,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "Initial build takes 20-30 minutes due to native module compilation.",
"type": "info"
}, },
"notes": [ {
{ "text": "Requires at least 8GB RAM for building and 4GB for runtime.",
"text": "Initial build takes 20-30 minutes due to native module compilation.", "type": "warning"
"type": "info" }
}, ]
{
"text": "Requires at least 8GB RAM for building and 4GB for runtime.",
"type": "warning"
}
]
} }

View File

@@ -1,40 +1,40 @@
{ {
"name": "Akaunting", "name": "Akaunting",
"slug": "akaunting", "slug": "akaunting",
"categories": [ "categories": [
23 23
], ],
"date_created": "2026-07-13", "date_created": "2026-07-13",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 80, "interface_port": 80,
"documentation": "https://akaunting.com/hc/docs", "documentation": "https://akaunting.com/hc/docs",
"website": "https://akaunting.com/", "website": "https://akaunting.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/akaunting.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/akaunting.sh",
"script": "ct/akaunting.sh", "config_path": "/opt/akaunting/.env",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
"hdd": 8, "hdd": 8,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
}, },
"notes": [ "notes": [
{ {
"text": "Complete the setup wizard via the web interface on first access.", "text": "Complete the setup wizard via the web interface on first access.",
"type": "info" "type": "info"
} }
] ]
} }

View File

@@ -1,40 +1,40 @@
{ {
"name": "AllStarLink", "name": "AllStarLink",
"slug": "allstarlink-vm", "slug": "allstarlink-vm",
"categories": [ "categories": [
24 24
], ],
"date_created": "2025-05-05", "date_created": "2025-05-05",
"type": "vm", "type": "vm",
"updateable": false, "updateable": false,
"privileged": false, "privileged": false,
"interface_port": null, "interface_port": null,
"documentation": "https://allstarlink.github.io/", "documentation": "https://allstarlink.github.io/",
"website": "https://www.allstarlink.org/", "website": "https://www.allstarlink.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/allstar-link.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "vm/allstarlink-vm.sh",
"script": "vm/allstarlink-vm.sh", "config_path": "",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
"hdd": 8, "hdd": 8,
"os": "debian", "os": "debian",
"version": "12" "version": "12"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
}, },
"notes": [ "notes": [
{ {
"text": "Options to Install Allmon3", "text": "Options to Install Allmon3",
"type": "info" "type": "info"
} }
] ]
} }

View File

@@ -12,12 +12,12 @@
"documentation": "https://wiki.almalinux.org/", "documentation": "https://wiki.almalinux.org/",
"website": "https://almalinux.org/", "website": "https://almalinux.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/almalinux.webp", "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.", "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": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "vm/almalinux-10-vm.sh", "script": "vm/almalinux-10-vm.sh",
"config_path": "",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,

View File

@@ -1,40 +1,40 @@
{ {
"name": "Alpine-ntfy", "name": "Alpine-ntfy",
"slug": "alpine-ntfy", "slug": "alpine-ntfy",
"categories": [ "categories": [
18 18
], ],
"date_created": "2025-06-10", "date_created": "2025-06-10",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 80, "interface_port": 80,
"documentation": "https://docs.ntfy.sh/", "documentation": "https://docs.ntfy.sh/",
"website": "https://ntfy.sh/", "website": "https://ntfy.sh/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/ntfy.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/alpine-ntfy.sh",
"script": "ct/alpine-ntfy.sh", "config_path": "/etc/ntfy/server.yml",
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 256, "ram": 256,
"hdd": 2, "hdd": 2,
"os": "Alpine", "os": "Alpine",
"version": "3.22" "version": "3.22"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
}, },
"notes": [ "notes": [
{ {
"text": "Alpine-based LXC using apk package manager.", "text": "Alpine-based LXC using apk package manager.",
"type": "info" "type": "info"
} }
] ]
} }

View File

@@ -1,44 +1,44 @@
{ {
"name": "Anchor", "name": "Anchor",
"slug": "anchor", "slug": "anchor",
"categories": [ "categories": [
12 12
], ],
"date_created": "2026-04-02", "date_created": "2026-04-02",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 3000, "interface_port": 3000,
"documentation": "https://github.com/ZhFahim/anchor#readme", "documentation": "https://github.com/ZhFahim/anchor#readme",
"website": "https://github.com/ZhFahim/anchor", "website": "https://github.com/ZhFahim/anchor",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/anchor.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/anchor.sh",
"script": "ct/anchor.sh", "config_path": "/opt/anchor/.env",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
"hdd": 10, "hdd": 10,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "The first user to register becomes the admin.",
"type": "info"
}, },
"notes": [ {
{ "text": "OIDC can be configured via environment variables in `/opt/anchor/.env` or the admin panel.",
"text": "The first user to register becomes the admin.", "type": "info"
"type": "info" }
}, ]
{ }
"text": "OIDC can be configured via environment variables in `/opt/anchor/.env` or the admin panel.",
"type": "info"
}
]
}

View File

@@ -1,48 +1,48 @@
{ {
"name": "Anytype", "name": "Anytype",
"slug": "anytype", "slug": "anytype",
"categories": [ "categories": [
12 12
], ],
"date_created": "2026-01-29", "date_created": "2026-01-29",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 33010, "interface_port": 33010,
"documentation": "https://doc.anytype.io/", "documentation": "https://doc.anytype.io/",
"website": "https://anytype.io/", "website": "https://anytype.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/anytype.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/anytype-server.sh",
"script": "ct/anytype-server.sh", "config_path": "/opt/anytype/.env",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 4096, "ram": 4096,
"hdd": 16, "hdd": 16,
"os": "Ubuntu", "os": "Ubuntu",
"version": "24.04" "version": "24.04"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "After installation, import /opt/anytype/data/client-config.yml into your Anytype apps.",
"type": "info"
}, },
"notes": [ {
{ "text": "This uses the community any-sync-bundle by grishy, not the official Anytype deployment.",
"text": "After installation, import /opt/anytype/data/client-config.yml into your Anytype apps.", "type": "warning"
"type": "info" },
}, {
{ "text": "Firewall: Open TCP 33010 (DRPC) and UDP 33020 (QUIC) for external access.",
"text": "This uses the community any-sync-bundle by grishy, not the official Anytype deployment.", "type": "info"
"type": "warning" }
}, ]
{ }
"text": "Firewall: Open TCP 33010 (DRPC) and UDP 33020 (QUIC) for external access.",
"type": "info"
}
]
}

View File

@@ -12,12 +12,12 @@
"documentation": "https://appriseit.com/api/", "documentation": "https://appriseit.com/api/",
"website": "https://appriseit.com/api/", "website": "https://appriseit.com/api/",
"logo": "https://appriseit.com/_s/apprise-full-logo-light.DZmBGJFz.svg", "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.", "description": "The Apprise API is a web-based gateway to the Apprise library.",
"install_methods": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "ct/apprise-api.sh", "script": "ct/apprise-api.sh",
"config_path": "/config",
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 512, "ram": 512,
@@ -41,4 +41,4 @@
"type": "info" "type": "info"
} }
] ]
} }

View File

@@ -1,42 +1,44 @@
{ {
"name": "ARM", "name": "ARM",
"slug": "arm", "slug": "arm",
"categories": [13], "categories": [
"date_created": "2026-03-06", 13
"type": "ct", ],
"updateable": true, "date_created": "2026-03-06",
"privileged": true, "type": "ct",
"interface_port": 8080, "updateable": true,
"documentation": "https://github.com/automatic-ripping-machine/automatic-ripping-machine/wiki", "privileged": true,
"website": "https://github.com/automatic-ripping-machine/automatic-ripping-machine", "interface_port": 8080,
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/arm.webp", "documentation": "https://github.com/automatic-ripping-machine/automatic-ripping-machine/wiki",
"config_path": "/opt/arm/arm.yaml", "website": "https://github.com/automatic-ripping-machine/automatic-ripping-machine",
"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.", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/arm.webp",
"install_methods": [ "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", "type": "default",
"resources": { "script": "ct/arm.sh",
"cpu": 4, "config_path": "/opt/arm/arm.yaml",
"ram": 4096, "resources": {
"hdd": 16, "cpu": 4,
"os": "Debian", "ram": 4096,
"version": "12" "hdd": 16,
} "os": "Debian",
} "version": "12"
], }
"default_credentials": { }
"username": "admin", ],
"password": "password" "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": "Navigate to http://IP:8080/setup on first launch to complete initial setup. Default credentials: admin / password.",
"text": "Optical drive passthrough to the LXC container is required. Configure device mappings in the Proxmox container settings.", "type": "info"
"type": "warning" }
}, ]
{
"text": "Navigate to http://IP:8080/setup on first launch to complete initial setup. Default credentials: admin / password.",
"type": "info"
}
]
} }

View File

@@ -1,42 +1,44 @@
{ {
"name": "authentik", "name": "authentik",
"slug": "authentik", "slug": "authentik",
"categories": [6], "categories": [
"date_created": "2026-02-21", 6
"type": "ct", ],
"updateable": true, "date_created": "2026-02-21",
"privileged": false, "type": "ct",
"interface_port": 9000, "updateable": true,
"documentation": "https://docs.goauthentik.io/", "privileged": false,
"website": "https://goauthentik.io/", "interface_port": 9000,
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/authentik.webp", "documentation": "https://docs.goauthentik.io/",
"config_path": "/etc/authentik/config.yml", "website": "https://goauthentik.io/",
"description": "authentik is an IdP (Identity Provider) and SSO (Single Sign On) platform.", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/authentik.webp",
"install_methods": [ "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": [
{ {
"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://<your server's IP or hostname>:9000/if/flow/initial-setup/) including the trailing forward slash.", "type": "default",
"type": "info" "script": "ct/authentik.sh",
}, "config_path": "/etc/authentik/config.yml",
{ "resources": {
"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.", "cpu": 4,
"type": "info" "ram": 4096,
"hdd": 10,
"os": "Debian",
"version": "13"
}
} }
] ],
} "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://<your server's IP or hostname>: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"
}
]
}

View File

@@ -1,48 +1,48 @@
{ {
"name": "Baserow", "name": "Baserow",
"slug": "baserow", "slug": "baserow",
"categories": [ "categories": [
8 8
], ],
"date_created": "2026-03-25", "date_created": "2026-03-25",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 3000, "interface_port": 3000,
"documentation": "https://baserow.io/docs/index", "documentation": "https://baserow.io/docs/index",
"website": "https://baserow.io/", "website": "https://baserow.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/baserow.webp", "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.",
"description": "Baserow is an open-source no-code database platform for building databases, applications, automations, and AI agents without code.", "install_methods": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/baserow.sh",
"script": "ct/baserow.sh", "config_path": "/opt/baserow/.env",
"resources": { "resources": {
"cpu": 4, "cpu": 4,
"ram": 8192, "ram": 8192,
"hdd": 15, "hdd": 15,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "First visit will prompt you to create an admin account.",
"type": "info"
}, },
"notes": [ {
{ "text": "Building from source requires significant resources and may take 10+ minutes.",
"text": "First visit will prompt you to create an admin account.", "type": "warning"
"type": "info" },
}, {
{ "text": "Update BASEROW_PUBLIC_URL in /opt/baserow/.env if accessing from a different hostname.",
"text": "Building from source requires significant resources and may take 10+ minutes.", "type": "info"
"type": "warning" }
}, ]
{ }
"text": "Update BASEROW_PUBLIC_URL in /opt/baserow/.env if accessing from a different hostname.",
"type": "info"
}
]
}

View File

@@ -1,43 +1,44 @@
{ {
"name": "Bitfocus Companion", "name": "Bitfocus Companion",
"slug": "bitfocus-companion", "slug": "bitfocus-companion",
"categories": [ "categories": [
19 19
], ],
"date_created": "2026-03-16", "date_created": "2026-03-16",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 8000, "interface_port": 8000,
"documentation": "https://user.bitfocus.io/docs", "documentation": "https://user.bitfocus.io/docs",
"website": "https://bitfocus.io/companion", "website": "https://bitfocus.io/companion",
"logo": "https://raw.githubusercontent.com/bitfocus/companion/main/assets/icon.png", "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.", "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": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "ct/bitfocus-companion.sh", "script": "ct/bitfocus-companion.sh",
"resources": { "config_path": "",
"cpu": 2, "resources": {
"ram": 512, "cpu": 2,
"hdd": 8, "ram": 512,
"os": "debian", "hdd": 8,
"version": "12" "os": "debian",
} "version": "12"
} }
], }
"default_credentials": { ],
"username": null, "default_credentials": {
"password": null "username": null,
"password": null
},
"notes": [
{
"text": "Companion v4.x downloads are served through the Bitfocus API, not GitHub Releases.",
"type": "info"
}, },
"notes": [ {
{ "text": "Requires libusb for USB device (Stream Deck) bindings.",
"text": "Companion v4.x downloads are served through the Bitfocus API, not GitHub Releases.", "type": "info"
"type": "info" }
}, ]
{
"text": "Requires libusb for USB device (Stream Deck) bindings.",
"type": "info"
}
]
} }

View File

@@ -1,40 +1,40 @@
{ {
"name": "Blinko", "name": "Blinko",
"slug": "blinko", "slug": "blinko",
"categories": [ "categories": [
12 12
], ],
"date_created": "2026-07-13", "date_created": "2026-07-13",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 1111, "interface_port": 1111,
"documentation": "https://docs.blinko.space/", "documentation": "https://docs.blinko.space/",
"website": "https://blinko.space/", "website": "https://blinko.space/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/blinko.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/blinko.sh",
"script": "ct/blinko.sh", "config_path": "/opt/blinko/.env",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
"hdd": 8, "hdd": 8,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
}, },
"notes": [ "notes": [
{ {
"text": "Create your account on first access via the web interface.", "text": "Create your account on first access via the web interface.",
"type": "info" "type": "info"
} }
] ]
} }

View File

@@ -10,7 +10,6 @@
"privileged": false, "privileged": false,
"interface_port": 80, "interface_port": 80,
"documentation": "https://caddymanager.online/#/docs", "documentation": "https://caddymanager.online/#/docs",
"config_path": "/opt/caddymanager/caddymanager.env",
"website": "https://caddymanager.online", "website": "https://caddymanager.online",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/caddymanager.webp", "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.", "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", "type": "default",
"script": "ct/caddymanager.sh", "script": "ct/caddymanager.sh",
"config_path": "/opt/caddymanager/caddymanager.env",
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 1024, "ram": 1024,

View File

@@ -1,40 +1,40 @@
{ {
"name": "Certimate", "name": "Certimate",
"slug": "certimate", "slug": "certimate",
"categories": [ "categories": [
6 6
], ],
"date_created": "2026-07-13", "date_created": "2026-07-13",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 8090, "interface_port": 8090,
"documentation": "https://docs.certimate.me/", "documentation": "https://docs.certimate.me/",
"website": "https://certimate.me/", "website": "https://certimate.me/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/certimate.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/certimate.sh",
"script": "ct/certimate.sh", "config_path": "",
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 256, "ram": 256,
"hdd": 2, "hdd": 2,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": "admin@certimate.fun", "username": "admin@certimate.fun",
"password": "1234567890" "password": "1234567890"
}, },
"notes": [ "notes": [
{ {
"text": "Change the default password after first login!", "text": "Change the default password after first login!",
"type": "warning" "type": "warning"
} }
] ]
} }

View File

@@ -12,12 +12,12 @@
"documentation": "https://help.router-for.me/", "documentation": "https://help.router-for.me/",
"website": "https://github.com/router-for-me/CLIProxyAPI", "website": "https://github.com/router-for-me/CLIProxyAPI",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/openai.webp", "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.", "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": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "ct/cliproxyapi.sh", "script": "ct/cliproxyapi.sh",
"config_path": "/opt/cliproxyapi/config.yaml",
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 512, "ram": 512,
@@ -41,4 +41,4 @@
"type": "warning" "type": "warning"
} }
] ]
} }

View File

@@ -1,51 +1,52 @@
{ {
"name": "CoreDNS", "name": "CoreDNS",
"slug": "coredns", "slug": "coredns",
"categories": [ "categories": [
5 5
], ],
"date_created": "2026-03-27", "date_created": "2026-03-27",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": null, "interface_port": null,
"documentation": "https://coredns.io/manual/toc/", "documentation": "https://coredns.io/manual/toc/",
"website": "https://coredns.io/", "website": "https://coredns.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/coredns.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/coredns.sh",
"script": "ct/coredns.sh", "config_path": "/etc/coredns/Corefile",
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 256, "ram": 256,
"hdd": 1, "hdd": 1,
"os": "Debian", "os": "Debian",
"version": "13" "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
}, },
"notes": [ {
{ "type": "alpine",
"text": "Configuration file is located at /etc/coredns/Corefile", "script": "ct/alpine-coredns.sh",
"type": "info" "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"
}
]
}

View File

@@ -1,35 +1,35 @@
{ {
"name": "Dagu", "name": "Dagu",
"slug": "dagu", "slug": "dagu",
"categories": [ "categories": [
19 19
], ],
"date_created": "2026-07-13", "date_created": "2026-07-13",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 8080, "interface_port": 8080,
"documentation": "https://docs.dagu.sh/", "documentation": "https://docs.dagu.sh/",
"website": "https://dagu.sh/", "website": "https://dagu.sh/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/dagu.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/dagu.sh",
"script": "ct/dagu.sh", "config_path": "",
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 512, "ram": 512,
"hdd": 4, "hdd": 4,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
}, },
"notes": [] "notes": []
} }

View File

@@ -12,12 +12,12 @@
"documentation": "https://dashy.to/docs", "documentation": "https://dashy.to/docs",
"website": "https://dashy.to/", "website": "https://dashy.to/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/dashy.webp", "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.", "description": "Dashy is a solution that helps you organize your self-hosted services by centralizing access to them through a single interface.",
"install_methods": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "ct/dashy.sh", "script": "ct/dashy.sh",
"config_path": "/opt/dashy/user-data/conf.yml",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,

View File

@@ -1,4 +1,3 @@
{ {
"name": "ddclient", "name": "ddclient",
"slug": "ddclient", "slug": "ddclient",
@@ -13,12 +12,12 @@
"documentation": "https://ddclient.net/", "documentation": "https://ddclient.net/",
"website": "https://ddclient.net/", "website": "https://ddclient.net/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/ddclient.webp", "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.", "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": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "ct/ddclient.sh", "script": "ct/ddclient.sh",
"config_path": "/etc/ddclient.conf",
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 512, "ram": 512,
@@ -40,6 +39,6 @@
{ {
"type": "info", "type": "info",
"text": "Sample configuration is created for Namecheap but can be modified for other providers" "text": "Sample configuration is created for Namecheap but can be modified for other providers"
}, }
] ]
} }

View File

@@ -1,44 +1,44 @@
{ {
"name": "degoog", "name": "degoog",
"slug": "degoog", "slug": "degoog",
"categories": [ "categories": [
0 0
], ],
"date_created": "2026-03-20", "date_created": "2026-03-20",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 4444, "interface_port": 4444,
"documentation": "https://fccview.github.io/degoog/", "documentation": "https://fccview.github.io/degoog/",
"website": "https://github.com/fccview/degoog", "website": "https://github.com/fccview/degoog",
"logo": "https://raw.githubusercontent.com/fccview/degoog/main/src/public/images/degoog-logo.png", "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.",
"description": "Search aggregator that queries multiple engines and supports plugins, themes, and extension repositories.", "install_methods": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/degoog.sh",
"script": "ct/degoog.sh", "config_path": "/opt/degoog/.env",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
"hdd": 6, "hdd": 6,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "Project is currently marked beta upstream and not intended for production use yet.",
"type": "warning"
}, },
"notes": [ {
{ "text": "Add extension store repositories in Settings after first start (official repo: https://github.com/fccview/fccview-degoog-extensions).",
"text": "Project is currently marked beta upstream and not intended for production use yet.", "type": "info"
"type": "warning" }
}, ]
{ }
"text": "Add extension store repositories in Settings after first start (official repo: https://github.com/fccview/fccview-degoog-extensions).",
"type": "info"
}
]
}

View File

@@ -1,52 +1,52 @@
{ {
"name": "PVE Startup Dependency Check", "name": "PVE Startup Dependency Check",
"slug": "dependency-check", "slug": "dependency-check",
"categories": [ "categories": [
1 1
], ],
"date_created": "2025-08-12", "date_created": "2025-08-12",
"type": "pve", "type": "pve",
"updateable": false, "updateable": false,
"privileged": false, "privileged": false,
"interface_port": null, "interface_port": null,
"documentation": null, "documentation": null,
"website": null, "website": null,
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/proxmox.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "tools/pve/dependency-check.sh",
"script": "tools/pve/dependency-check.sh", "config_path": "/etc/default/pve-auto-hook",
"resources": { "resources": {
"cpu": null, "cpu": null,
"ram": null, "ram": null,
"hdd": null, "hdd": null,
"os": null, "os": null,
"version": "PVE 8.x / 9.x" "version": "PVE 8.x / 9.x"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "Execute within the Proxmox shell",
"type": "info"
}, },
"notes": [ {
{ "text": "The script supports --install (default), --status and --uninstall for clean lifecycle management.",
"text": "Execute within the Proxmox shell", "type": "info"
"type": "info" },
}, {
{ "text": "To wait until a certain host is available, tag the VM or container with `dep_ping_<hostname>` where `<hostname>` is the name or IP of the host to ping. The script will wait until the host is reachable before proceeding with the startup.",
"text": "The script supports --install (default), --status and --uninstall for clean lifecycle management.", "type": "info"
"type": "info" },
}, {
{ "text": "To wait until a certain TCP port is open, tag the VM or container with `dep_tcp_<hostname>_<port>` where `<hostname>` is the name or IP of the host and `<port>` is the TCP port number. The script will wait until the port is open before proceeding with the startup.",
"text": "To wait until a certain host is available, tag the VM or container with `dep_ping_<hostname>` where `<hostname>` 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"
"type": "info" }
}, ]
{ }
"text": "To wait until a certain TCP port is open, tag the VM or container with `dep_tcp_<hostname>_<port>` where `<hostname>` is the name or IP of the host and `<port>` is the TCP port number. The script will wait until the port is open before proceeding with the startup.",
"type": "info"
}
]
}

View File

@@ -1,48 +1,48 @@
{ {
"name": "Discourse", "name": "Discourse",
"slug": "discourse", "slug": "discourse",
"categories": [ "categories": [
23 23
], ],
"date_created": "2026-02-02", "date_created": "2026-02-02",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 80, "interface_port": 80,
"documentation": "https://www.discourse.org/", "documentation": "https://www.discourse.org/",
"website": "https://www.discourse.org/", "website": "https://www.discourse.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/discourse.webp", "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.",
"description": "Discourse is the civilized discussion platform. Use it as a mailing list, discussion forum, or long-form chat room.", "install_methods": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/discourse.sh",
"script": "ct/discourse.sh", "config_path": "/opt/discourse/.env",
"resources": { "resources": {
"cpu": 4, "cpu": 4,
"ram": 4096, "ram": 4096,
"hdd": 20, "hdd": 20,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": "admin", "username": "admin",
"password": null "password": null
},
"notes": [
{
"text": "Minimum 4GB RAM and 4 CPU cores recommended for production use.",
"type": "warning"
}, },
"notes": [ {
{ "text": "Admin credentials are saved in `/root/discourse.creds` inside the container.",
"text": "Minimum 4GB RAM and 4 CPU cores recommended for production use.", "type": "info"
"type": "warning" },
}, {
{ "text": "Configure SMTP settings in the admin panel (Admin > Settings > Email) for email notifications.",
"text": "Admin credentials are saved in `/root/discourse.creds` inside the container.", "type": "info"
"type": "info" }
}, ]
{ }
"text": "Configure SMTP settings in the admin panel (Admin > Settings > Email) for email notifications.",
"type": "info"
}
]
}

View File

@@ -1,48 +1,48 @@
{ {
"name": "Ente", "name": "Ente",
"slug": "ente", "slug": "ente",
"categories": [ "categories": [
11 11
], ],
"date_created": "2025-11-22", "date_created": "2025-11-22",
"type": "ct", "type": "ct",
"updateable": false, "updateable": false,
"privileged": false, "privileged": false,
"config_path": "/opt", "interface_port": 3000,
"interface_port": 3000, "documentation": "https://github.com/ente-io/ente",
"documentation": "https://github.com/ente-io/ente", "website": "https://ente.io/",
"website": "https://ente.io/", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/ente-photos.webp",
"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).",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/ente.sh",
"script": "ct/ente.sh", "config_path": "/opt",
"resources": { "resources": {
"cpu": 4, "cpu": 4,
"ram": 4096, "ram": 4096,
"hdd": 10, "hdd": 10,
"os": "debian", "os": "debian",
"version": "12" "version": "12"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "First-Start: Run `ente-setup` — it guides you through account creation, verification, and admin configuration.",
"type": "info"
}, },
"notes": [ {
{ "text": "To upgrade subscription later: `ente-upgrade-subscription user@example.com`",
"text": "First-Start: Run `ente-setup` — it guides you through account creation, verification, and admin configuration.", "type": "info"
"type": "info" },
}, {
{ "text": "To see Museum config: `cat /opt/ente/server/museum.yaml`",
"text": "To upgrade subscription later: `ente-upgrade-subscription user@example.com`", "type": "info"
"type": "info" }
}, ]
{ }
"text": "To see Museum config: `cat /opt/ente/server/museum.yaml`",
"type": "info"
}
]
}

View File

@@ -1,48 +1,48 @@
{ {
"name": "ERPNext", "name": "ERPNext",
"slug": "erpnext", "slug": "erpnext",
"categories": [ "categories": [
25 25
], ],
"date_created": "2026-03-25", "date_created": "2026-03-25",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 80, "interface_port": 80,
"documentation": "https://docs.erpnext.com/", "documentation": "https://docs.erpnext.com/",
"website": "https://erpnext.com/", "website": "https://erpnext.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/frappe-erpnext.webp", "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.",
"description": "ERPNext is a powerful, intuitive and open-source ERP system for managing accounting, inventory, manufacturing, CRM, projects, HR and more.", "install_methods": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/erpnext.sh",
"script": "ct/erpnext.sh", "config_path": "/opt/frappe-bench/.env",
"resources": { "resources": {
"cpu": 4, "cpu": 4,
"ram": 4096, "ram": 4096,
"hdd": 20, "hdd": 20,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": "Administrator", "username": "Administrator",
"password": null "password": null
},
"notes": [
{
"text": "Admin password is stored in `/opt/frappe-bench/.env`.",
"type": "info"
}, },
"notes": [ {
{ "text": "The default site name is `site1.local`. Configure your domain in Frappe settings.",
"text": "Admin password is stored in `/opt/frappe-bench/.env`.", "type": "info"
"type": "info" },
}, {
{ "text": "Run `bench update` from `/opt/frappe-bench` to update ERPNext manually.",
"text": "The default site name is `site1.local`. Configure your domain in Frappe settings.", "type": "info"
"type": "info" }
}, ]
{ }
"text": "Run `bench update` from `/opt/frappe-bench` to update ERPNext manually.",
"type": "info"
}
]
}

View File

@@ -12,12 +12,12 @@
"documentation": "https://github.com/ShaneIsrael/fireshare/blob/develop/README.md", "documentation": "https://github.com/ShaneIsrael/fireshare/blob/develop/README.md",
"website": "https://github.com/ShaneIsrael/fireshare", "website": "https://github.com/ShaneIsrael/fireshare",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/fireshare.webp", "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.", "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": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "ct/fireshare.sh", "script": "ct/fireshare.sh",
"config_path": "/opt/fireshare/fireshare.env",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
@@ -45,4 +45,4 @@
"type": "warning" "type": "warning"
} }
] ]
} }

View File

@@ -1,44 +1,44 @@
{ {
"name": "Fleet", "name": "Fleet",
"slug": "fleet", "slug": "fleet",
"categories": [ "categories": [
9 9
], ],
"date_created": "2026-04-04", "date_created": "2026-04-04",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 8080, "interface_port": 8080,
"documentation": "https://fleetdm.com/docs", "documentation": "https://fleetdm.com/docs",
"website": "https://fleetdm.com/", "website": "https://fleetdm.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/fleet.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/fleet.sh",
"script": "ct/fleet.sh", "config_path": "/opt/fleet/.env",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
"hdd": 8, "hdd": 8,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "Create your admin account on first login via the web interface.",
"type": "info"
}, },
"notes": [ {
{ "text": "TLS is disabled by default. Configure TLS in /opt/fleet/.env for production use.",
"text": "Create your admin account on first login via the web interface.", "type": "warning"
"type": "info" }
}, ]
{ }
"text": "TLS is disabled by default. Configure TLS in /opt/fleet/.env for production use.",
"type": "warning"
}
]
}

View File

@@ -10,7 +10,6 @@
"privileged": false, "privileged": false,
"interface_port": 4141, "interface_port": 4141,
"documentation": "https://foldergram.github.io/quick-start", "documentation": "https://foldergram.github.io/quick-start",
"config_path": "/opt/foldergram/foldergram.env",
"website": "https://foldergram.github.io/", "website": "https://foldergram.github.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/foldergram.webp", "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).", "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", "type": "default",
"script": "ct/foldergram.sh", "script": "ct/foldergram.sh",
"config_path": "/opt/foldergram/foldergram.env",
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 2048, "ram": 2048,
@@ -32,4 +32,4 @@
"password": null "password": null
}, },
"notes": [] "notes": []
} }

View File

@@ -10,7 +10,6 @@
"privileged": false, "privileged": false,
"interface_port": null, "interface_port": null,
"documentation": "https://forgejo.org/docs/latest/admin/actions/runner-installation/", "documentation": "https://forgejo.org/docs/latest/admin/actions/runner-installation/",
"config_path": "/root/.runner",
"website": "https://forgejo.org/docs/latest/admin/actions/runner-installation/", "website": "https://forgejo.org/docs/latest/admin/actions/runner-installation/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/forgejo.webp", "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.", "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", "type": "default",
"script": "ct/forgejo-runner.sh", "script": "ct/forgejo-runner.sh",
"config_path": "/root/.runner",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
@@ -32,4 +32,4 @@
"password": null "password": null
}, },
"notes": [] "notes": []
} }

View File

@@ -1,44 +1,44 @@
{ {
"name": "garmin-grafana", "name": "garmin-grafana",
"slug": "garmin-grafana", "slug": "garmin-grafana",
"categories": [ "categories": [
9 9
], ],
"date_created": "2025-05-08", "date_created": "2025-05-08",
"type": "addon", "type": "addon",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 3000, "interface_port": 3000,
"documentation": "https://github.com/arpanghosh8453/garmin-grafana", "documentation": "https://github.com/arpanghosh8453/garmin-grafana",
"config_path": "/opt/garmin-grafana/.env", "website": "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",
"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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "/tools/addon/garmin-grafana.sh",
"script": "/tools/addon/garmin-grafana.sh", "config_path": "/opt/garmin-grafana/.env",
"resources": { "resources": {
"cpu": null, "cpu": null,
"ram": null, "ram": null,
"hdd": null, "hdd": null,
"os": null, "os": null,
"version": null "version": null
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "Grafana and InfluxDB credentials are stored in `/opt/garmin-grafana/.env`.",
"type": "info"
}, },
"notes": [ {
{ "text": "`garmin-grafana` only imports the past 7 days by default. To import historical data, use `/usr/local/bin/garmin-bulk-import` after installation.",
"text": "Grafana and InfluxDB credentials are stored in `/opt/garmin-grafana/.env`.", "type": "info"
"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"
}
]
}

View File

@@ -10,7 +10,6 @@
"privileged": false, "privileged": false,
"interface_port": null, "interface_port": null,
"documentation": "https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners", "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", "website": "https://github.com/actions/runner",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/github.webp", "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.", "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", "type": "default",
"script": "ct/github-runner.sh", "script": "ct/github-runner.sh",
"config_path": "/opt/actions-runner",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,

View File

@@ -1,44 +1,44 @@
{ {
"name": "GoDoxy", "name": "GoDoxy",
"slug": "godoxy", "slug": "godoxy",
"categories": [ "categories": [
21 21
], ],
"date_created": "2026-03-24", "date_created": "2026-03-24",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": null, "interface_port": null,
"documentation": "https://docs.godoxy.dev", "documentation": "https://docs.godoxy.dev",
"website": "https://github.com/yusing/godoxy", "website": "https://github.com/yusing/godoxy",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/godoxy.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/godoxy.sh",
"script": "ct/godoxy.sh", "config_path": "/etc/godoxy-agent.env",
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 512, "ram": 512,
"hdd": 2, "hdd": 2,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": 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": "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.",
"text": "This installs the GoDoxy Agent only. A running GoDoxy main server is required to connect to.", "type": "info"
"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"
}
]
}

View File

@@ -1,40 +1,40 @@
{ {
"name": "Gogs", "name": "Gogs",
"slug": "gogs", "slug": "gogs",
"categories": [ "categories": [
20 20
], ],
"date_created": "2026-07-13", "date_created": "2026-07-13",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 3000, "interface_port": 3000,
"documentation": "https://gogs.io/docs", "documentation": "https://gogs.io/docs",
"website": "https://gogs.io/", "website": "https://gogs.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/gogs.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/gogs.sh",
"script": "ct/gogs.sh", "config_path": "/opt/gogs/custom/conf/app.ini",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 1024, "ram": 1024,
"hdd": 8, "hdd": 8,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
}, },
"notes": [ "notes": [
{ {
"text": "Complete the initial setup via the web installer on first access.", "text": "Complete the initial setup via the web installer on first access.",
"type": "info" "type": "info"
} }
] ]
} }

View File

@@ -1,56 +1,56 @@
{ {
"name": "Hoodik", "name": "Hoodik",
"slug": "hoodik", "slug": "hoodik",
"categories": [ "categories": [
11 11
], ],
"date_created": "2025-12-10", "date_created": "2025-12-10",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 5443, "interface_port": 5443,
"documentation": "https://github.com/hudikhq/hoodik#readme", "documentation": "https://github.com/hudikhq/hoodik#readme",
"config_path": "/opt/hoodik/.env", "website": "https://github.com/hudikhq/hoodik",
"website": "https://github.com/hudikhq/hoodik", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/hoodik.webp",
"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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/hoodik.sh",
"script": "ct/hoodik.sh", "config_path": "/opt/hoodik/.env",
"resources": { "resources": {
"cpu": 4, "cpu": 4,
"ram": 4096, "ram": 4096,
"hdd": 20, "hdd": 20,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "First visit will prompt you to create an admin account",
"type": "info"
}, },
"notes": [ {
{ "text": "Installation builds Rust backend and Vue frontend from source - takes 15-20 minutes",
"text": "First visit will prompt you to create an admin account", "type": "warning"
"type": "info" },
}, {
{ "text": "Requires 4GB RAM and 20GB disk for build process",
"text": "Installation builds Rust backend and Vue frontend from source - takes 15-20 minutes", "type": "warning"
"type": "warning" },
}, {
{ "text": "Data is stored in /opt/hoodik_data",
"text": "Requires 4GB RAM and 20GB disk for build process", "type": "info"
"type": "warning" },
}, {
{ "text": "SSL is disabled by default - use a reverse proxy for HTTPS",
"text": "Data is stored in /opt/hoodik_data", "type": "warning"
"type": "info" }
}, ]
{
"text": "SSL is disabled by default - use a reverse proxy for HTTPS",
"type": "warning"
}
]
} }

View File

@@ -1,40 +1,40 @@
{ {
"name": "iGotify", "name": "iGotify",
"slug": "igotify", "slug": "igotify",
"categories": [ "categories": [
19 19
], ],
"date_created": "2026-02-18", "date_created": "2026-02-18",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 80, "interface_port": 80,
"documentation": "https://github.com/androidseb25/iGotify-Notification-Assistent", "documentation": "https://github.com/androidseb25/iGotify-Notification-Assistent",
"website": "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", "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).",
"description": "Companion service to Gotify that forwards notifications to iOS devices via Apple Push Notification service (APNs).", "install_methods": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/igotify.sh",
"script": "ct/igotify.sh", "config_path": "/opt/igotify/.env",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
"hdd": 4, "hdd": 4,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
}, },
"notes": [ "notes": [
{ {
"text": "Requires a running Gotify instance. Configure the Gotify server URL and client token in the iGotify web interface after setup.", "text": "Requires a running Gotify instance. Configure the Gotify server URL and client token in the iGotify web interface after setup.",
"type": "info" "type": "info"
} }
] ]
} }

View File

@@ -12,12 +12,12 @@
"documentation": "https:/docs.invidious.io", "documentation": "https:/docs.invidious.io",
"website": "https://invidious.io", "website": "https://invidious.io",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/invidious.webp", "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", "description": "A self-hosted alternative frontend for YouTube",
"install_methods": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "ct/invidious.sh", "script": "ct/invidious.sh",
"config_path": "/opt/invidious/config",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,

View File

@@ -1,40 +1,40 @@
{ {
"name": "InvoiceShelf", "name": "InvoiceShelf",
"slug": "invoiceshelf", "slug": "invoiceshelf",
"categories": [ "categories": [
23 23
], ],
"date_created": "2026-07-13", "date_created": "2026-07-13",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 80, "interface_port": 80,
"documentation": "https://docs.invoiceshelf.com/", "documentation": "https://docs.invoiceshelf.com/",
"website": "https://invoiceshelf.com/", "website": "https://invoiceshelf.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/invoiceshelf.webp", "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.",
"description": "InvoiceShelf is an open-source web and mobile app that helps you track expenses, payments and create professional invoices and estimates.", "install_methods": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/invoiceshelf.sh",
"script": "ct/invoiceshelf.sh", "config_path": "/opt/invoiceshelf/.env",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 1024, "ram": 1024,
"hdd": 4, "hdd": 4,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
}, },
"notes": [ "notes": [
{ {
"text": "Complete the initial setup wizard via the web interface on first access.", "text": "Complete the initial setup wizard via the web interface on first access.",
"type": "info" "type": "info"
} }
] ]
} }

View File

@@ -1,48 +1,48 @@
{ {
"name": "Jitsi Meet", "name": "Jitsi Meet",
"slug": "jitsi", "slug": "jitsi",
"categories": [ "categories": [
0 0
], ],
"date_created": "2026-03-25", "date_created": "2026-03-25",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 443, "interface_port": 443,
"documentation": "https://jitsi.github.io/handbook/", "documentation": "https://jitsi.github.io/handbook/",
"website": "https://jitsi.org/", "website": "https://jitsi.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/jitsi-meet.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/jitsi.sh",
"script": "ct/jitsi.sh", "config_path": "/etc/jitsi",
"resources": { "resources": {
"cpu": 4, "cpu": 4,
"ram": 4096, "ram": 4096,
"hdd": 12, "hdd": 12,
"os": "Debian", "os": "Debian",
"version": "12" "version": "12"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "Uses a self-signed certificate by default. Your browser will show a security warning.",
"type": "info"
}, },
"notes": [ {
{ "text": "Port 10000/UDP must be forwarded to the container for video/audio to work properly.",
"text": "Uses a self-signed certificate by default. Your browser will show a security warning.", "type": "warning"
"type": "info" },
}, {
{ "text": "Configuration files are located in `/etc/jitsi/`.",
"text": "Port 10000/UDP must be forwarded to the container for video/audio to work properly.", "type": "info"
"type": "warning" }
}, ]
{ }
"text": "Configuration files are located in `/etc/jitsi/`.",
"type": "info"
}
]
}

View File

@@ -1,44 +1,44 @@
{ {
"name": "Kan", "name": "Kan",
"slug": "kan", "slug": "kan",
"categories": [ "categories": [
25 25
], ],
"date_created": "2026-04-04", "date_created": "2026-04-04",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 3000, "interface_port": 3000,
"documentation": "https://github.com/kanbn/kan#readme", "documentation": "https://github.com/kanbn/kan#readme",
"website": "https://kan.bn/", "website": "https://kan.bn/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/kan.webp", "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.",
"description": "Kan is an open-source Kanban board and project management tool built with Next.js and PostgreSQL.", "install_methods": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/kan.sh",
"script": "ct/kan.sh", "config_path": "/opt/kan/.env",
"resources": { "resources": {
"cpu": 4, "cpu": 4,
"ram": 4096, "ram": 4096,
"hdd": 12, "hdd": 12,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "Building from source requires significant resources and may take several minutes.",
"type": "warning"
}, },
"notes": [ {
{ "text": "Update NEXT_PUBLIC_BASE_URL in /opt/kan/.env if accessing from a different hostname.",
"text": "Building from source requires significant resources and may take several minutes.", "type": "info"
"type": "warning" }
}, ]
{
"text": "Update NEXT_PUBLIC_BASE_URL in /opt/kan/.env if accessing from a different hostname.",
"type": "info"
}
]
} }

View File

@@ -1,44 +1,44 @@
{ {
"name": "LabCA", "name": "LabCA",
"slug": "labca", "slug": "labca",
"categories": [ "categories": [
6 6
], ],
"date_created": "2026-03-25", "date_created": "2026-03-25",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 3000, "interface_port": 3000,
"documentation": "https://github.com/hakwerk/labca", "documentation": "https://github.com/hakwerk/labca",
"website": "https://github.com/hakwerk/labca", "website": "https://github.com/hakwerk/labca",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/labca.webp", "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.",
"description": "LabCA is a standalone web GUI for managing ACME certificate authorities like step-ca, providing dashboard, certificate overview, and admin management.", "install_methods": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/labca.sh",
"script": "ct/labca.sh", "config_path": "/etc/labca/config.json",
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 512, "ram": 512,
"hdd": 2, "hdd": 2,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": 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": "LabCA standalone requires a MySQL-backed step-ca instance to connect to.",
"text": "On first access, you will be prompted to create an admin account and configure the database connection to your step-ca instance.", "type": "warning"
"type": "info" }
}, ]
{ }
"text": "LabCA standalone requires a MySQL-backed step-ca instance to connect to.",
"type": "warning"
}
]
}

View File

@@ -1,52 +1,52 @@
{ {
"name": "LibreChat", "name": "LibreChat",
"slug": "librechat", "slug": "librechat",
"categories": [ "categories": [
20 20
], ],
"date_created": "2026-03-18", "date_created": "2026-03-18",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 3080, "interface_port": 3080,
"documentation": "https://www.librechat.ai/docs", "documentation": "https://www.librechat.ai/docs",
"website": "https://www.librechat.ai/", "website": "https://www.librechat.ai/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/librechat.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/librechat.sh",
"script": "ct/librechat.sh", "config_path": "/opt/librechat/.env",
"resources": { "resources": {
"cpu": 4, "cpu": 4,
"ram": 6144, "ram": 6144,
"hdd": 20, "hdd": 20,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "Register the first account via the web interface — it becomes the admin account.",
"type": "info"
}, },
"notes": [ {
{ "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.",
"text": "Register the first account via the web interface — it becomes the admin account.", "type": "info"
"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.",
"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"
"type": "info" },
}, {
{ "text": "For local embeddings without an API key, set EMBEDDINGS_PROVIDER=ollama and OLLAMA_BASE_URL=http://<ollama-host>:11434 in /opt/rag-api/.env and restart rag-api.",
"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"
"type": "info" }
}, ]
{ }
"text": "For local embeddings without an API key, set EMBEDDINGS_PROVIDER=ollama and OLLAMA_BASE_URL=http://<ollama-host>:11434 in /opt/rag-api/.env and restart rag-api.",
"type": "info"
}
]
}

View File

@@ -1,48 +1,48 @@
{ {
"name": "LobeHub", "name": "LobeHub",
"slug": "lobehub", "slug": "lobehub",
"categories": [ "categories": [
20 20
], ],
"date_created": "2026-03-25", "date_created": "2026-03-25",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 3210, "interface_port": 3210,
"documentation": "https://lobehub.com/docs", "documentation": "https://lobehub.com/docs",
"website": "https://lobehub.com/", "website": "https://lobehub.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/lobechat.webp", "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.",
"description": "LobeHub is an open-source AI chat platform supporting multiple AI providers, plugins, and knowledge base with a modern interface.", "install_methods": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/lobehub.sh",
"script": "ct/lobehub.sh", "config_path": "/opt/lobehub/.env",
"resources": { "resources": {
"cpu": 4, "cpu": 4,
"ram": 8192, "ram": 8192,
"hdd": 15, "hdd": 15,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "Configure your AI provider API keys in /opt/lobehub/.env (e.g. OPENAI_API_KEY).",
"type": "info"
}, },
"notes": [ {
{ "text": "Building from source requires significant resources and may take 10+ minutes.",
"text": "Configure your AI provider API keys in /opt/lobehub/.env (e.g. OPENAI_API_KEY).", "type": "warning"
"type": "info" },
}, {
{ "text": "Update APP_URL in /opt/lobehub/.env if accessing from a different hostname.",
"text": "Building from source requires significant resources and may take 10+ minutes.", "type": "info"
"type": "warning" }
}, ]
{ }
"text": "Update APP_URL in /opt/lobehub/.env if accessing from a different hostname.",
"type": "info"
}
]
}

View File

@@ -12,12 +12,12 @@
"documentation": "https://github.com/mudler/LocalAGI#installation-options", "documentation": "https://github.com/mudler/LocalAGI#installation-options",
"website": "https://github.com/mudler/LocalAGI", "website": "https://github.com/mudler/LocalAGI",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/localagi.webp", "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.", "description": "LocalAGI is a self-hostable AI agent platform with a web UI, OpenAI-compatible APIs, and local-first model orchestration.",
"install_methods": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "ct/localagi.sh", "script": "ct/localagi.sh",
"config_path": "/opt/localagi/.env",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 4096, "ram": 4096,

View File

@@ -1,44 +1,44 @@
{ {
"name": "Lychee", "name": "Lychee",
"slug": "lychee", "slug": "lychee",
"categories": [ "categories": [
13 13
], ],
"date_created": "2026-04-04", "date_created": "2026-04-04",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 80, "interface_port": 80,
"documentation": "https://lycheeorg.dev/docs", "documentation": "https://lycheeorg.dev/docs",
"website": "https://lycheeorg.github.io/", "website": "https://lycheeorg.github.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/lychee.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/lychee.sh",
"script": "ct/lychee.sh", "config_path": "/opt/lychee/.env",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
"hdd": 8, "hdd": 8,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "Create your admin account on first login via the web interface.",
"type": "info"
}, },
"notes": [ {
{ "text": "Photo storage uses disk space under /opt/lychee/storage. Plan disk size accordingly.",
"text": "Create your admin account on first login via the web interface.", "type": "info"
"type": "info" }
}, ]
{
"text": "Photo storage uses disk space under /opt/lychee/storage. Plan disk size accordingly.",
"type": "info"
}
]
} }

View File

@@ -1,40 +1,40 @@
{ {
"name": "Matomo", "name": "Matomo",
"slug": "matomo", "slug": "matomo",
"categories": [ "categories": [
9 9
], ],
"date_created": "2026-07-13", "date_created": "2026-07-13",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 80, "interface_port": 80,
"documentation": "https://matomo.org/docs/", "documentation": "https://matomo.org/docs/",
"website": "https://matomo.org/", "website": "https://matomo.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/matomo.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/matomo.sh",
"script": "ct/matomo.sh", "config_path": "/opt/matomo/config/config.ini.php",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
"hdd": 16, "hdd": 16,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
}, },
"notes": [ "notes": [
{ {
"text": "Complete the setup wizard via the web interface on first access. Database credentials are stored in /opt/matomo/.mariadb-creds.", "text": "Complete the setup wizard via the web interface on first access. Database credentials are stored in /opt/matomo/.mariadb-creds.",
"type": "info" "type": "info"
} }
] ]
} }

View File

@@ -12,12 +12,12 @@
"documentation": "https://github.com/lyqht/mini-qr", "documentation": "https://github.com/lyqht/mini-qr",
"website": "https://mini-qr-code-generator.vercel.app/", "website": "https://mini-qr-code-generator.vercel.app/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/mini-qr.webp", "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.", "description": "Create & scan cute qr codes easily.",
"install_methods": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "ct/mini-qr.sh", "script": "ct/mini-qr.sh",
"config_path": "/etc/caddy/Caddyfile",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
@@ -32,4 +32,4 @@
"password": null "password": null
}, },
"notes": [] "notes": []
} }

View File

@@ -1,40 +1,40 @@
{ {
"name": "MintHCM", "name": "MintHCM",
"slug": "minthcm", "slug": "minthcm",
"categories": [ "categories": [
25 25
], ],
"date_created": "2025-12-12", "date_created": "2025-12-12",
"type": "ct", "type": "ct",
"updateable": false, "updateable": false,
"privileged": false, "privileged": false,
"interface_port": 80, "interface_port": 80,
"documentation": "https://wiki.minthcm.org/", "documentation": "https://wiki.minthcm.org/",
"config_path": "/var/www/MintHCM", "website": "https://minthcm.org/",
"website": "https://minthcm.org/", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/minthcm.webp",
"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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/minthcm.sh",
"script": "ct/minthcm.sh", "config_path": "/var/www/MintHCM",
"resources": { "resources": {
"cpu": 4, "cpu": 4,
"ram": 4096, "ram": 4096,
"hdd": 20, "hdd": 20,
"os": "debian", "os": "debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": "admin", "username": "admin",
"password": "minthcm" "password": "minthcm"
}, },
"notes": [ "notes": [
{ {
"text": "Database credentials are stored in ~/minthcm.creds", "text": "Database credentials are stored in ~/minthcm.creds",
"type": "info" "type": "info"
} }
] ]
} }

View File

@@ -1,38 +1,40 @@
{ {
"name": "Nametag", "name": "Nametag",
"slug": "nametag", "slug": "nametag",
"categories": [0], "categories": [
"date_created": "2026-03-30", 0
"type": "ct", ],
"updateable": true, "date_created": "2026-03-30",
"privileged": false, "type": "ct",
"interface_port": 3000, "updateable": true,
"documentation": "https://github.com/mattogodoy/nametag", "privileged": false,
"website": "https://nametag.one", "interface_port": 3000,
"logo": "https://raw.githubusercontent.com/mattogodoy/nametag/master/public/android-chrome-192x192.png", "documentation": "https://github.com/mattogodoy/nametag",
"config_path": "/opt/nametag/.env", "website": "https://nametag.one",
"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.", "logo": "https://raw.githubusercontent.com/mattogodoy/nametag/master/public/android-chrome-192x192.png",
"install_methods": [ "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", "type": "default",
"resources": { "script": "ct/nametag.sh",
"cpu": 2, "config_path": "/opt/nametag/.env",
"ram": 2048, "resources": {
"hdd": 8, "cpu": 2,
"os": "Debian", "ram": 2048,
"version": "13" "hdd": 8,
} "os": "Debian",
} "version": "13"
], }
"default_credentials": { }
"username": null, ],
"password": null "default_credentials": {
}, "username": null,
"notes": [ "password": null
{ },
"text": "Create your first account via the web UI — self-hosted accounts are auto-verified.", "notes": [
"type": "info" {
} "text": "Create your first account via the web UI — self-hosted accounts are auto-verified.",
] "type": "info"
}
]
} }

View File

@@ -1,44 +1,44 @@
{ {
"name": "Neko", "name": "Neko",
"slug": "neko", "slug": "neko",
"categories": [ "categories": [
13 13
], ],
"date_created": "2026-04-13", "date_created": "2026-04-13",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 8080, "interface_port": 8080,
"documentation": "https://neko.m1k1o.net/docs/v3/configuration", "documentation": "https://neko.m1k1o.net/docs/v3/configuration",
"website": "https://neko.m1k1o.net/", "website": "https://neko.m1k1o.net/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/neko.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/neko.sh",
"script": "ct/neko.sh", "config_path": "/etc/neko/neko.yaml",
"resources": { "resources": {
"cpu": 4, "cpu": 4,
"ram": 4096, "ram": 4096,
"hdd": 12, "hdd": 12,
"os": "Debian", "os": "Debian",
"version": "12" "version": "12"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": "admin" "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": "Firefox ESR is installed as the default browser. The virtual display runs at 1280x720.",
"text": "Login is password-only: 'admin' for admin, 'neko' for regular user. Change both in /etc/neko/neko.yaml.", "type": "info"
"type": "warning" }
}, ]
{ }
"text": "Firefox ESR is installed as the default browser. The virtual display runs at 1280x720.",
"type": "info"
}
]
}

View File

@@ -1,43 +1,43 @@
{ {
"name":"Ownfoil", "name": "Ownfoil",
"slug":"ownfoil", "slug": "ownfoil",
"categories": [ "categories": [
24 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.", "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", "type": "ct",
"privileged": false, "privileged": false,
"updateable": true, "updateable": true,
"interface_port": 8465, "interface_port": 8465,
"documentation": "https://github.com/a1ex4/ownfoil", "documentation": "https://github.com/a1ex4/ownfoil",
"website":" https://github.com/a1ex4/ownfoil", "website": " https://github.com/a1ex4/ownfoil",
"logo": null, "logo": null,
"config_path": "/opt/ownfoil/app/config/settings.yaml", "install_methods": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/ownfoil.sh",
"script": "ct/ownfoil.sh", "config_path": "/opt/ownfoil/app/config/settings.yaml",
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 1024, "ram": 1024,
"hdd": 4, "hdd": 4,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": 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": "More CPU/RAM may be required depening on library size and number of concurrent users",
"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": "info"
"type": "warning" }
}, ]
{ }
"text": "More CPU/RAM may be required depening on library size and number of concurrent users",
"type": "info"
}
]
}

View File

@@ -13,12 +13,12 @@
"documentation": "https://github.com/DioCrafts/OxiCloud/tree/main/doc", "documentation": "https://github.com/DioCrafts/OxiCloud/tree/main/doc",
"website": "https://github.com/DioCrafts/OxiCloud", "website": "https://github.com/DioCrafts/OxiCloud",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/oxicloud.webp", "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.", "description": "Ultra-fast, secure & lightweight self-hosted cloud storage — your files, photos, calendars & contacts, all in one place. Built in Rust.",
"install_methods": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "ct/oxicloud.sh", "script": "ct/oxicloud.sh",
"config_path": "/etc/oxicloud/.env",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 3072, "ram": 3072,

View File

@@ -1,40 +1,40 @@
{ {
"name": "Papermark", "name": "Papermark",
"slug": "papermark", "slug": "papermark",
"categories": [ "categories": [
12 12
], ],
"date_created": "2026-07-13", "date_created": "2026-07-13",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 3000, "interface_port": 3000,
"documentation": "https://www.papermark.com/docs", "documentation": "https://www.papermark.com/docs",
"website": "https://www.papermark.com/", "website": "https://www.papermark.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/papermark.webp", "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.",
"description": "Papermark is an open-source document sharing alternative to DocSend with built-in analytics, custom domains, and secure shareable links.", "install_methods": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/papermark.sh",
"script": "ct/papermark.sh", "config_path": "/opt/papermark/.env",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
"hdd": 8, "hdd": 8,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
}, },
"notes": [ "notes": [
{ {
"text": "Requires external blob storage (S3 or compatible) and email service (Resend) configured in .env for full functionality.", "text": "Requires external blob storage (S3 or compatible) and email service (Resend) configured in .env for full functionality.",
"type": "warning" "type": "warning"
} }
] ]
} }

View File

@@ -1,52 +1,52 @@
{ {
"name": "Pixelfed", "name": "Pixelfed",
"slug": "pixelfed", "slug": "pixelfed",
"categories": [ "categories": [
0 0
], ],
"date_created": "2024-06-15", "date_created": "2024-06-15",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 80, "interface_port": 80,
"documentation": "https://docs.pixelfed.org/", "documentation": "https://docs.pixelfed.org/",
"config_path": "/opt/pixelfed/.env", "website": "https://pixelfed.org/",
"website": "https://pixelfed.org/", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/pixelfed.webp",
"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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/pixelfed.sh",
"script": "ct/pixelfed.sh", "config_path": "/opt/pixelfed/.env",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
"hdd": 10, "hdd": 10,
"os": "Debian", "os": "Debian",
"version": "12" "version": "12"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "Create admin account with: cd /opt/pixelfed && sudo -u pixelfed php artisan user:create",
"type": "warning"
}, },
"notes": [ {
{ "text": "Credentials are stored in /opt/pixelfed/.env",
"text": "Create admin account with: cd /opt/pixelfed && sudo -u pixelfed php artisan user:create", "type": "info"
"type": "warning" },
}, {
{ "text": "ActivityPub federation is enabled by default",
"text": "Credentials are stored in /opt/pixelfed/.env", "type": "info"
"type": "info" },
}, {
{ "text": "Uses PostgreSQL, Redis (socket), and PHP-FPM",
"text": "ActivityPub federation is enabled by default", "type": "info"
"type": "info" }
}, ]
{
"text": "Uses PostgreSQL, Redis (socket), and PHP-FPM",
"type": "info"
}
]
} }

View File

@@ -12,12 +12,12 @@
"documentation": "https://developers.plane.so/self-hosting/overview", "documentation": "https://developers.plane.so/self-hosting/overview",
"website": "https://plane.so", "website": "https://plane.so",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/plane.webp", "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.", "description": "Open-source project tracking tool that helps teams plan, track, and manage their software projects with issues, cycles, and modules.",
"install_methods": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "ct/plane.sh", "script": "ct/plane.sh",
"config_path": "/opt/plane/apps/api/.env",
"resources": { "resources": {
"cpu": 4, "cpu": 4,
"ram": 6144, "ram": 6144,
@@ -49,4 +49,4 @@
"type": "warning" "type": "warning"
} }
] ]
} }

View File

@@ -1,44 +1,44 @@
{ {
"name": "Postiz", "name": "Postiz",
"slug": "postiz", "slug": "postiz",
"categories": [ "categories": [
19 19
], ],
"date_created": "2026-02-22", "date_created": "2026-02-22",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 80, "interface_port": 80,
"documentation": "https://docs.postiz.com/", "documentation": "https://docs.postiz.com/",
"website": "https://postiz.com/", "website": "https://postiz.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/postiz.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/postiz.sh",
"script": "ct/postiz.sh", "config_path": "/opt/postiz/.env",
"resources": { "resources": {
"cpu": 4, "cpu": 4,
"ram": 8192, "ram": 8192,
"hdd": 20, "hdd": 20,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "The build process requires significant RAM (4GB+). Do not reduce container RAM below 4GB.",
"type": "warning"
}, },
"notes": [ {
{ "text": "NEXT_PUBLIC_* variables are baked at build time. If you change the IP/URL or add social provider keys, rebuild with: postiz-rebuild",
"text": "The build process requires significant RAM (4GB+). Do not reduce container RAM below 4GB.", "type": "info"
"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"
}
]
}

View File

@@ -12,12 +12,12 @@
"documentation": "https://proton.me/support/bridge-cli-guide", "documentation": "https://proton.me/support/bridge-cli-guide",
"website": "https://proton.me/mail/bridge", "website": "https://proton.me/mail/bridge",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/proton-mail.webp", "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).", "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": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "ct/protonmail-bridge.sh", "script": "ct/protonmail-bridge.sh",
"config_path": "",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 1024, "ram": 1024,

View File

@@ -1,40 +1,40 @@
{ {
"name": "Puter", "name": "Puter",
"slug": "puter", "slug": "puter",
"categories": [ "categories": [
0 0
], ],
"date_created": "2026-04-04", "date_created": "2026-04-04",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 4100, "interface_port": 4100,
"documentation": "https://docs.puter.com/", "documentation": "https://docs.puter.com/",
"website": "https://puter.com/", "website": "https://puter.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/puter.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/puter.sh",
"script": "ct/puter.sh", "config_path": "/etc/puter",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
"hdd": 8, "hdd": 8,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
}, },
"notes": [ "notes": [
{ {
"text": "Configuration is stored in /etc/puter and data in /var/puter.", "text": "Configuration is stored in /etc/puter and data in /var/puter.",
"type": "info" "type": "info"
} }
] ]
} }

View File

@@ -1,35 +1,35 @@
{ {
"name": "RSS-Bridge", "name": "RSS-Bridge",
"slug": "rss-bridge", "slug": "rss-bridge",
"categories": [ "categories": [
0 0
], ],
"date_created": "2026-07-13", "date_created": "2026-07-13",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 80, "interface_port": 80,
"documentation": "https://rss-bridge.github.io/rss-bridge/", "documentation": "https://rss-bridge.github.io/rss-bridge/",
"website": "https://rss-bridge.org/", "website": "https://rss-bridge.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/rss-bridge.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/rss-bridge.sh",
"script": "ct/rss-bridge.sh", "config_path": "/opt/rss-bridge/config.ini.php",
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 512, "ram": 512,
"hdd": 2, "hdd": 2,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
}, },
"notes": [] "notes": []
} }

View File

@@ -1,52 +1,52 @@
{ {
"name": "SimpleLogin", "name": "SimpleLogin",
"slug": "simplelogin", "slug": "simplelogin",
"categories": [ "categories": [
6 6
], ],
"date_created": "2026-02-22", "date_created": "2026-02-22",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 80, "interface_port": 80,
"documentation": "https://github.com/simple-login/app/blob/master/docs/", "documentation": "https://github.com/simple-login/app/blob/master/docs/",
"website": "https://simplelogin.io/", "website": "https://simplelogin.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/simplelogin.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/simplelogin.sh",
"script": "ct/simplelogin.sh", "config_path": "/opt/simplelogin/.env",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
"hdd": 10, "hdd": 10,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": 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": "A working SMTP setup (Postfix + valid domain/DNS) is required. Registration sends an activation email that must be delivered.",
"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"
"type": "warning" },
}, {
{ "text": "DKIM keys are generated at /opt/simplelogin/dkim/. Add the public key as a TXT record: dkim._domainkey.yourdomain.com",
"text": "A working SMTP setup (Postfix + valid domain/DNS) is required. Registration sends an activation email that must be delivered.", "type": "info"
"type": "warning" },
}, {
{ "text": "Create your first admin account by visiting the web interface and registering.",
"text": "DKIM keys are generated at /opt/simplelogin/dkim/. Add the public key as a TXT record: dkim._domainkey.yourdomain.com", "type": "info"
"type": "info" }
}, ]
{ }
"text": "Create your first admin account by visiting the web interface and registering.",
"type": "info"
}
]
}

View File

@@ -12,12 +12,12 @@
"documentation": "https://github.com/Wetzel402/Skylite-UX", "documentation": "https://github.com/Wetzel402/Skylite-UX",
"website": "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", "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.", "description": "Skylite-UX is an open-source, self-hosted family management app with calendar, todos, shopping lists, and user management.",
"install_methods": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "ct/skylite-ux.sh", "script": "ct/skylite-ux.sh",
"config_path": "/opt/skylite-ux/.env",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 4096, "ram": 4096,

View File

@@ -1,48 +1,48 @@
{ {
"name": "Slink", "name": "Slink",
"slug": "slink", "slug": "slink",
"categories": [ "categories": [
11 11
], ],
"date_created": "2026-04-02", "date_created": "2026-04-02",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 3000, "interface_port": 3000,
"documentation": "https://slink.pages.dev", "documentation": "https://slink.pages.dev",
"website": "https://github.com/andrii-kryvoviaz/slink", "website": "https://github.com/andrii-kryvoviaz/slink",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/slink.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/slink.sh",
"script": "ct/slink.sh", "config_path": "/opt/slink/services/api/.env",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
"hdd": 10, "hdd": 10,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": "admin@localhost", "username": "admin@localhost",
"password": "auto-generated" "password": "auto-generated"
},
"notes": [
{
"text": "API runs on Caddy+PHP-FPM (port 8080), client on Node.js (port 3000).",
"type": "info"
}, },
"notes": [ {
{ "text": "Credentials are saved to `~/slink.creds`.",
"text": "API runs on Caddy+PHP-FPM (port 8080), client on Node.js (port 3000).", "type": "info"
"type": "info" },
}, {
{ "text": "Mercure real-time notifications are not available in this bare-metal setup.",
"text": "Credentials are saved to `~/slink.creds`.", "type": "warning"
"type": "info" }
}, ]
{ }
"text": "Mercure real-time notifications are not available in this bare-metal setup.",
"type": "warning"
}
]
}

View File

@@ -1,40 +1,40 @@
{ {
"name": "SolidTime", "name": "SolidTime",
"slug": "solidtime", "slug": "solidtime",
"categories": [ "categories": [
25 25
], ],
"date_created": "2026-07-13", "date_created": "2026-07-13",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 80, "interface_port": 80,
"documentation": "https://docs.solidtime.io/", "documentation": "https://docs.solidtime.io/",
"website": "https://www.solidtime.io/", "website": "https://www.solidtime.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/solidtime.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/solidtime.sh",
"script": "ct/solidtime.sh", "config_path": "/opt/solidtime/.env",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
"hdd": 8, "hdd": 8,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
}, },
"notes": [ "notes": [
{ {
"text": "Create your first account by registering via the web interface.", "text": "Create your first account by registering via the web interface.",
"type": "info" "type": "info"
} }
] ]
} }

View File

@@ -1,44 +1,44 @@
{ {
"name": "SoulSync", "name": "SoulSync",
"slug": "soulsync", "slug": "soulsync",
"categories": [ "categories": [
13 13
], ],
"date_created": "2026-04-02", "date_created": "2026-04-02",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 8008, "interface_port": 8008,
"documentation": "https://github.com/Nezreka/SoulSync#readme", "documentation": "https://github.com/Nezreka/SoulSync#readme",
"website": "https://github.com/Nezreka/SoulSync", "website": "https://github.com/Nezreka/SoulSync",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/soulsync.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/soulsync.sh",
"script": "ct/soulsync.sh", "config_path": "/opt/soulsync/config",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
"hdd": 8, "hdd": 8,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "Requires a running slskd instance for Soulseek downloads. Configure in Settings → Downloads.",
"type": "warning"
}, },
"notes": [ {
{ "text": "Spotify API credentials are optional but recommended for discovery features. Configure at `http://IP:8008` → Settings.",
"text": "Requires a running slskd instance for Soulseek downloads. Configure in Settings → Downloads.", "type": "info"
"type": "warning" }
}, ]
{ }
"text": "Spotify API credentials are optional but recommended for discovery features. Configure at `http://IP:8008` → Settings.",
"type": "info"
}
]
}

View File

@@ -1,35 +1,35 @@
{ {
"name": "SparkyFitness Garmin Microservice", "name": "SparkyFitness Garmin Microservice",
"slug": "sparkyfitness-garmin", "slug": "sparkyfitness-garmin",
"categories": [ "categories": [
9 9
], ],
"date_created": "2026-03-26", "date_created": "2026-03-26",
"type": "addon", "type": "addon",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 8000, "interface_port": 8000,
"documentation": "https://codewithcj.github.io/SparkyFitness", "documentation": "https://codewithcj.github.io/SparkyFitness",
"website": "https://github.com/CodeWithCJ/SparkyFitness", "website": "https://github.com/CodeWithCJ/SparkyFitness",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/sparkyfitness.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "tools/addon/sparkyfitness-garmin.sh",
"script": "tools/addon/sparkyfitness-garmin.sh", "config_path": "/etc/sparkyfitness-garmin/.env",
"resources": { "resources": {
"cpu": null, "cpu": null,
"ram": null, "ram": null,
"hdd": null, "hdd": null,
"os": null, "os": null,
"version": null "version": null
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
}, },
"notes": [] "notes": []
} }

View File

@@ -12,12 +12,12 @@
"documentation": "https://smallstep.com/docs/step-ca/", "documentation": "https://smallstep.com/docs/step-ca/",
"website": "https://github.com/smallstep/certificates", "website": "https://github.com/smallstep/certificates",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/step-ca.webp", "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.", "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": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "ct/step-ca.sh", "script": "ct/step-ca.sh",
"config_path": "/etc/step-ca",
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 512, "ram": 512,

View File

@@ -1,44 +1,44 @@
{ {
"name": "Storybook", "name": "Storybook",
"slug": "storybook", "slug": "storybook",
"categories": [ "categories": [
20 20
], ],
"date_created": "2026-03-25", "date_created": "2026-03-25",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 6006, "interface_port": 6006,
"documentation": "https://storybook.js.org/docs", "documentation": "https://storybook.js.org/docs",
"website": "https://storybook.js.org/", "website": "https://storybook.js.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/storybook.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/storybook.sh",
"script": "ct/storybook.sh", "config_path": "",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
"hdd": 8, "hdd": 8,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "The installer uses an interactive setup wizard (like fumadocs). Follow the prompts during installation.",
"type": "info"
}, },
"notes": [ {
{ "text": "Storybook runs in development mode on port 6006.",
"text": "The installer uses an interactive setup wizard (like fumadocs). Follow the prompts during installation.", "type": "info"
"type": "info" }
}, ]
{ }
"text": "Storybook runs in development mode on port 6006.",
"type": "info"
}
]
}

View File

@@ -1,48 +1,48 @@
{ {
"name": "Storyteller", "name": "Storyteller",
"slug": "storyteller", "slug": "storyteller",
"categories": [ "categories": [
13 13
], ],
"date_created": "2026-03-25", "date_created": "2026-03-25",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 8001, "interface_port": 8001,
"documentation": "https://storyteller-platform.dev/docs/welcome", "documentation": "https://storyteller-platform.dev/docs/welcome",
"website": "https://storyteller-platform.dev/", "website": "https://storyteller-platform.dev/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/storyteller.webp", "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.",
"description": "Storyteller is a self-hosted platform for creating and reading ebooks with synced narration, combining audiobooks and ebooks with automatic synchronization.", "install_methods": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/storyteller.sh",
"script": "ct/storyteller.sh", "config_path": "/opt/storyteller/.env",
"resources": { "resources": {
"cpu": 4, "cpu": 4,
"ram": 10240, "ram": 10240,
"hdd": 16, "hdd": 16,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "Minimum 8GB RAM recommended. AI-based transcription is resource-intensive.",
"type": "warning"
}, },
"notes": [ {
{ "text": "Secret key is stored in `/opt/storyteller/.env`.",
"text": "Minimum 8GB RAM recommended. AI-based transcription is resource-intensive.", "type": "info"
"type": "warning" },
}, {
{ "text": "GPU acceleration is not available in the LXC version. Use CPU-based transcription.",
"text": "Secret key is stored in `/opt/storyteller/.env`.", "type": "info"
"type": "info" }
}, ]
{ }
"text": "GPU acceleration is not available in the LXC version. Use CPU-based transcription.",
"type": "info"
}
]
}

View File

@@ -1,42 +1,44 @@
{ {
"name": "SurrealDB", "name": "SurrealDB",
"slug": "surrealdb", "slug": "surrealdb",
"categories": [8], "categories": [
"date_created": "2026-02-26", 8
"type": "ct", ],
"updateable": true, "date_created": "2026-02-26",
"privileged": false, "type": "ct",
"interface_port": 8000, "updateable": true,
"documentation": "https://surrealdb.com/docs", "privileged": false,
"website": "https://surrealdb.com/", "interface_port": 8000,
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/surrealdb.webp", "documentation": "https://surrealdb.com/docs",
"config_path": "/opt/surrealdb/.env", "website": "https://surrealdb.com/",
"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.", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/surrealdb.webp",
"install_methods": [ "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", "type": "default",
"resources": { "script": "ct/surrealdb.sh",
"cpu": 2, "config_path": "/opt/surrealdb/.env",
"ram": 1024, "resources": {
"hdd": 4, "cpu": 2,
"os": "Debian", "ram": 1024,
"version": "13" "hdd": 4,
} "os": "Debian",
} "version": "13"
], }
"default_credentials": { }
"username": "root", ],
"password": null "default_credentials": {
}, "username": "root",
"notes": [ "password": null
{ },
"text": "SurrealDB web interface is available on port 8000.", "notes": [
"type": "info" {
}, "text": "SurrealDB web interface is available on port 8000.",
{ "type": "info"
"text": "Default credentials are saved in ~/surrealdb.creds.", },
"type": "info" {
} "text": "Default credentials are saved in ~/surrealdb.creds.",
] "type": "info"
}
]
} }

View File

@@ -1,44 +1,44 @@
{ {
"name": "Teable", "name": "Teable",
"slug": "teable", "slug": "teable",
"categories": [ "categories": [
8 8
], ],
"date_created": "2026-03-25", "date_created": "2026-03-25",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 3000, "interface_port": 3000,
"documentation": "https://help.teable.io/", "documentation": "https://help.teable.io/",
"website": "https://teable.io/", "website": "https://teable.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/teable.webp", "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.",
"description": "Teable is a super-fast, open-source no-code database built on PostgreSQL with a spreadsheet-like interface for building applications.", "install_methods": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/teable.sh",
"script": "ct/teable.sh", "config_path": "/opt/teable/.env",
"resources": { "resources": {
"cpu": 4, "cpu": 4,
"ram": 10240, "ram": 10240,
"hdd": 25, "hdd": 25,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "Minimum 10GB RAM recommended. The build process is very resource-intensive.",
"type": "warning"
}, },
"notes": [ {
{ "text": "Configuration is stored in `/opt/teable/.env`.",
"text": "Minimum 10GB RAM recommended. The build process is very resource-intensive.", "type": "info"
"type": "warning" }
}, ]
{ }
"text": "Configuration is stored in `/opt/teable/.env`.",
"type": "info"
}
]
}

View File

@@ -1,35 +1,35 @@
{ {
"name": "Tor Snowflake", "name": "Tor Snowflake",
"slug": "tor-snowflake", "slug": "tor-snowflake",
"categories": [ "categories": [
4 4
], ],
"date_created": "2025-12-19", "date_created": "2025-12-19",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": null, "interface_port": null,
"documentation": "https://community.torproject.org/relay/setup/snowflake/standalone/", "documentation": "https://community.torproject.org/relay/setup/snowflake/standalone/",
"website": "https://snowflake.torproject.org/", "website": "https://snowflake.torproject.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/tor.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/tor-snowflake.sh",
"script": "ct/tor-snowflake.sh", "config_path": "",
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 512, "ram": 512,
"hdd": 4, "hdd": 4,
"os": "debian", "os": "debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
}, },
"notes": [] "notes": []
} }

View File

@@ -1,38 +1,40 @@
{ {
"name": "Transmute", "name": "Transmute",
"slug": "transmute", "slug": "transmute",
"categories": [11], "categories": [
"date_created": "2026-03-30", 11
"type": "ct", ],
"updateable": true, "date_created": "2026-03-30",
"privileged": false, "type": "ct",
"interface_port": 3313, "updateable": true,
"documentation": "https://transmute.sh/docs/getting-started/", "privileged": false,
"website": "https://transmute.sh", "interface_port": 3313,
"logo": "https://raw.githubusercontent.com/transmute-app/transmute/main/frontend/public/transmute-logo.svg", "documentation": "https://transmute.sh/docs/getting-started/",
"config_path": "/opt/transmute/backend/.env", "website": "https://transmute.sh",
"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.", "logo": "https://raw.githubusercontent.com/transmute-app/transmute/main/frontend/public/transmute-logo.svg",
"install_methods": [ "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", "type": "default",
"resources": { "script": "ct/transmute.sh",
"cpu": 4, "config_path": "/opt/transmute/backend/.env",
"ram": 4096, "resources": {
"hdd": 16, "cpu": 4,
"os": "Debian", "ram": 4096,
"version": "13" "hdd": 16,
} "os": "Debian",
} "version": "13"
], }
"default_credentials": { }
"username": null, ],
"password": null "default_credentials": {
}, "username": null,
"notes": [ "password": null
{ },
"text": "Create your first account via the web UI — it becomes the admin account.", "notes": [
"type": "info" {
} "text": "Create your first account via the web UI — it becomes the admin account.",
] "type": "info"
}
]
} }

View File

@@ -1,44 +1,44 @@
{ {
"name": "TREK", "name": "TREK",
"slug": "trek", "slug": "trek",
"categories": [ "categories": [
0 0
], ],
"date_created": "2026-04-02", "date_created": "2026-04-02",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 3000, "interface_port": 3000,
"documentation": "https://github.com/mauriceboe/TREK#readme", "documentation": "https://github.com/mauriceboe/TREK#readme",
"website": "https://github.com/mauriceboe/TREK", "website": "https://github.com/mauriceboe/TREK",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/trek.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/trek.sh",
"script": "ct/trek.sh", "config_path": "/opt/trek/server/.env",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 2048,
"hdd": 8, "hdd": 8,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "The first user to register becomes the admin.",
"type": "info"
}, },
"notes": [ {
{ "text": "ENCRYPTION_KEY is auto-generated during setup. See `/opt/trek/server/.env`.",
"text": "The first user to register becomes the admin.", "type": "info"
"type": "info" }
}, ]
{ }
"text": "ENCRYPTION_KEY is auto-generated during setup. See `/opt/trek/server/.env`.",
"type": "info"
}
]
}

View File

@@ -1,52 +1,52 @@
{ {
"name": "Tube Archivist", "name": "Tube Archivist",
"slug": "tubearchivist", "slug": "tubearchivist",
"categories": [ "categories": [
13 13
], ],
"date_created": "2026-03-25", "date_created": "2026-03-25",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 8000, "interface_port": 8000,
"documentation": "https://docs.tubearchivist.com/", "documentation": "https://docs.tubearchivist.com/",
"website": "https://github.com/tubearchivist/tubearchivist", "website": "https://github.com/tubearchivist/tubearchivist",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/tube-archivist.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/tubearchivist.sh",
"script": "ct/tubearchivist.sh", "config_path": "/opt/tubearchivist/.env",
"resources": { "resources": {
"cpu": 4, "cpu": 4,
"ram": 6144, "ram": 6144,
"hdd": 30, "hdd": 30,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": "admin", "username": "admin",
"password": null "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": "ElasticSearch is configured with 1GB heap. Adjust `/etc/elasticsearch/jvm.options.d/heap.options` for larger collections.",
"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": "info"
"type": "warning" },
}, {
{ "text": "Admin password is stored in `/opt/tubearchivist/.env`.",
"text": "ElasticSearch is configured with 1GB heap. Adjust `/etc/elasticsearch/jvm.options.d/heap.options` for larger collections.", "type": "info"
"type": "info" },
}, {
{ "text": "Minimum 6GB RAM recommended. ElasticSearch alone requires 2GB+.",
"text": "Admin password is stored in `/opt/tubearchivist/.env`.", "type": "warning"
"type": "info" }
}, ]
{ }
"text": "Minimum 6GB RAM recommended. ElasticSearch alone requires 2GB+.",
"type": "warning"
}
]
}

View File

@@ -1,48 +1,48 @@
{ {
"name": "Twenty", "name": "Twenty",
"slug": "twenty", "slug": "twenty",
"categories": [ "categories": [
25 25
], ],
"date_created": "2026-02-22", "date_created": "2026-02-22",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 3000, "interface_port": 3000,
"documentation": "https://docs.twenty.com/", "documentation": "https://docs.twenty.com/",
"website": "https://twenty.com/", "website": "https://twenty.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/twenty-crm.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/twenty.sh",
"script": "ct/twenty.sh", "config_path": "/opt/twenty/.env",
"resources": { "resources": {
"cpu": 4, "cpu": 4,
"ram": 10240, "ram": 10240,
"hdd": 20, "hdd": 20,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "First visit will prompt you to create a workspace and admin account.",
"type": "info"
}, },
"notes": [ {
{ "text": "Building from source requires significant resources and takes 10-15 minutes.",
"text": "First visit will prompt you to create a workspace and admin account.", "type": "warning"
"type": "info" },
}, {
{ "text": "Update SERVER_URL in /opt/twenty/.env if accessing from a different hostname.",
"text": "Building from source requires significant resources and takes 10-15 minutes.", "type": "info"
"type": "warning" }
}, ]
{ }
"text": "Update SERVER_URL in /opt/twenty/.env if accessing from a different hostname.",
"type": "info"
}
]
}

View File

@@ -1,35 +1,35 @@
{ {
"name": "Unifi OS Server VM", "name": "Unifi OS Server VM",
"slug": "unifi-os-server-vm", "slug": "unifi-os-server-vm",
"categories": [ "categories": [
2 2
], ],
"date_created": "2025-12-02", "date_created": "2025-12-02",
"type": "vm", "type": "vm",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": null, "interface_port": null,
"documentation": "https://help.ui.com/hc/en-us", "documentation": "https://help.ui.com/hc/en-us",
"website": "https://www.ui.com/", "website": "https://www.ui.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/ubiquiti-unifi.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "vm/unifi-os-server-vm.sh",
"script": "vm/unifi-os-server-vm.sh", "config_path": "",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 4096, "ram": 4096,
"hdd": 32, "hdd": 32,
"os": null, "os": null,
"version": null "version": null
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
}, },
"notes": [] "notes": []
} }

View File

@@ -1,80 +1,80 @@
{ {
"name": "PVE LXC Apps Update", "name": "PVE LXC Apps Update",
"slug": "update-apps", "slug": "update-apps",
"categories": [ "categories": [
1 1
], ],
"date_created": "2025-09-15", "date_created": "2025-09-15",
"type": "pve", "type": "pve",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": null, "interface_port": null,
"documentation": null, "documentation": null,
"website": null, "website": null,
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/proxmox.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "tools/pve/update-apps.sh",
"script": "tools/pve/update-apps.sh", "config_path": "",
"resources": { "resources": {
"cpu": null, "cpu": null,
"ram": null, "ram": null,
"hdd": null, "hdd": null,
"os": null, "os": null,
"version": null "version": null
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "Execute within the Proxmox shell.",
"type": "info"
}, },
"notes": [ {
{ "text": "Only containers with `community-script` or `proxmox-helper-scripts` tags are listed for update.",
"text": "Execute within the Proxmox shell.", "type": "info"
"type": "info" },
}, {
{ "text": "Optionally performs a vzdump backup before updating containers.",
"text": "Only containers with `community-script` or `proxmox-helper-scripts` tags are listed for update.", "type": "warning"
"type": "info" },
}, {
{ "text": "If required, the script will temporarily increase container CPU/RAM resources for the build process and restore them after completion.",
"text": "Optionally performs a vzdump backup before updating containers.", "type": "info"
"type": "warning" },
}, {
{ "text": "At the end of the update, containers requiring a reboot will be listed, and you may choose to reboot them directly.",
"text": "If required, the script will temporarily increase container CPU/RAM resources for the build process and restore them after completion.", "type": "info"
"type": "info" },
}, {
{ "text": "Use `var_backup=yes|no` to enable/disable backup (skip prompt).",
"text": "At the end of the update, containers requiring a reboot will be listed, and you may choose to reboot them directly.", "type": "info"
"type": "info" },
}, {
{ "text": "Use `var_backup_storage=<name>` to set backup storage location.",
"text": "Use `var_backup=yes|no` to enable/disable backup (skip prompt).", "type": "info"
"type": "info" },
}, {
{ "text": "Use `var_container=all|all_running|all_stopped|101,102,...` to select containers.",
"text": "Use `var_backup_storage=<name>` to set backup storage location.", "type": "info"
"type": "info" },
}, {
{ "text": "Use `var_unattended=yes|no` to run updates without interaction.",
"text": "Use `var_container=all|all_running|all_stopped|101,102,...` to select containers.", "type": "info"
"type": "info" },
}, {
{ "text": "Use `var_skip_confirm=yes` to skip initial confirmation dialog.",
"text": "Use `var_unattended=yes|no` to run updates without interaction.", "type": "info"
"type": "info" },
}, {
{ "text": "Use `var_auto_reboot=yes|no` to auto-reboot containers after update.",
"text": "Use `var_skip_confirm=yes` to skip initial confirmation dialog.", "type": "info"
"type": "info" }
}, ]
{
"text": "Use `var_auto_reboot=yes|no` to auto-reboot containers after update.",
"type": "info"
}
]
} }

View File

@@ -1,44 +1,44 @@
{ {
"name": "UpSnap", "name": "UpSnap",
"slug": "upsnap", "slug": "upsnap",
"categories": [ "categories": [
4 4
], ],
"date_created": "2026-04-02", "date_created": "2026-04-02",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 8090, "interface_port": 8090,
"documentation": "https://github.com/seriousm4x/UpSnap/wiki", "documentation": "https://github.com/seriousm4x/UpSnap/wiki",
"website": "https://github.com/seriousm4x/UpSnap", "website": "https://github.com/seriousm4x/UpSnap",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/upsnap.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/upsnap.sh",
"script": "ct/upsnap.sh", "config_path": "",
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 512, "ram": 512,
"hdd": 2, "hdd": 2,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
},
"notes": [
{
"text": "The first user to register becomes the admin (visit `http://IP:8090/_/`).",
"type": "info"
}, },
"notes": [ {
{ "text": "Do not expose UpSnap to the internet — shutdown commands can execute shell commands. Use a VPN for remote access.",
"text": "The first user to register becomes the admin (visit `http://IP:8090/_/`).", "type": "warning"
"type": "info" }
}, ]
{ }
"text": "Do not expose UpSnap to the internet — shutdown commands can execute shell commands. Use a VPN for remote access.",
"type": "warning"
}
]
}

View File

@@ -1,40 +1,40 @@
{ {
"name": "WhoDB", "name": "WhoDB",
"slug": "whodb", "slug": "whodb",
"categories": [ "categories": [
8 8
], ],
"date_created": "2026-04-13", "date_created": "2026-04-13",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 8080, "interface_port": 8080,
"documentation": "https://docs.whodb.com/", "documentation": "https://docs.whodb.com/",
"website": "https://whodb.com/", "website": "https://whodb.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/whodb.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/whodb.sh",
"script": "ct/whodb.sh", "config_path": "",
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 512, "ram": 512,
"hdd": 2, "hdd": 2,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
}, },
"notes": [ "notes": [
{ {
"text": "WhoDB connects to external databases — enter your database credentials on the login page.", "text": "WhoDB connects to external databases — enter your database credentials on the login page.",
"type": "info" "type": "info"
} }
] ]
} }

View File

@@ -1,44 +1,44 @@
{ {
"name": "YOURLS", "name": "YOURLS",
"slug": "yourls", "slug": "yourls",
"categories": [ "categories": [
0 0
], ],
"date_created": "2026-03-24", "date_created": "2026-03-24",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 80, "interface_port": 80,
"documentation": "https://yourls.org/", "documentation": "https://yourls.org/",
"website": "https://yourls.org/", "website": "https://yourls.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/yourls.webp", "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.",
"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": [
"install_methods": [ {
{ "type": "default",
"type": "default", "script": "ct/yourls.sh",
"script": "ct/yourls.sh", "config_path": "/opt/yourls/user/config.php",
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 512, "ram": 512,
"hdd": 4, "hdd": 4,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": "admin", "username": "admin",
"password": "Generated during install" "password": "Generated during install"
},
"notes": [
{
"text": "After installation, visit /admin/install.php once to initialize the database and complete setup.",
"type": "info"
}, },
"notes": [ {
{ "text": "The admin password is shown at the end of the installation log.",
"text": "After installation, visit /admin/install.php once to initialize the database and complete setup.", "type": "info"
"type": "info" }
}, ]
{ }
"text": "The admin password is shown at the end of the installation log.",
"type": "info"
}
]
}

View File

@@ -12,12 +12,12 @@
"documentation": "https://zitadel.com/docs/guides/overview", "documentation": "https://zitadel.com/docs/guides/overview",
"website": "https://zitadel.com", "website": "https://zitadel.com",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/zitadel.webp", "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.", "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": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "ct/zitadel.sh", "script": "ct/zitadel.sh",
"config_path": "/etc/zitadel/config.yaml",
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 1024, "ram": 1024,