Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions templates/astroluma/assets/logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added templates/astroluma/assets/screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
59 changes: 59 additions & 0 deletions templates/astroluma/index.ts
Original file line number Diff line number Diff line change
@@ -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 };
}
71 changes: 71 additions & 0 deletions templates/astroluma/meta.yaml
Original file line number Diff line number Diff line change
@@ -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