diff --git a/templates/astroluma/assets/logo.svg b/templates/astroluma/assets/logo.svg new file mode 100644 index 000000000..f321d9d05 --- /dev/null +++ b/templates/astroluma/assets/logo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/templates/astroluma/assets/screenshot.png b/templates/astroluma/assets/screenshot.png new file mode 100644 index 000000000..42af9d6af Binary files /dev/null and b/templates/astroluma/assets/screenshot.png differ diff --git a/templates/astroluma/index.ts b/templates/astroluma/index.ts new file mode 100644 index 000000000..96d6360b1 --- /dev/null +++ b/templates/astroluma/index.ts @@ -0,0 +1,59 @@ +import { + Output, + randomPassword, + randomString, + Services, +} from "~templates-utils"; +import { Input } from "./meta"; + +export function generate(input: Input): Output { + const services: Services = []; + const dbServiceName = `${input.appServiceName}-db`; + const mongoPassword = randomPassword(); + const secretKey = randomString(32); + + services.push({ + type: "app", + data: { + serviceName: input.appServiceName, + source: { + type: "image", + image: input.appServiceImage, + }, + env: [ + `PORT=8000`, + `NODE_ENV=production`, + `SECRET_KEY=${secretKey}`, + `MONGODB_URI=mongodb://mongo:${mongoPassword}@$(PROJECT_NAME)_${dbServiceName}:27017/astroluma?authSource=admin`, + ].join("\n"), + domains: [ + { + host: "$(EASYPANEL_DOMAIN)", + port: 8000, + }, + ], + mounts: [ + { + type: "volume", + name: "uploads", + mountPath: "/app/storage/uploads", + }, + { + type: "volume", + name: "apps", + mountPath: "/app/storage/apps", + }, + ], + }, + }); + + services.push({ + type: "mongo", + data: { + serviceName: dbServiceName, + password: mongoPassword, + }, + }); + + return { services }; +} diff --git a/templates/astroluma/meta.yaml b/templates/astroluma/meta.yaml new file mode 100644 index 000000000..f596291b5 --- /dev/null +++ b/templates/astroluma/meta.yaml @@ -0,0 +1,71 @@ +name: Astroluma +description: + Astroluma is a self-hosted home lab dashboard built with the MERN stack. It + helps you manage tasks, monitor devices, integrate apps, and track real-time + weather from a single, customizable interface. +instructions: >- + Astroluma seeds a default admin account on first boot rather than showing a + signup flow: log in with username "admin" and password "123456", then change + the password immediately from account settings, since this default is + hardcoded in the public source and not unique to your deployment. Uploaded + files and app assets persist on dedicated volumes. Astroluma's local network + device scanning feature relies on host networking, which Easypanel does not + support for app services, so that feature will not work in this deployment; + all other functionality works normally. +changeLog: + - date: 2026-08-13 + description: first release +links: + - label: Website + url: https://getastroluma.com + - label: GitHub Repo + url: https://github.com/Sanjeet990/Astroluma + - label: Documentation + url: https://getastroluma.com/docs/getting-started/installation/ +contributors: + - name: Ahson Shaikh + url: https://github.com/Ahson-Shaikh +schema: + type: object + required: + - appServiceName + - appServiceImage + properties: + appServiceName: + type: string + title: App Service Name + default: astroluma + appServiceImage: + type: string + title: App Service Image + default: sanjeet990/astroluma:1.0.2 +benefits: + - title: Unified Home Lab Dashboard + description: + Manage tasks, apps, and devices from a single, responsive interface + instead of juggling separate tools + - title: Real-Time Monitoring + description: + Track device status and live weather updates alongside your daily tasks + and integrated apps + - title: Deep Customization + description: + Configure layouts, integrations, and widgets to match how you actually + work, not a fixed template +features: + - title: Task Management + description: + Organize and track daily tasks directly inside the dashboard alongside + your other integrations + - title: App Integration + description: + Link out to and embed your self-hosted apps and services for one-click + access + - title: Persistent Storage + description: + Uploaded files and app assets are stored on dedicated volumes that survive + restarts +tags: + - Dashboard + - Self-Hosting + - Productivity